77
78
79
80
81 USE timer_mod
82 USE intbufdef_mod
83 USE imp_intbuf
85 USE intbuf_fric_mod
87 USE output_mod
88 USE interfaces_mod
89
90
91
92#include "implicit_f.inc"
93#include "comlock.inc"
94
95
96
97#include "mvsiz_p.inc"
98
99
100
101#include "com01_c.inc"
102#include "com04_c.inc"
103#include "com08_c.inc"
104#include "param_c.inc"
105#include "warn_c.inc"
106#include "task_c.inc"
107#include "parit_c.inc"
108#include "timeri_c.inc"
109#include "impl1_c.inc"
110#include "macro.inc"
111
112
113
114 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
115 TYPE(TIMER_) :: TIMERS
116 INTEGER NISUBMAX
117 INTEGER NELTST,ITYPTST,NIN,NEWFRONT,
118 . NSTRF(*),
119 . NRTMDIM, IAD17, IPARSENS
120 INTEGER IPARI(NPARI,NINTER), ICODT(*),ICONTACT(*),
121 . ITAB(*), ISKY(*), KINET(*),
122 . IPARG(NPARG,*),INOD_PXFEM(*),NPC(*),TAGNCONT(NLOADP_HYD_INTER,NUMNOD)
123 INTEGER , INTENT(IN) :: S_LOADPINTER
124 INTEGER , INTENT(IN) :: KLOADPINTER(NINTER+1),LOADPINTER(S_LOADPINTER),
125 . LOADP_HYD_INTER(NLOADP_HYD)
126 INTEGER NB_JLT,NB_JLT_NEW,NB_STOK_N,JTASK,
127 . NISKYFI, LINDMAX
128 INTEGER NUM_IMP,NS_IMP(*),NE_IMP(*),IND_IMP(*)
129 INTEGER IXS(*) ,IXS16(*) ,IXS20(*)
130 INTEGER IAD_ELEM(2,*),FR_ELEM(*),
131 . ISKYI_SMS(*), NODNX_SMS(*), ISENSINT(NISUBMAX+1),DIMFB,T2MAIN_SMS(6,*)
132 INTEGER , INTENT(IN) :: INTEREFRIC
133 my_real ,
INTENT(IN) :: dgaploadint(s_loadpinter)
135 . eminx(*)
136
138 . x(*), a(3,*), fsav(*), v(3,*),fsavbag(*),
139 . ms(*),stifn(*),fskyi(lskyi,4),fcont(3,*),ms0(*),
140 . secfcum(7,numnod,nsect),viscn(*), fsavsub(*),
141 . fncont(3,*), ftcont(3,*), rcontact(*), acontact(*),
142 . pcontact(*),tf(*),
143 . temp(*),fthe(*),ftheskyi(lskyi),pm(npropm,*),
144 . mskyi_sms(*),ms_ply(*),wagap(*),forneqs(3,*),t2fac_sms(*)
145 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
146 TYPE(INTBUF_STRUCT_) INTBUF_TAB
147 TYPE(H3D_DATABASE) :: H3D_DATA
148 TYPE(INTBUF_FRIC_STRUCT_), TARGET, DIMENSION(NINTERFRIC) :: INTBUF_FRIC_TAB
149 TYPE (INTERFACES_) ,INTENT(IN):: INTERFACES
150
151
152
153 INTEGER JD(50),KD(50), JFI, KFI,IEDGE,
154 . I, J, H, I_STOK, JLT_NEW, JLT , NFT, IVIS2,
155 . IBC, NOINT, NSEG, ISECIN, IBAG, IADM,
156 . IGAP, INACTI, IFQ, MFROT, IGSTI, ,
157 . NB_LOC, I_STOK_LOC,DEBUT, I_STOK_GLO,
158 . ILAGM, LENR, LENT, MAXCC,INTTH,IFORM,INTPLY,INTFRIC,
159 . NSETPRTS ,NPARTFRIC, IERROR, INTNITSCHE, IORTHFRIC,
160 . NFORTH ,NFISOT , ,ISTIF_MSDT, INTCAREA
161 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
162 . NSVG(MVSIZ), CN_LOC(MVSIZ),CE_LOC(MVSIZ),
163 . CAND_N_N(MVSIZ),CAND_E_N(MVSIZ),CAND_T_N(MVSIZ),
164 . KINI(MVSIZ),IKNON(MVSIZ),
165 . SUBTRIA_OLD(MVSIZ),
166
167 . ISDSIZ(NSPMD+1),IRCSIZ(NSPMD+1),
168 . IELECI(MVSIZ), NSMS(MVSIZ),IXX(MVSIZ,13),ITRIV(4,MVSIZ),
169 . IPLY(4,MVSIZ),ISPT2_LOC(MVSIZ),
170 . IPARTFRICSI(MVSIZ),IPARTFRICMI(MVSIZ),INDEXISOT(MVSIZ),
171 . INDEXORTH(MVSIZ),IREP_FRICMI(MVSIZ),IXX3(MVSIZ),IXX4(MVSIZ)
172 INTEGER, ALLOCATABLE, DIMENSION(:) :: INDEX2
173
175 . startt, fric, gap
176 . visc,viscf,stiglo,gapmin,
177 . kmin, kmax, gapmax,rstif,fheat,tint,rhoh,eps
178 INTEGER :: IFRIC
179
180
182 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
183 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
184 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
185 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
186 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
187 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
188 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
189 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz), vx4(mvsiz),
190 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz),
191 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
192 . vxi(mvsiz), vyi(mvsiz), vzi(mvsiz),
193 . n1(mvsiz), n2(mvsiz), n3(mvsiz), pene(mvsiz),
194 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
195 . gapv(mvsiz),msi(mvsiz),
196 . nm1(mvsiz), nm2(mvsiz), nm3(mvsiz),
197 . tempi(mvsiz),phi(mvsiz),areasi(mvsiz),
198 . xx0(mvsiz,17),yy0(mvsiz,17),zz0(mvsiz,17),
199 . vx(mvsiz,17),vy(mvsiz,17),vz(mvsiz,17),
200 . gaps(mvsiz),forneqsi(mvsiz,3),dist(mvsiz)
201 INTEGER :: SUBTRIA(MVSIZ)
202
204 . , DIMENSION(:,:),ALLOCATABLE :: surf
206 . , DIMENSION(:), ALLOCATABLE :: pres
208 . , DIMENSION(:,:,:), ALLOCATABLE :: fsavparit
209 SAVE surf,pres
211 . rcurvi(mvsiz), anglmi(mvsiz), anglt, padm,penmin,marge
212 INTEGER NRTMFT, NRTMLT, NMNFT, NMNLT, NRADM,NCY_PFIT
214 . t_pfit,fa,fb,f_pfit,tncy,finc,dtstif
215 INTEGER ICURV,ILEV,NREBOU,NPT ,NRTSE,IEDG4,SFSAVPARIT,NINLOADP
217 . xfiltr_fric,fric_coefs(mvsiz,10),viscffric(mvsiz),fricc(mvsiz),
218 . fric_coefs2(mvsiz,10),viscffric2(mvsiz),fricc2(mvsiz),
219 . dir1(mvsiz,3),dir2(mvsiz,3),dir_fricmi(mvsiz,2),
220 . xx1(mvsiz), xx2(mvsiz), xx3(mvsiz), xx4(mvsiz),
221 . yy1(mvsiz), yy2(mvsiz), yy3(mvsiz), yy4(mvsiz),
222 . zz1(mvsiz), zz2(mvsiz), zz3(mvsiz), zz4(mvsiz)
223 INTEGER, DIMENSION(:) ,POINTER :: TABCOUPLEPARTS_FRIC
224 INTEGER, DIMENSION(:) ,POINTER :: TABPARTS_FRIC
225 INTEGER, DIMENSION(:) ,POINTER :: ADPARTS_FRIC
226 INTEGER, DIMENSION(:) ,POINTER :: IFRICORTH
227 my_real,
DIMENSION(:) ,
POINTER :: tabcoef_fric
228
229 INTEGER,TARGET, DIMENSION(1):: TABCOUPLEPARTS_FRIC_BID
230 INTEGER,TARGET, DIMENSION(1):: TABPARTS_FRIC_BID
231 INTEGER,TARGET, DIMENSION(1):: ADPARTS_FRIC_BID
232 INTEGER,TARGET, DIMENSION(1):: IFRICORTH_BID
233 my_real,
TARGET,
DIMENSION(1):: tabcoef_fric_bid
234 INTEGER :: NRTM, NSN, NTY, NSNE
235
236
237 nrtm =ipari(4,nin)
238 nsn =ipari(5,nin)
239 nty =ipari(7,nin)
240 ibc =ipari(11,nin)
241 ivis2 =ipari(14,nin)
242 IF(ipari(33,nin)==1) RETURN
243 noint =ipari(15,nin)
244 igap =ipari(21,nin)
245 inacti=ipari(22,nin)
246 isecin=ipari(28,nin)
247 mfrot =ipari(30,nin)
248 ifq =ipari(31,nin)
249 ibag =ipari(32,nin)
250 igsti=ipari(34,nin)
251 nisub =ipari(36,nin)
252 icurv =ipari(39,nin)
253 iedge = ipari(58,nin)
254
255
256 iadm =ipari(44,nin)
257 nradm=ipari(49,nin)
258 padm =intbuf_tab%VARIABLES(24)
259 anglt=intbuf_tab%VARIABLES(25)
260 marge=intbuf_tab%VARIABLES(25)
261
262 intth = ipari(47,nin)
263 iform = ipari(48,nin)
264 intply = ipari(66,nin)
265
266 nrebou=ipari(53,nin)
267 nsne = ipari(55,nin)
268 iedg4 = ipari(59,nin)
269
270
271 stiglo=-intbuf_tab%STFAC(1)
272 startt=intbuf_tab%VARIABLES(3)
273 stopt =intbuf_tab%VARIABLES(11)
274 IF(startt>tt) RETURN
275 IF(tt>stopt) RETURN
276
277 fric =intbuf_tab%VARIABLES(1)
278 gap =intbuf_tab%VARIABLES(2)
279 gapmin=intbuf_tab%VARIABLES(13)
280 visc =intbuf_tab%VARIABLES(14)
281
282 t_pfit = intbuf_tab%VARIABLES(15)
283 viscf = zero
284
285 gapmax=intbuf_tab%VARIABLES(16)
286 kmin =intbuf_tab%VARIABLES(17)
287 kmax =intbuf_tab%VARIABLES(18)
288
289
290 rstif = intbuf_tab%VARIABLES(20)
291 fheat = intbuf_tab%VARIABLES(21)
292 tint = intbuf_tab%VARIABLES(22)
293 penmin = intbuf_tab%VARIABLES(38)
294 eps = intbuf_tab%VARIABLES(39)
295 pmax_gap = zero
296 ilev = ipari(20,nin)
297 nrtse = ipari(52,nin)
298
299 istif_msdt =ipari(97,nin)
300 dtstif = intbuf_tab%VARIABLES(48)
301
302 intcarea = ipari(99,nin)
303
304 ifric = 0
305
306 intfric=ipari(72,nin)
307 iorthfric = 0
308 nsetprts = 0
309 npartfric = 0
310 xfiltr_fric = zero
311 IF(intfric /= 0) THEN
312 tabcoupleparts_fric => intbuf_fric_tab(intfric)%TABCOUPLEPARTS_FRIC
313 tabcoef_fric => intbuf_fric_tab(intfric)%TABCOEF_FRIC
314 tabparts_fric => intbuf_fric_tab(intfric)%TABPARTS_FRIC
315 adparts_fric => intbuf_fric_tab(intfric)%ADPARTS_FRIC
316 xfiltr_fric = intbuf_fric_tab(intfric)%XFILTR_FRIC
317 nsetprts = intbuf_fric_tab(intfric)%NSETPRTS
318 npartfric = intbuf_fric_tab(intfric)%S_TABPARTS_FRIC
319 iorthfric = intbuf_fric_tab(intfric)%IORTHFRIC
320 ifricorth => intbuf_fric_tab(intfric)%IFRICORTH
321
322
323 ELSE
324 tabcoupleparts_fric => tabcoupleparts_fric_bid
325 tabparts_fric => tabparts_fric_bid
326 tabcoef_fric => tabcoef_fric_bid
327 adparts_fric => adparts_fric_bid
328 ifricorth => ifricorth_bid
329 IF (ifq/=0) xfiltr_fric = intbuf_tab%XFILTR(1)
330 ENDIF
331
332 intnitsche=ipari(86,nin)
333
334 ninloadp = ipari(95,nin)
335
336
337 f_pfit = zero
338 IF (startt>zero.AND.t_pfit==zero) THEN
339 t_pfit=10000*dt12
340 intbuf_tab%VARIABLES(15) = t_pfit
341 END IF
342 IF (t_pfit>zero) THEN
343 IF (tt <=(startt+t_pfit)) THEN
344 tncy = (tt+em05-startt)/t_pfit
345 ELSE
346 ipari(40,nin)= 0
347 END IF
348 ELSE
349 ncy_pfit = ipari(40,nin)
350 IF (ncy_pfit >0 .AND. ncycle> ncy_pfit) ipari(40,nin) = 0
351 IF (ipari(40,nin)>0) THEN
352 finc= one/ipari(40,nin)
353 tncy = (ncycle+1)*finc
354 END IF
355 END IF
356 ALLOCATE(index2(lindmax))
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373 IF(icurv==3)THEN
374 endif
375
376
377
378
379 IF(iadm/=0)THEN
381
382
383
384 i_stok_glo = intbuf_tab%I_STOK(1)
385
386
387
388 nb_loc = i_stok_glo / nthread
389 IF (jtask==nthread) THEN
390 i_stok_loc = i_stok_glo-nb_loc*(nthread-1)
391 ELSE
392 i_stok_loc = nb_loc
393 ENDIF
394 debut = (jtask-1)*nb_loc
395
396 i_stok = 0
397
398
399
400 DO i = jtask, i_stok_glo, nthread
401 IF(intbuf_tab%CAND_N(i)<0) THEN
402 i_stok = i_stok + 1
403 index2(i_stok) = i
404 intbuf_tab%CAND_N(i) = -intbuf_tab%CAND_N(i)
405 ENDIF
406 ENDDO
407
408 IF (impl_s==1) THEN
409 num_imp = 0
410 visc =zero
411 viscf =zero
412 ENDIF
413
414
415 sfsavparit = 0
416 DO i=1,nisub+1
417 IF(isensint(i)/=0) THEN
418 sfsavparit = sfsavparit + 1
419 ENDIF
420 ENDDO
421 IF (sfsavparit /= 0) THEN
422 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
423 IF(ierror/=0) THEN
424 CALL ancmsg(msgid=19,anmode=aninfo,
425 . c1='(/INTER/TYPE7)')
427 ENDIF
428 fsavparit(1:nisub+1,1:11,1:i_stok) = zero
429 ELSE
430 ALLOCATE(fsavparit(0,0,0),stat=ierror)
431 IF(ierror/=0) THEN
432 CALL ancmsg(msgid=19,anmode=aninfo,
433 . c1='(/INTER/TYPE24)')
435 ENDIF
436
437 ENDIF
438
439
440 IF (debug(3)>=1) THEN
441 nb_jlt = nb_jlt + i_stok_loc
442 nb_stok_n = nb_stok_n + i_stok
443 ENDIF
444
445 DO nft = 0 , i_stok - 1 , nvsiz
446 jlt =
min( nvsiz, i_stok - nft )
447
448 iknon(1:jlt) = 0
450 1 jlt,index2(nft+1),intbuf_tab%CAND_E,intbuf_tab%CAND_N,intbuf_tab%CAND_T,
451 2 cand_e_n,cand_n_n,cand_t_n ,iedge )
452
453
455 1 jlt ,x ,intbuf_tab%IRECTM,intbuf_tab%NSV ,cand_e_n ,
456 2 cand_n_n ,cand_t_n ,intbuf_tab%STFM ,intbuf_tab%STFNS,stif ,
457 3 xx0 ,yy0 ,zz0 ,vx ,vy ,
458 5 vz ,xi ,yi ,zi ,vxi ,
459 7 vyi ,vzi ,ixx ,nsvg ,intbuf_tab%NVOISIN,
460 9 ms,msi ,nsn ,v ,kinet ,
461 a kini ,nty ,nin ,igsti ,kmin ,
462 b kmax ,intbuf_tab%GAP_S,gaps ,nodnx_sms ,nsms ,
463 c itriv ,intbuf_tab%XFIC,intbuf_tab%VFIC ,intbuf_tab%MSFIC ,
464 d intbuf_tab%IRTSE ,intbuf_tab%IS2SE,intbuf_tab%IS2PT,intbuf_tab%ISEGPT,
465 e nsne ,intbuf_tab%IRTLM,npt ,nrtse ,iedg4,intbuf_tab%ISPT2,
466 f ispt2_loc ,intfric ,intbuf_tab%IPARTFRICS,ipartfricsi ,
467 g intbuf_tab%IPARTFRICM ,ipartfricmi,intnitsche,forneqs ,forneqsi ,
468 h iorthfric,intbuf_tab%IREP_FRICM,intbuf_tab%DIR_FRICM,irep_fricmi,dir_fricmi,
469 i ixx3 ,ixx4 , xx1 ,xx2 ,xx3 ,
470 3 xx4 ,yy1 ,yy2 ,yy3 ,yy4 ,
471 4 zz1 ,zz2 ,zz3 ,zz4 ,ninloadp ,
472 5 dist ,istif_msdt ,dtstif ,intbuf_tab%STIFMSDT_S,intbuf_tab%STIFMSDT_M,
473 6 nrtm ,interfaces%PARAMETERS)
475 1 jlt ,intbuf_tab%STFM ,intbuf_tab%STFNS,stif ,nsn ,
476 2 cand_e_n ,cand_n_n,nin ,igsti ,kmin ,
477 3 kmax ,inacti ,ipari(40,nin),tncy ,iknon )
478
479 jlt_new = 0
480 IF(impl_s > 0 ) THEN
482 1 jlt ,cand_n_n ,subtria_old ,intbuf_tab%IRTLM,nsn ,nin )
484
486 1 jlt ,cand_n_n ,cand_e_n ,cn_loc ,ce_loc ,
487 2 x1 ,x2 ,x3 ,x4 ,y1 ,
488 3 y2 ,y3 ,y4 ,z1 ,z2 ,
489 4 z3 ,z4 ,xi ,yi ,zi ,
490 5 vx1 ,vx2 ,vx3 ,vx4 ,vxi ,
491 6 vy1 ,vy2 ,vy3 ,vy4 ,vyi ,
492 7 vz1 ,vz2 ,vz3 ,vz4 ,vzi ,
493 8 n1 ,n2 ,n3 ,h1 ,h2 ,
494 9 h3 ,h4 ,nin ,nsn ,ix1 ,
495 a ix2 ,ix3 ,ix4 ,nsvg ,stif ,
496 b jlt_new ,inacti ,intbuf_tab%MSEGLO,gaps ,intbuf_tab%GAP_NM,
497 c kini ,intbuf_tab%IRECTM,intbuf_tab%IRTLM ,intbuf_tab%TIME_S,
498 . subtria,
499 d intth ,nsms ,pene ,xx0 ,yy0 ,
500 e zz0 ,vx ,vy ,vz ,ixx ,
501 f intbuf_tab%MVOISIN,pmax_gap,intbuf_tab%SECND_FR,intbuf_tab%GAP_M,
502 . intbuf_tab%PENE_OLD,
503 g intbuf_tab%STIF_OLD,itriv ,itab ,cand_t_n ,iedge ,
504 h nft ,penmin ,eps ,nm1 ,nm2 ,
505 i nm3 ,intply ,intbuf_tab%DGAP_NM ,intbuf_tab%ICONT_I,
506 j marge ,iedg4 ,ispt2_loc ,ipari(40,nin),iknon,penref )
507
509 1 jlt ,a ,x ,cand_n_n ,cand_e_n ,
510 2 intbuf_tab%MBINFLG,intbuf_tab%ISEADD ,intbuf_tab%ISEDGE,nsvg,nin,
511 3 ixx ,stif ,
512 4 jlt_new ,inacti ,xi ,yi ,zi ,
513 5 xx0 ,yy0 ,zz0 ,pmax_gap ,
514 6 fskyi ,isky ,cand_t_n ,fcont ,h3d_data )
515
516 IF(impl_s > 0 ) THEN
518 1 jlt ,cand_n_n ,cand_e_n ,intbuf_tab%IRTLM,stif ,
519 2 pene ,subtria,ns_imp ,ne_imp ,ind_imp,
520 3 num_imp,jlt_new,intbuf_tab%NSV,subtria_old,
521 4 intbuf_tab%MSEGLO,nsn ,nin ,nrtm )
522 ELSE
523 DO i = 1 ,jlt
524 IF(pene(i)/=zero.AND.stif(i)/=zero)THEN
525 jlt_new = jlt_new + 1
526
527 END IF
528 ENDDO
529 ENDIF
530
531 IF(ninloadp==0.AND.jlt_new == 0)cycle
532 ipari(29,nin) = 1
533
534
535
536 IF(intply > 0) THEN
538 1 jlt ,cand_e_n ,intbuf_tab%MSEGTYP24 ,ix1 ,ix2 ,
539 2 ix3 ,ix4 , pene, ms_ply ,inod_pxfem ,
540 3 iply ,itab )
541 ENDIF
542
543 IF (debug(3)>=1) nb_jlt_new = nb_jlt_new + jlt_new
544 IF (imonm > 0 .AND. jtask == 1)
CALL startime(timers,20)
545
546
547
548
549 IF(jtask==1)
CALL startime(timers,macro_timer_fric)
550 jj = 0
551 IF(iorthfric > 0) THEN
553 1 intfric ,jlt ,ipartfricsi ,ipartfricmi ,adparts_fric ,
554 2 nsetprts ,tabcoupleparts_fric,npartfric,tabparts_fric,tabcoef_fric ,
555 3 fric ,viscf ,intbuf_tab%FRIC_P,fric_coefs, fricc ,
556 4 viscffric ,nty ,mfrot ,iorthfric , fric_coefs2 ,
557 5 fricc2 ,viscffric2 ,ifricorth ,nforth , nfisot ,
558 6 indexorth ,indexisot ,jj ,irep_fricmi ,dir_fricmi ,
559 7 ixx3 ,ixx4 ,xx1 ,yy1 , zz1 ,
560 8 xx2 ,yy2 ,zz2 ,xx3 , yy3 ,
561 9 zz3 ,xx4 ,yy4 ,zz4 ,ce_loc ,
562 a dir1 ,dir2 )
563 ELSE
564 nforth = 0
565 nfisot = 0
567 1 intfric ,jlt ,ipartfricsi ,ipartfricmi ,adparts_fric ,
568 2 nsetprts ,tabcoupleparts_fric,npartfric,tabparts_fric,tabcoef_fric ,
569 3 fric ,viscf ,intbuf_tab%FRIC_P,fric_coefs, fricc ,
570 4 viscffric ,nty ,mfrot ,iorthfric ,ifric ,
571 5 jj , tint ,tempi ,npc ,tf ,
572 6 temp , h1 ,h2 ,h3 ,h4 ,
573 7 ix1 , ix2 ,ix3 ,ix4 ,iform )
574 ENDIF
575 IF(jtask==1)
CALL stoptime(timers,macro_timer_fric)
576
578 1 jlt ,a ,v ,ibc ,icodt ,
579 2 fsav ,gap ,fric ,ms ,visc ,
580 3 viscf ,noint ,intbuf_tab%STFNS,itab ,cn_loc ,
581 4 stiglo ,stifn ,stif ,fskyi ,isky ,
582 5 n1 ,n2 ,n3 ,h1 ,h2 ,
583 6 h3 ,h4 ,fcont ,pene ,
584 7 ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
585 8 ivis2 ,neltst ,ityptst ,dt2t ,subtria ,
586 9 gapv ,inacti ,index2(nft+1),niskyfi ,
587 a kinet ,newfront ,isecin ,nstrf ,secfcum ,
588 b x ,intbuf_tab%IRECTM,ce_loc ,mfrot ,ifq ,
589 c intbuf_tab%FRIC_P,intbuf_tab%SECND_FR,xfiltr_fric,
590 d ibag ,icontact ,intbuf_tab%IRTLM,
591 e viscn ,vxi ,vyi ,vzi ,msi ,
592 f kini ,nin ,nisub ,intbuf_tab%LISUB,intbuf_tab%ADDSUBS,
593 g intbuf_tab%ADDSUBM,intbuf_tab%LISUBS,intbuf_tab%LISUBM,fsavsub,
594 + intbuf_tab%CAND_N,
595 h ipari(33,nin),ipari(39,nin),fncont ,ftcont ,nsn ,
596 i x1 ,x2 ,x3 ,x4 ,y1 ,
597 j y2 ,y3 ,y4 ,z1 ,z2 ,
598 k z3 ,z4 ,xi ,yi ,zi
599 l iadm ,rcurvi ,rcontact ,acontact ,pcontact ,
600 m anglmi ,padm ,intth , phi , fthe ,
601 n ftheskyi ,temp , tempi ,rstif , iform ,
602 o mskyi_sms ,iskyi_sms ,nsms ,cand_n_n ,intbuf_tab%PENE_OLD,
603 p intbuf_tab%STIF_OLD,intbuf_tab%MBINFLG,ilev ,igsti ,kmin ,
604 q intply ,iply ,inod_pxfem,nm1 ,nm2 ,
605 r nm3 ,nrebou ,intbuf_tab%IRTSE ,nsne ,intbuf_tab%IS2SE ,
606 s intbuf_tab%IS2PT,intbuf_tab%MSEGTYP24,jtask ,isensint ,
607 u fsavparit ,nft ,h3d_data ,fricc ,viscffric ,
608 v fric_coefs ,t2main_sms ,intnitsche ,forneqsi ,iorthfric ,
609 w fric_coefs2 ,fricc2 ,viscffric2 ,nforth ,nfisot ,
610 x indexorth ,indexisot ,dir1 ,dir2 ,t2fac_sms ,f_pfit,
611 y tagncont ,kloadpinter ,loadpinter ,loadp_hyd_inter,
612 z intbuf_tab%TYPSUB,intbuf_tab%INFLG_SUBS,intbuf_tab%INFLG_SUBM,
613 . ninloadp,dgaploadint,
614 1 s_loadpinter, dist ,ixx ,interefric ,intcarea ,
615 2 interfaces%PARAMETERS ,penref ,kmax , intbuf_tab%S_ADDSUBM ,
616 3 intbuf_tab%S_LISUBM,intbuf_tab%S_TYPSUB,nisubmax,i_stok,nrtm,
617 4 nrtse ,ipari(24,nin))
618
619 IF(impl_s > 0 )
621 1 jlt ,cand_n_n ,cand_e_n ,intbuf_tab%IRTLM,stif ,
622 2 pene ,subtria,intbuf_tab_imp(nin)%CAND_N,
623 + intbuf_tab_imp(nin)%CAND_E,intbuf_tab_imp(nin)%INDSUBT,
624 3 intbuf_tab_imp(nin)%I_STOK(1),
625 2 n1 ,n2 ,n3 ,h1 ,h2 ,h3 ,
626 4 h4 ,intbuf_tab_imp(nin)%NJ,intbuf_tab_imp(nin)%HJ ,
627 5 intbuf_tab_imp(nin)%STIF,nin ,nsn )
628 IF (imonm > 0 .AND. jtask == 1)
CALL stoptime(timers,20)
629
630 ENDDO
631
632 IF (sfsavparit /= 0)THEN
634 . fbsav6, 12, 6, dimfb, isensint )
635 ENDIF
636 IF (ALLOCATED(fsavparit)) DEALLOCATE (fsavparit)
637
638#include "lockon.inc"
639 intbuf_tab%VARIABLES(23) =
max(pmax_gap,intbuf_tab%VARIABLES(23))
640#include "lockoff.inc"
641
642 IF(intply > 0) THEN
644 1 nrtm ,intbuf_tab%IRECTM,intbuf_tab%IRTLM ,intbuf_tab%GAP_N0 ,
645 2 intbuf_tab%MVOISIN ,intbuf_tab%NVOISIN,intbuf_tab%MSEGTYP24 ,inod_pxfem ,
646 3 x ,ms_ply ,wagap ,itab ,
647 4 intbuf_tab%ISEG_PXFEM ,intbuf_tab%ISEG_PLY,intbuf_tab%STFM)
648 ENDIF
649
650
651
652 DEALLOCATE(index2)
653 RETURN
if(complex_arithmetic) id
subroutine i_corpfit3(jlt, stf, stfn, stif, nsn, cand_e, cand_n, nin, igsti, kmin, kmax, inacti, ncfit, tncy, iknon)
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 i24dst3(jlt, cand_n, cand_e, cn_loc, ce_loc, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, vx1, vx2, vx3, vx4, vxi, vy1, vy2, vy3, vy4, vyi, vz1, vz2, vz3, vz4, vzi, n1, n2, n3, h1, h2, h3, h4, nin, nsn, ix1, ix2, ix3, ix4, nsvg, stif, jlt_new, inacti, mseglo, gaps, gap_nm, kini, irect, irtlm, time_s, subtria, intth, nsms, pene, xx0, yy0, zz0, vx, vy, vz, ixx, mvoisin, pmax_gap, secnd_fr, gap_m, pene_old, stif_old, itriv, itab, cand_t, iedge, nft, penmin, eps0, nm1, nm2, nm3, intply, dgap_nm, icont_i, marge, nsne, ispt2, izero, iknon, penref)
subroutine i24dst3e(jlt, a, x, cand_n, cand_e, mbinflg, iseadd, isedge, nsvg, nin, ixx, stif, jlt_new, inacti, xi, yi, zi, xx, yy, zz, pmax_gap, fskyi, isky, cand_t, fcont, h3d_data)
subroutine i24for3(output, jlt, a, v, ibcc, icodt, fsav, gap, fric, ms, visc, viscf, noint, stfn, itab, cn_loc, stiglo, stifn, stif, fskyi, isky, n1, n2, n3, h1, h2, h3, h4, fcont, pene, ix1, ix2, ix3, ix4, nsvg, ivis2, neltst, ityptst, dt2t, subtria, gapv, inacti, index, niskyfi, kinet, newfront, isecin, nstrf, secfcum, x, irect, ce_loc, mfrot, ifq, frot_p, secnd_fr, alpha0, ibag, icontact, irtlm, viscn, vxi, vyi, vzi, msi, kini, nin, nisub, lisub, addsubs, addsubm, lisubs, lisubm, fsavsub, cand_n, ilagm, icurv, fncont, ftcont, nsn, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, iadm, rcurvi, rcontact, acontact, pcontact, anglmi, padm, intth, phi, fthe, ftheskyi, temp, tempi, rstif, iform, mskyi_sms, iskyi_sms, nsms, cand_n_n, pene_old, stif_old, mbinflg, ilev, igsti, kmin, intply, iply, inod_pxfem, nm1, nm2, nm3, nrebou, irtse, nsne, is2se, is2pt, msegtyp, jtask, isensint, fsavparit, nft, h3d_data, fricc, viscffric, fric_coefs, t2main_sms, intnitsche, forneqsi, iorthfric, fric_coefs2, fricc2, viscffric2, nforth, nfisot, indexorth, indexisot, dir1, dir2, t2fac_sms, f_pfit, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, typsub, inflg_subs, inflg_subm, ninloadp, dgaploadint, s_loadpinter, dist, ixx, interefric, intcarea, parameters, penref, kmax, s_addsubm, s_lisubm, s_typsub, nisubmax, i_stok, nrtm, nrtse, nsnr)
subroutine i24gap_pxfem(nrtm, irect, cand_e, gap_nm, mvoisin, nvoisin, msegtyp, inod_pxfem, x, ms_ply, wagap, itab, iseg_pxfem, iseg_ply, stfm)
subroutine i24iply_pxfem(jlt, cand_e, msegtyp, ix1, ix2, ix3, ix4, pene, ms_ply, inod_pxfem, iply, itab)
subroutine impl_sav(jlt, cand_n, cand_e, irtlm, stif, pene, subtria, ns_imp, ne_imp, ind_imp, num_imp, jlt_new, nsv, subtria_old, mseglo, nsn, nin, nrtm)
subroutine i24cdcor3(jlt, index, cand_e, cand_n, cand_t, cand_e_n, cand_n_n, cand_t_n, iedge)
subroutine impl_sav0(jlt, cand_n, subtria_old, irtlm, nsn, nin)
subroutine impl_sav1(jlt, cand_n, cand_e, irtlm, stif, pene, subtria, ns_imp, ne_imp, ind_imp, ii_stok, n1, n2, n3, h1, h2, h3, h4, nj_imp, hj_imp, stif_imp, nin, nsn)
subroutine sum_6_float_sens(f, a, b, c, jft, jlt, f6, d, e, g, isensint)
subroutine i24cor3(x, irect, nsv, cand_e, cand_n, stf, stfn, gapv, igap, gap, gap_s, gap_m)
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)