85
86
87
88 USE timer_mod
89 USE elbufdef_mod
91 USE intbufdef_mod
92 USE multi_fvm_mod
94 USE intbuf_fric_mod
98 USE sensor_mod
100 USE interfaces_mod
103
104
105
106#include "implicit_f.inc"
107#include "comlock.inc"
108
109
110
111#include "com01_c.inc"
112#include "com04_c.inc"
113#include "com08_c.inc"
114#include "task_c.inc"
115#include "param_c.inc"
116#include "warn_c.inc"
117#include "units_c.inc"
118#include "parit_c.inc"
119#include "impl1_c.inc"
120#include "timeri_c.inc"
121#include "tabsiz_c.inc"
122
123
124
125 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
126 INTEGER ,INTENT(IN) :: NSENSOR
127 INTEGER NELTST,ITYPTST,NEWFRONT(*),NSTRF(*),
128 . IRLEN20, ISLEN20, IRLEN20T, ISLEN20T,
129 . IRLEN20E, ISLEN20E,INT18ADD(*),NCONT,,SFBSAV6,IGROUPS(NUMELS)
130 INTEGER IPARI(NPARI,*), ICODT(*),ITAB(*),
131 . ISKY(*), JTASK, NISKYFI(*),ICONTACT(*),
132 . IPARG(NPARG,*),INOD_PXFEM(*),(NLOADP_HYD_INTER,*)
133
134 INTEGER, TARGET :: FR_I18(NSPMD+2,*)
135 INTEGER, TARGET :: KINET(*)
136 INTEGER IAD_ELEM(2,*),FR_ELEM(*), NISKYFIE(*)
137 INTEGER NUM_IMP(*),NS_IMP(*),NE_IMP(*),IND_IMP(*),NT_IMP
138 INTEGER IXS(*) ,IXS16(*) ,IXS20(*)
139 INTEGER WEIGHT(*), ISKYI_SMS(*), NODNX_SMS(*), NODGLOB(*), NPC(*)
140 INTEGER INDEXCONT(*),TAGCONT(*),
141 . IPARSENS,NISUB,I,NISUBMAX,
142 . NB25_CANDT(PARASIZ),NB25_IMPCT(PARASIZ),
143 . NB25_DST1(PARASIZ) ,NB25_DST2(PARASIZ)
144 INTEGER KXIG3D(NIXIG3D,*),IXIG3D(*),IGEO(NPROPGI,*),T2MAIN_SMS(6,*)
145 INTEGER , INTENT(IN) :: S_LOADPINTER
146 INTEGER , INTENT(IN) :: KLOADPINTER(NINTER+1),LOADPINTER(S_LOADPINTER),
147 . LOADP_HYD_INTER(NLOADP_HYD)
148 INTEGER ,INTENT(IN) :: NODADT_THERM
149 my_real ,
intent(in) :: theaccfact
150 my_real ,
INTENT(IN) :: dgaploadint(s_loadpinter)
152 . eminx(*)
154 . a(*), fsav(nthvki,*) ,ms0(*),
155 . stifn(*), tf(*),fskyi(lskyi,nfskyi),vr(3,*),fcont(3,*),
156 . secfcum(7,numnod,nsect),
157 . viscn(*), fncont(3,*),ftcont(3,*),rcontact(*),temp(*),
158 . ftheskyi(lskyi),pm(npropm,*),fthe(*),
159 . acontact(*), pcontact(*), mskyi_sms(*),
160 . fcontg(3,*),fncontg(3,*),ftcontg(3,*),wa(*),
161 . qfricint(*),ms_ply(*),wagap(*),condn(*),condnskyi(lskyi),
162 . wige(*),knot(*),pskids(*),forneqs(3,*),knotlocpc(*),knotlocel(*),
163 . apinch(3,*),stifpinch(*),t2fac_sms(*)
164 my_real,
TARGET :: x(3*numnod),v(3*numnod),ms(numnod),xcell(3,sxcell)
165 TYPE(INTSTAMP_DATA) INTSTAMP(*)
166 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
167 DOUBLE PRECISION FBSAV6(12,6,SFBSAV6)
168 INTEGER ISENSINT(NISUBMAX+1,NINTER)
169 TYPE(MULTI_FVM_STRUCT), INTENT(INOUT), TARGET :: MULTI_FVM
170 TYPE(H3D_DATABASE) :: H3D_DATA
171 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECTIVITY
172 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR) :: SENSOR_TAB
173 TYPE (INTERFACES_) ,INTENT(INOUT):: INTERFACES
174 TYPE(array_type), DIMENSION(NINTER), INTENT(in) :: XCELL_REMOTE
175
176 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
177
178
179
180 INTEGER N, LINDMAX,IAD,IDUM,NRTMDIM, NI18,
181 . IAD17, IGN, IGE, NME, NMES, ISTAMP,NN1,NN2,j,ISENS
182
183 INTEGER NB_JLT(PARASIZ),NB_JLT_NEW(PARASIZ),NB_STOK_N(PARASIZ),NTH
184 INTEGER ISU1, NBRIC, II, IBRIC, INOD, NODEID, INTEREFRIC
185 SAVE nb_jlt,nb_jlt_new,nb_stok_n
187 . pct,pct1,pct2, ts, bid
188
189 INTEGER, DIMENSION(:), ALLOCATABLE, TARGET :: KINETE
190 my_real,
DIMENSION(:),
ALLOCATABLE,
TARGET :: xe,ve,mse
191 my_real,
DIMENSION(:),
POINTER :: ptr_x,ptr_v,ptr_ms
192 INTEGER, DIMENSION(:), POINTER :: PTR_KINET
193 INTEGER :: INACTI
194 LOGICAL :: M151_ALLOC
195 SAVE xe,ve,mse, kinete,m151_alloc
196 INTEGER :: NTY
197
198 bid = zero
199
200
201
202 IF (debug(3)>=1.AND.ncycle==0) THEN
203 nb_jlt(jtask) = 0
204 nb_jlt_new(jtask) = 0
205 nb_stok_n(jtask) = 0
206 ENDIF
207
208 ni18 = 0
209 iad17 = 1
210
211 IF( multi_fvm%IS_INT18_LAW151 ) THEN
212 CALL int18_law151_nsv_shift(
'+',jtask-1,nthread,multi_fvm,ipari,interfaces%INTBUF_TAB,npari,ninter,numnod)
214 ENDIF
215
216 IF (impl_s==1) iad=1
217 DO n=1,ninter
218 IF(imonm > 0 ) THEN
219
221
222 ENDIF
223
224 nty =ipari(7,n)
225
226 lindmax = ipari(18,n)*ipari(23,n)
227 IF(jtask == 1) THEN
228 IF(int18add(ninter+1) >= 0) THEN
229 int18add(n+1) = int18add(n)
230 ENDIF
231 ENDIF
232
233 isens = 0
234 IF(nty == 7.OR.nty == 11.OR.nty == 21.OR.nty == 24.OR.nty == 25)
235 . isens = ipari(64,n)
236 IF (isens > 0) THEN
237 ts = sensor_tab(isens)%TSTART
238 ELSE
239 ts = tt
240 ENDIF
241 interefric = h3d_data%N_CSE_FRIC_INTER (n)
242
243 nth = n
244
245 IF (ipari(71,n)>0) nth = ipari(71,n)
246
247
248 IF((nty == 7.AND.tt>=ts).OR.nty == 17) THEN
249
250 IF(ipari(22,n)==7)THEN
251 nrtmdim=ipari(4,n)
252 ni18 = ni18 + 1
253 IF(int18add(ninter+1) >= 0.and.jtask == 1
254 . .and.ipari(34,n)==-2)THEN
255 int18add(n+1) = int18add(n) + lindmax
256 ENDIF
257 ELSEIF(ipari(44,n)/=0)THEN
258 nrtmdim=ipari(4,n)
259 ELSE
260 nrtmdim=0
261 END IF
262
263 nn1 = ninter+nrwall+nrbody+nsect+njoint
264 . +nvolu+nrbag+nfxbody+1
265 nn2 = ninter+nrwall+nrbody+nsect+njoint+1
266
267 IF(interfaces%INTBUF_TAB(nTHEN
268 ALLOCATE(xe(3*(numnod+interfaces%INTBUF_TAB(n)%S_NIGE)))
269 xe(1:3*numnod) = x(1:3*numnod)
270 xe(3*numnod+1:3*(numnod+interfaces%INTBUF_TAB(n)%S_NIGE)) =
271 * interfaces%INTBUF_TAB(n)%XIGE(1:3*interfaces%INTBUF_TAB(n)%S_NIGE)
272 ALLOCATE(ve(3*(numnod+interfaces%INTBUF_TAB(n)%S_NIGE)))
273 ve(1:3*numnod) = v(1:3*numnod)
274 ve(3*numnod+1:3*(numnod+interfaces%INTBUF_TAB(n)%S_NIGE)) =
275 * interfaces%INTBUF_TAB(n)%VIGE(1:3*interfaces%INTBUF_TAB(n)%S_NIGE)
276 ALLOCATE(mse(numnod+interfaces%INTBUF_TAB(n)%S_NIGE))
277 mse(1:numnod) = ms(1:numnod)
278 mse(numnod+1:numnod+interfaces%INTBUF_TAB(n)%S_NIGE) =
279 * interfaces%INTBUF_TAB(n)%MASSIGE(1:interfaces%INTBUF_TAB(n)%S_NIGE)
280 ptr_x => xe
281 ptr_v => ve
282 ptr_ms => mse
283 ptr_kinet => kinet(1:numnod)
284 ELSEIF (multi_fvm%IS_USED .AND. ipari(22,n) == 7) THEN
285 ptr_x => multi_fvm%X_APPEND
286 ptr_v => multi_fvm%V_APPEND
287 ptr_ms => multi_fvm%MASS_APPEND
288 ptr_kinet => multi_fvm%KINET_APPEND
290 ELSE
291 ptr_x => x
292 ptr_v => v
293 ptr_ms => ms
294 ptr_kinet => kinet(1:numnod)
295 ENDIF
296
297 IF(impl_s /= 1)THEN
299 1 ipari ,ptr_x ,a ,ale_connectivity,xcell ,
300 2 icodt ,fsav(1,nth) ,ptr_v ,ptr_ms ,dt2t ,
301 3 neltst ,ityptst ,itab ,stifn ,fskyi ,
302 4 isky ,fcont ,n ,lindmax ,ptr_kinet ,
303 5 jtask ,nb_jlt(jtask ) ,nb_jlt_new
304 6 niskyfi(n) ,newfront(n) ,nstrf ,secfcum ,igroups ,
305 7 icontact ,viscn ,idum ,
306 9 idum ,idum ,idum ,fsav(1,nn1) ,nrtmdim ,
307 a igrbric ,
308 b eminx ,ixs ,ixs16 ,ixs20 ,fncont ,
309 c ftcont ,iad_elem ,fr_elem ,rcontact ,acontact ,
310 d pcontact ,temp ,fthe ,ftheskyi ,
311 e pm ,iparg ,iad17 ,mskyi_sms ,iskyi_sms ,
312 f nodnx_sms ,ms0 ,qfricint ,npc ,tf ,
313 g condn ,condnskyi ,interfaces%INTBUF_TAB(n),nodadt_therm ,theaccfact ,
314 h fbsav6 ,isensint(1,n) ,sfbsav6 ,ixig3d
315 i kxig3d ,wige ,knot
316 j h3d_data ,interfaces%INTBUF_FRIC_TAB,knotlocpc ,knotlocel ,jtask ,
317 k tagncont ,kloadpinter ,loadpinter ,loadp_hyd_inter ,dgaploadint ,
318 l s_loadpinter ,interefric ,xcell_remote(n)%SIZE_MY_REAL_ARRAY_1D,xcell_remote(n)%MY_REAL_ARRAY_1D)
319 ELSE
321 1 ipari ,ptr_x
322 2 icodt ,fsav(1,nth) ,ptr_v ,ptr_ms ,dt2t ,
323 3 neltst ,ityptst ,itab ,stifn ,fskyi ,
324 4 isky ,fcont ,n ,lindmax ,ptr_kinet ,
325 5 jtask ,nb_jlt(jtask) ,nb_jlt_new(jtask) ,nb_stok_n(jtask),elbuf_tab ,
326 6 niskyfi(n) ,newfront(n) ,nstrf ,secfcum ,igroups ,
327 7 icontact ,viscn ,num_imp(n) ,
328 9 ns_imp(iad),ne_imp(iad) ,ind_imp(iad) ,fsav(1,nn1) ,nrtmdim ,
329 a igrbric ,
330 b eminx ,ixs ,ixs16 ,ixs20 ,fncont ,
331 c ftcont ,iad_elem ,fr_elem ,rcontact ,acontact ,
332 d pcontact ,temp ,fthe ,ftheskyi ,
333 e pm ,iparg ,iad17 ,mskyi_sms ,iskyi_sms ,
334 f nodnx_sms ,ms0 ,qfricint ,npc ,tf ,
335 g condn ,condnskyi ,interfaces%INTBUF_TAB(n),nodadt_therm,theaccfact ,
336 h fbsav6 ,isensint(1,n) ,sfbsav6 ,ixig3d ,
337 i kxig3d ,wige ,knot ,igeo ,multi_fvm,
338 j h3d_data ,interfaces%INTBUF_FRIC_TAB,knotlocpc ,knotlocel ,jtask ,
339 k tagncont ,kloadpinter ,loadpinter ,loadp_hyd_inter ,dgaploadint ,
340 l s_loadpinter,interefric ,xcell_remote(n)%SIZE_MY_REAL_ARRAY_1D,xcell_remote(n)%MY_REAL_ARRAY_1D)
341 iad=iad+num_imp(n)
342 END IF
343 IF(nty == 17 .AND. ipari(33,n) == 0)THEN
344 ign =ipari(36,n)
345 ige =ipari(34,n)
346 nmes =igrbric(ign)%NENTITY
347 nme =igrbric(ige)%NENTITY
348 iad17 = iad17+6*(nme+nmes)
349 END IF
350 IF(interfaces%INTBUF_TAB(n)%S_NIGE/=0) THEN
351 DEALLOCATE(xe,ve,mse)
352 ENDIF
353
354 ELSEIF(nty==10)THEN
355
356
357 IF(impl_s/=1)THEN
359 1 ipari(1,n),x ,a ,
360 2 icodt ,fsav(1,n) ,v ,ms ,dt2t ,
361 3 neltst ,ityptst ,itab ,stifn ,fskyi ,
362 4 isky ,fcont ,lindmax ,
363 5 jtask,nb_jlt(jtask),nb_jlt_new(jtask),nb_stok_n(jtask),
364 6 niskyfi(n),nstrf , secfcum ,viscn ,n ,
365 . fsav(1,ninter+nrwall+nrbody+nsect+njoint+nvolu+nrbag+nfxbody) ,
366 9 idum ,idum ,idum ,idum ,fncont ,
367 a ftcont ,mskyi_sms ,iskyi_sms ,nodnx_sms ,
368 b icontact ,interfaces%INTBUF_TAB(n),fbsav6,isensint(1,n),sfbsav6 ,
369 c h3d_data ,nodadt_therm)
370 ELSE
372 1 ipari(1,n),x ,a ,
373 2 icodt ,fsav(1,n) ,v ,ms ,dt2t ,
374 3 neltst ,ityptst ,itab ,stifn ,fskyi ,
375 4 isky ,fcont ,lindmax ,
376 5 jtask,nb_jlt(jtask),nb_jlt_new(jtask),nb_stok_n(jtask),
377 6 niskyfi(n),nstrf , secfcum ,viscn ,n ,
378 . fsav(1,ninter+nrwall+nrbody+nsect+njoint+nvolu+nrbag+nfxbody) ,
379 9 num_imp(n),ns_imp(iad) ,ne_imp(iad) ,ind_imp(iad),fncont ,
380 a ftcont ,mskyi_sms ,iskyi_sms ,nodnx_sms ,
381 b icontact ,interfaces%INTBUF_TAB(n),fbsav6,isensint(1,n),sfbsav6 ,
382 c h3d_data ,nodadt_therm)
383
384 iad=iad+num_imp(n)
385 ENDIF
386
387 ELSEIF(nty==11.AND.tt>=ts)THEN
388
389
390 nn1 = ninter+nrwall+nrbody+nsect+njoint
391 . +nvolu+nrbag+nfxbody+1
392
393 IF(impl_s/=1)THEN
395 1 ipari(1,n) ,x ,a ,
396 2 icodt ,fsav(1,nth) ,v ,ms ,dt2t ,
397 3 neltst ,ityptst ,itab ,stifn ,fskyi ,
398 4 isky ,fcont ,n ,lindmax ,jtask ,
399 5 nb_jlt(jtask),nb_jlt_new(jtask),nb_stok_n(jtask) ,niskyfi(n) ,
400 6 newfront(n),nstrf,secfcum, viscn ,idum ,idum ,
401 7 idum ,mskyi_sms ,iskyi_sms ,nodnx_sms,icontact ,
402 8 interfaces%INTBUF_TAB(n),pm ,temp , fthe ,ftheskyi,
403 9 npc , tf ,condn ,condnskyi ,fbsav6 ,
404 a isensint(1,n),sfbsav6 ,fsav(1,nn1) ,h3d_data ,interfaces%INTBUF_FRIC_TAB,
405 b jtask ,tagncont ,kloadpinter ,loadpinter,loadp_hyd_inter,
406 c dgaploadint,s_loadpinter ,nodadt_therm)
407 ELSE
409 1 ipari(1,n) ,x ,a ,
410 2 icodt ,fsav(1,nth) ,v ,ms ,dt2t ,
411 3 neltst ,ityptst ,itab ,stifn ,fskyi ,
412 4 isky ,fcont ,n ,lindmax ,jtask ,
413 5 nb_jlt(jtask),nb_jlt_new(jtask),nb_stok_n(jtask) ,niskyfi(n) ,
414 6 newfront(n),nstrf,secfcum, viscn ,num_imp(n),ns_imp(iad),
415 7 ne_imp(iad),mskyi_sms ,iskyi_sms ,nodnx_sms,icontact ,
416 8 interfaces%INTBUF_TAB(n),pm ,temp , fthe ,ftheskyi ,
417 9 npc , tf ,condn ,condnskyi ,fbsav6 ,
418 a isensint(1,n),sfbsav6 ,fsav(1,nn1) ,h3d_data ,interfaces%INTBUF_FRIC_TAB,
419 b jtask ,tagncont ,kloadpinter ,loadpinter,loadp_hyd_inter,
420 c dgaploadint,s_loadpinter ,nodadt_therm)
421 ENDIF
422
423 ELSEIF(nty == 20) THEN
424
425 IF(ipari(22,n)==7)THEN
426 nrtmdim=ipari(4,n)
427 ni18 = ni18 + 1
428 ELSEIF(ipari(44,n)/=0)THEN
429 nrtmdim=ipari(4,n)
430 ELSE
431 nrtmdim=0
432 END IF
433
434 nn1 = ninter+nrwall+nrbody+nsect+njoint
435 . +nvolu+nrbag+nfxbody+1
436 nn2 = ninter+nrwall+nrbody+nsect+njoint+1
437
438 IF(impl_s == 0) iad=1
439
441 1 ipari(1,n),x ,a ,
442 2 icodt ,fsav(1,n) ,v ,ms ,dt2t ,
443 3 neltst ,ityptst ,itab ,stifn ,fskyi ,
444 4 isky ,fcont ,n ,lindmax ,kinet ,
445 5 jtask ,nb_jlt(jtask),nb_jlt_new(jtask) ,nb_stok_n(jtask),
446 6 niskyfi(n),newfront(n) , nstrf ,secfcum ,icontact ,
447 7 viscn ,num_imp(n) ,
448 9 ns_imp(iad),ne_imp(iad) ,ind_imp(iad) ,fsav(1,nn1),nrtmdim ,
449 a fsav(1,nn2),
450 b eminx ,ixs ,ixs16 ,ixs20 ,fncont ,
451 c ftcont ,iad_elem ,fr_elem ,rcontact ,acontact ,
452 d pcontact ,temp ,fthe ,ftheskyi ,
453 e pm ,iparg ,iad17 ,weight ,niskyfie(n) ,
454 f irlen20 ,islen20 ,irlen20t ,islen20t ,irlen20e ,
455 g islen20e ,mskyi_sms ,iskyi_sms ,nodnx_sms ,npc ,
456 h tf ,interfaces%INTBUF_TAB(n),fbsav6,isensint(1,n) ,sfbsav6 ,
457 i h3d_data ,theaccfact)
458
459 IF(impl_s == 1) iad=iad+num_imp(n)
460
461
462 ELSEIF(nty == 21.AND.tt>=ts) THEN
463
464 IF(ipari(44,n)/=0)THEN
465 nrtmdim=ipari(4,n)
466 ELSE
467 nrtmdim=0
468 END IF
469
470 istamp=ipari(43,n)
472 1 ipari ,interfaces%INTBUF_TAB(n) ,x ,a ,
473 2 icodt ,fsav(1,n) ,v ,ms ,itab ,
474 3 stifn ,fskyi ,isky ,fcontg ,n ,
475 4 lindmax ,
476 + jtask ,nb_jlt(jtask),nb_jlt_new(jtask),nb_stok_n(jtask),
477 5 nstrf ,secfcum ,icontact ,viscn ,idum ,
478 6 idum ,idum ,idum ,nrtmdim ,fncontg ,
479 7 ftcontg ,rcontact ,acontact ,pcontact ,intstamp(istamp),
480 8 weight ,temp ,fthe ,ftheskyi ,mskyi_sms ,
481 9 iskyi_sms ,nodnx_sms ,nodglob ,npc ,tf ,
482 a qfricint ,ncont ,indexcont ,tagcont ,condn ,
483 b condnskyi ,dt2t ,neltst ,ityptst ,kinet ,
484 c fbsav6 ,isensint(1,n),sfbsav6 ,niskyfi(n) ,h3d_data ,
485 d pskids ,tagncont ,kloadpinter,loadpinter ,loadp_hyd_inter,
486 e dgaploadint,s_loadpinter,interefric ,nodadt_therm,theaccfact ,
487 f interfaces%INTBUF_FRIC_TAB)
488
489
490
491 ELSEIF(nty == 22) THEN
492
493 nrtmdim=ipari(4,n)
494
495 nn1 = ninter+nrwall+nrbody+nsect+njoint
496 . +nvolu+nrbag+nfxbody+1
497 nn2 = ninter+nrwall+nrbody+nsect+njoint+1
499 1 ipari ,interfaces%INTBUF_TAB(n) ,x ,a ,
500 2 icodt ,fsav(1,n) ,v ,ms ,dt2t ,
501 3 neltst ,ityptst ,itab ,stifn ,fskyi ,
502 4 isky ,fcont ,n ,lindmax ,kinet ,
503 5 jtask ,nb_jlt(jtask) ,nb_jlt_new(jtask) ,nb_stok_n(jtask) ,
504 6 niskyfi(n) ,newfront(n) ,nstrf ,secfcum ,icontact ,
505 7 viscn ,idum ,
506 9 idum ,idum ,idum ,fsav(1,nn1) ,nrtmdim ,
507 a fsav(1,nn2) ,igrbric ,
508 b eminx ,ixs ,ixs16 ,ixs20 ,fncont ,
509 c ftcont ,iad_elem ,fr_elem ,rcontact ,acontact ,
510 d pcontact ,temp ,fthe ,ftheskyi ,
511 e pm ,iparg ,iad17 ,mskyi_sms ,iskyi_sms ,
512 f nodnx_sms ,ms0 ,elbuf_tab ,nv46 ,fbsav6 ,
513 g isensint(1,n),sfbsav6 ,h3d_data )
514
515
516 ELSEIF(nty == 23) THEN
517
518 IF(ipari(44,n)/=0)THEN
519 nrtmdim=ipari(4,n)
520 ELSE
521 nrtmdim=0
522 END IF
523
525 1 ipari ,interfaces%INTBUF_TAB(n) ,x ,a ,
526 2 icodt ,fsav(1,n) ,v ,ms ,itab ,
527 3 stifn ,fskyi ,isky ,fcont ,n ,
528 4 lindmax ,
529 + jtask ,nb_jlt(jtask),nb_jlt_new(jtask),nb_stok_n(jtask),
530 5 nstrf ,secfcum ,icontact ,viscn ,idum ,
531 6 idum ,idum ,idum ,nrtmdim ,fncont ,
532 7 ftcont ,rcontact ,acontact ,pcontact ,kinet ,
533 8 weight ,mskyi_sms ,iskyi_sms ,nodnx_sms ,nodglob ,
534 9 npc ,tf ,niskyfi(n) ,newfront(n),wa ,
535 a fbsav6,isensint(1,n) ,sfbsav6 ,dt2t ,h3d_data )
536
537 ELSEIF(nty == 24.AND.tt>=ts) THEN
538
539 IF(ipari(44,n)/=0)THEN
540 nrtmdim=ipari(4,n)
541 ELSE
542 nrtmdim=0
543 END IF
544
545 nn1 = ninter+nrwall+nrbody+nsect+njoint
546 . +nvolu+nrbag+nfxbody+1
547 nn2 = ninter+nrwall+nrbody+nsect+njoint+1
548 IF(impl_s/=1)THEN
550 1 ipari ,interfaces%INTBUF_TAB(n),x ,a ,
551 2 icodt ,fsav(1,n) ,v ,ms ,dt2t ,
552 3 neltst ,ityptst ,itab ,stifn ,fskyi ,
553 4 isky ,fcont ,n ,lindmax ,kinet ,
554 5 jtask ,nb_jlt(jtask),nb_jlt_new(jtask),nb_stok_n(jtask),
555 6 niskyfi(n),newfront(n) , nstrf ,secfcum ,icontact ,
556 7 viscn ,idum ,
557 9 idum ,idum ,idum ,fsav(1,nn1) ,nrtmdim ,
558 a fsav(1,nn2),
559 b eminx ,ixs ,ixs16 ,ixs20 ,fncont ,
560 c ftcont ,iad_elem ,fr_elem ,rcontact ,acontact ,
561 d pcontact ,temp ,fthe ,ftheskyi ,
562 e pm ,iparg ,iad17 ,mskyi_sms ,iskyi_sms ,
563 f nodnx_sms ,ms0 ,inod_pxfem ,ms_ply ,wagap ,
564 g fbsav6 ,isensint(1,n),
565 h sfbsav6 ,h3d_data ,interfaces%INTBUF_FRIC_TAB ,t2main_sms,forneqs ,
566 i t2fac_sms ,npc ,tf ,tagncont ,kloadpinter ,
567 j loadpinter ,loadp_hyd_inter,dgaploadint,s_loadpinter,interefric,
568 k interfaces,nisubmax)
569
570 ELSE
572 1 ipari ,interfaces%INTBUF_TAB(n),x ,a ,
573 2 icodt ,fsav(1,n) ,v ,ms ,dt2t ,
574 3 neltst ,ityptst ,itab ,stifn ,fskyi ,
575 4 isky ,fcont ,n ,lindmax ,kinet ,
576 5 jtask ,nb_jlt(jtask),nb_jlt_new(jtask) ,nb_stok_n(jtask),
577 6 niskyfi(n),newfront(n) , nstrf ,secfcum ,icontact ,
578 7 viscn ,num_imp(n) ,
579 9 ns_imp(iad),ne_imp(iad) ,ind_imp(iad) ,fsav(1,nn1),nrtmdim ,
580 a fsav(1,nn2),
581 b eminx ,ixs ,ixs16 ,ixs20 ,fncont ,
582 c ftcont ,iad_elem ,fr_elem ,rcontact ,acontact ,
583 d pcontact ,temp ,fthe ,ftheskyi ,
584 e pm ,iparg ,iad17 ,mskyi_sms ,iskyi_sms ,
585 f nodnx_sms ,ms0 ,inod_pxfem ,ms_ply ,wagap ,
586 g fbsav6 ,isensint(1,n),
587 h sfbsav6 ,h3d_data ,interfaces%INTBUF_FRIC_TAB ,t2main_sms,forneqs ,
588 i t2fac_sms ,npc ,tf ,tagncont ,kloadpinter ,
589 j loadpinter ,loadp_hyd_inter,dgaploadint,s_loadpinter,interefric,
590 k interfaces,nisubmax)
591 iad=iad+num_imp(n)
592 END IF
593
594 ELSEIF(nty == 25.AND.tt>=ts) THEN
595
596 IF(ipari(44,n)/=0)THEN
597 nrtmdim=ipari(4,n)
598 ELSE
599 nrtmdim=0
600 END IF
601
602 nn1 = ninter+nrwall+nrbody+nsect+njoint
603 . +nvolu+nrbag+nfxbody+1
604 nn2 = ninter+nrwall+nrbody+nsect+njoint+1
605
606 lindmax = interfaces%INTBUF_TAB(n)%I_STOK(2)
607 IF(ipari(58,n)/=0) lindmax=
max(lindmax,
608 . interfaces%INTBUF_TAB(n)%I_STOK_E(1),interfaces%INTBUF_TAB(n)%I_STOK_E(2))
610 1 ipari ,interfaces%INTBUF_TAB(n),x ,a ,
611 2 icodt ,fsav(1,n) ,v ,ms ,dt2t ,
612 3 neltst ,ityptst ,itab ,stifn ,fskyi ,
613 4 isky ,fcont ,n ,lindmax ,kinet ,
614 5 jtask ,nb25_impct(jtask),
615 6 niskyfi(n),newfront(n) , nstrf ,secfcum ,icontact ,
616 7 viscn ,idum ,
617 9 idum ,idum ,idum ,fsav(1,nn1) ,nrtmdim ,
618 a fsav(1,nn2),
619 b eminx ,ixs ,ixs16 ,ixs20 ,fncont ,
620 c ftcont ,iad_elem ,fr_elem ,rcontact ,acontact ,
621 d pcontact ,temp ,fthe ,ftheskyi ,
622 e pm ,iparg ,iad17 ,mskyi_sms ,iskyi_sms ,
623 f nodnx_sms ,ms0 ,inod_pxfem ,ms_ply ,wagap ,
624 g fbsav6 ,isensint(1,n),nodadt_therm,theaccfact ,
625 h sfbsav6 ,h3d_data ,interfaces%INTBUF_FRIC_TAB,niskyfie(n),
626 i apinch ,stifpinch ,npc ,tf , condn ,
627 j condnskyi ,qfricint ,tagncont ,kloadpinter,loadpinter ,
628 k loadp_hyd_inter,dgaploadint,s_loadpinter,interefric,interfaces)
629
630 IF(impl_s == 1) iad=iad+num_imp(n)
631
632 ELSE
633
634 ENDIF
635
636
637 IF(imonm > 0) THEN
638
640
641 ENDIF
642 ENDDO
643
644
645 IF( multi_fvm%IS_INT18_LAW151 ) THEN
647 CALL int18_law151_nsv_shift(
'-',jtask-1,nthread,multi_fvm,ipari,interfaces%INTBUF_TAB,npari,ninter,numnod)
648 ENDIF
649
650 IF (debug(3)>=1) THEN
651 IF(mod(ncycle+1,debug(3))==0)THEN
652 IF (nb_jlt(jtask)==0) THEN
653 pct = hundred
654 pct1= zero
655 ELSE
656 pct = hundred*nb_jlt_new(jtask)/nb_jlt(jtask)
657 pct1 = hundred - hundred*nb_stok_n(jtask)/nb_jlt(jtask)
658 ENDIF
659#include "lockon.inc"
660 WRITE(istdo,
661 . '(A,I6,A,I4,A,I4,A,I10,A,I10,2X,F5.2,A,A,I10,4X,F5.2,A)')
662 . ' NCYCLE = ',ncycle,
663 . ' NSPMD = ',ispmd+1,
664 . ' ITASK = ',jtask,
665 . ' CANDIDATS = ',nb_jlt(jtask),
666 . ' OPT CAND = ',nb_stok_n(jtask),pct1,'%',
667 . ' IMPACTS = ',nb_jlt_new(jtask),pct,'%'
668#include "lockoff.inc"
669 nb_jlt_new(jtask) = 0
670 nb_jlt(jtask) = 0
671 nb_stok_n(jtask) = 0
672 ENDIF
673
674
675
676 IF(ninter25 /= 0)THEN
677 IF(mod(ncycle+1,debug(3))==0)THEN
678 IF(nb25_candt(1)==0)THEN
679 pct2 = hundred
680 ELSE
681 pct2 = hundred * nb25_dst2(jtask) / nb25_candt(1)
682 END IF
683#include "lockon.inc"
684 WRITE(istdo,
685 . '(A,I6,A,I4,A,I4,A,I10,A,I10,2X,F6.2,A,A,I10,A,I10)')
686 . ' NCYCLE = ',ncycle,
687 . ' NSPMD = ',ispmd+1,
688 . ' ITASK = ',jtask,
689 . ' CANDIDATS = ',nb25_candt(jtask),
690 . ' OPT CAND VS NEW IMPACTS = ',nb25_dst2(jtask),pct2,'%',
691 . ' CAND VS OLD IMPACTS = ',nb25_dst1(jtask),
692 . ' IMPACTS = ',nb25_impct(jtask)
693#include "lockoff.inc"
694
696
697 nb25_impct(jtask) = 0
698 nb25_candt(jtask) = 0
699 nb25_dst1(jtask) = 0
700 nb25_dst2(jtask) = 0
701 ENDIF
702 ENDIF
703
704 ENDIF
705
706 RETURN
subroutine i10mainf(ipari, x, a, icodt, fsav, v, ms, dt2t, neltst, ityptst, itab, stifn, fskyi, isky, fcont, lindmax, jtask, nb_jlt, nb_jlt_new, nb_stok_n, niskyfi, nstrf, secfcum, viscn, nin, fsavsub, num_imp, ns_imp, ne_imp, ind_imp, fncont, ftcont, mskyi_sms, iskyi_sms, nodnx_sms, icontact, intbuf_tab, fbsav6, isensint, dimfb, h3d_data, nodadt_therm)
subroutine i11mainf(timers, ipari, x, a, icodt, fsav, v, ms, dt2t, neltst, ityptst, itab, stifn, fskyi, isky, fcont, nin, lindmax, jtask, nb_jlt, nb_jlt_new, nb_stok_n, niskyfi, newfront, nstrf, secfcum, viscn, num_imp, ns_imp, ne_imp, mskyi_sms, iskyi_sms, nodnx_sms, icontact, intbuf_tab, pm, temp, fthe, ftheskyi, npc, tf, condn, condnskyi, fbsav6, isensint, dimfb, fsavsub, h3d_data, intbuf_fric_tab, itask, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, dgaploadint, s_loadpinter, nodadt_therm)
subroutine i20mainf(timers, ipari, x, a, icodt, fsav, v, ms, dt2t, neltst, ityptst, itab, stifn, fskyi, isky, fcont, nin, lindmax, kinet, jtask, nb_jlt, nb_jlt_new, nb_stok_n, niskyfi, newfront, nstrf, secfcum, icontact, viscn, num_imp, ns_imp, ne_imp, ind_imp, fsavsub, nrtmdim, fsavbag, eminx, ixs, ixs16, ixs20, fncont, ftcont, iad_elem, fr_elem, rcontact, acontact, pcontact, temp, fthe, ftheskyi, pm, iparg, iad17, weight, niskyfie, irlen20, islen20, irlen20t, islen20t, irlen20e, islen20e, mskyi_sms, iskyi_sms, nodnx_sms, npc, tf, intbuf_tab, fbsav6, isensint, dimfb, h3d_data, theaccfact)
subroutine i21mainf(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, intstamp, weight, temp, fthe, ftheskyi, mskyi_sms, iskyi_sms, nodnx_sms, nodglob, npc, tf, qfricint, ncont, indexcont, tagcont, condn, condnskyi, dt2t, neltst, ityptst, kinet, fbsav6, isensint, dimfb, niskyfi, h3d_data, pskids, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, dgaploadint, s_loadpinter, interefric, nodadt_therm, theaccfact, intbuf_fric_tab)
subroutine i22mainf(timers, ipari, intbuf_tab, x, a, icodt, fsav, v, ms, dt2t, neltst, ityptst, itab, stifn, fskyi, isky, fcont, nin, lindmax, kinet, jtask, nb_jlt, nb_jlt_new, nb_stok_n, niskyfi, newfront, nstrf, secfcum, icontact, viscn, num_imp, ns_imp, ne_imp, ind_imp, fsavsub, nrtmdim, fsavbag, igrbric, eminx, ixs, ixs16, ixs20, fncont, ftcont, iad_elem, fr_elem, rcontact, acontact, pcontact, temp, fthe, ftheskyi, pm, iparg, iad17, mskyi_sms, iskyi_sms, nodnx_sms, ms0, elbuf_tab, nv46, fbsav6, isensint, dimfb, 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)
subroutine i24mainf(timers, ipari, intbuf_tab, x, a, icodt, fsav, v, ms, dt2t, neltst, ityptst, itab, stifn, fskyi, isky, fcont, nin, lindmax, kinet, jtask, nb_jlt, nb_jlt_new, nb_stok_n, niskyfi, newfront, nstrf, secfcum, icontact, viscn, num_imp, ns_imp, ne_imp, ind_imp, fsavsub, nrtmdim, fsavbag, eminx, ixs, ixs16, ixs20, fncont, ftcont, iad_elem, fr_elem, rcontact, acontact, pcontact, temp, fthe, ftheskyi, pm, iparg, iad17, mskyi_sms, iskyi_sms, nodnx_sms, ms0, inod_pxfem, ms_ply, wagap, fbsav6, isensint, dimfb, h3d_data, intbuf_fric_tab, t2main_sms, forneqs, t2fac_sms, npc, tf, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, dgaploadint, s_loadpinter, interefric, interfaces, nisubmax)
subroutine i25mainf(timers, ipari, intbuf_tab, x, a, icodt, fsav, v, ms, dt2t, neltst, ityptst, itab, stifn, fskyi, isky, fcont, nin, lindmax, kinet, jtask, nb_impct, niskyfi, newfront, nstrf, secfcum, icontact, viscn, num_imp, ns_imp, ne_imp, ind_imp, fsavsub, nrtmdim, fsavbag, eminx, ixs, ixs16, ixs20, fncont, ftcont, iad_elem, fr_elem, rcontact, acontact, pcontact, temp, fthe, ftheskyi, pm, iparg, iad17, mskyi_sms, iskyi_sms, nodnx_sms, ms0, inod_pxfem, ms_ply, wagap, fbsav6, isensint, nodadt_therm, theaccfact, dimfb, h3d_data, intbuf_fric_tab, niskyfie, apinch, stifpinch, npc, tf, condn, condnskyi, qfricint, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, dgaploadint, s_loadpinter, interefric, interfaces)
subroutine i7mainf(timers, ipari, x, a, ale_connectivity, xcell, icodt, fsav, v, ms, dt2t, neltst, ityptst, itab, stifn, fskyi, isky, fcont, nin, lindmax, kinet, jtask, nb_jlt, nb_jlt_new, nb_stok_n, elbuf_tab, niskyfi, newfront, nstrf, secfcum, igroups, icontact, viscn, num_imp, ns_imp, ne_imp, ind_imp, fsavsub, nrtmdim, igrbric, eminx, ixs, ixs16, ixs20, fncont, ftcont, iad_elem, fr_elem, rcontact, acontact, pcontact, temp, fthe, ftheskyi, pm, iparg, iad17, mskyi_sms, iskyi_sms, nodnx_sms, ms0, qfricint, npc, tf, condn, condnskyi, intbuf_tab, nodadt_therm, theaccfact, fbsav6, isensint, dimfb, ixig3d, kxig3d, wige, knot, igeo, multi_fvm, h3d_data, intbuf_fric_tab, knotlocpc, knotlocel, itask, tagncont, kloadpinter, loadpinter, loadp_hyd_inter, dgaploadint, s_loadpinter, interefric, s_xcell_remote, xcell_remote)
subroutine int18_law151_nsv_shift(mode, itask, nthread, multi_fvm, ipari, intbuf_tab, npari, ninter, numnod, opt_int_id)
integer, parameter i_main_forces
subroutine int_stoptime(this, event)
subroutine int_startime(this, event)