47 1 IPARI ,INTBUF_TAB ,X ,A ,
48 2 ICODT ,FSAV ,V ,MS ,ITAB ,
49 3 STIFN ,FSKYI ,ISKY ,FCONT ,NIN ,
50 4 LINDMAX ,JTASK ,NB_JLT ,NB_JLT_NEW,NB_STOK_N,
51 5 NSTRF ,SECFCUM ,ICONTACT ,VISCN ,NUM_IMP ,
52 6 NS_IMP ,NE_IMP ,IND_IMP ,NRTMDIM ,FNCONT ,
53 7 FTCONT ,RCONTACT ,ACONTACT ,PCONTACT,KINET ,
54 8 WEIGHT ,MSKYI_SMS,ISKYI_SMS,NODNX_SMS ,NODGLOB,
55 9 NPC ,TF , NISKYFI ,NEWFRONT ,MWAG ,
56 A FBSAV6 ,ISENSINT,DIMFB ,DT2T ,H3D_DATA)
68#include "implicit_f.inc"
83#include "timeri_c.inc"
88 type(output_),
intent(inout) :: output
89 TYPE(TIMER_),
INTENT(inout) :: TIMERS
90 INTEGER NIN, NSTRF(*), NRTMDIM, NEWFRONT,
92 INTEGER IPARI(NPARI,NINTER), ICODT(*),ICONTACT(*),
93 . ITAB(*), ISKY(*), KINET(*), ISKYI_SMS(*), NODNX_SMS(*),
94 . NODGLOB(*), NPC(*), MWAG(*)
95 INTEGER NB_JLT,NB_JLT_NEW
97INTEGER NUM_IMP,NS_IMP(*),NE_IMP(*),IND_IMP(*), WEIGHT(*)
100 . x(*), a(3,*), fsav(*), v(3,*),
101 . ms(*),stifn(*),fskyi(lskyi,4), fcont(3,*),
102 . secfcum(7,numnod,nsect), viscn(*),
103 . fncont(3,*), ftcont(3,*), rcontact(*), acontact(*),
104 . pcontact(*), mskyi_sms(*),
106 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
108 TYPE(intbuf_struct_) INTBUF_TAB
113 INTEGER I, I_STOK, JLT_NEW, JLT , NFT, J,
114 . IBC, NOINT, ISECIN, IBAG,
115 . IGAP, , IFQ, MFROT, IGSTI, NISUB,
116 . nb_loc, i_stok_loc,debut,
117 . intth, ifstf, h, ierror
118 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
119 . nsvg(mvsiz), cn_loc(mvsiz),ce_loc(mvsiz),
120 . cand_n_n(mvsiz), cand_e_n(mvsiz), kini(mvsiz),
122 . nsms(mvsiz), isensint(*)
125 . startt, fric, gap, stopt,
126 . visc,stiglo,gapmin,
127 . kmin, kmax, gapmax,
138 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
139 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
140 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
141 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
142 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
143 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
144 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
145 . nx(mvsiz), ny(mvsiz), nz(mvsiz), pene(mvsiz),
146 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz),
147 . fxt(mvsiz), fyt(mvsiz), fzt(mvsiz)
149 . vxm(mvsiz), vym(mvsiz), vzm(mvsiz),
150 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz)
151 INTEGER ICURV, SFSAVPARIT
153 my_real,
DIMENSION(:,:,:),
ALLOCATABLE :: FSAVPARIT
164 IF(ipari(33,nin)==1)
RETURN
177 intth = ipari(47,nin)
178 scal_t= intbuf_tab%VARIABLES(33)
180 stiglo=-intbuf_tab%STFAC(1)
181 IF(ifstf/=0)stiglo = stiglo*finter(ifstf,tt/scal_t,npc,tf,deri)
183 startt=intbuf_tab%VARIABLES(3)
184 stopt =intbuf_tab%VARIABLES(11)
188 fric =intbuf_tab%VARIABLES(1)
189 gap =intbuf_tab%VARIABLES(2)
190 gapmin=intbuf_tab%VARIABLES(13)
191 visc =intbuf_tab%VARIABLES(14)
193 gapmax=intbuf_tab%VARIABLES(16)
194 kmin =intbuf_tab%VARIABLES(17)
195 kmax =intbuf_tab%VARIABLES(18)
205 i_stok = intbuf_tab%I_STOK(1)
234 nb_loc = i_stok / nthread
235 IF (jtask==nthread)
THEN
236 i_stok_loc = i_stok-nb_loc*(nthread-1)
240 debut = (jtask-1)*nb_loc
249 DO i = debut+1, debut+i_stok_loc
250 IF(intbuf_tab%CAND_N(i)<0)
THEN
254 intbuf_tab%CAND_N(i) = -intbuf_tab%CAND_N(i)
256 intbuf_tab%CAND_P(i) = zero
257 intbuf_tab%FTSAVX(i) = zero
258 intbuf_tab%FTSAVY(i) = zero
259 intbuf_tab%FTSAVZ(i) = zero
260 intbuf_tab%IFPEN(i) = 0
265 IF (debug(3)>=1)
THEN
266 nb_jlt = nb_jlt + i_stok_loc
267 nb_stok_n = nb_stok_n + i_stok
272 IF(isensint(i)/=0)
THEN
273 sfsavparit = sfsavparit + 1
276 IF (sfsavparit /= 0)
THEN
277 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
279 CALL ancmsg(msgid=19,anmode=aninfo,
280 . c1=
'(/INTER/TYPE23)')
286 fsavparit(h,i,j) = zero
291 ALLOCATE(fsavparit(0,0,0),stat=ierror)
293 CALL ancmsg(msgid=19,anmode=aninfo,
294 . c1=
'(/INTER/TYPE23)')
299 DO nft = 0 , i_stok - 1 , nvsiz
300 jlt =
min( nvsiz, i_stok - nft )
303 1 jlt,index2(nft+1),intbuf_tab%CAND_E,intbuf_tab%CAND_N,
307 1 jlt ,nin ,x ,intbuf_tab%IRECTM,nsn ,
308 2 intbuf_tab%NSV,cand_e_n ,cand_n_n ,intbuf_tab%STFM,
310 3 intbuf_tab%MSR,ms ,v ,xi ,yi ,
311 4 zi ,ix1 ,ix2 ,ix3 ,ix4 ,
312 5 nsvg ,igsti ,stif ,kmin ,kmax ,
313 6 igap ,gap ,intbuf_tab%GAP_S,gapv ,gapmax ,
314 7 gapmin ,intbuf_tab%GAP_M,vxi ,vyi ,vzi,
315 8 msi ,nodnx_sms,nsms ,kinet ,x1 ,
316 9 y1 ,z1 ,x2 ,y2 ,z2 ,
317 a x3 ,y3 ,z3 ,x4 ,y4 ,
318 b z4 ,nx1 ,nx2 ,nx3 ,nx4 ,
319 c ny1 ,ny2 ,ny3 ,ny4 ,nz1 ,
320 d nz2 ,nz3 ,nz4 ,kini ,index2(nft+1))
325 1 jlt ,cand_n_n ,cand_e_n ,cn_loc ,ce_loc ,
326 2 x1 ,x2 ,x3 ,x4 ,y1 ,
327 3 y2 ,y3 ,y4 ,z1 ,z2 ,
328 4 z3 ,z4 ,xi ,yi ,zi ,
329 6 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
330 7 gapv ,inacti ,index2(nft+1),
331 8 vxm ,vym ,vzm ,h1 ,h2 ,
332 9 h3 ,h4 ,intbuf_tab%IRECTM,intbuf_tab%CAND_P,
333 a intbuf_tab%IFPEN,nx ,ny ,nz ,intbuf_tab%FTSAVX,
334 b intbuf_tab%FTSAVY,intbuf_tab%FTSAVZ,fxt ,fyt ,fzt,
335 c pene ,v ,vxi ,vyi ,vzi ,
336 d msi ,stif ,jlt_new,nsms ,kini )
338 IF (imonm > 0)
CALL startime(timers,20)
343 . nb_jlt_new = nb_jlt_new + jlt
346 1 jlt ,nin ,noint ,ibc ,icodt ,
347 2 fsav ,gap ,stiglo ,fric ,visc ,
348 3 inacti ,mfrot ,ifq ,ibag ,
349 4 ipari(39,nin),stif ,gapv ,itab ,a ,
350 5 intbuf_tab%CAND_P,intbuf_tab%FRIC_P,intbuf_tab%XFILTR,v ,icontact,
351 6 niskyfi ,nsvg ,x1 ,y1 ,z1 ,
352 7 x2 ,y2 ,z2 ,x3 ,y3 ,
353 8 z3 ,x4 ,y4 ,z4 ,xi ,
354 9 yi ,zi ,vxi ,vyi ,vzi ,
355 a msi ,vxm ,vym ,vzm ,nx ,
356 b ny ,nz ,pene ,h1 ,h2 ,
357 c h3 ,h4 ,index2(nft+1),cand_n_n ,weight ,
358 f fxt ,fyt ,fzt ,dt2t ,
359 g fcont ,fncont ,ftcont ,stifn ,viscn ,
361 i isky ,intth ,ms ,ix1 ,ix2 ,
362 j ix3 ,ix4 ,intbuf_tab%FTSAVX,intbuf_tab%FTSAVY,intbuf_tab%FTSAVZ,
363 k kmin ,kmax ,cn_loc ,ce_loc ,mskyi_sms ,
364 l iskyi_sms ,nsms ,jtask ,isensint ,fsavparit ,
365 m nisub ,nft ,h3d_data )
368 IF (imonm > 0)
CALL stoptime(timers,20)
372 IF (sfsavparit /= 0)
THEN
374 . fbsav6, 12, 6, dimfb
376 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(output, 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(output, 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)