84
85
86
87
88 USE timer_mod
89 USE intbufdef_mod
92 USE intbuf_fric_mod
96 USE interfaces_mod
97
98
99
100#include "implicit_f.inc"
101#include "comlock.inc"
102
103
104
105#include "mvsiz_p.inc"
106
107
108
109#include "assert.inc"
110#include "com01_c.inc"
111#include "com04_c.inc"
112#include "com08_c.inc"
113#include "param_c.inc"
114#include "warn_c.inc"
115#include "task_c.inc"
116#include "parit_c.inc"
117#include "timeri_c.inc"
118#include "macro.inc"
119
120
121
122 TYPE(TIMER_) :: TIMERS
123 INTEGER NELTST,ITYPTST,NIN,NEWFRONT,
124 . NSTRF(*),
125 . NRTMDIM, IAD17, IPARSENS
126 INTEGER IPARI(NPARI,NINTER), ICODT(*),ICONTACT(*),
127 . ITAB(*), ISKY(*), KINET(*),
128 . IPARG(NPARG,*),INOD_PXFEM(*),TAGNCONT(NLOADP_HYD_INTER,)
129 INTEGER NB_IMPCT,JTASK,
130 . NISKYFI, LINDMAX, NISKYFIE
131 INTEGER NUM_IMP,NS_IMP(*),NE_IMP(*),IND_IMP(*)
132 INTEGER IXS(*) ,IXS16(*) ,IXS20(*)
133 INTEGER IAD_ELEM(2,*),FR_ELEM(*), NPC(*),
134 . ISKYI_SMS(*), NODNX_SMS(*), ISENSINT(*),DIMFB
135 INTEGER , INTENT(IN) :: S_LOADPINTER
136 INTEGER , INTENT(IN) :: KLOADPINTER(NINTER+1),LOADPINTER(S_LOADPINTER),
137 . LOADP_HYD_INTER(NLOADP_HYD)
138 INTEGER , INTENT(IN) :: NODADT_THERM
139 INTEGER , INTENT(IN) :: INTEREFRIC
140 my_real ,
INTENT(IN) :: theaccfact
141 my_real ,
INTENT(IN) :: dgaploadint(s_loadpinter)
143 . eminx(*)
144
146 . x(*), a(3,*), fsav(*), v(3,*),fsavbag(*),
147 . ms(*),stifn(*),fskyi(lskyi,4),fcont(3,*),ms0(*),
148 . secfcum(7,numnod,nsect),viscn(*), fsavsub(*),
149 . fncont(3,*), ftcont(3,*), rcontact(*), acontact(*),
150 . pcontact(*),
151 . temp(*),fthe(*),ftheskyi(lskyi),pm(npropm,*),
152 . mskyi_sms(*),ms_ply(*),wagap(*),
153 . apinch(3,*),stifpinch(*),qfricint(*),tf(*),condn(*),
154 . condnskyi(lskyi)
155 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
156 TYPE(INTBUF_STRUCT_) INTBUF_TAB
157 TYPE(H3D_DATABASE) :: H3D_DATA
158 TYPE(INTBUF_FRIC_STRUCT_), TARGET, DIMENSION(NINTERFRIC) :: INTBUF_FRIC_TAB
159 TYPE (INTERFACES_) ,INTENT(IN):: INTERFACES
160
161
162
163 INTEGER JD(50),KD(50), JFI, KFI, IEDGE, ISHARP, NEDGE,
164 . I, J, L, H, I_STOK, , JLT , NFT, IVIS2,
165 . IBC, NOINT, NSEG, ISECIN, IBAG, IADM,
166 . IGAP, INACTI, , MFROT, IGSTI, NISUB, IGAP0,
167 . NB_LOC, I_STOK_LOC,DEBUT,
168 . ILAGM, LENR, INTTH,IFORM,INTPLY
169
170
171
172INTEGER LENT, MAXCC
173 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
174 . NSVG(MVSIZ), CN_LOC(MVSIZ),CE_LOC(MVSIZ),
175 . CAND_N_N(MVSIZ),CAND_E_N(MVSIZ),
176 . KINI(MVSIZ),
177 . ISDSIZ(NSPMD+1),IRCSIZ(NSPMD+1),
178 . IELESI(MVSIZ), NSMS(MVSIZ), SUBTRIA(MVSIZ),
179 . NSNFT, NSNLT, , NSNRLT, INTFRIC,NSETPRTS ,NPARTFRIC,
180 . IPARTFRICSI(MVSIZ), IPARTFRICMI(MVSIZ), IFADHI(MVSIZ),
181 . MVOISN(MVSIZ,4),IBOUND(4,MVSIZ),INDEXISOT(MVSIZ),INDEXORTH(MVSIZ),
182 . IREP_FRICMI(MVSIZ),IPARTFRIC_ES(4*MVSIZ),IPARTFRIC_EM(4*MVSIZ),
183 . IELEMI(MVSIZ)
184 INTEGER :: EDGE_ID(2,4*MVSIZ)
185 INTEGER
186 . NE1(MVSIZ), NE2(MVSIZ), ME1(MVSIZ), (MVSIZ),
187 . CS_LOC(MVSIZ), CM_LOC(MVSIZ),
188 . NS1(4*MVSIZ), NS2(4*MVSIZ), M1(4*MVSIZ), M2(4*MVSIZ), INDX1(4*MVSIZ), INDX2(4*MVSIZ),
189 . NSMSE(4*MVSIZ), CS_LOC4(4*MVSIZ), CM_LOC4(4*MVSIZ),
190 . TYPEDGS(MVSIZ),
191 . IAM(MVSIZ),JAM(MVSIZ),IBM(MVSIZ),JBM(),
192 . IAS(MVSIZ),JAS(MVSIZ),IBS(MVSIZ),JBS(MVSIZ)
193
194 INTEGER, ALLOCATABLE, DIMENSION(:) :: INDEX2
195
197 . startt, fric, gap, stopt, pmax_gap,
198 . visc,viscf,stiglo,gapmin,
199 . kmin, kmax, gapmax,kthe,tint,rhoh,eps,
200 . viscfluid, sigmaxadh, viscadhfact,
201 . fheats,fheatm,xthe,frad,drad,dcond
202
203 integer :: eidm,eids
204
205
206
208 . xx(mvsiz,5), yy(mvsiz,5), zz(mvsiz,5),
209 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz
210 . nnx(mvsiz,5), nny(mvsiz,5), nnz(mvsiz,
211 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz), vx4(mvsiz),
212 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz),
213 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz
214 . vxi(mvsiz), vyi(mvsiz), vzi(mvsiz),
215 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pene
216 . h1(mvsiz), h2(mvsiz), h3(mvsiz
217 . msi(mvsiz),
218 . nm1(mvsiz), nm2(mvsiz), nm3(mvsiz),
219 . tempi(mvsiz),phi(mvsiz),areasi(mvsiz),
220 . lb(mvsiz), lc(mvsiz),
221 . gap_nm(4,mvsiz), gaps(mvsiz), gapmxl(mvsiz),
222 . gapv(mvsiz), base_adh(mvsiz),
223 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
224 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
225 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
226 . fxi(mvsiz), fyi(mvsiz), fzi(mvsiz), fni(mvsiz),
227 . fx1(mvsiz), fx2
228 . fy1(mvsiz), fy2(mvsiz), fy3(mvsiz), fy4
229 . fz1(mvsiz), fz2(mvsiz), fz3(mvsiz), fz4(mvsiz),
230 . phi1(mvsiz), phi2(mvsiz),phi3(mvsiz),phi4(mvsiz) ,
231 . condint(mvsiz) ,efrict(mvsiz)
233 . gapve(4*mvsiz), stife(4*mvsiz), nx(4*mvsiz), ny(4*mvsiz), nz(4*mvsiz),
234 . hs1(4*mvsiz), hs2(4*mvsiz), hm1(4*mvsiz), hm2(4*mvsiz),
235 . xxs1(4*mvsiz), xxs2
236 . xzs1(4*mvsiz), xzs2(4*mvsiz), xxm1(4*mvsiz), xxm2(4*mvsiz),
237 . xym1(4*mvsiz), xym2(4*mvsiz), xzm1(4*mvsiz), xzm2
238 . vxs1(4*mvsiz), vxs2(4*mvsiz), vys1(4*mvsiz), vys2(4*mvsiz),
239 . vzs1(4*mvsiz), vzs2(4*mvsiz), vxm1(4*mvsiz), vxm2(4*mvsiz),
240 . vym1(4*mvsiz), vym2(4*mvsiz), vzm1(4*mvsiz), vzm2(4*mvsiz),
241 . ms1(4*mvsiz), ms2(4*mvsiz
242 . ex(4*mvsiz), ey(4*mvsiz), ez(4*mvsiz), fx(mvsiz), fy(mvsiz),
243 . fz(mvsiz) , dist(mvsiz),
244 . normaln1(3,mvsiz) ,normaln2(3,mvsiz) ,normalm1(3,4,mvsiz),normalm2(3,4,mvsiz)
245
247 . , DIMENSION(:,:,:), ALLOCATABLE :: fsavparit
249 . rcurvi(mvsiz), anglmi(mvsiz), anglt, padm,penmin,marge
250 INTEGER NRTMFT, NRTMLT, NMNFT, NMNLT, NRADM, IS, IM, ISTIF_MSDT,IKNON(MVSIZ)
251 INTEGER ICURV,ILEV,NREBOU,NPT ,NRTSE,IEDG4,SFSAVPARIT,NCY_PFIT,NINLOADP
253 . xfiltr_fric,fric_coefs(mvsiz,10),viscffric(mvsiz),fricc(mvsiz),
254 . fric_coefs2(mvsiz,10),viscffric2(mvsiz),fricc2
255 . dir1(mvsiz,3),dir2(mvsiz,3),dir_fricmi(mvsiz,2),fricc_e(4*mvsiz),
256 . viscffric_e(4*mvsiz),tncy,t_pfit,finc,dgaploadpmax,dtstif
257
258 INTEGER, DIMENSION(:) ,POINTER :: TABCOUPLEPARTS_FRIC
259 INTEGER, DIMENSION(:) ,POINTER :: TABPARTS_FRIC
260 INTEGER, DIMENSION(:) ,POINTER :: ADPARTS_FRIC
261 INTEGER, DIMENSION(:) ,POINTER :: IFRICORTH
262 my_real,
DIMENSION(:) ,
POINTER :: tabcoef_fric
263
264 INTEGER,TARGET, DIMENSION(1):: TABCOUPLEPARTS_FRIC_BID
265 INTEGER,TARGET, DIMENSION(1):: TABPARTS_FRIC_BID
266 INTEGER,TARGET, DIMENSION(1):: ADPARTS_FRIC_BID
267 INTEGER,TARGET, DIMENSION(1):: IFRICORTH_BID
268 my_real,
TARGET,
DIMENSION(1):: tabcoef_fric_bid
269
270 INTEGER :: NEDGE_REM,NRTM,NSN,NTY
271 LOGICAL :: SET_IPARI40_TO_ZERO
272
273
274 nrtm =ipari(4,nin)
275 nsn =ipari(5,nin)
276 nsnr =ipari(24,nin)
277 nty =ipari(7,nin)
278 ibc =ipari(11,nin)
279 ivis2 =ipari(14,nin)
280 IF(ipari(33,nin)==1) RETURN
281 noint =ipari(15,nin)
282 igap =ipari(21,nin)
283 inacti=ipari(22,nin)
284 isecin=ipari(28,nin)
285 mfrot =ipari(30,nin)
286 ifq
287 ibag =ipari(32,nin)
288 igsti=ipari(34,nin)
289 nisub =ipari(36,nin)
290 icurv =ipari(39,nin)
291 igap0 =ipari(53,nin)
292 iedge =ipari(58,nin)
293 nadmsr=ipari(67,nin)
294 isharp=ipari(84,nin)
295 nedge =ipari(68,nin)
296 nedge_rem = ipari(69,nin)
297
298
299 iadm =ipari(44,nin)
300 nradm=ipari(49,nin)
301 padm =intbuf_tab%VARIABLES(24)
302 anglt=intbuf_tab%VARIABLES(25)
303 marge=intbuf_tab%VARIABLES(25)
304
305 intth = ipari(47,nin)
306 ikthe = ipari(92,nin)
307 iform = ipari(48,nin)
308 intply = ipari(66,nin)
309
310 stiglo=-intbuf_tab%STFAC(1)
311 startt=intbuf_tab%VARIABLES(3)
312 stopt =intbuf_tab%VARIABLES(11)
313 IF(startt>tt) RETURN
314 IF(tt>stopt) RETURN
315
316 fric =intbuf_tab%VARIABLES(1)
317 gap =intbuf_tab%VARIABLES(2)
318 gapmin=intbuf_tab%VARIABLES(13)
319 visc =intbuf_tab%VARIABLES(14)
320
321 t_pfit = intbuf_tab%VARIABLES(15)
322 viscf = zero
323
324 gapmax=intbuf_tab%VARIABLES(16)
325 kmin =intbuf_tab%VARIABLES(17)
326 kmax =intbuf_tab%VARIABLES(18)
327
328 kthe = intbuf_tab%VARIABLES(20)
329 fheats = intbuf_tab%VARIABLES(21)
330 tint = intbuf_tab%VARIABLES(22)
331 fheatm = intbuf_tab%VARIABLES(41)
332 xthe =intbuf_tab%VARIABLES(33)
333 frad = intbuf_tab%VARIABLES(31)
334 drad = intbuf_tab%VARIABLES(32)
335 fcond = ipari(93,nin)
336 dcond = intbuf_tab%VARIABLES(34)
337 ifric = 0
338 IF(intth > 0) ifric =ipari(50,nin)
339
340 penmin = intbuf_tab%VARIABLES(38)
341 eps = intbuf_tab%VARIABLES(39)
342
343 viscfluid = intbuf_tab%VARIABLES(42)
344 sigmaxadh = intbuf_tab%VARIABLES(43)
345 viscadhfact = intbuf_tab%VARIABLES(44)
346
347 pmax_gap = zero
348
349 istif_msdt =ipari(97,nin)
350 dtstif = intbuf_tab%VARIABLES(48)
351
352 ilev = ipari(20,nin)
353 nrtse = ipari(52,nin)
354
355 intcarea = ipari(99,nin)
356
357 ALLOCATE(index2(lindmax))
358
359 intfric=ipari(72,nin)
360 iorthfric = 0
361 nsetprts = 0
362 xfiltr_fric = zero
363 npartfric = 0
364 IF(intfric /= 0) THEN
365 tabcoupleparts_fric => intbuf_fric_tab(intfric)%TABCOUPLEPARTS_FRIC
366 tabcoef_fric => intbuf_fric_tab(intfric)%TABCOEF_FRIC
367 tabparts_fric => intbuf_fric_tab(intfric)%TABPARTS_FRIC
368 adparts_fric => intbuf_fric_tab(intfric)%ADPARTS_FRIC
369 xfiltr_fric = intbuf_fric_tab(intfric)%XFILTR_FRIC
370 nsetprts = intbuf_fric_tab(intfric)%NSETPRTS
371 npartfric = intbuf_fric_tab(intfric)%S_TABPARTS_FRIC
372 iorthfric = intbuf_fric_tab(intfric)%IORTHFRIC
373 ifricorth => intbuf_fric_tab(intfric)%IFRICORTH
374
375
376 ELSE
377 tabcoupleparts_fric => tabcoupleparts_fric_bid
378 tabparts_fric => tabparts_fric_bid
379 tabcoef_fric => tabcoef_fric_bid
380 adparts_fric => adparts_fric_bid
381 ifricorth => ifricorth_bid
382 IF (ifq/=0) xfiltr_fric = intbuf_tab%XFILTR(1)
383 ENDIF
384 efrict = zero
385
386 ninloadp = ipari(95,nin)
387 dgaploadpmax = intbuf_tab%VARIABLES(46)
388
389
390
391
392
393
394 set_ipari40_to_zero = .false.
395 IF (startt>zero.AND.t_pfit==zero) THEN
396 t_pfit=10000*dt12
397 intbuf_tab%VARIABLES(15) = t_pfit
398 END IF
399 IF (t_pfit > zero) THEN
400 IF (tt <= (startt+t_pfit) ) THEN
401 tncy = (tt+em05-startt)/t_pfit
402 ELSE
403 set_ipari40_to_zero = .true.
404 END IF
405 ELSE
406 ncy_pfit = ipari(40,nin)
407 IF (ncy_pfit >0 .AND. ncycle> ncy_pfit) THEN
408 set_ipari40_to_zero = .true.
409 ELSEIF (ncy_pfit>0) THEN
410 finc = one/ipari(40,nin)
411 tncy = (ncycle+1)*finc
412 END IF
413 END IF
414
415
416
417 nsnft= 1+(jtask-1)*nsn/ nthread
418 nsnlt= jtask*nsn/nthread
419
420 nsnrft= 1+(jtask-1)*nsnr/ nthread
421 nsnrlt= jtask*nsnr/nthread
422
423 IF(ivis2/=-1) THEN
424
425 DO n=nsnft, nsnlt
426 IF(intbuf_tab%IRTLM(4*(n-1)+1) > 0 .AND. (intbuf_tab%TIME_S(2*(n-1)+1) == ep20 .OR.
427 . THEN
428
429 intbuf_tab%IRTLM(4*(n-1)+1)=0
430 intbuf_tab%IRTLM(4*(n-1)+2)=0
431 intbuf_tab%IRTLM(4*(n-1)+3)=0
432 intbuf_tab%IRTLM(4*(n
433
434 intbuf_tab%SECND_FR(6*(n-1)+1:6*n) = zero
435 intbuf_tab%STIF_OLD(2*(n-1)+1:2*n)= zero
436 intbuf_tab%PENE_OLD(5*(n-1)+1:5*n)= zero
437
438 END IF
439 END DO
440
441 DO n=nsnrft, nsnrlt
442
443
446
447
452
456
457 END IF
458 END DO
459 ELSE
460 DO n=nsnft, nsnlt
461
462
463 IF(intbuf_tab%IRTLM(4*(n-1)+1) > 0 .AND. (intbuf_tab%TIME_S(2*(n-1)+1) == ep20 .OR.
464 . (intbuf_tab%IRTLM(4*(n-1)+2) < 0.AND.mod(-intbuf_tab%IRTLM(4*(n-1)+2),5)==0)) )THEN
465
466
467 intbuf_tab%IRTLM(4*(n-1)+1)=0
468 intbuf_tab%IRTLM(4*(n-1)+2)=0
469 intbuf_tab%IRTLM(4*(n-1)+3)=0
470 intbuf_tab%IRTLM(4*(n-1)+4)=0
471
472 intbuf_tab%SECND_FR(6*(n-1)+1:6*n) = zero
473 intbuf_tab%STIF_OLD(2*(n-1)+1:2*n)= zero
474 intbuf_tab%PENE_OLD(5*(n-1)+1:5*n)= zero
475
476 intbuf_tab%IF_ADH(n) = 0
477 END IF
478 END DO
479
480 DO n=nsnrft, nsnrlt
481
482
485
486
491
495
497 END IF
498 END DO
499 ENDIF
500
501
503 IF (inacti/=-1 .OR. set_ipari40_to_zero) THEN
504
505 ipari(40,nin) = 0
506
507 ENDIF
508
509
510
511
512 i_stok_glo = intbuf_tab%I_STOK(2)
513
514 nb_loc = i_stok_glo / nthread
515 IF (jtask==nthread) THEN
516 i_stok_loc = i_stok_glo-nb_loc*(nthread-1)
517 ELSE
518 i_stok_loc = nb_loc
519 ENDIF
520 debut = (jtask-1)*nb_loc
521
522 i_stok=0
523 DO i = debut+1, debut+i_stok_loc
524 IF(intbuf_tab%CAND_OPT_N(i)>0) THEN
525 i_stok = i_stok + 1
526 index2(i_stok) = i
527 ENDIF
528 END DO
529
530
532 1 i_stok ,index2 ,intbuf_tab%CAND_OPT_N,intbuf_tab%CAND_OPT_E,nin ,
533 2 nsn ,nsnr ,inacti ,intbuf_tab%MSEGLO ,intbuf_tab%IRTLM ,
534 3 intbuf_tab%PENM ,intbuf_tab%PENE_OLD ,jtask ,itab,
535 4 intbuf_tab%NSV ,intbuf_tab%SECND_FR,intbuf_tab%TIME_S,
536 . intbuf_tab%STIF_OLD)
537
539
540
541
542
543
544 i_stok_glo = intbuf_tab%I_STOK(2)
545
546 nb_loc = i_stok_glo / nthread
547 IF (jtask==nthread) THEN
548 i_stok_loc = i_stok_glo-nb_loc*(nthread-1)
549 ELSE
550 i_stok_loc = nb_loc
551 ENDIF
552 debut = (jtask-1)*nb_loc
553
554 i_stok = 0
555
556
557
558 DO i = jtask, i_stok_glo, nthread
559 IF(intbuf_tab%CAND_OPT_N(i)>0) THEN
560 i_stok = i_stok + 1
561 index2(i_stok) = i
562 ENDIF
563 ENDDO
564
565 sfsavparit = 0
566 DO i=1,nisub+1
567 IF(isensint(i)/=0) THEN
568 sfsavparit = sfsavparit + 1
569 ENDIF
570 ENDDO
571 IF (sfsavparit /= 0) THEN
572 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
573 IF(ierror/=0) THEN
574 CALL ancmsg(msgid=19,anmode=aninfo,
575 . c1='(/INTER/TYPE25)')
577 ENDIF
578 fsavparit(1:nisub+1,1:11,1:i_stok) = zero
579 ELSE
580 ALLOCATE(fsavparit(0,0,0),stat=ierror)
581 IF(ierror/=0) THEN
582 CALL ancmsg(msgid=19,anmode=aninfo,
583 . c1='(/INTER/TYPE25)')
585 ENDIF
586 ENDIF
587
588
589
590 DO nft = 0 , i_stok - 1 , nvsiz
591 jlt =
min( nvsiz, i_stok - nft )
592
594 1 jlt,index2(nft+1),intbuf_tab%CAND_OPT_E,intbuf_tab%CAND_OPT_N,
595 2 cand_e_n,cand_n_n )
596
597
599 1 jlt ,x ,intbuf_tab%IRECTM,intbuf_tab%NSV ,cand_e_n ,
600 2 cand_n_n ,intbuf_tab%STFM ,intbuf_tab%STFNS,stif
601 . intbuf_tab%EDGE_BISECTOR,
602 3 igsti ,kmin ,kmax ,ms ,msi ,
603 3 xi ,yi ,zi ,vxi ,vyi ,
604 4 vzi ,ix1 ,ix2 ,ix3 ,ix4 ,
605 5 nsvg ,nsn ,v ,kinet ,kini ,
606 6 nin ,intbuf_tab%ADMSR ,intbuf_tab%IRTLM,subtria ,
607 7 xx ,yy ,zz ,intbuf_tab%LBOUND,ibound ,
608 8 nnx ,nny ,nnz ,
609 9 vx1 ,vx2 ,vx3 ,vx4 ,
610 a vy1 ,vy2 ,vy3 ,vy4 ,
611 b vz1 ,vz2 ,vz3 ,vz4 ,
612 c nodnx_sms ,nsms ,index2(nft+1),intbuf_tab%PENM,intbuf_tab%LBM,
613 d intbuf_tab%LCM,pene ,lb , lc ,
614 e intbuf_tab%GAP_NM ,gap_nm ,intbuf_tab%GAP_S,gaps,igap ,
615 f intbuf_tab%GAP_SL,intbuf_tab%GAP_ML,gapmxl,intfric,intbuf_tab%IPARTFRICS,
616 g ipartfricsi,intbuf_tab%IPARTFRICM,ipartfricmi,intbuf_tab%AREAS,areasi,
617 h ivis2 ,intbuf_tab%MVOISIN,mvoisn,iorthfric,intbuf_tab%IREP_FRICM,
618 i intbuf_tab%DIR_FRICM ,irep_fricmi ,dir_fricmi ,x1 ,y1 ,
619 j z1 ,x2 ,y2 ,z2 ,x3 ,
620 k y3 ,z3 ,x4 ,y4 ,z4 ,
621 l intth ,temp ,tempi ,intbuf_tab%IELES ,ielesi ,
622 m intbuf_tab%IELEM,ielemi,istif_msdt,dtstif ,intbuf_tab%STIFMSDT_S,
623 n intbuf_tab%STIFMSDT_M,nrtm ,interfaces%PARAMETERS)
624 iknon(1:jlt) = 0
626 1 jlt ,intbuf_tab%STFM ,intbuf_tab%STFNS,stif ,nsn ,
627 2 cand_e_n ,cand_n_n,nin ,igsti ,kmin ,
628 3 kmax ,inacti ,ipari(40,nin),tncy ,iknon )
629
630 jlt_new = 0
631
633 1 jlt ,cand_n_n ,cand_e_n ,cn_loc ,ce_loc ,
634 2 intbuf_tab%IRTLM,xx ,yy ,zz ,gap_nm ,
635 3 xi ,yi ,zi ,gaps ,gapmxl ,
636 4 isharp ,nnx ,nny ,nnz ,
637 5 n1 ,n2 ,n3 ,h1 ,h2 ,
638 5 h3 ,h4 ,nin ,nsn ,ix1 ,
639 6 ix2 ,ix3 ,ix4 ,nsvg ,stif ,
640 7 inacti ,kini ,itab ,lb ,lc ,
641 8 penmin ,eps ,pene ,intbuf_tab%PENE_OLD,subtria,
642 9 gapv ,ivis2 ,intbuf_tab%IF_ADH,ifadhi ,base_adh ,
643 a mvoisn ,ibound ,intbuf_tab%VTX_BISECTOR ,dist, tt)
644
645 DO i = 1 ,jlt
646
647
648
649 IF(stif(i)>zero)THEN
650 IF(pene(i)==zero)THEN
651 n = cand_n_n(i)
652 IF(n <= nsn)THEN
653 intbuf_tab%STIF_OLD(2*(n-1)+1)=
max(intbuf_tab%STIF_OLD(2*(n-1)+1),stif(i))
654 ELSE
656 END IF
657 ELSE
658 jlt_new = jlt_new + 1
659 END IF
660 END IF
661 ENDDO
662
663 IF(intth==0.AND.jlt_new == 0.AND.(ninloadp == 0.OR.dgaploadpmax==zero))cycle
664 ipari(29,nin) = 1
665
666 IF (debug(3)>=1) nb_impct = nb_impct + jlt_new
667 IF (imonm > 0 .AND. jtask == 1)
CALL startime(timers,20)
668
669
670
671
672 IF(jtask==1)
CALL startime(timers,macro_timer_fric)
673 jj = 0
674 IF(iorthfric > 0) THEN
676 1 intfric ,jlt ,ipartfricsi ,ipartfricmi ,adparts_fric ,
677 2 nsetprts ,tabcoupleparts_fric,npartfric,tabparts_fric,tabcoef_fric ,
678 3 fric ,viscf ,intbuf_tab%FRIC_P,fric_coefs , fricc ,
679 4 viscffric ,nty ,mfrot ,iorthfric , fric_coefs2,
680 5 fricc2 ,viscffric2 ,ifricorth ,nforth , nfisot ,
681 6 indexorth ,indexisot ,jj ,irep_fricmi ,dir_fricmi ,
682 7 ix3 ,ix4 ,x1 ,y1 , z1 ,
683 8 x2 ,y2 ,z2 ,x3 ,
684 9 z3 ,x4 ,y4 ,z4 ,ce_loc ,
685 a dir1 ,dir2 )
686 ELSE
687 nforth = 0
688 nfisot = 0
690 1 intfric ,jlt ,ipartfricsi ,ipartfricmi ,adparts_fric ,
691 2 nsetprts ,tabcoupleparts_fric,npartfric,tabparts_fric,tabcoef_fric
692 3 fric ,viscf ,intbuf_tab%FRIC_P,fric_coefs , fricc ,
693 4 viscffric ,nty ,mfrot ,iorthfric ,ifric ,
694 5 jj , tint ,tempi ,npc ,tf ,
695 6 temp , h1 ,h2 ,h3 ,h4 ,
696 7 ix1 , ix2 ,ix3 ,ix4 ,iform )
697 ENDIF
698 IF(jtask==1)
CALL stoptime(timers,macro_timer_fric)
699
701 1 jlt ,a ,v ,ibc ,icodt ,
702 2 fsav ,ms ,visc ,
703 3 viscf ,noint ,intbuf_tab%STFNS,itab ,cn_loc ,
704 4 stiglo ,stifn ,stif ,inacti ,index2(nft+1),
705 5 n1 ,n2 ,n3 ,h1 ,h2 ,
706 6 h3 ,h4 ,fcont ,pene ,nrtm ,
707 7 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
708 8 ivis2 ,neltst ,ityptst ,dt2t ,
709 a kinet ,newfront ,isecin ,nstrf ,secfcum ,
710 b x ,intbuf_tab%IRECTM,ce_loc ,mfrot ,ifq ,
711 b intbuf_tab%SECND_FR,xfiltr_fric,ibag ,icontact ,intbuf_tab%IRTLM,
712 e viscn ,vxi ,vyi ,vzi ,msi ,
713 f kini ,nin ,nisub ,intbuf_tab%LISUB,intbuf_tab%ADDSUBS,
714 g intbuf_tab%ADDSUBM,intbuf_tab%LISUBS,intbuf_tab%LISUBM,
715 . intbuf_tab%INFLG_SUBS,intbuf_tab%INFLG_SUBM,
716 h fsavsub ,ipari(33,nin),ipari(39,nin),fncont ,ftcont ,
717 i nsn ,xx ,yy ,zz ,
718 j xi ,yi ,zi ,anglmi ,padm ,
719 k iadm ,rcurvi ,rcontact ,acontact ,pcontact ,
720 n mskyi_sms ,iskyi_sms ,nsms ,cand_n_n ,intbuf_tab%PENE_OLD,
721 o intbuf_tab%STIF_OLD,intbuf_tab%MBINFLG,ilev ,igsti ,kmin ,
722 p intply ,nm1 ,nm2 ,nm3 ,
723 q intbuf_tab%MSEGTYP24,jtask ,isensint ,
724 t fsavparit(1,1,nft+1),h3d_data,fricc ,viscffric ,fric_coefs, gapv,
725 u viscfluid , sigmaxadh , viscadhfact, ifadhi , areasi , base_adh ,
726 v iorthfric ,fric_coefs2 ,fricc2 ,viscffric2,nforth ,nfisot ,
727 w indexorth , indexisot ,dir1 ,dir2 ,apinch ,stifpinch
728 c fni ,fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,
729 d fz2 ,fx3 ,fy3 ,fz3 ,fx4 ,
730 e fy4 ,fz4 ,fxi ,fyi ,fzi ,
731 c intth ,drad ,fheats ,fheatm ,qfricint(nin),
732 d efrict ,tagncont ,kloadpinter ,loadpinter ,loadp_hyd_inter,
733 e intbuf_tab%TYPSUB,ipari(40,nin),ninloadp,dgaploadint,s_loadpinter,
734 f dist ,dgaploadpmax,interefric ,intcarea ,interfaces%PARAMETERS)
735
736 IF (imonm > 0 .AND. jtask == 1)
CALL stoptime(timers,20)
737
738 IF(intth > 0) THEN
739
741 1 jlt ,kthe ,tempi ,areasi ,ielesi ,
742 2 ielemi ,gapv ,ikthe ,xthe ,fni ,
743 3 npc ,tf ,frad ,drad ,efrict ,
744 4 fheats ,fheatm ,condint,iform ,temp ,
745 5 h1 ,h2 ,h3 ,h4 ,fcond ,
746 6 dcond ,tint ,xi ,yi ,zi ,
747 7 x1 ,y1 ,z1 ,x2 ,y2 ,
748 8 z2 ,x3 ,y3 ,z3
749 9 y4 ,z4 ,ix1 ,ix2 ,ix3 ,
750 a ix4 ,phi ,phi1 ,phi2 ,phi3 ,
751 b phi4 ,pm ,nsvg ,itab ,theaccfact)
752
753 ENDIF
754
755
757 1 jlt ,nsvg ,itab ,ce_loc ,
758 2 jtask ,nin ,noint ,intply ,a ,
759 3 stif ,stifn ,niskyfi ,fskyi ,isky ,
760 4 n1 ,n2 ,n3 ,h1 ,h2 ,
761 5 h3 ,h4 ,ix1 ,ix2 ,ix3 ,
762 6 ix4 ,intth ,fthe ,ftheskyi ,
763 7 phi ,phi1 ,phi2 ,phi3 ,phi4 ,
764 8 fni , intbuf_tab%MSEGTYP24 ,apinch ,
765 . stifpinch ,
766 9 fx1 ,fy1 ,fz1 ,fx2 ,fy2 ,
767 a fz2 ,fx3 ,fy3 ,fz3 ,fx4 ,
768 b fy4 ,fz4 ,fxi ,fyi ,fzi ,
769 f iform ,condint ,condn ,condnskyi ,nodadt_therm)
770
771 ENDDO
772
773 IF (sfsavparit /= 0)THEN
775 . fbsav6, 12, 6, dimfb, isensint )
776 ENDIF
777 DEALLOCATE (fsavparit)
778
780
781 DO n=nsnft, nsnlt
782 IF(intbuf_tab%IRTLM(4*(n-1)+1) < 0)
783 . intbuf_tab%IRTLM(4*(n-1)+1) = -intbuf_tab%IRTLM(4*(n-1)+1)
784 END DO
785
786 DO n=nsnrft, nsnrlt
788 END DO
789
790
791
792 IF(nedge==0) GOTO 500
793
794
796
797 i_stok = intbuf_tab%I_STOK_E(1)
798
799
800 nb_loc = i_stok / nthread
801 IF (jtask==nthread) THEN
802 i_stok_loc = i_stok-nb_loc*(nthread
803 ELSE
804 i_stok_loc = nb_loc
805 ENDIF
806 debut
807 i_stok = 0
808
809
810 DO i = debut+1, debut+i_stok_loc
811
812
813
814#ifdef D_EM
815 eidm = intbuf_tab%ledge(nledge*(intbuf_tab%candm_e2e(i)-1) + 8)
816 eids = abs(intbuf_tab%cands_e2e(i))
817 if(eids > nedge) then
818 eids =
ledge_fie(nin)%P(e_global_id,eids-nedge)
819 else
820 eids = intbuf_tab%ledge(nledge*(eids-1)+8)
821 endif
822 if(eidm == d_em) then
823 IF(intbuf_tab%CANDS_E2E(i) < 0) THEN
824 write(6,"(A,I10,A,2I10,Z20)") __file__,i"E2E conserve",eidm,eids, intbuf_tab%CAND_P(i)
825 ELSE
826 write(6,"(A,I10,A,2I10,Z20)") __file__,i,"E2E exclude",eidm,eids, intbuf_tab%CAND_P(i)
827 ENDIF
828 endif
829#endif
830
831
832
833 IF(intbuf_tab%CANDS_E2E(i) < 0) THEN
834 i_stok = i_stok + 1
835 index2(i_stok) = i
836
837 intbuf_tab%CANDS_E2E(i) = -intbuf_tab%CANDS_E2E(i)
838 ELSE
839 intbuf_tab%CAND_P(i) = zero
840 ENDIF
841 ENDDO
842
843 sfsavparit = 0
844 DO i=1,nisub+1
845 IF(isensint(i)/=0) THEN
846 sfsavparit = sfsavparit + 1
847 ENDIF
848 ENDDO
849 IF (sfsavparit /= 0) THEN
850 ALLOCATE(fsavparit(nisub+1,11,i_stok))
851 DO j=1,i_stok
852 DO i=1,11
853 DO h=1,nisub+1
854 fsavparit(h,i,j) = zero
855 ENDDO
856 ENDDO
857 ENDDO
858 ELSE
859 ALLOCATE(fsavparit(0,0,0))
860 ENDIF
861
862 DO nft = 0 , i_stok - 1 , nvsiz
863 jlt =
min( nvsiz, i_stok - nft )
864
866 1 jlt,index2(nft+1),intbuf_tab%CANDM_E2E,intbuf_tab%CANDS_E2E,cm_loc,
867 2 cs_loc)
869 1 jlt ,intbuf_tab%LEDGE,intbuf_tab%IRECTM,x ,v ,
870 2 cs_loc ,cm_loc ,intbuf_tab%STFE ,ms ,ex ,
871 3 ey ,ez ,fx ,fy ,fz ,
872 4 stif ,xxs1 ,xxs2 ,xys1 ,xys2 ,
873 5 xzs1 ,xzs2 ,xxm1 ,xxm2 ,xym1 ,
874 6 xym2 ,xzm1 ,xzm2 ,vxs1 ,vxs2 ,
875 7 vys1 ,vys2 ,vzs1 ,vzs2 ,vxm1 ,
876 8 vxm2 ,vym1 ,vym2 ,vzm1 ,vzm2 ,
877 9 ms1 ,ms2 ,mm1 ,mm2 ,ne1 ,
878 a ne2 ,me1 ,me2 ,nedge ,nin ,
879 c intbuf_tab%STFAC,nodnx_sms ,nsms ,intbuf_tab%GAPE,gapve,
880 d iedge ,intbuf_tab%ADMSR,intbuf_tab%LBOUND,intbuf_tab%EDGE_BISECTOR,
881 e intbuf_tab%VTX_BISECTOR ,igap0,
882 f iam ,jam ,ibm ,jbm ,ias ,
883 g jas ,ibs ,jbs ,itab ,edge_id ,
884 h intfric ,intbuf_tab%IPARTFRIC_E ,ipartfricsi ,ipartfricmi,
885 i igap ,intbuf_tab%GAP_E_L,igsti ,kmin ,kmax ,
886 j istif_msdt ,dtstif ,intbuf_tab%STIFMSDT_EDG,interfaces%PARAMETERS)
888 1 jlt ,intbuf_tab%STFE,stif ,cs_loc ,cm_loc ,
889 2 nedge ,nin ,inacti ,ipari(40,nin),tncy)
890
892 1 jlt ,cs_loc,cm_loc ,hs1 ,hs2 ,
893 2 hm1 ,hm2 ,nx ,ny ,nz ,
894 3 stif ,ne1 ,ne2 ,me1 ,me2 ,
895 4 jlt_new,xxs1 ,xxs2 ,xys1 ,xys2 ,
896 5 xzs1 ,xzs2 ,xxm1 ,xxm2 ,xym1 ,
897 6 xym2 ,xzm1 ,xzm2 ,vxs1 ,vxs2 ,
898 7 vys1 ,vys2 ,vzs1 ,vzs2 ,vxm1 ,
899 8 vxm2 ,vym1 ,vym2 ,vzm1 ,vzm2 ,
900 9 ms1 ,ms2 ,mm1 ,mm2 ,iedge ,
901 b nsms ,index2(nft+1),intfric ,ipartfricsi,
902 . ipartfricmi,
903 c gapve ,ex ,ey ,ez ,fx ,
904 d fy ,fz ,intbuf_tab%LEDGE,intbuf_tab%IRECTM,
905 . intbuf_tab%CAND_P,
906 e iam ,jam ,ibm ,jbm ,ias ,
907 f jas ,ibs ,jbs ,itab ,edge_id,
908 g dgaploadpmax)
909
910
911 IF (imonm > 0 .AND. jtask == 1)
CALL startime(timers,20)
912
913
914 jlt = jlt_new
915 IF(jlt_new/=0) THEN
916 IF (imonm > 0 .AND. jtask == 1)
CALL startime(timers,20)
917 ipari(29,nin) = 1
918 IF (debug(3)>=1) nb_impct = nb_impct + jlt
919
920
921
922
923 IF(mfrot == 0 ) THEN
924 jj = 0
925 ifric =0
927 1 intfric ,jlt ,ipartfricsi ,ipartfricmi ,adparts_fric ,
928 2 nsetprts ,tabcoupleparts_fric,npartfric,tabparts_fric,tabcoef_fric ,
929 3 fric ,viscf ,intbuf_tab%FRIC_P,fric_coefs , fricc ,
930 4 viscffric ,nty ,mfrot ,iorthfric ,ifric ,
931 5 jj , tint ,tempi ,npc ,tf ,
932 6 temp , h1 ,h2 ,h3 ,h4 ,
933 7 ix1 , ix2 ,ix3 ,ix4 ,iform )
934 ELSE
935 DO i=1,jlt
936 fricc(i) = zero
937 ENDDO
938 ENDIF
939
941 1 jlt ,a ,v ,ibc ,icodt ,
942 2 fsav ,gap ,fric ,ms ,visc ,
943 3 viscf ,noint ,itab ,cs_loc ,cm_loc ,
944 4 stiglo ,stifn ,stif ,fskyi ,isky ,
945 5 fcont ,dt2t ,ibm ,hs1 ,
946 6 hs2 ,hm1 ,hm2 ,ne1 ,ne2 ,
947 7 me1 ,me2 ,ivis2 ,neltst ,ityptst ,
948 8 nx ,ny ,nz ,gapve ,inacti ,
949 9 index2(nft+1),intbuf_tab%CAND_P,niskyfie ,newfront ,isecin ,
950 a nstrf ,secfcum ,viscn ,nedge ,ms1 ,
951 b ms2 ,mm1 ,mm2 ,vxs1 ,vys1 ,
952 c vzs1 ,vxs2 ,vys2 ,vzs2 ,vxm1 ,
953 d vym1 ,vzm1 ,vxm2 ,vym2 ,vzm2 ,
954 e nin ,nisub ,intbuf_tab%LISUB,intbuf_tab%ADDSUBE,
955 . intbuf_tab%LISUBE,
956 f intbuf_tab%INFLG_SUBE ,fsavsub,mskyi_sms ,iskyi_sms ,nsms ,
957 g jtask ,isensint ,fsavparit(1,1,nft+1),nft,h3d_data ,
958 h ilev ,intbuf_tab%EBINFLG, edge_id,fricc,ifq ,
959 i intbuf_tab%FTSAVX_E,intbuf_tab%FTSAVY_E, intbuf_tab%FTSAVZ_E ,
960 . intbuf_tab%IFPEN_E ,
961 j tagncont ,kloadpinter ,loadpinter ,loadp_hyd_inter, intbuf_tab%TYPSUB,
962 k startt ,ninloadp,dgaploadint,s_loadpinter)
963
964 IF (imonm > 0 .AND. jtask == 1)
CALL stoptime(timers,20)
965
966
967
968 ENDIF
969 ENDDO
970
971 IF (sfsavparit /= 0)THEN
973 . fbsav6, 12, 6, dimfb, isensint )
974 ENDIF
975 DEALLOCATE (fsavparit)
976
977
978
980
981 i_stok = intbuf_tab%I_STOK_E(2)
982
983
984 nb_loc = i_stok / nthread
985 IF (jtask==nthread) THEN
986 i_stok_loc = i_stok-nb_loc*(nthread-1)
987 ELSE
988 i_stok_loc = nb_loc
989 ENDIF
990
991 debut
992 i_stok = 0
993
994 DO i = debut+1, debut+i_stok_loc
995
996#ifdef D_EM
997
998 eids = abs(intbuf_tab%cands_e2S(i))
999 if(eids > nedge) then
1000 eids =
ledge_fie(nin)%P(e_global_id,eids-nedge)
1001 else
1002 eids = intbuf_tab%ledge(nledge*(eids-1)+8)
1003 endif
1004 if(eids == d_es) then
1005 IF(intbuf_tab%CANDS_E2S(i) < 0) THEN
1006 write(6,"(A,I10,A,2I10,4Z20)") __file__,i,"E2S conserve ",eidm,eids,intbuf_tab%CAND_PS(4*(i-1)+1:4*(i-1)+4)
1007 ELSE
1008
1009 ENDIF
1010 endif
1011#endif
1012
1013
1014 IF(intbuf_tab%CANDS_E2S(i) < 0) THEN
1015 i_stok = i_stok + 1
1016 index2(i_stok) = i
1017
1018 intbuf_tab%CANDS_E2S(i) = -intbuf_tab%CANDS_E2S(i)
1019 ELSE
1020 intbuf_tab%CAND_PS(4*(i-1)+1:4*(i-1)+4) = zero
1021 ENDIF
1022 ENDDO
1023
1024
1025
1026 sfsavparit = 0
1027 DO i=1,nisub+1
1028 IF(isensint(i)/=0) THEN
1029 sfsavparit = sfsavparit + 1
1030 ENDIF
1031 ENDDO
1032 IF (sfsavparit /= 0) THEN
1033 ALLOCATE(fsavparit(nisub+1,11,i_stok))
1034 DO j=1,i_stok
1035 DO i=1,11
1036 DO h=1,nisub+1
1037 fsavparit(h,i,j) = zero
1038 ENDDO
1039 ENDDO
1040 ENDDO
1041 ELSE
1042 ALLOCATE(fsavparit(0,0,0))
1043 ENDIF
1044
1045 DO nft = 0 , i_stok - 1 , nvsiz
1046 jlt =
min( nvsiz, i_stok - nft )
1047
1049 1 jlt,index2(nft+1),intbuf_tab%CANDM_E2S,intbuf_tab%CANDS_E2S,
1050 2 cm_loc,cs_loc )
1052 1 jlt ,intbuf_tab%LEDGE,intbuf_tab%IRECTM,x ,v ,
1053 2 cs_loc ,cm_loc ,intbuf_tab%STFM ,ms ,ex
1054 3 ey ,ez ,fx ,fy ,fz ,
1055 4 stife ,xxs1 ,xxs2 ,xys1 ,xys2 ,
1056 5 xzs1 ,xzs2 ,xxm1 ,xxm2 ,xym1 ,
1057 6 xym2 ,xzm1 ,xzm2 ,vxs1 ,vxs2 ,
1058 7 vys1 ,vys2 ,vzs1 ,vzs2 ,vxm1 ,
1059 8 vxm2 ,vym1 ,vym2 ,vzm1 ,vzm2 ,
1060 9 ms1 ,ms2 ,mm1 ,mm2 ,ns1 ,
1061 a ns2 ,m1 ,m2 ,nedge ,nin ,
1062 c intbuf_tab%STFAC,nodnx_sms ,nsmse ,intbuf_tab%GAPE,gapve ,
1063 d iedge ,intbuf_tab%ADMSR,intbuf_tab%LBOUND,intbuf_tab%EDGE_BISECTOR,
1064 e intbuf_tab%VTX_BISECTOR ,typedgs ,ias ,jas ,ibs ,
1065 f jbs ,iam ,intbuf_tab%STFE,edge_id, itab,
1066 g intfric ,intbuf_tab%IPARTFRIC_E ,ipartfric_es ,ipartfric_em,
1067 h igsti ,kmin ,kmax ,intbuf_tab%E2S_NOD_NORMAL,nadmsr,
1068 i normaln1 ,normaln2 ,normalm1 ,normalm2 , istif_msdt,
1069 j dtstif ,intbuf_tab%STIFMSDT_EDG,intbuf_tab%STIFMSDT_M,nrtm,interfaces%PARAMETERS)
1070
1072 1 jlt ,cs_loc,cm_loc ,hs1 ,hs2 ,
1073 2 hm1 ,hm2 ,nx ,ny ,nz ,
1074 3 stife ,ns1 ,ns2 ,m1 ,m2 ,
1075 4 jlt_new,xxs1 ,xxs2 ,xys1 ,xys2 ,
1076 5 xzs1 ,xzs2 ,xxm1 ,xxm2 ,xym1 ,
1077 6 xym2 ,xzm1 ,xzm2 ,vxs1 ,vxs2 ,
1078 7 vys1 ,vys2 ,vzs1 ,vzs2 ,vxm1 ,
1079 8 vxm2 ,vym1 ,vym2 ,vzm1 ,vzm2 ,
1080 9 ms1 ,ms2 ,mm1 ,mm2 ,iedge ,
1081 b nsmse ,index2(nft+1),intfric ,ipartfric_es,
1082 . ipartfric_em,
1083 c gapve ,ex ,ey ,ez ,fx ,
1084 d fy ,fz ,intbuf_tab%LEDGE,intbuf_tab%IRECTM,x ,
1085 e intbuf_tab%CAND_PS,typedgs ,ias ,jas ,ibs ,
1086 f jbs ,iam ,itab ,indx1,indx2,
1087 g cs_loc4,cm_loc4,edge_id, nedge, nin,
1088 h dgaploadpmax,normaln1,normaln2,normalm1,normalm2)
1089
1090 assert(4*jlt>=jlt_new)
1091
1092 jlt=jlt_new
1093 IF(jlt_new/=0) THEN
1094 IF (imonm > 0 .AND. jtask == 1)
CALL startime(timers,20)
1095 ipari(29,nin) = 1
1096 IF (debug(3)>=1) nb_impct = nb_impct + jlt
1097
1098
1099
1100
1101 IF(mfrot == 0 ) THEN
1102 jj = 0
1103 ifric = 0
1105 1 intfric ,jlt ,ipartfric_es ,ipartfric_em ,adparts_fric ,
1106 2 nsetprts ,tabcoupleparts_fric,npartfric
1107 3 fric ,viscf ,intbuf_tab%FRIC_P,fric_coefs , fricc_e ,
1108 4 viscffric_e ,nty ,mfrot ,iorthfric ,ifric ,
1109 5 jj , tint ,tempi ,npc ,tf ,
1110 6 temp , h1 ,h2 ,h3 ,h4 ,
1111 7 ix1 , ix2 ,ix3 ,ix4 ,iform )
1112 ELSE
1113 DO i=1,jlt
1114 fricc_e(i) = zero
1115 ENDDO
1116 ENDIF
1117
1118 assert(jlt < 4*mvsiz)
1120 1 jlt ,a ,v ,ibc ,icodt ,
1121 2 fsav ,gap ,fric ,ms ,visc ,
1122 3 viscf ,noint ,itab ,cs_loc4 ,cm_loc4 ,
1123 4 stiglo ,stifn ,stife ,fskyi ,isky ,
1124 5 fcont ,dt2t ,nrtm,intbuf_tab%MSEGTYP24,hs1 ,
1125 6 hs2 ,hm1 ,hm2 ,ns1 ,ns2 ,
1126 7 m1 ,m2 ,ivis2 ,neltst ,ityptst ,
1127 8 nx ,ny ,nz ,gapve ,inacti ,
1128 9 index2(nft+1),intbuf_tab%CAND_PS,niskyfie ,newfront ,isecin ,
1129 a nstrf ,secfcum ,viscn ,nedge ,ms1 ,
1130 b ms2 ,mm1 ,mm2 ,vxs1 ,vys1 ,
1131 c vzs1 ,vxs2 ,vys2 ,vzs2 ,vxm1 ,
1132 d vym1 ,vzm1 ,vxm2 ,vym2 ,vzm2 ,
1133 e nin ,nisub ,intbuf_tab%LISUB,intbuf_tab%ADDSUBE,intbuf_tab%ADDSUBM,
1134 f intbuf_tab%LISUBE ,intbuf_tab%LISUBM ,intbuf_tab%INFLG_SUBE ,intbuf_tab%INFLG_SUBM
1135 . fsavsub ,
1136 g mskyi_sms ,iskyi_sms ,nsmse ,jtask ,isensint ,
1137 h fsavparit(1,1,nft+1),nft ,h3d_data ,indx1 ,indx2 ,
1138 i ilev ,intbuf_tab%MBINFLG, edge_id,nedge_rem ,fricc_e ,
1139 j ifq ,intbuf_tab%FTSAVX_E2S,intbuf_tab%FTSAVY_E2S, intbuf_tab%FTSAVZ_E2S ,
1140 . intbuf_tab%IFPEN_E2S ,
1141 k tagncont ,kloadpinter ,loadpinter ,loadp_hyd_inter,intbuf_tab%TYPSUB
1142 o startt ,ninloadp,dgaploadint,s_loadpinter)
1143
1144 IF (imonm > 0 .AND. jtask == 1)
CALL stoptime(timers,20)
1145 ENDIF
1146 ENDDO
1147
1148 IF (sfsavparit /= 0)THEN
1150 . fbsav6, 12, 6, dimfb, isensint )
1151 ENDIF
1152 DEALLOCATE (fsavparit)
1153
1155
1156
1157 500 CONTINUE
1158 DEALLOCATE(index2)
1159 RETURN
subroutine i_corpfit3(jlt, stf, stfn, stif, nsn, cand_e, cand_n, nin, igsti, kmin, kmax, inacti, ncfit, tncy, iknon)
subroutine i_cor_epfit3(jlt, stfe, stif, cand_s, cand_m, nedge, nin, inacti, ncfit, tncy)
subroutine i25cor3_3(jlt, x, irect, nsv, cand_e, cand_n, stf, stfn, stif, nod_normal, igsti, kmin, kmax, ms, msi, xi, yi, zi, vxi, vyi, vzi, ix1, ix2, ix3, ix4, nsvg, nsn, v, kinet, kini, nin, admsr, irtlm, subtria, xx, yy, zz, lbound, ibound, nnx, nny, nnz, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, nodnx_sms, nsms, index, penm, lbm, lcm, pene, lb, lc, gapn_m, gapnm, gap_s, gaps, igap, gap_s_l, gap_m_l, gapmxl, intfric, ipartfrics, ipartfricsi, ipartfricm, ipartfricmi, areas, areasi, ivis2, mvoisin, mvoisn, iorthfric, irep_fricm, dir_fricm, irep_fricmi, dir_fricmi, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, intth, temp, tempi, ieles, ielesi, ielem, ielemi, istif_msdt, dtstif, stifmsdt_s, stifmsdt_m, nrtm, parameters)
subroutine frictionparts_model_ortho(intfric, jlt, ipartfricsi, ipartfricmi, adparts_fric, nset, tabcoupleparts_fric, npartfric, tabparts_fric, tabcoef_fric, fric, viscf, frot_p, fric_coefs, fricc, viscffric, nty, mfrot, iorthfric, fric_coefs2, fricc2, viscffric2, ifricorth, nforth, nfisot, indexorth, indexisot, jlt_tied, irep_fricmi, dir_fricmi, ix3, ix4, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, ce_loc, dir1, dir2)
subroutine frictionparts_model_isot(intfric, jlt, ipartfricsi, ipartfricmi, adparts_fric, nset, tabcoupleparts_fric, npartfric, tabparts_fric, tabcoef_fric, fric, viscf, frot_p, fric_coefs, fricc, viscffric, nty, mfrot, iorthfric, ifric, jlt_tied, tint, tempi, npc, tf, temp, h1, h2, h3, h4, ix1, ix2, ix3, ix4, iform)
subroutine i25ass3(jlt, nsvg, itab, ce_loc, jtask, nin, noint, intply, a, stif, stifn, niskyfi, fskyi, isky, n1, n2, n3, h1, h2, h3, h4, ix1, ix2, ix3, ix4, intth, fthe, ftheskyi, phi, phi1, phi2, phi3, phi4, fni, msegtyp, apinch, stifpinch, fx1, fy1, fz1, fx2, fy2, fz2, fx3, fy3, fz3, fx4, fy4, fz4, fxi, fyi, fzi, iform, condint, condn, condnskyi, nodadt_therm)
subroutine i25dst3_3(jlt, cand_n, cand_e, cn_loc, ce_loc, irtlm, xx, yy, zz, gap_nm, xi, yi, zi, gaps, gapmxl, isharp, nnx, nny, nnz, n1, n2, n3, h1, h2, h3, h4, nin, nsn, ix1, ix2, ix3, ix4, nsvg, stif, inacti, kini, itab, lb, lc, penmin, eps, pene, pene_old, subtria, gapv, ivis2, if_adh, ifadhi, base_adh, mvoisn, ibound, vtx_bisector, dist, time)
subroutine i25dst3e(jlt, cand_s, cand_m, h1s, h2s, h1m, h2m, nx, ny, nz, stif, n1, n2, m1, m2, jlt_new, xxs1, xxs2, xys1, xys2, xzs1, xzs2, xxm1, xxm2, xym1, xym2, xzm1, xzm2, vxs1, vxs2, vys1, vys2, vzs1, vzs2, vxm1, vxm2, vym1, vym2, vzm1, vzm2, ms1, ms2, mm1, mm2, iedge, nsms, index, intfric, ipartfricsi, ipartfricmi, gapve, ex, ey, ez, fx, fy, fz, ledge, irect, cand_p, iam, jam, ibm, jbm, ias, jas, ibs, jbs, itab, edge_id, dgaploadpmax)
subroutine i25for3(jlt, a, v, ibcc, icodt, fsav, ms, visc, viscf, noint, stfn, itab, cn_loc, stiglo, stifn, stif, inacti, index, n1, n2, n3, h1, h2, h3, h4, fcont, pene, nrtm, ix1, ix2, ix3, ix4, nsvg, ivis2, neltst, ityptst, dt2t, kinet, newfront, isecin, nstrf, secfcum, x, irect, ce_loc, mfrot, ifq, secnd_fr, alpha0, ibag, icontact, irtlm, viscn, vxi, vyi, vzi, msi, kini, nin, nisub, lisub, addsubs, addsubm, lisubs, lisubm, inflg_subs, inflg_subm, fsavsub, ilagm, icurv, fncont, ftcont, nsn, xx, yy, zz, xi, yi, zi, anglmi, padm, iadm, rcurvi, rcontact, acontact, pcontact, mskyi_sms, iskyi_sms, nsms, cand_n_n, pene_old, stif_old, mbinflg, ilev, igsti, kmin, intply, nm1, nm2, nm3, msegtyp, jtask, isensint, fsavparit, h3d_data, fricc, viscffric, fric_coefs, gapv, viscfluid, sigmaxadh, viscadhfact, if_adh, areas, base_adh, iorthfric, fric_coefs2, fricc2, viscffric2, nforth, nfisot, indexorth, indexisot, dir1, dir2, apinch, stifpinch, fni, fx1, fy1, fz1, fx2, fy2, fz2, fx3, fy3, fz3, fx4, fy4, fz4, fxi, fyi, fzi, intth, drad, fheats, fheatm, qfric, efrict, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, typsub, ncfit, ninloadp, dgaploadint, s_loadpinter, dist, dgaploadpmax, interefric, intcarea, parameters)
subroutine i25for3_e2s(jlt, a, v, ibc, icodt, fsav, gap, fric, ms, visc, viscf, noint, itab, cs_loc, cm_loc, stiglo, stifn, stif, fskyi, isky, fcont, dt2t, nrtm, msegtyp, hs1, hs2, hm1, hm2, n1, n2, m1, m2, ivis2, neltst, ityptst, nx, ny, nz, gapve, inacti, index, cand_p, niskyfie, newfront, isecin, nstrf, secfcum, viscn, nedge, ms1, ms2, mm1, mm2, vxs1, vys1, vzs1, vxs2, vys2, vzs2, vxm1, vym1, vzm1, vxm2, vym2, vzm2, nin, nisub, lisub, addsube, addsubm, lisube, lisubm, inflg_sube, inflg_subm, fsavsub, mskyi_sms, iskyi_sms, nsms, jtask, isensint, fsavparit, nft, h3d_data, indx1, indx2, ilev, mbinflg, edge_id, nedge_rem, fricc, ifq, cand_fx, cand_fy, cand_fz, ifpen, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, typsub, startt, ninloadp, dgaploadint, s_loadpinter)
subroutine i25for3e(jlt, a, v, ibc, icodt, fsav, gap, fric, ms, visc, viscf, noint, itab, cs_loc, cm_loc, stiglo, stifn, stif, fskyi, isky, fcont, dt2t, ibm, hs1, hs2, hm1, hm2, n1, n2, m1, m2, ivis2, neltst, ityptst, nx, ny, nz, gapve, inacti, index, cand_p, niskyfie, newfront, isecin, nstrf, secfcum, viscn, nedge, ms1, ms2, mm1, mm2, vxs1, vys1, vzs1, vxs2, vys2, vzs2, vxm1, vym1, vzm1, vxm2, vym2, vzm2, nin, nisub, lisub, addsube, lisube, inflg_sube, fsavsub, mskyi_sms, iskyi_sms, nsms, jtask, isensint, fsavparit, nft, h3d_data, ilev, ebinflg, edge_id, fricc, ifq, cand_fx, cand_fy, cand_fz, ifpen, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, typsub, startt, ninloadp, dgaploadint, s_loadpinter)
subroutine i25cdcor3_e2s(jlt, index, cand_e, cand_n, cand_e_n, cand_n_n)
subroutine i25cdcor3(jlt, index, cand_e, cand_n, cand_e_n, cand_n_n)
subroutine i25keepf(i_stok, index, cand_n, cand_e, nin, nsn, nsnr, inacti, mseglo, irtlm, penm, pene_old, jtask, itab, nsv, secnd_fr, time_s, stif_old)
subroutine i25therm(jlt, kthe, tempi, areas, ielesi, ielemi, gapv, ifunctk, xthe, fni, npc, tf, frad, drad, efrict, fheats, fheatm, condint, iform, temp, h1, h2, h3, h4, fcond, dcond, tint, xi, yi, zi, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, ix1, ix2, ix3, ix4, phi, phi1, phi2, phi3, phi4, pm, nsv, itab, theaccfact)
type(int_pointer2), dimension(:), allocatable ledge_fie
type(real_pointer2), dimension(:), allocatable stif_oldfi
type(real_pointer2), dimension(:), allocatable secnd_frfi
type(real_pointer), dimension(:), allocatable time_sfi
type(int_pointer2), dimension(:), allocatable irtlm_fi
type(real_pointer2), dimension(:), allocatable pene_oldfi
type(int_pointer), dimension(:), allocatable if_adhfi
subroutine sum_6_float_sens(f, a, b, c, jft, jlt, f6, d, e, g, isensint)
subroutine i25cor3_e2s(jlt, ledge, irect, x, cand_s, cand_m, ex, ey, ez, xxs1, xxs2, xys1, xys2, xzs1, xzs2, xxm1, xxm2, xym1, xym2, xzm1, xzm2, n1, n2, m1, m2, nrts, gape, gapve, fx, fy, fz, iedge, admsr, lbound, edg_bisector, vtx_bisector, itab)
subroutine i25cor3e(jlt, ledge, irect, x, cand_s, cand_m, xxs1, xxs2, xys1, xys2, xzs1, xzs2, xxm1, xxm2, xym1, xym2, xzm1, xzm2, ex, ey, ez, fx, fy, fz, n1, n2, m1, m2, nedge, gape, gapve, iedge, admsr, lbound, edg_bisector, vtx_bisector, itab, igap0, igap, gap_e_l)
subroutine i25dst3_e2s(jlt, iedge, cand_s, cand_m, n1, n2, m1, m2, xxs1, xxs2, xys1, xys2, xzs1, xzs2, xxm1, xxm2, xym1, xym2, xzm1, xzm2, gapve, pene, ex, ey, ez, fx, fy, fz, ledge, irect, x, itab, e2s_nod_normal, admsr)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine startime(event, itask)
subroutine stoptime(event, itask)