47 1 IPARI ,INTBUF_TAB ,X ,A ,
48 2 ICODT ,FSAV ,V ,MS ,DT2T ,
49 3 NELTST ,ITYPTST ,ITAB ,STIFN ,FSKYI ,
50 4 ISKY ,FCONT ,NIN ,LINDMAX ,KINET ,
51 5 JTASK ,NB_JLT ,NB_JLT_NEW ,NB_STOK_N ,
52 6 NISKYFI ,NEWFRONT ,NSTRF ,SECFCUM ,ICONTACT ,
54 9 NS_IMP ,NE_IMP ,IND_IMP ,FSAVSUB ,NRTMDIM ,
56 B EMINX ,IXS ,IXS16 ,IXS20 ,FNCONT ,
57 C FTCONT ,IAD_ELEM ,FR_ELEM ,RCONTACT ,ACONTACT ,
58 D PCONTACT ,TEMP ,FTHE ,FTHESKYI,
59 E PM ,IPARG ,IAD17 ,MSKYI_SMS ,ISKYI_SMS,
60 F NODNX_SMS ,MS0 ,ELBUF_TAB ,NV46 ,FBSAV6 ,
61 G ISENSINT ,DIMFB ,H3D_DATA )
82#include "implicit_f.inc"
97#include "timeri_c.inc"
101 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
102 TYPE(TIMER_),
INTENT(INOUT) :: TIMERS
103 INTEGER NELTST,ITYPTST,NIN,NEWFRONT,NSTRF(*),
104 . NRTMDIM, IAD17,NV46, ISENSINT(*), DIMFB
105 INTEGER IPARI(NPARI,NINTER), ICODT(*),(*),
106 . ITAB(*), ISKY(*), KINET(*),
108 INTEGER NB_JLT,NB_JLT_NEW,NB_STOK_N,JTASK,
110 INTEGER NUM_IMP,NS_IMP(*),NE_IMP(*),IND_IMP(*)
111 INTEGER IXS(*) ,IXS16(*) ,IXS20(*)
112 INTEGER IAD_ELEM(2,*),FR_ELEM(*),
113 . ISKYI_SMS(*), NODNX_SMS(*)
117 . x(*), a(3,*), fsav(*), v(3,*),fsavbag(*),
118 . ms(*),stifn(*),fskyi(lskyi,4),fcont(3,*),ms0(*),
119 . secfcum(7,numnod,nsect),viscn(*), fsavsub(*),
120 . fncont(3,*), ftcont(3,*), rcontact(*), acontact(*),
122 . temp(*),fthe(*),ftheskyi(lskyi),pm(npropm,*),
125 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
128 TYPE(H3D_DATABASE) :: H3D_DATA
130 TYPE (GROUP_) ,
DIMENSION(NGRBRIC) :: IGRBRIC
134 INTEGER I, , JLT_NEW, JLT , NFT, IVIS2,
135 . IBC, NOINT, NSEG, ISECIN, IBAG, IADM,
136 . IGAP, INACTI, IFQ, MFROT, IGSTI, NISUB,
137 . NB_LOC, I_STOK_LOC,DEBUT,
138 . ILAGM, LENR, LENT, MAXCC,INTTH,I22GRSH3N,SFSAVPARIT,
140 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(),
141 . NSVG(MVSIZ), CB_LOC(MVSIZ),CE_LOC(MVSIZ),
142 . cand_b_n(mvsiz),cand_e_n(mvsiz),kini(mvsiz),
144 . isdsiz(nspmd+1),ircsiz(nspmd+1),itag(numnod),
145 . ieleci(mvsiz), nsms(mvsiz), iad, j, h
147 . startt, fric, gap, stopt,
149 . kmin, kmax, gapmax,rstif,fheat,tint,rhoh
152 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
153 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
154 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
155 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
156 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
157 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz),
158 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
159 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
160 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
161 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
162 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pene(mvsiz),
163 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
164 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz),
165 . tempi(mvsiz),phi(mvsiz),areasi(mvsiz)
167 . ,
DIMENSION(:,:),
ALLOCATABLE :: surf
169 . ,
DIMENSION(:),
ALLOCATABLE :: pres
173 INTEGER NRTMFT, NRTMLT, NMNFT, NMNLT, NRADM
175 . NNX1(MVSIZ), NNX2(MVSIZ), NNX3(MVSIZ), NNX4(MVSIZ),
176 . NNY1(MVSIZ), NNY2(MVSIZ), NNY3(MVSIZ), NNY4(MVSIZ),
177 . NNZ1(MVSIZ), NNZ2(MVSIZ), NNZ3(MVSIZ), NNZ4(MVSIZ),
178 . N_SCUT(1:3,NBCUT_MAX,MVSIZ),
179 . CoG(3,NBCUT_MAX,MVSIZ),
180 . (NBCUT_MAX,MVSIZ), Delta(4,NBCUT_MAX,MVSIZ)
182 my_real,
DIMENSION(:,:,:),
ALLOCATABLE,
TARGET :: FSAVPARIT
183 my_real,
POINTER :: pfsavparit
184 INTEGER :: NRTM, NSN, NTY
191 noint = ipari(15,nin)
192 inacti = ipari(22,nin)
194 nisub = ipari(36,nin)
196 intth = ipari(47,nin)
199 i22grsh3n = ipari(48,nin)
201 stiglo = -intbuf_tab%STFAC(1)
202 startt = intbuf_tab%VARIABLES(3)
203 stopt = intbuf_tab%VARIABLES(11)
204 fric = intbuf_tab%VARIABLES(1)
205 gap = intbuf_tab%VARIABLES(2)
206 gapmin = intbuf_tab%VARIABLES(13)
207 visc = intbuf_tab%VARIABLES(14)
208 viscf = intbuf_tab%VARIABLES(15)
209 gapmax = intbuf_tab%VARIABLES(16)
210 kmin = intbuf_tab%VARIABLES(17)
211 kmax = intbuf_tab%VARIABLES(18)
212 rstif = intbuf_tab%VARIABLES(20)
213 fheat = intbuf_tab%VARIABLES(21)
214 tint = intbuf_tab%VARIABLES(22)
215 i_stok = intbuf_tab%I_STOK(1)
228 nb_loc = i_stok / nthread
229 IF (jtask==nthread)
THEN
230 i_stok_loc = i_stok-nb_loc*(nthread-1)
234 debut = (jtask-1)*nb_loc
240 DO i = debut+1, debut+i_stok_loc
241 IF(intbuf_tab%CAND_N(i)/=0)
THEN
250 IF (debug(3)>=1)
THEN
251 nb_jlt = nb_jlt + i_stok_loc
252 nb_stok_n = nb_stok_n + i_stok
258 ALLOCATE(surf(3,nrtmdim))
259 ALLOCATE(pres(nrtmdim))
284 IF(isensint(i)/=0)
THEN
285 sfsavparit = sfsavparit + 1
288 IF (sfsavparit /= 0)
THEN
289 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
291 CALL ancmsg(msgid=19,anmode=aninfo,
292 . c1=
'(/INTER/TYPE22)')
298 fsavparit(h,i,j) = zero
303 ALLOCATE(fsavparit(0,0,0),stat=ierror)
305 CALL ancmsg(msgid=19,anmode=aninfo,
306 . c1=
'(/INTER/TYPE22)')
311 DO nft = 0 , i_stok - 1 , nvsiz
313 jlt =
min( nvsiz, i_stok - nft )
318! print *,
" NFT = ", nft
320! print *,
"================================================"
325 1 jlt ,x , intbuf_tab%IRECTM ,intbuf_tab%NSV ,cand_e_n ,
326 2 cand_b_n ,intbuf_tab%STFM , intbuf_tab%STFNS ,x1 ,x2 ,
327 3 x3 ,x4 , y1 ,y2 ,y3 ,
329 5 xi ,yi , zi ,stif ,ix1 ,
330 6 ix2 ,ix3 , ix4 ,nsvg ,igap ,
331 7 gap ,intbuf_tab%GAP_S , intbuf_tab%GAP_M ,gapv ,ms ,
333 a vzi ,msi , nsn ,v ,kinet ,
334 b kini ,nty , nin ,igsti ,kmin ,
335 c kmax ,gapmax , gapmin ,iadm ,index2(nft+1) ,
336 d intth ,temp , intbuf_tab%CAND_E(1) ,intbuf_tab%CAND_N(1) ,
337 e tempi ,phi , intbuf_tab%AREAS ,intbuf_tab%IELEC ,areasi ,
338 f ieleci ,nodnx_sms , nsms
342 1 jlt ,cand_b_n ,cand_e_n ,cb_loc ,ce_loc ,
343 2 x1 ,x2 ,x3 ,x4 ,y1 ,
344 3 y2 ,y3 ,y4 ,z1 ,z2 ,
346 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
347 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
351 a ix2 ,ix3 ,ix4 ,nsvg ,stif ,
352 b jlt_new ,gapv ,inacti ,intbuf_tab%CAND_P ,n_scut ,
353 c index2(nft+1) ,vxi ,vyi ,
354 d vzi ,msi ,kini ,surf ,ibag ,
355 e itab ,intbuf_tab%IRECTM ,intbuf_tab%I_STOK(1) ,ixs ,nft ,
356 f cog ,seff ,delta ,x)
365 IF (imonm > 0 .AND. jtask == 1)
CALL startime(timers,20)
368 IF (debug(3)>=1)nb_jlt_new = nb_jlt_new + jlt_new
369 IF (sfsavparit /= 0) pfsavparit => fsavparit(1,1,nft+
371 1 jlt ,a ,v ,ibc ,icodt ,
373 3 viscf ,noint ,intbuf_tab%STFNS ,itab ,cb_loc ,
374 4 stiglo ,stifn ,stif ,fskyi ,isky ,
375 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
376 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2
377 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
378 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
380 b ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
381 c ivis2 ,neltst ,ityptst ,dt2t ,intth ,
382 d gapv ,inacti ,intbuf_tab%CAND_P ,index2(nft+1) ,niskyfi ,
383 e kinet ,newfront ,isecin ,nstrf ,secfcum ,
385 g intbuf_tab%FRIC_P ,intbuf_tab%FTSAVX ,intbuf_tab%FTSAVY ,intbuf_tab%FTSAVZ ,
386 + intbuf_tab%XFILTR ,
387 h intbuf_tab%IFPEN ,ibag ,icontact ,
388 j viscn ,vxi ,vyi ,vzi ,msi ,
389 k kini ,nin ,nisub ,intbuf_tab%LISUB ,intbuf_tab%ADDSUBS ,
390 l intbuf_tab%ADDSUBM ,intbuf_tab%LISUBS ,intbuf_tab%LISUBM ,fsavsub ,
391 . intbuf_tab%CAND_N ,
392 m ipari(33,nin) ,ipari(39,nin) ,pres ,fncont ,ms0 ,
393 n n_scut ,surf ,cog ,cand_e_n ,seff ,
394 o elbuf_tab ,x1 ,x2 ,x3 ,x4 ,
395 3 y1 ,y2 ,y3 ,y4 ,z1 ,
396 4 z2 ,z3 ,z4 ,ixs ,nv46 ,
397 5 delta ,isensint ,pfsavparit ,iparg ,h3d_data )
399 IF (imonm > 0 .AND. jtask == 1)
CALL stoptime(timers,20)
403 IF (sfsavparit /= 0)
THEN
405 . fbsav6, 12, 6, dimfb, isensint )
407 IF (
ALLOCATED(fsavparit))
DEALLOCATE (fsavparit)
409 IF(inacti==7.AND.ibag/=0)
THEN
417 IF(jtask == 1)
DEALLOCATE(surf,pres)
424 IF(
ALLOCATED(surf))
DEALLOCATE(surf)
425 IF(
ALLOCATED(pres))
DEALLOCATE(pres)
subroutine i22for3(jlt, a, v, ibc, icodt, fsav, gap, fric, ms, visc, viscf, noint, stfn, itab, cb_loc, stiglo, stifn, stif, fskyi, isky, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, fcont, ix1, ix2, ix3, ix4, nsvg, ivis2, neltst, ityptst, dt2t, intth, gapv, inacti, cand_p, index, niskyfi, kinet, newfront, isecin, nstrf, secfcum, x, irect, ce_loc, mfrot, ifq, frot_p, cand_fx, cand_fy, cand_fz, alpha0, ifpen, ibag, icontact, viscn, vxi, vyi, vzi, msi, kini, nin, nisub, lisub, addsubs, addsubm, lisubs, lisubm, fsavsub, cand_n, ilagm, icurv, pres, fncont, ms0, n_scut, n_surf, cog, cand_e, swet, elbuf_tab, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, ixs, nv46, delta, isensint, fsavparit, iparg, h3d_data)
subroutine i22mainf(timers, ipari, intbuf_tab, x, a, icodt, fsav, v, ms, dt2t, neltst, ityptst, itab, stifn, fskyi, isky, fcont, nin, lindmax, kinet, jtask, nb_jlt, nb_jlt_new, nb_stok_n, niskyfi, newfront, nstrf, secfcum, icontact, viscn, num_imp, ns_imp, ne_imp, ind_imp, fsavsub, nrtmdim, fsavbag, igrbric, eminx, ixs, ixs16, ixs20, fncont, ftcont, iad_elem, fr_elem, rcontact, acontact, pcontact, temp, fthe, ftheskyi, pm, iparg, iad17, mskyi_sms, iskyi_sms, nodnx_sms, ms0, elbuf_tab, nv46, fbsav6, isensint, dimfb, h3d_data)