46 1 IPARI ,INTBUF_TAB ,X ,A ,
47 2 ICODT ,FSAV ,V ,MS ,ITAB ,
48 3 STIFN ,FSKYI ,ISKY ,FCONT ,NIN ,
49 4 LINDMAX ,JTASK ,NB_JLT ,NB_JLT_NEW,NB_STOK_N,
50 5 NSTRF ,SECFCUM ,ICONTACT ,VISCN ,NUM_IMP ,
51 6 NS_IMP ,NE_IMP ,IND_IMP ,NRTMDIM ,FNCONT ,
52 7 FTCONT ,RCONTACT ,ACONTACT ,PCONTACT,KINET ,
53 8 WEIGHT ,MSKYI_SMS,ISKYI_SMS,NODNX_SMS ,NODGLOB,
54 9 NPC ,TF , NISKYFI ,NEWFRONT ,MWAG ,
55 A FBSAV6 ,ISENSINT,DIMFB ,DT2T ,H3D_DATA)
66#include "implicit_f.inc"
81#include "timeri_c.inc"
86 TYPE(timer_),
INTENT(inout) :: TIMERS
87 INTEGER NELTST, ITYPTST, NIN, NSTRF(*), NRTMDIM, NEWFRONT,
89 INTEGER IPARI(NPARI,NINTER), ICODT(*),ICONTACT(*),
90 . ITAB(*), ISKY(*), KINET(*), ISKYI_SMS(*), NODNX_SMS(*),
91 . TAGMSR_I21_SMS, NODGLOB(*), NPC(*), MWAG(*)
92 INTEGER NB_JLT,NB_JLT_NEW,NB_STOK_N,JTASK,
94 INTEGER NUM_IMP,NS_IMP(*),NE_IMP(*),IND_IMP(*), WEIGHT(*)
97 . x(*), a(3,*), fsav(*), v(3,*),
98 . ms(*),stifn(*),fskyi(lskyi,4), fcont(3,*),
99 . secfcum(7,numnod,nsect), viscn(*),
100 . fncont(3,*), ftcont(3,*), rcontact
101 . pcontact(*), mskyi_sms(*),
103 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
105 TYPE(intbuf_struct_) INTBUF_TAB
110 INTEGER I, I_STOK, JLT_NEW, JLT , NFT, J,
111 . IBC, NOINT, NSEG, ISECIN, IBAG,
112 . IGAP, INACTI, IFQ, MFROT, IGSTI, NISUB,
113 . nb_loc, i_stok_loc,debut,
114 . intth,iform, ncand, ikthe, ifstf, h, ierror
115 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
116 . nsvg(mvsiz), cn_loc(mvsiz),ce_loc(mvsiz),
117 . cand_n_n(mvsiz), cand_e_n(mvsiz), kini(mvsiz),
119 . nsms(mvsiz), isensint(*)
122 . startt, fric, gap, stopt,
123 . visc,stiglo,gapmin,
124 . kmin, kmax, gapmax, kthe, xthe, tint, rhoh,
134 . lb(mvsiz), lc(mvsiz),
135 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
136 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
137 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
138 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
139 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
140 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
141 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
142 . nx(mvsiz), ny(mvsiz), nz(mvsiz), pene(mvsiz),
143 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz),
144 . mxi(mvsiz), myi(mvsiz), mzi(mvsiz),
stri(mvsiz),
145 . penrad(mvsiz), fxt(mvsiz), fyt(mvsiz), fzt(mvsiz)
147 . vxm(mvsiz), vym(mvsiz), vzm(mvsiz),
148 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
150 INTEGER ICURV, IP0, IP1, IP2, IS, SFSAVPARIT
151 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ITAGP
152 my_real,
DIMENSION(:,:,:),
ALLOCATABLE :: FSAVPARIT
163 IF(ipari(33,nin)==1)
RETURN
176 intth = ipari(47,nin)
177 scal_t= intbuf_tab%VARIABLES(33)
179 stiglo=-intbuf_tab%STFAC(1)
180 IF(ifstf/=0)stiglo = stiglo*finter(ifstf,tt/scal_t,npc,tf,deri)
182 startt=intbuf_tab%VARIABLES(3)
183 stopt =intbuf_tab%VARIABLES(11)
187 fric =intbuf_tab%VARIABLES(1)
188 gap =intbuf_tab%VARIABLES(2)
189 gapmin=intbuf_tab%VARIABLES(13)
190 visc =intbuf_tab%VARIABLES(14)
192 gapmax=intbuf_tab%VARIABLES(16)
193 kmin =intbuf_tab%VARIABLES(17)
194 kmax =intbuf_tab%VARIABLES(18)
204 i_stok = intbuf_tab%I_STOK(1)
233 nb_loc = i_stok / nthread
234 IF (jtask==nthread)
THEN
235 i_stok_loc = i_stok-nb_loc*(nthread-1)
239 debut = (jtask-1)*nb_loc
248 DO i = debut+1, debut+i_stok_loc
253 intbuf_tab%CAND_N(i) = -intbuf_tab%CAND_N(i)
255 intbuf_tab%CAND_P(i) = zero
256 intbuf_tab%FTSAVX(i) = zero
257 intbuf_tab%FTSAVY(i) = zero
258 intbuf_tab%FTSAVZ(i) = zero
259 intbuf_tab%IFPEN(i) = 0
264 IF (debug(3)>=1)
THEN
265 nb_jlt = nb_jlt + i_stok_loc
266 nb_stok_n = nb_stok_n + i_stok
271 IF(isensint(i)/=0)
THEN
272 sfsavparit = sfsavparit + 1
275 IF (sfsavparit /= 0)
THEN
276 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
278 CALL ancmsg(msgid=19,anmode=aninfo,
279 . c1=
'(/INTER/TYPE23)')
285 fsavparit(h,i,j) = zero
290 ALLOCATE(fsavparit(0,0,0),stat=ierror)
292 CALL ancmsg(msgid=19,anmode=aninfo,
293 . c1=
'(/INTER/TYPE23)')
298 DO nft = 0 , i_stok - 1 , nvsiz
299 jlt =
min( nvsiz, i_stok - nft )
302 1 jlt,index2(nft+1),intbuf_tab%CAND_E,intbuf_tab%CAND_N,
306 1 jlt ,nin ,x ,intbuf_tab%IRECTM,nsn ,
307 2 intbuf_tab%NSV,cand_e_n ,cand_n_n ,intbuf_tab%STFM,
309 3 intbuf_tab%MSR,ms ,v ,xi ,yi ,
310 4 zi ,ix1 ,ix2 ,ix3 ,ix4 ,
311 5 nsvg ,igsti ,stif ,kmin ,kmax ,
312 6 igap ,gap ,intbuf_tab%GAP_S,gapv ,gapmax ,
313 7 gapmin ,intbuf_tab%GAP_M,vxi ,vyi ,vzi
314 8 msi ,nodnx_sms,nsms ,kinet ,x1 ,
315 9 y1 ,z1 ,x2 ,y2 ,z2 ,
316 a x3 ,y3 ,z3 ,x4 ,y4 ,
317 b z4 ,nx1 ,nx2 ,nx3 ,nx4
318 c ny1 ,ny2 ,ny3 ,ny4 ,nz1 ,
319 d nz2 ,nz3 ,nz4 ,kini ,index2(nft+1))
324 1 jlt ,cand_n_n ,cand_e_n ,cn_loc ,ce_loc ,
325 2 x1 ,x2 ,x3 ,x4 ,y1 ,
326 3 y2 ,y3 ,y4 ,z1 ,z2 ,
327 4 z3 ,z4 ,xi ,yi ,zi ,
328 6 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
329 7 gapv ,inacti ,index2(nft+1),
330 8 vxm ,vym ,vzm ,h1 ,h2 ,
331 9 h3 ,h4 ,intbuf_tab%IRECTM,intbuf_tab%CAND_P,
332 a intbuf_tab%IFPEN,nx ,ny ,nz ,intbuf_tab%FTSAVX,
333 b intbuf_tab%FTSAVY,intbuf_tab%FTSAVZ,fxt ,fyt ,fzt,
334 c pene ,v ,vxi ,vyi ,vzi ,
335 d msi ,stif ,jlt_new,nsms ,kini )
337 IF (imonm > 0)
CALL startime(timers,20)
342 . nb_jlt_new = nb_jlt_new + jlt
345 1 jlt ,nin ,noint ,ibc ,icodt ,
346 2 fsav ,gap ,stiglo ,fric ,visc ,
347 3 inacti ,mfrot ,ifq ,ibag ,
348 4 ipari(39,nin),stif ,gapv ,itab ,a ,
350 6 niskyfi ,nsvg ,x1 ,y1 ,z1 ,
352 8 z3 ,x4 ,y4 ,z4 ,xi ,
353 9 yi ,zi ,vxi ,vyi ,vzi ,
354 a msi ,vxm ,vym ,vzm ,nx ,
355 b ny ,nz ,pene ,h1 ,h2 ,
356 c h3 ,h4 ,index2(nft+1),cand_n_n
357 f fxt ,fyt ,fzt ,dt2t ,
358 g fcont ,fncont ,ftcont ,stifn ,viscn ,
359 h newfront ,isecin ,nstrf ,secfcum ,fskyi ,
360 i isky ,intth ,ms ,ix1 ,ix2 ,
361 j ix3 ,ix4 ,intbuf_tab%FTSAVX,intbuf_tab%FTSAVY,intbuf_tab%FTSAVZ,
362 k kmin ,kmax ,cn_loc ,ce_loc ,mskyi_sms ,
363 l iskyi_sms ,nsms ,jtask ,isensint ,fsavparit ,
364 m nisub ,nft ,h3d_data )
367 IF (imonm > 0)
CALL stoptime(timers,20)
371 IF (sfsavparit /= 0)
THEN
373 . fbsav6, 12, 6, dimfb, isensint
375 IF(
ALLOCATED(fsavparit))
DEALLOCATE (fsavparit)
subroutine i23cor3(jlt, nin, x, irect, nsn, nsv, cand_e, cand_n, stf, stfn, msr, ms, v, xi, yi, zi, ix1, ix2, ix3, ix4, nsvg, igsti, stif, kmin, kmax, igap, gap, gap_s, gapv, gapmax, gapmin, gap_m, vxi, vyi, vzi, msi, nodnx_sms, nsms, kinet, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, kini, index)
subroutine i23for3(jlt, nin, noint, ibc, icodt, fsav, gap, stiglo, fric, visc, inacti, mfrot, ifq, ibag, icurv, stif, gapv, itab, a, cand_p, frot_p, alpha0, v, icontact, niskyfi, nsvg, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, xi, yi, zi, vxi, vyi, vzi, msi, vxm, vym, vzm, nx, ny, nz, pene, h1, h2, h3, h4, index, cand_n_n, weight, fxt, fyt, fzt, dt2t, fcont, fncont, ftcont, stifn, viscn, newfront, isecin, nstrf, secfcum, fskyi, isky, intth, ms, ix1, ix2, ix3, ix4, cand_fx, cand_fy, cand_fz, kmin, kmax, cn_loc, ce_loc, mskyi_sms, iskyi_sms, nsms, jtask, isensint, fsavparit, nisub, nft, h3d_data)
subroutine i23mainf(timers, ipari, intbuf_tab, x, a, icodt, fsav, v, ms, itab, stifn, fskyi, isky, fcont, nin, lindmax, jtask, nb_jlt, nb_jlt_new, nb_stok_n, nstrf, secfcum, icontact, viscn, num_imp, ns_imp, ne_imp, ind_imp, nrtmdim, fncont, ftcont, rcontact, acontact, pcontact, kinet, weight, mskyi_sms, iskyi_sms, nodnx_sms, nodglob, npc, tf, niskyfi, newfront, mwag, fbsav6, isensint, dimfb, dt2t, h3d_data)