48 1 IPARI ,INTBUF_TAB ,X ,A ,
49 2 ICODT ,FSAV ,V ,MS ,DT2T ,
50 3 NELTST ,ITYPTST ,ITAB ,STIFN ,FSKYI ,
51 4 ISKY ,FCONT ,NIN ,LINDMAX ,KINET ,
52 5 JTASK ,NB_JLT ,NB_JLT_NEW ,NB_STOK_N ,
53 6 NISKYFI ,NEWFRONT ,NSTRF ,SECFCUM ,ICONTACT ,
55 9 NS_IMP ,NE_IMP ,IND_IMP ,FSAVSUB ,NRTMDIM ,
57 B EMINX ,IXS ,IXS16 ,IXS20 ,FNCONT ,
58 C FTCONT ,IAD_ELEM ,FR_ELEM ,RCONTACT ,ACONTACT ,
59 D PCONTACT ,TEMP ,FTHE ,FTHESKYI,
60 E PM ,IPARG ,IAD17 ,MSKYI_SMS ,ISKYI_SMS,
61 F NODNX_SMS ,MS0 ,ELBUF_TAB ,NV46 ,FBSAV6 ,
62 G ISENSINT ,DIMFB ,H3D_DATA )
84#include "implicit_f.inc"
99#include "timeri_c.inc"
103 TYPE(output_),
INTENT(INOUT) :: OUTPUT
104 TYPE (ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
105 TYPE(TIMER_),
INTENT(INOUT) :: TIMERS
106 INTEGER NELTST,ITYPTST,NIN,NEWFRONT,NSTRF(*),
107 . NRTMDIM, IAD17,NV46, ISENSINT(*), DIMFB
108 INTEGER IPARI(NPARI,NINTER), ICODT(*),ICONTACT(*),
109 . ITAB(*), ISKY(*), KINET(*),
111 INTEGER ,NB_JLT_NEW,NB_STOK_N,JTASK,
113 INTEGER NUM_IMP,(*),NE_IMP(*),IND_IMP(*)
114 INTEGER IXS(*) ,IXS16(*) ,IXS20(*)
115 INTEGER IAD_ELEM(2,*),FR_ELEM(*),
116 . ISKYI_SMS(*), NODNX_SMS(*)
120 . x(*), a(3,*), fsav(*), v(3,*),fsavbag(*),
121 . ms(*),stifn(*),fskyi(lskyi,4),fcont(3,*),ms0
122 . secfcum(7,numnod,nsect),viscn(*), fsavsub
123 . fncont(3,*), ftcont(3,*), rcontact(*), acontact(*),
125 . temp(*),fthe(*),ftheskyi(lskyi),pm(npropm,*),
128 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
130 TYPE(intbuf_struct_) INTBUF_TAB
131 TYPE(H3D_DATABASE) :: H3D_DATA
133 TYPE (GROUP_) ,
DIMENSION(NGRBRIC) :: IGRBRIC
137 INTEGER I, I_STOK, JLT_NEW, JLT , NFT, IVIS2,
138 . IBC, NOINT, NSEG, ISECIN, IBAG, IADM,
139 . IGAP, INACTI, IFQ, MFROT, IGSTI, NISUB,
140 . NB_LOC, I_STOK_LOC,DEBUT,
141 . ILAGM, LENR, LENT, MAXCC,INTTH,I22GRSH3N,SFSAVPARIT,
143 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
144 . NSVG(MVSIZ), CB_LOC(MVSIZ),CE_LOC(MVSIZ),
145 . cand_b_n(mvsiz),cand_e_n(mvsiz),kini(mvsiz),
147 . isdsiz(nspmd+1),ircsiz(nspmd+1),itag(numnod),
148 . ieleci(mvsiz), nsms(mvsiz), iad, j, h
150 . startt, fric, gap, stopt,
151 . visc,viscf,stiglo,gapmin,
152 . kmin, kmax, gapmax,rstif,fheat,tint,rhoh
155 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
156 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz
157 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
158 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
159 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
160 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz),
161 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
162 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
163 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
164 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
165 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pene(mvsiz),
166 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
167 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz),
168 . tempi(mvsiz),phi(mvsiz),areasi(mvsiz)
170 . ,
DIMENSION(:,:),
ALLOCATABLE :: surf
172 . ,
DIMENSION(:),
ALLOCATABLE :: pres
176 INTEGER NRTMFT, NRTMLT, NMNFT, NMNLT, NRADM
178 . NNX1(), NNX2(MVSIZ), NNX3(MVSIZ), NNX4(MVSIZ),
179 . NNY1(MVSIZ), NNY2(MVSIZ), NNY3(MVSIZ), NNY4(MVSIZ)
182 . CoG(3,NBCUT_MAX,MVSIZ),
183 . Seff(NBCUT_MAX,MVSIZ), Delta(4,NBCUT_MAX,MVSIZ)
185 my_real,
DIMENSION(:,:,:),
ALLOCATABLE,
TARGET
187 INTEGER :: NRTM, NSN, NTY
194 noint = ipari(15,nin)
195 inacti = ipari(22,nin)
197 nisub = ipari(36,nin)
199 intth = ipari(47,nin)
202 i22grsh3n = ipari(48,nin)
204 stiglo = -intbuf_tab%STFAC(1)
205 startt = intbuf_tab%VARIABLES(3)
206 stopt = intbuf_tab%VARIABLES(11)
207 fric = intbuf_tab%VARIABLES(1)
209 gapmin = intbuf_tab%VARIABLES(13)
210 visc = intbuf_tab%VARIABLES(14)
211 viscf = intbuf_tab%VARIABLES
212 gapmax = intbuf_tab%VARIABLES(16)
213 kmin = intbuf_tab%VARIABLES(17)
214 kmax = intbuf_tab%VARIABLES(18)
215 rstif = intbuf_tab%VARIABLES(20)
216 fheat = intbuf_tab%VARIABLES(21)
217 tint = intbuf_tab%VARIABLES(22)
218 i_stok = intbuf_tab%I_STOK(1)
231 nb_loc = i_stok / nthread
232 IF (jtask==nthread)
THEN
233 i_stok_loc = i_stok-nb_loc*(nthread-1)
237 debut = (jtask-1)*nb_loc
243 DO i = debut+1, debut+i_stok_loc
244 IF(intbuf_tab%CAND_N(i)/=0)
THEN
253 IF (debug(3)>=1)
THEN
254 nb_jlt = nb_jlt + i_stok_loc
255 nb_stok_n = nb_stok_n + i_stok
261 ALLOCATE(surf(3,nrtmdim))
262 ALLOCATE(pres(nrtmdim))
287 IF(isensint(i)/=0)
THEN
288 sfsavparit = sfsavparit + 1
291 IF (sfsavparit /= 0)
THEN
292 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
294 CALL ancmsg(msgid=19,anmode=aninfo,
295 . c1=
'(/INTER/TYPE22)')
301 fsavparit(h,i,j) = zero
306 ALLOCATE(fsavparit(0,0,0),stat=ierror)
308 CALL ancmsg(msgid=19,anmode=aninfo,
309 . c1=
'(/INTER/TYPE22)')
314 DO nft = 0 , i_stok - 1 , nvsiz
316 jlt =
min( nvsiz, i_stok - nft )
323! print *,
"================================================"
329 2 cand_b_n ,intbuf_tab%STFM , intbuf_tab%STFNS ,x1 ,x2 ,
330 3 x3 ,x4 , y1 ,y2 ,y3 ,
331 4 y4 ,z1 , z2 ,z3 ,z4
332 5 xi ,yi , zi ,stif ,ix1 ,
336 a vzi ,msi , nsn ,v ,kinet ,
337 b kini ,nty , nin ,igsti ,kmin ,
338 c kmax ,gapmax , gapmin
339 d intth ,temp , intbuf_tab%CAND_E(1) ,intbuf_tab%CAND_N(1) ,
340 e tempi ,phi , intbuf_tab%AREAS ,intbuf_tab%IELEC ,areasi ,
341 f ieleci ,nodnx_sms , nsms ,intbuf_tab%GAP_SL ,intbuf_tab%GAP_ML,
342 g igrbric(isu1)%ENTITY,jtask)
345 1 jlt ,cand_b_n ,cand_e_n ,cb_loc ,ce_loc
348 4 z3 ,z4 ,xi ,yi ,zi ,
349 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
350 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
351 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
352 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
353 9 p1 ,p2 ,p3 ,p4 ,ix1 ,
354 a ix2 ,ix3 ,ix4 ,nsvg ,stif ,
355 b jlt_new ,gapv ,inacti ,intbuf_tab%CAND_P ,n_scut ,
357 d vzi ,msi ,kini ,surf ,ibag ,
358 e itab ,intbuf_tab%IRECTM ,intbuf_tab%I_STOK(1) ,ixs ,nft
359 f cog ,seff ,delta ,x)
368 IF (imonm > 0 .AND. jtask == 1)
CALL startime(timers,20)
371 IF (debug(3)>=1)nb_jlt_new = nb_jlt_new + jlt_new
372 IF (sfsavparit /= 0) pfsavparit => fsavparit(1,1,nft+1)
374 1 jlt ,a ,v ,ibc ,icodt ,
375 2 fsav ,gap ,fric ,ms ,visc ,
376 3 viscf ,noint ,intbuf_tab%STFNS ,itab ,cb_loc ,
377 4 stiglo ,stifn ,stif ,fskyi ,isky ,
379 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
380 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
381 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
382 9 p1 ,p2 ,p3 ,p4 ,fcont ,
383 b ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
384 c ivis2 ,neltst ,ityptst
385 d gapv ,inacti ,intbuf_tab%CAND_P ,index2(nft+1) ,niskyfi ,
386 e kinet ,newfront ,isecin ,nstrf ,secfcum
387 f x ,intbuf_tab%IRECTM ,ce_loc ,mfrot ,ifq ,
388 g intbuf_tab%FRIC_P ,intbuf_tab%FTSAVX ,intbuf_tab%FTSAVY ,intbuf_tab%FTSAVZ
389 + intbuf_tab%XFILTR ,
390 h intbuf_tab%IFPEN ,ibag ,icontact ,
391 j viscn ,vxi ,vyi ,vzi
392 k kini ,nin ,nisub ,intbuf_tab%LISUB ,intbuf_tab%ADDSUBS ,
393 l intbuf_tab%ADDSUBM ,intbuf_tab%LISUBS ,intbuf_tab%LISUBM ,fsavsub ,
394 . intbuf_tab%CAND_N ,
395 m ipari(33,nin) ,ipari(39,nin)
396 n n_scut ,surf ,cog ,cand_e_n ,seff
397 o elbuf_tab ,x1 ,x2 ,x3 ,x4 ,
398 3 y1 ,y2 ,y3 ,y4 ,z1 ,
399 4 z2 ,z3 ,z4 ,ixs ,nv46 ,
400 5 delta ,isensint ,pfsavparit ,iparg ,h3d_data )
402 IF (imonm > 0 .AND. jtask == 1)
CALL stoptime(timers,20)
406 IF (sfsavparit /= 0)
THEN
408 . fbsav6, 12, 6, dimfb, isensint )
410 IF (
ALLOCATED(fsavparit))
DEALLOCATE (fsavparit)
412 IF(inacti==7.AND.ibag/=0)
THEN
420 IF(jtask == 1)
DEALLOCATE(surf,pres)
427 IF(
ALLOCATED(surf))
DEALLOCATE(surf)
428 IF(
ALLOCATED(pres))
DEALLOCATE(pres)
subroutine i22for3(output, 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(output, 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)
subroutine i22wetsurf(jlt, cand_b, cand_e, cb_loc, ce_loc, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, ix1, ix2, ix3, ix4, nsvg, stif, jlt_new, gapv, inacti, cand_p, n_scut, index, vxi, vyi, vzi, msi, kini, surf, ibag, itab, irect, i_stok, ixs, nft, cog, seff, delta, x)