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