188
189
190
192 USE matparam_def_mod
195 USE multi_fvm_mod
203 USE group_param_mod
207 USE ebcs_mod
210 USE interfaces_mod
211 USE intbufdef_mod
212 USE init_seatbelt_rbodies_mod
213 USE bcs_mod
214 USE sensor_mod
215 USE random_walk_def_mod
216 USE defaults_mod
218 USE elbufdef_mod
219 USE multimat_param_mod , ONLY : m51_lc0max, m51_ssp0max, m51_tcp_ref, m51_lset_iflg6, m51_iflg6, m51_iloop_nrf
220 USE brokmann_random_def_mod
221 USE glob_therm_mod
222 USE damping_range_init_mod
223 USE eikonal_solver_mod, ONLY : eikonal_solver
224 USE detonation_times_printout_mod , ONLY : detonation_times_printout
225
226
227
228#include "implicit_f.inc"
229
230
231
232#include "mvsiz_p.inc"
233
234
235
236#include "com01_c.inc"
237#include "com08_c.inc"
238#include "com04_c.inc"
239#include "com_xfem1.inc"
240#include "sphcom.inc"
241#include "vect01_c.inc"
242#include "units_c.inc"
243#include "param_c.inc"
244#include "scr03_c.inc"
245#include "scr14_c.inc"
246#include "scr17_c.inc"
247#include "scr23_c.inc"
248#include "tablen_c.inc"
249#include "lagmult.inc"
250#include "scr12_c.inc"
251#include "fxbcom.inc"
252#include "userlib.inc"
253#include "sms_c.inc"
254#include "boltpr_c.inc"
255#include "titr_c.inc"
256#include "tabsiz_c.inc"
257
258
259
260 INTEGER,INTENT(IN) :: SKVOL
261 INTEGER IPARG(NPARG,NGROUP), IXS(NIXS,*), IXQ(NIXQ,*),IXC(NIXC,*),
262 . IGEO(NPROPGI,*), IXT(NIXT,*),IXP(NIXP,*), IXR(NIXR,*),
263 . NPBY(NNPBY,*),LPBY(*),NPBYL(NNPBY,*),LPBYL(*),NPC(*),
264 . ITAB(*), IPART(*),
265 . LAS(*),
266 . IXTG(NIXTG,*),INDEX(*),ITRI(*),IWA(*),KXX(NIXX,*),IXX(*),
267 . KXSP(*) ,IXSP(*) ,NOD2SP(*),ISPCOND(*),ISPSYM(*),ISPTAG(*),
268 . ICODE(*),ISKEW(*),ISKN(LISKN,*), IPM(NPROPMI,*), NSHNOD(*),
269 . PTSHEL(*),PTSH3N(*),PTSOL(*),PTQUAD(*),PTSPH(*),
270 . IXS10(*) ,IXS20(*) ,IXS16(*), SH4TREE(*), SH3TREE(*),
271 . IMERGE2(NUMNOD+1),IADMERGE2(NUMNOD+1),
272 . SLNRBM(*) ,NSLNRBM(*),ITAG(*),ITAGEL(*),IRBE2(*) ,LRBE2(*),
273 . ITAGN(*),
274 . IXR_KJ(5,*), SOL2SPH(*), IRST(*),SH3TRIM(*),KXIG3D(NIXIG3D,*),
275 . IXIG3D(*),IGEO_STACK(*),PERTURB(NPERTURB),
276 . NATIV_SMS(*),PTSPRI(*),PTBEAM(*),PTTRUSS(*),STRSGLOB(*),
277 . STRAGLOB(*),ORTHOGLOB(*),ISIGSH,IYLDINI,KSIGSH3,FAIL_INI(5),
278 . IUSOLYLD,IUSER,IDDLEVEL,NBSUBMAT, TAGPRT_SMS(*),SITAGE,FXB_MATRIX_ADD(4,*),
279 . FXB_LAST_ADRESS(*),PTR_NOPT_FXB,R_SKEW(*), NPTS,KNOD2EL1D(*) ,NOD2EL1D(*),
280 . KNOD2ELC(*),NOD2ELC(*)
281 TYPE(T_EBCS_TAB), INTENT(INOUT) :: EBCS_TAB
282 INTEGER,TARGET :: ITAGE(*)
283 INTEGER,POINTER :: ptr_ITAGE
284 INTEGER NSIGI,NSIGSH,
285 . NSIGS, NSIGSPH, FXBIPM(NBIPM,*), FXBELM(*),NSIGRS,
286 . NUMEL,STAT,
287 . NCTRLMAX,NSIGBEAM,NSIGTRUSS
288 INTEGER,INTENT(IN) :: ILOADP(SIZLOADP,*),SLRBODY
289 INTEGER,INTENT(IN) :: (NPARI,NINTER)
290 my_real,
INTENT(IN) :: facload(lfacload,*)
292 . elbuf(*), ms(*), in(*), v(*), x(*), geo(*),pm(npropm,*),
293 . rby(nrby,*),pld(*),veul(*),skew(lskew,*),fill(*),
294 . thk(*),bufsf(*), vr(3,*),bufmat(*),ptg(3,*),xlas(*),
295 . dtelem(*),mss(*), msq(*),msc(*),mst(*),msp(*),msr(*),
296 . mstg(*),inc(*),rbyl(nrby,*),
297 . inp(*),inr(*),intg(*),
298 . xelemwa(*),
299 . xframe(nxframe,*),spbuf(*),mssx(*),msnf(*),
300 . mssf(*), wma(*),
301 . vns(*) ,vnsx(*) ,stc(*) ,stt(*) ,stp(*) ,str(*) ,
302 . sttg(*) ,stur(*) ,bns(*) ,bnsx(*) ,
303 . volnod(*) ,bvolnod(*) , etnod(*), stifint(*), fxbdep(*),
304 . fxbvit(*), fxbacc(*), fxbrpm(*), fxbsig(*), fxbmod(*),
305 . ins(*), mcp(*),temp(*),rmstifn(*), rmstifr(*),
306 . ms_layer(*),zi_layer(*), mcpc(*), mcptg(*),
307 . mbufel(lbufel,*), mdepl(3*numnod,*),
308 . xrefc(4,3,*),xreftg(3,3,*),xrefs(8,3,*), mssa(*), msrt(*),
309 . kvol(nbsubmat,*),totaddmas,msz2(*),
310 . msig3d(*),knot(*),wige(*),rnoise(*),
311 . sh4ang(*),sh3ang(*),geo_stack(*),stifintr(*),
312 . strc(*),
strr(*),strp(*),strtg(*),sigi(nsigs,*),sigsh(
max(1,nsigsh),*),
313 . sigsp(nsigi,*),sigsph(nsigsph,*),sigrs(nsigrs,*),sigbeam(nsigbeam,*),
314 . sigtruss(nsigtruss,*),totmas, knotlocpc(*),knotlocel(*),vnige(*),bnige(*),
315 . fxbglm(*),fxbcpm(*),fxbcps(*),fxblm(*),fxbfls(*),fxbdls(*),fxb_matrix(*),
316 . rby_iniaxis(7,*),alea(*),dr(sdr)
317
318 my_real,
DIMENSION(NUMNOD*2),
TARGET :: stifn
319 my_real ,
DIMENSION(:),
POINTER :: stifr
320
321 INTEGER NOM_OPT(LNOPT1,*),PTR_NOPT_RBE2,PTR_NOPT_ADM,PTR_NOPT_FUN,IOPT
322 INTEGER FXBNOD(*), FXANI(2,*),ITAGND(*)
323 INTEGER,INTENT(IN) :: NPRELOAD_A
324 INTEGER,INTENT(IN) :: NDAMP_FREQ_RANGE
325 my_real,
INTENT(IN) :: dampr(nrdamp,ndamp)
326 INTEGER,INTENT(IN) :: IBEAM_VECTOR(NUMELP)
327 my_real,
INTENT(IN) :: rbeam_vector(3,numelp)
328 INTEGER,INTENT(IN) :: IKINE(3*NUMNOD)
329
330 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
331 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP,NXEL) :: XFEM_TAB
332 TYPE (STACK_PLY) :: STACK
333 TYPE (MULTI_FVM_STRUCT) :: MULTI_FVM
334 TYPE (INIMAP1D_STRUCT), DIMENSION(NINIMAP1D), INTENT(INOUT) :: INIMAP1D
335 TYPE (INIMAP2D_STRUCT), DIMENSION(NINIMAP2D), INTENT(INOUT) :: INIMAP2D
336 TYPE (FUNC2D_STRUCT), DIMENSION(NFUNC2D), INTENT(IN) :: FUNC2D
337 TYPE (FVM_INIVEL_STRUCT), INTENT(IN) :: FVM_INIVEL(*)
338 TYPE (NLOCAL_STR_) :: NLOC_DMG
339 TYPE (GROUP_PARAM_), DIMENSION(NGROUP) :: GROUP_PARAM_TAB
340 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(INOUT) :
341
342 TYPE (GROUP_) , DIMENSION(NGRNOD) :: IGRNOD
343 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
344 TYPE (GROUP_) , DIMENSION(NGRQUAD) :: IGRQUAD
345 TYPE (GROUP_) , DIMENSION(NGRSHEL) :: IGRSH4N
346 TYPE (GROUP_) , DIMENSION(NGRSH3N) :: IGRSH3N
347 TYPE (GROUP_) , DIMENSION(NGRPART) :: IGRPART
348 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
349 TYPE (ADMAS_) , DIMENSION(NODMAS) :: IPMAS
350 TYPE (INIVOL_STRUCT_) , DIMENSION(NUM_INIVOL) :: INIVOL
351 TYPE (DETONATORS_STRUCT_) :: DETONATORS
352 TYPE (DRAPE_) , DIMENSION(NUMELC_DRAPE + NUMELTG_DRAPE):: DRAPE
353 TYPE (DRAPEG_) :: DRAPEG
354 TYPE (t_ale_connectivity), INTENT(INOUT) :: ALE_CONNECTIVITY
355 TYPE (INTBUF_STRUCT_) , INTENT(IN ) :: INTBUF_TAB(NINTER)
356 TYPE (INTERFACES_) , INTENT(INOUT ) :: INTERFACES
357 TYPE (PREL1D_) , INTENT(IN) ,DIMENSION(NPRELOAD_A) :: PRELOAD_A
358 TYPE (SENSORS_) ,INTENT(IN) :: SENSORS
359 TYPE (FAIL_FRACTAL_) ,INTENT(IN) :: FAIL_FRACTAL
360 TYPE (FAIL_BROKMANN_) ,INTENT(IN) :: FAIL_BROKMANN
361 TYPE (DEFAULTS_) ,INTENT(IN) :: DEFAULTS
362 type (glob_therm_) ,intent(inout) :: glob_therm
363
364
365
366
367
368 INTEGER (KIND=8), DIMENSION(:,:), ALLOCATABLE :: I8MI
369 INTEGER NG, NEL, NVC, K, N, M, NSL, NN1, NN2, NN3, I, K0,NV46,
370 . ISPH, J, IG, OFFSET,ISOLNOD,IPROP,IGTYP,
371 . I15A,I15B,I15C,I15D,I15E,I15F,I15G,I15H,I15I,I15J,I15K,I15ATH,
372 . I15L,NC1_OLD, NC2_OLD, NC3_OLD, NC4_OLD,
373 . NC5_OLD, NC6_OLD, NC7_OLD, NC8_OLD,
374 . NC1, NC2, NC3, NC4, NC5, NC6, NC7, NC8,
375 . IINT, ISENS,ITHK, IHBE, JHBE, ILEV,ISH3N,
376 . KK1, KK2, KK3,IADUIX,IADUX ,IADUV ,IADUVR,IADUMS,
377 . IADUIN,IADUSM,IADUSR,IADUMV,IADURV, NUVAR,ICNOD, RBYID,
378 . ADRRPM,ALM,ASIG,NELS,NELC,NELTG,AMOD,NBNO,NME,NML,ARPM,LVSIG,
379 . IFILE,IRCS,NELT,NELP,FXBID, ANOD, IRCM, NSNI, NSN, NMANI, IMIN, IMAX,
380 . NELEMR,CPT_ELTENS,IXFEM,ITG,ISUBSTACK,NCTRL, ITETRA10, KK,PX,PY,PZ,IPID
381
382 INTEGER SOLMAT(0:MAXLAW), COQMAT(0:MAXLAW), TRUMAT(0:MAXLAW),
383 . POUMAT(0:MAXLAW),SPHMAT(0:MAXLAW),
384 . RESMAT(0:MAXLAW),RESPID(0:50), SPHPID(0:50),
385 . SOLPID(0:50), COQPID(0:52), TRUPID(0:50), POUPID(0:50)
386 INTEGER II,NINDX,FLAG_KJ
387
388 INTEGER IBOLTP
389 my_real dt2s, b1, b2, b3, b6, b5, b9, xg, yg, zg, xx, yy, zz, xy, xz, yz,
dtnoda,fill_ratio
390 my_real,
DIMENSION(:),
ALLOCATABLE ::
391 . mbufel_tmp, mdepl_tmp,partsav,mcps,mcpsx,
392 . ms_layerc,zi_layerc, msz2c,zply,partsav1_pon,mcpp
393
394 INTEGER, DIMENSION(:), ALLOCATABLE :: IRIG_NODE, CONNEC
395 my_real,
DIMENSION(:),
ALLOCATABLE :: part_area,ele_area
396
398 INTEGER ID,ISTOT, NF1,NNOD,NSROT,IDRAPE,ICPRE
399 CHARACTER(LEN=NCHARTITLE)::TITR
400 LOGICAL :: ERROR_THROWN
401 INTEGER,INTENT(IN) :: NOD2ELTG(3*NUMELTG)
402 INTEGER,INTENT(IN) :: NOD2ELQ(3*NUMELQ)
403 INTEGER,INTENT(IN) :: NOD2ELS(3*NUMELS)
404 INTEGER,INTENT(IN) :: KNOD2ELTG(NUMNOD+1)
405 INTEGER,INTENT(IN) :: KNOD2ELQ(+1)
406 INTEGER,INTENT(IN) :: KNOD2ELS(NUMNOD+1)
407
408
409
410 TYPE(G_BUFEL_) ,POINTER :: GBUF
411 TYPE(BUF_MAT_) ,POINTER :: MBUF
412
414 INTEGER UEL2SYS
415
417 integer*8 i8_deuxp43
418 data i8_deuxp43 /'80000000000'x/
419 r8_deuxm43 = 1.d00 / i8_deuxp43
420
421
422 DATA solpid/1,0,0,0,0,0,1,0,0,0,0,
423 1 0,0,0,1,1,0,0,0,0,1,
424 2 1,1,0,0,0,0,0,0,1,0,
425 3 0,0,0,0,0,0,0,0,0,0,
426 4 0,0,1,0,0,0,0,0,0,0/
427 DATA coqpid/1,1,0,0,0,0,0,1,0,1,1,
428 1 1,0,0,0,0,1,1,0,1,0,
429 2 0,0,0,0,0,0,0,0,0,0,
430 3 0,0,0,0,0,0,0,0,0,0,
431 4 0,0,0,0,0,0,0,0,0,0,
432 5 1,1/
433 DATA trupid/0,0,1,0,0,0,0,0,0,0,0,
434 1 0,0,0,0,0,0,0,0,0,0,
435 2 0,0,0,0,0,0,0,0,0,0,
436 3 0,0,0,0,0,0,0,0,0,0,
437 4 0,0,0,0,0,0,0,0,0,0/
438 DATA poupid/0,0,0,1,0,0,0,0,0,0,0,
439 1 0,0,0,0,0,0,0,1,0,0,
440 2 0,0,0,0,0,0,0,0,0,0,
441 3 0,0,0,0,0,0,0,0,0,0,
442 4 0,0,0,0,0,0,0,0,0,0/
443 DATA respid/0,0,0,0,1,0,0,0,1,0,0,
444 1 0,1,1,0,0,0,0,0,0,0,
445 2 0,0,1,0,1,1,1,0,1,1,
446 3 1,1,1,0,1,1,0,0,0,0,
447 4 0,0,0,1,1,1,0,0,0,0/
448 DATA sphpid/0,0,0,0,0,0,0,0,0,0,0,
449 1 0,0,0,0,0,0,0,0,0,0,
450 2 0,0,0,0,0,0,0,0,0,0,
451 3 0,0,0,1,0,0,0,0,0,0,
452 4 0,0,0,0,0,0,0,0,0,0/
453
454
455 m51_iloop_nrf = 0
456 nvc = 0
457 stat = 0
458
459 IF(ipari0==3)THEN
460 ALLOCATE (i8mi(6,numnod) ,stat=stat
461 ELSE
462 ALLOCATE (i8mi(6,1)
463 ENDIF
464
465 ALLOCATE (partsav(20*npart) ,stat=stat)
466
467 stifr => stifn(numnod+1:numnod*2)
468 ALLOCATE (partsav1_pon(npart) ,stat=stat)
469
470 IF(npreload > 0) THEN
471 ALLOCATE (vpreload(7*numels) ,stat=stat)
472 ENDIF
473
474 IF (npart > 0) partsav= zero
475 IF (npart > 0) partsav1_pon=zero
476 IF (npreload > 0 .AND. numels > 0) vpreload = zero
477
478 itg = 0
479 IF(icrack3d > 0)itg = 1 + numelc
480
481
482 error_thrown = .false.
483
484 anim_m=0
485 DO i=1,mx_ani
486 anim_n(i)=0
487 anim_v(i)=0
488 anim_ce(i)=0
489 anim_ct(i)=0
490 anim_se(i)=0
491 anim_st(i)=0
492 anim_fe(i)=0
493 anim_ft(i)=0
494 ENDDO
495 nn_ani=0
496 nv_ani=0
497 nce_ani=0
498 nct_ani=0
499 nse_ani=0
500 nst_ani=0
501 nfe_ani=0
502 nindx = 0
503
504 IF(irigid_mat > 0 ) THEN
505 nelemr = numelc + numels10 + numels8 + numeltg
506 ALLOCATE(irig_node(numnod))
507 ALLOCATE(connec(nelemr*10))
508 irig_node = 0
509 connec = 0
510 ELSE
511 ALLOCATE(connec(0),irig_node(0))
512 ENDIF
513
514
515
516 IF(iplyxfem> 0 ) THEN
517 ALLOCATE(ms_layerc(nplymax*numelc))
518 ALLOCATE(zi_layerc(nplymax*numelc))
519 ALLOCATE(msz2c(numelc))
520 ALLOCATE(zply(nplymax))
521 ms_layerc = zero
522 zi_layerc = zero
523 msz2c = zero
524 zply = zero
525 ELSE
526 ALLOCATE(ms_layerc(0))
527 ALLOCATE(zi_layerc(0))
528 ALLOCATE(msz2c(0))
529 ALLOCATE(zply(0))
530 ENDIF
531
532
533
534 IF(ipari0 == 3)THEN
535 DO n=1,numnod
536 i8mi(1,n) = 0
537 i8mi(2,n) = 0
538 i8mi(3,n) = 0
539 i8mi(4,n) = 0
540 i8mi(5,n) = 0
541 i8mi(6,n) = 0
542 ENDDO
543 ENDIF
544 DO n=0,maxlaw
545 solmat(n) = 1
546 coqmat(n) = 0
547 trumat(n) = 0
548 poumat(n) = 0
549 sphmat(n) = 0
550 resmat(n) = 0
551 ENDDO
552 DO n=51,maxlaw
553 solmat(n) = 0
554 ENDDO
555 solmat(15) = 0
556 solmat(19) = 0
557 solmat(25) = 1
558 solmat(27) = 0
559 solmat(32) = 0
560 solmat(43) = 0
561
562
563 solmat(53) = 1
564 solmat(51) = 1
565 solmat(52) = 1
566 solmat(56) = 1
567 solmat(59) = 1
568 solmat(60) = 1
569 solmat(61) = 0
570 solmat(62) = 1
571 solmat(65) = 1
572 solmat(66) = 1
573 solmat(67) = 1
574 solmat(68) = 1
575 solmat(69) = 1
576 solmat(70) = 1
577 solmat(71) = 1
578 solmat(72) = 1
579 solmat(74) = 1
580 solmat(75) = 1
581 solmat(76) = 1
582 solmat(77) = 1
583 solmat(78) = 1
584 solmat(79) = 1
585 solmat(80) = 1
586 solmat(81) = 1
587 solmat(82) = 1
588 solmat(83) = 1
589 solmat(84) = 1
590 solmat(88) = 1
591 solmat(92) = 1
592 solmat(90) = 1
593 solmat(93) = 1
594 solmat(94) = 1
595 solmat(95) = 1
596 solmat(96) = 1
597 solmat(97) = 1
598 solmat(99) = 1
599 solmat(100)= 1
600 solmat(101)= 1
601 solmat(102)= 1
602 solmat(103)= 1
603 solmat(104)= 1
604 solmat(105)= 1
605 solmat(106)= 1
606 solmat(107)= 1
607 solmat(109)= 1
608 solmat(111)= 1
609 solmat(112)= 1
610 solmat(115)= 1
611 solmat(116)= 1
612 solmat(117)= 1
613 solmat(120)= 1
614 solmat(121)= 1
615 solmat(122)= 1
616 solmat(124)= 1
617 solmat(125)= 1
618 solmat(127)= 1
619 solmat(134)= 1
620 solmat(151)= 1
621 solmat(187)= 1
622 solmat(190)= 1
623 solmat(200)= 1
624
625 coqmat(0) = 1
626 coqmat(1) = 1
627 coqmat(2) = 1
628 coqmat(7 ) = 1
629 coqmat(13) = 1
630 coqmat(15) = 1
631 coqmat(19) = 1
632 coqmat(22) = 1
633 coqmat(25) = 1
634 coqmat(27) = 1
635 coqmat(29) = 1
636 coqmat(30) = 1
637 coqmat(31) = 1
638 coqmat(32) = 1
639 coqmat(34) = 1
640 coqmat(35) = 1
641 coqmat(36) = 1
642 coqmat(42) = 1
643 coqmat(43) = 1
644 coqmat(44) = 1
645 coqmat(45) = 1
646 coqmat(48) = 1
647 coqmat(52) = 1
648 coqmat(55) = 1
649 coqmat(56) = 1
650 coqmat(57) = 1
651 coqmat(58) = 1
652 coqmat(60) = 1
653 coqmat(62) = 1
654 coqmat(63) = 1
655 coqmat(64) = 1
656 coqmat(65) = 1
657 coqmat(66) = 1
658 coqmat(69) = 1
659 coqmat(71) = 1
660 coqmat(72) = 1
661 coqmat(73) = 1
662 coqmat(76) = 1
663 coqmat(78) = 1
664 coqmat(80) = 1
665 coqmat(82) = 1
666 coqmat(85) = 1
667 coqmat(86) = 1
668 coqmat(87) = 1
669 coqmat(88) = 1
670 coqmat(91) = 1
671 coqmat(92) = 0
672 coqmat(93) = 1
673 coqmat(94) = 0
674 coqmat(96) = 1
675 coqmat(98) = 1
676 coqmat(99) = 1
677 coqmat(104) = 1
678 coqmat(107) = 1
679 coqmat(109) = 1
680 coqmat(110) = 1
681 coqmat(112) = 1
682 coqmat(119) = 1
683 coqmat(121) = 1
684 coqmat(122) = 1
685 coqmat(125) = 1
686 coqmat(151) = 1
687 coqmat(158) = 1
688 coqmat(200) = 1
689
690 trumat(0) = 1
691 trumat(1) = 1
692 trumat(2) = 1
693 trumat(34) = 1
694 trumat(44) = 1
695
696 poumat(0) = 1
697 poumat(1) = 1
698 poumat(2) = 1
699 poumat(34) = 1
700 poumat(36) = 1
701 poumat(44) = 1
702 poumat(71) = 1
703
704 sphmat(1) = 1
705 sphmat(2) = 1
706 sphmat(3) = 1
707 sphmat(4) = 1
708 sphmat(5) = 1
709 sphmat(6) = 1
710 sphmat(10) = 1
711 sphmat(12) = 1
712 sphmat(18) = 1
713 sphmat(21) = 1
714 sphmat(22) = 1
715 sphmat(23) = 1
716 sphmat(24) = 1
717 sphmat(28) = 1
718 sphmat(29) = 1
719 sphmat(30) = 1
720 sphmat(31) = 1
721 sphmat(32) = 1
722 sphmat(33) = 1
723 sphmat(34) = 1
724 sphmat(35) = 1
725 sphmat(36) = 1
726 sphmat(38) = 1
727 sphmat(40) = 1
728 sphmat(41) = 1
729 sphmat(42) = 1
730 sphmat(49) = 1
731 sphmat(50) = 1
732 sphmat(53) = 1
733
734 sphmat(66) = 1
735 sphmat(70) = 1
736 sphmat(72) = 1
737 sphmat(75) = 1
738 sphmat(76) = 1
739 sphmat(79) = 1
740 sphmat(81) = 1
741 sphmat(88) = 1
742 sphmat(90) = 1
743 sphmat(92) = 1
744 sphmat(93) = 1
745 sphmat(94) = 1
746 sphmat(97) = 1
747 sphmat(102)= 1
748 sphmat(103)= 1
749 sphmat(111)= 1
750 sphmat(105)= 1
751 resmat(54) = 1
752
753 i15ath = 1+lipart1*npart
754 i15a = i15ath+2*9*npart+2*9*nthpart
755 i15b = i15a+numels
756 i15c = i15b+numelq
757 i15d = i15c+numelc
758 i15e = i15d+numelt
759 i15f = i15e+numelp
760 i15g = i15f+numelr
761 i15h = i15g
762 i15i = i15h+numeltg
763 i15j = i15i+numelx
764 i15k = i15j+numsph
765 i15l = i15k+numelig3d
766
767
768
769
770 CALL checkmp(numels,ixs,nixs,nixs-1,nixs,solmat,solpid,ipm,igeo,
'BRICK' ,ipart(i15a))
771 CALL checkmp(numelq,ixq,nixq,nixq-1,nixq,solmat,solpid,ipm,igeo,
'QUAD' ,ipart(i15b))
772 CALL checkmp(numelc,ixc,nixc,nixc-1,nixc,coqmat,coqpid,ipm,igeo,
'SHELL' ,ipart(i15c))
773 CALL checkmp(numeltg,ixtg,nixtg,nixtg-1,nixtg,coqmat,coqpid,ipm,igeo,
'SHELL3N',ipart(i15h))
774 CALL checkmp(numelt,ixt,nixt,nixt-1,nixt,trumat,trupid,ipm,igeo,
'TRUSS' ,ipart(i15d))
775 CALL checkmp(numelp,ixp,nixp,nixp-1,nixp,poumat,poupid,ipm,igeo,
'BEAM' ,ipart(i15e))
776 CALL checkmp(numelr,ixr,nixr, 1,nixr,-1 ,respid,ipm,igeo,
'SPRING' ,ipart(i15f))
777 CALL chekmp2(numsph,ipart ,ipart(i15j),kxsp,nisp,nisp,sphmat,sphpid,ipm,igeo,
'SPHCEL')
778
779
780
781
782 IF(bcs%NUM_WALL > 0)THEN
783 CALL init_bcs_wall(igrnod,ngrnod,numnod,ale_connectivity,multi_fvm,
784 . ixs,nixs,numels, ixq,nixq,numelq, ixtg,nixtg,numeltg, n2d,
785 . ngroup,nparg,iparg,ipri)
786 ENDIF
787
788
789
790 IF (npreload > 0) THEN
792 ENDIF
793
794
795
796
797 IF (numsph/=0.AND.nspcond/=0)
798 .
CALL inspcnd(ispcond ,igrnod ,kxsp ,ixsp ,
799 . nod2sp ,itab ,icode ,iskew ,iskn ,
800 . skew ,xframe ,x ,ispsym ,isptag ,
801 . pm ,geo ,ipart ,ipart(i15j))
802
803
804
805 IF (n_seatbelt > 0)
CALL ini_seatbelt(iparg,elbuf_tab,knod2el1d,nod2el1d,ixr,
806 . x,itab,ipm,alea,knod2elc,
807 . nod2elc,ixc)
808
809
810
811
812
813
814
815 IF (glob_therm%ITHERM_FE > 0 ) THEN
816 ALLOCATE(mcps(8*numels))
817 mcps = zero
818 IF(numels10 > 0.OR.numels16 > 0 .OR.numels20 > 0)THEN
819 ALLOCATE(mcpsx(12*numels))
820 mcpsx = zero
821 ENDIF
822 ALLOCATE(mcpp(numelp))
823 mcpp = zero
824 ELSE
825 ALLOCATE(mcpsx(0), mcps(0), mcpp(0))
826 ENDIF
827
828 IF ((imasadd > 0).OR.(nloc_dmg%IMOD > 0)) THEN
829 ALLOCATE(part_area(npart) ,stat=stat)
830 part_area(1:npart) = zero
831 ALLOCATE(ele_area(numelc+numeltg) ,stat=stat)
832 ele_area(1:numelc+numeltg) = zero
833 ELSE
834 ALLOCATE(part_area(1),ele_area(1))
835 END IF
836
837 WRITE(iout,'(//)')
838 dt2s=1.e6
839 cpt_eltens = 0
840
841 DO ng=1,ngroup
842 mtn=iparg(1,ng)
843 nel=iparg(2,ng)
844 nft=iparg(3,ng)
845 iad=iparg(4,ng)
846 ity=iparg(5,ng)
847 npt=iparg(6,ng)
848 jale=iparg(7,ng)
849 ismstr=iparg(9,ng)
850 jeul =iparg(11,ng)
851 jtur =iparg(12,ng)
852 jthe =iparg(13,ng)
853 jlag =iparg(14,ng)
854 ish3n =iparg(23,ng)
855 jmult =iparg(20,ng)
856 jpor =iparg(27,ng)
857 isolnod = iparg(28,ng)
858 user_grp_domain = iparg(32,ng)+1
859 igtyp = iparg(38,ng)
860 israt = iparg(40,ng)
861 isorth = iparg(42,ng)
862 isrot = iparg(41,ng
863 idrape = iparg(92,ng)
864 IF(isolnod == 10) isrot = iparg(74,ng)
865 iexpan = iparg(49,ng)
866 ishxfem_ply = iparg(50,ng)
867 IF (icrack3d == 0) THEN
868 iparg(54,ng) = 0
869 END IF
870 ixfem = iparg(54,ng)
871 isubstack = iparg(71,ng)
872 iboltp = iparg(72,ng)
873 iformdt = iparg(73,ng)
874 jclos=0
875 istot = 0
876 IF (ity==1.AND.(ismstr>=10.AND.ismstr<=12)) istot = 1
877 IF (ity == 3.OR.ity == 7) THEN
878
879 nc1_old = 0
880 nc2_old = 0
881 nc3_old = 0
882 nc4_old = 0
883 ELSEIF (ity == 1) THEN
884
885 nc1_old = 0
886 nc2_old = 0
887 nc3_old = 0
888 nc4_old = 0
889 nc5_old = 0
890 nc6_old = 0
891 nc7_old = 0
892 nc8_old = 0
893 IF((isolnod == 4 .AND.isrot==2).OR.
894 . (isolnod == 10.AND.isrot==1).OR.
895 . (isolnod == 10.AND.isrot==3))THEN
896 isrot = 0
897 iparg(41,ng) = 0
898 ENDIF
899 ENDIF
900 IF((numels/=0) .AND. (n2d/=0))THEN
901 CALL ancmsg(msgid=603, msgtype=msgerror, anmode=aninfo_blind_2)
902 END IF
903
904
905
906
907
908 IF ((mtn == 0 .AND. igtyp /= 52 .AND. igtyp /= 51) .or.
909 . (igtyp == 0 .and. (ity == 1 .or. ity == 3 .or. ity == 7)) ) THEN
910 lft=1
911 llt=nel
912 nft = iparg(3,ng)
913 ihbe=iparg(23,ng)
914 isolnod = iparg(28,ng)
915 ilev=iparg(45,ng)
916
918 1 ixc ,ixs ,ixtg ,x ,v ,
919 2 pm ,geo ,ms ,in ,ptg ,
920 3 msc ,mss ,mstg ,inc ,intg ,
921 4 thk(1+nft) ,thk(1+nft+numelc),partsav,ipart(i15a),
922 5 ipart(i15c),ipart(i15h),veul ,dtelem ,ihbe ,
923 6 isolnod ,nvc ,i8mi ,msnf ,mssf ,
924 7 igeo ,etnod ,nshnod ,stc ,sttg ,
925 8 wma ,sh4tree ,sh3tree ,mcp ,mcpc ,
926 9 temp ,mcps ,xrefc ,xreftg ,xrefs ,
927 a mssa ,volnod ,bvolnod ,vns ,bns ,
928 b sh3trim ,isubstack ,stack ,rnoise ,perturb ,
929 c ele_area ,part_area ,ipart(i15d),ixt ,ipart(i15e
930 d ixp ,mst ,msp ,stt ,stp ,
931 e strp ,inp ,stifint ,mcpp ,inr ,
932 f msr ,msrt ,str ,ipart(i15f),itab ,
933 g ixr , imerge2 ,iadmerge2 ,nel ,defaults ,
934 h glob_therm,ibeam_vector,rbeam_vector)
935
936 ELSEIF( mtn == 13) THEN
937
938 lft=1
939 llt=nel
940 nft = iparg(3,ng)
941 ihbe=iparg(23,ng)
942 isolnod = iparg(28,ng
943 ilev=iparg(45,ng)
944
946 1 ixc ,ixs ,ixtg ,ixs10 ,x ,
947 2 v ,pm ,geo ,ms ,in ,
948 3 ptg ,msc ,mss ,mstg ,inc ,
949 4 intg ,thk(1+nft) ,thk(1+nft+numelc),partsav,ipart(i15a),
950 5 ipart(i15c),ipart(i15h),veul ,dtelem ,ihbe ,
951 6 isolnod ,nvc ,i8mi ,msnf ,mssf ,
952 7 igeo ,etnod ,nshnod ,stc ,sttg ,
953 8 wma ,sh4tree ,sh3tree ,mcp ,mcpc
954
955 a stifn ,stifr ,connec ,irig_node ,nelemr ,
956 b nindx ,xrefc ,xreftg ,xrefs ,mssa ,
957 c sh3trim ,isubstack
958 d rnoise
959 e group_param_tab(ng) ,igtyp ,defaults ,glob_therm)
960
961 ELSE
962
963 lft=1
964 llt=nel
965 offset=0
966 nft = iparg(3,ng)
967 jsph=0
968 jcvt=0
969 nf1 = nft + 1
970
971
972
973 IF (ity == 1) THEN
974 gbuf => elbuf_tab(ng)%GBUF
975 IF (iusolyld == 1 ) THEN
977 . elbuf_tab(ng), ixs , sigsp ,sigi , nsigi,
978 . nel ,lft , llt ,nft , nsigs,
979 . ptsol ,igeo )
980 ENDIF
981 IF (isolnod == 4.AND.(isrot==0.OR.isrot==3))THEN
982 IF (multi_fvm%IS_USED) THEN
984 . nel, nsigs, nsigi, ixs, igeo, ipm, iparg, ale_connectivity, ipart(i15a), ptsol,
985 . npc, ipart, iloadp,
986 . xrefs, geo, pm, facload, pld, skew, sigi, bufmat, x,
987 . wma, partsav, ms, v, mss, mssf, mssa, msnf, mcps, error_thrown, detonators,
988 . defaults, mat_param,glob_therm%NINTEMP)
989 ELSE
990 IF (istot == 1) THEN
991 CALL sgsavini(isolnod,x,ixs(1,nft+1),gbuf%SMSTR,nel)
992 IF (nsigi > 0 ) THEN
993 CALL sgsavinieref(isolnod,straglob(nf1),sigsp,nsigi,ptsol(nf1),
994 . gbuf%SMSTR,gbuf%OFF,nel)
995 END IF
996 ENDIF
998 1 elbuf_tab(ng),ms ,ixs ,pm ,x ,
999 2 detonators ,geo ,veul ,ale_connectivity ,iparg(1,ng),
1000 3 dtelem ,sigi ,nel ,skew ,igeo ,
1001 4 stifn ,partsav ,v ,ipart(i15a),mss ,
1002 5 ipart ,msnf
1003 6 mssf ,ipm ,nsigs ,volnod ,bvolnod ,
1004 7 vns ,bns ,wma ,ptsol ,bufmat ,
1005 8 mcp ,mcps ,temp ,npc ,pld ,
1006 9 iuser ,sigsp ,nsigi ,mssa ,xrefs ,
1007 a strsglob(nf1),straglob(nf1),fail_ini ,spbuf ,sol2sph ,
1008 b iloadp ,facload ,rnoise ,perturb ,mat_param ,
1009 c defaults%SOLID,glob_therm%NINTEMP )
1010 IF (nxref > 0 .AND. jlag/=0 .AND. jsph==0)THEN
1012 1 elbuf_tab(ng),ixs ,pm ,geo ,iparg(1,ng),
1013 2 ipm ,igeo ,skew ,x ,xrefs ,
1014 3 nel ,ipart(i15a),ipart ,bufmat ,mat_param ,
1015 4 npc ,pld ,nummat )
1016
1017 IF (istot == 1) THEN
1018 CALL sgsavref(isolnod,xrefs(1,1,nft+1),gbuf%SMSTR,nel)
1019 END IF
1020 ENDIF
1021 IF (nsigi > 0 ) THEN
1022 IF (nxref > 0 .OR. ismstr == 1)
1023 .
CALL sgsavinieref(isolnod,straglob(nf1),sigsp,nsigi,ptsol(nf1),
1024 . gbuf%SMSTR,gbuf%OFF,nel)
1025 END IF
1026 ENDIF
1027 ELSEIF(isolnod == 10 .OR.(isolnod == 4 .AND.isrot == 1))THEN
1028 kk1=1+numels*nixs
1030 1 ms ,ixs ,pm ,x ,
1031 2 detonators ,geo ,veul ,ale_connectivity ,iparg(1,ng),
1032 3 dtelem ,sigi ,nel ,skew ,igeo ,
1033 4 stifn ,partsav ,v ,ipart(i15a),mss ,
1034 5 ixs10 ,ipart ,glob_therm,
1035 7 mssx
1036 8 iuser ,nsigs ,volnod ,bvolnod ,vns ,
1037 9 bns ,vnsx ,bnsx ,ptsol ,bufmat ,
1038 a mcp ,mcps ,mcpsx ,temp ,npc ,
1039 b pld ,in ,stifr ,ins ,mssa ,
1040 c strsglob(nf1),straglob(nf1),fail_ini,iloadp ,facload ,
1041 d perturb ,rnoise ,mat_param,defaults%SOLID)
1042 IF (nsigi > 0 ) THEN
1043 nnod = 10
1044 nsrot = 0
1045 IF(isolnod == 4 .AND.isrot == 1) nsrot = 4
1046 CALL sgsavinierefq(nnod,straglob(nf1),sigsp,nsigi,ptsol(nf1),
1047 . gbuf%SMSTR,gbuf%OFF,ixs(1,nf1),dr,nsrot,nel)
1048 IF (ismstr==10.OR.ismstr==12)
1049 .
CALL s10jaci3(elbuf_tab(ng),gbuf%SMSTR,npt,nel)
1050 END IF
1051 ELSEIF(ity==1.AND.isolnod==20)THEN
1052 kk1=1+numels*nixs+numels10*6
1054 1 elbuf_tab(ng),ms ,ixs ,pm ,x ,
1055 2 detonators ,geo ,veul ,ale_connectivity ,iparg(1,ng),
1056 3 dtelem ,sigi ,nel ,skew ,igeo ,
1057 4 stifn ,partsav ,v ,ipart(i15a),mss ,
1058 5 ixs20 ,ipart ,mssx ,sigsp ,nsigi ,
1059 7 ipm , iuser ,nsigs ,volnod ,bvolnod ,
1060 8 vns ,bns ,vnsx ,bnsx ,ptsol ,
1061 9 bufmat ,mcp ,mcps ,mcpsx ,temp ,
1062 a npc ,pld ,strsglob(nf1),straglob(nf1),fail_ini ,
1063 b iloadp ,facload ,perturb,rnoise ,mat_param ,
1064 c glob_therm )
1065 ELSEIF(ity==1.AND.isolnod==16)THEN
1066 kk1=1+numels*nixs+numels10*6+numels20*12
1068 1 elbuf_tab(ng),ms ,ixs ,pm ,x ,
1069 2 detonators ,geo ,veul ,ale_connectivity ,iparg(1,ng),
1070 3 dtelem ,sigi ,nel ,skew ,igeo ,
1071 4 stifn ,partsav ,v ,ipart(i15a),mss ,
1072 5 ixs16 ,ipart ,mssx ,sigsp ,nsigi ,
1073 6 ipm ,iuser ,nsigs ,volnod ,bvolnod ,
1074 7 vns ,bns ,vnsx ,bnsx ,ptsol ,
1075 8 bufmat ,mcp
1076 9 npc ,pld ,strsglob(nf1),straglob(nf1),fail_ini ,
1077 a iloadp ,facload ,perturb ,rnoise ,mat_param ,
1078 b glob_therm )
1079 ELSEIF(ity==1)THEN
1080 jhbe=iparg(23,ng)
1081 jclos=iparg(33,ng)
1082 iint =iparg(36,ng)
1083 IF (jhbe==1.OR.jhbe==2.OR.jhbe==12.OR.jhbe==16) THEN
1084 jcvt=0
1085 ELSE
1086 jcvt=1
1087 ENDIF
1088 iprop = ixs(10,nft+1)
1089 igtyp = nint(geo
1090 nuvar = nint(geo(npropg*(iprop-1)+25))
1091 istrain = iparg(44,ng)
1092 IF (jhbe == 15) THEN
1093
1094 IF (isolnod == 6)THEN
1096 . elbuf_tab(ng),ms ,ixs ,pm ,x ,
1097 . detonators ,geo ,veul ,ale_connectivity ,iparg(1,ng),
1098 . dtelem ,sigi ,nel ,skew ,igeo ,
1099 . stifn ,partsav ,v ,ipart(i15a),mss,
1100 . ipart ,glob_therm,
1101 . sigsp ,nsigi ,ipm ,iuser ,nsigs ,
1102 . volnod ,bvolnod ,vns ,bns ,ptsol ,
1103 . bufmat ,mcp ,mcps ,mcpsx ,temp ,
1104 . npc ,pld ,strsglob(nf1),straglob(nf1),mssa ,
1105 . orthoglob ,fail_ini ,iloadp ,facload ,perturb ,
1106 . rnoise ,mat_param,defaults%SOLID)
1107 ELSE
1109 . ms ,ixs ,pm ,x ,mss ,
1110 . detonators ,geo ,veul ,ale_connectivity ,iparg(1,ng),
1111 . dtelem ,sigi ,nel ,skew ,igeo ,
1112 . stifn ,partsav ,v ,ipart(i15a) ,ipart ,
1113 . sigsp ,nsigi ,msnf ,mssf ,ipm ,
1114 . iuser ,nsigs ,volnod ,bvolnod ,vns ,
1115 . bns ,wma ,ptsol ,bufmat ,mcp ,
1116 . mcps ,temp ,npc ,pld ,mssa ,
1117 . strsglob(nf1),straglob(nf1),orthoglob ,fail_ini ,iloadp ,
1118 . facload ,rnoise ,perturb ,glob_therm)
1119 ENDIF
1120 ELSEIF (jhbe == 14 .AND.
1121 . (igtyp == 20 .OR. igtyp == 21 .OR. igtyp == 22)) THEN
1122
1123 gbuf => elbuf_tab(ng)%GBUF
1125 . elbuf_tab(ng),ms
1126 . detonators,geo ,veul ,ale_connectivity
1127 . dtelem ,sigi ,nel ,skew ,igeo ,
1128 . stifn ,partsav ,v ,ipart(i15a),mss,
1129 . ipart ,sigsp ,nsigi ,msnf ,mssf ,ipm ,
1130 . iuser ,nsigs ,volnod ,bvolnod ,vns ,
1131 . bns ,wma ,ptsol ,bufmat ,mcp ,
1132 . mcps ,temp ,npc ,pld ,xrefs ,
1133 . mssa ,strsglob,strsglob(nf1),straglob(nf1),fail_ini,
1134 . iloadp ,facload ,perturb ,rnoise ,mat_param,glob_therm)
1135 IF (istot == 1) THEN
1136 CALL sgsavini(isolnod,x,ixs(1,nft+1),gbuf%SMSTR,nel)
1137 ENDIF
1138 IF (nsigi > 0 ) THEN
1139 CALL sgsavinieref(isolnod,straglob(nf1),sigsp,nsigi,ptsol(nf1),
1140 . gbuf%SMSTR,gbuf%OFF,nel)
1141 END IF
1142 ELSEIF (jhbe == 14 .OR. jhbe == 222 .OR. jhbe == 17) THEN
1143
1144 gbuf => elbuf_tab(ng)%GBUF
1145 IF (istot == 1) THEN
1146 CALL sgsavini(isolnod,x,ixs(1,nft+1),gbuf%SMSTR,nel)
1147 IF (nsigi > 0 ) THEN
1148 CALL sgsavinieref(isolnod,straglob(nf1),sigsp,nsigi,ptsol(nf1),
1149 . gbuf%SMSTR,gbuf%OFF,nel)
1150 END IF
1151 IF (nxref > 0 .AND. jhbe == 17 ) THEN
1153 1 elbuf_tab(ng),ixs ,pm ,geo ,iparg(1,ng),
1154 2 ipm ,igeo ,skew ,x ,xrefs ,
1155 3 nel ,ipart(i15a),ipart ,bufmat ,mat_param,
1156 6 npc ,pld ,nummat )
1157 CALL sgsavref(isolnod,xrefs(1,1,nft+1),gbuf%SMSTR,nel)
1158 END IF
1159 END IF
1161 . elbuf_tab(ng),ms ,ixs ,pm ,x ,
1162 . detonators,geo ,veul ,ale_connectivity,iparg(1,ng),
1163 . dtelem,sigi ,nel ,skew ,igeo ,
1164 . stifn ,partsav ,v ,ipart(i15a),mss,
1165 . ipart ,glob_therm,
1166 . sigsp ,nsigi ,msnf ,mssf ,ipm ,
1167 . iuser ,nsigs ,volnod
1168 . bns ,wma ,ptsol ,bufmat ,mcp ,
1169 . mcps ,temp ,npc ,pld ,xrefs ,
1170 . mssa ,strsglob(nf1),straglob(nf1),fail_ini,spbuf ,
1171 . kxsp ,ipart(i15j) ,nod2sp ,sol2sph ,irst,
1172 . iloadp ,facload ,perturb ,rnoise ,mat_param)
1173 IF (nsigi > 0 .AND. ismstr == 1) THEN
1174 CALL sgsavinieref(isolnod,straglob(nf1),sigsp,nsigi,ptsol(nf1),
1175 . gbuf%SMSTR,gbuf%OFF,nel)
1176 END IF
1177 ELSEIF (igtyp>=29) THEN
1178 CALL suinit3(elbuf_tab(ng),ms ,ixs ,pm ,x ,
1179 . detonators ,geo ,veul ,ale_connectivity ,iparg(1,ng),
1180 . dtelem,sigi ,nel ,skew ,igeo ,
1181 . stifn ,partsav ,v ,ipart(i15a),mss,
1182 . ipart ,sigsp ,glob_therm,temp ,
1183 . nsigi ,in ,vr ,ipm ,nsigs ,
1184 . volnod ,bvolnod ,vns ,bns ,ptsol ,
1185 . bufmat ,npc ,pld ,fail_ini ,ins ,
1186 . iloadp ,facload ,perturb,rnoise ,mat_param)
1187 ELSE
1188 gbuf => elbuf_tab(ng)%GBUF
1189 IF (npt == 1 .AND. istot == 1) THEN
1190 CALL sgsavini(isolnod,x,ixs(1,nft+1),gbuf%SMSTR,nel)
1191 IF (nsigi > 0 ) THEN
1192 CALL sgsavinieref(isolnod,straglob(nf1),sigsp,nsigi,ptsol(nf1),
1193 . gbuf%SMSTR,gbuf%OFF,nel)
1194 END IF
1195 ENDIF
1196 IF (jmult == 0) THEN
1198 1 elbuf_tab(ng),ms
1199 2 detonators ,geo ,veul ,ale_connectivity ,iparg(1,ng),
1200 3 dtelem ,sigi ,nel ,skew ,igeo ,
1201 4 stifn ,partsav ,v ,ipart(i15a),mss ,
1202 5 ipart ,sigsp ,ng ,iparg
1203 7 nsigi ,msnf ,nvc ,mssf ,ipm ,
1204 8 iuser ,nsigs ,volnod ,bvolnod ,vns ,
1205 9 bns ,in ,vr ,ins ,wma ,
1206 a ptsol ,bufmat ,mcp ,mcps ,temp ,
1207 b xrefs ,npc ,pld ,mssa ,strsglob(nf1),
1208 c straglob(nf1),fail_ini ,spbuf ,kxsp ,ipart(i15j),
1209 d nod2sp ,sol2sph ,irst ,iloadp ,facload ,
1210 e rnoise ,perturb ,mat_param,glob_therm)
1211 ELSE IF (jmult > 0 .AND. mtn == 151) THEN
1212
1214 1 elbuf_tab(ng),ms ,ixs ,pm ,x ,
1215 2 geo ,ale_connectivity ,iparg(1,ng),
1216 3 dtelem ,sigi ,nel ,skew ,igeo
1217 4 stifn ,partsav ,v ,ipart(i15a),mss
1218 5 ipart ,sigsp ,ng ,iparg ,glob_therm
1219 7 nsigi ,msnf ,nvc ,mssf ,ipm ,
1220 8 iuser ,nsigs ,volnod ,bvolnod ,vns ,
1221 9 bns ,in ,vr ,ins ,wma ,
1222 a ptsol ,bufmat ,mcp ,mcps ,temp ,
1223 b xrefs ,npc ,pld ,mssa ,strsglob(nf1),
1224 c straglob(nf1),fail_ini ,spbuf ,kxsp ,ipart
1225 d nod2sp ,sol2sph ,irst ,iloadp ,facload ,
1226 e multi_fvm, error_thrown,detonators, mat_param)
1227 ENDIF
1228
1230 1 elbuf_tab(ng),ixs ,pm ,geo ,iparg(1,ng),
1231 2 ipm ,igeo ,skew ,x ,xrefs ,
1232 3 nel ,ipart(i15a),ipart ,bufmat ,mat_param,
1233 6 npc ,pld ,nummat )
1234
1235
1236 IF (nxref > 0 .AND. (npt == 1 .AND. istot == 1) ) THEN
1237 CALL sgsavref(isolnod,xrefs(1,1,nft+1),gbuf%SMSTR,nel)
1238 END IF
1239 IF (nsigi > 0 ) THEN
1240 IF (nxref > 0 .OR. ismstr == 1 )
1241 .
CALL sgsavinieref(isolnod,straglob(nf1),sigsp,nsigi,ptsol(nf1),
1242 . gbuf%SMSTR,gbuf%OFF,nel)
1243 END IF
1244 nc1 = nvc / 128
1245 nc2 = (nvc-nc1*128) / 64
1246 nc3 = (nvc-nc1*128-nc2*64) / 32
1247 nc4 = (nvc-nc1*128-nc2*64-nc3*32)/16
1248 nc5 = (nvc-nc1*128-nc2*64-nc3*32-nc4*16)/8
1249 nc6 = (nvc-nc1*128-nc2*64-nc3*32-nc4*16-nc5*8)/4
1250 nc7 = (nvc-nc1*128-nc2*64-nc3*32-nc4*16-nc5*8-nc6*4)/2
1251 nc8 = (nvc-nc1*128-nc2*64-nc3*32-nc4*16-nc5*8-nc6*4-nc7*2)
1252 IF (nc1 == 1) nc1_old = 1
1253 IF (nc2 == 1) nc2_old = 1
1254 IF (nc3 == 1) nc3_old = 1
1255 IF (nc4 == 1) nc4_old = 1
1256 IF (nc5 == 1) nc5_old = 1
1257 IF (nc6 == 1) nc6_old = 1
1258 IF (nc7 == 1) nc7_old = 1
1259 IF (nc8 == 1) nc8_old = 1
1260 iparg(19,ng) = nc1_old*128+nc2_old*64+nc3_old*32+nc4_old*16+nc5_old*8+nc6_old*4+nc7_old*2+nc8
1261 ENDIF
1262 ENDIF
1263
1264
1265
1266 ELSEIF(ity == 2)THEN
1267 ihbe =iparg(23,ng)
1268 IF (jmult == 0) THEN
1269 IF (ihbe == 17 .OR. (n2d == 1.AND.ihbe == 22)) THEN
1270 CALL q4init2(elbuf_tab(ng),ms ,ixq,pm,x,
1271 2 detonators,geo,veul,ale_connectivity,iparg(1,ng),
1272 3 dtelem,sigi,igeo ,
1273 4 nel ,skew , msq ,ipart ,ipart(i15b),
1274 5 ipm ,nsigs ,wma ,ptquad ,bufmat ,
1275 6 npc ,pld ,iparg ,iloadp ,facload ,
1276 7 partsav,v )
1277 ELSE
1279 . elbuf_tab(ng),ms,ixq ,pm ,x ,
1280 . detonators,geo,veul,ale_connectivity,iparg(1,ng),
1281 . dtelem,sigi,igeo ,
1282 . nel ,skew, msq, ipart, ipart(i15b),
1283 . ipm ,nsigs ,
1284 . wma ,ptquad ,bufmat ,npc ,pld,
1285 . iparg ,iloadp ,facload ,partsav,v)
1286 ENDIF
1287 ELSE
1288 IF (mtn == 20) THEN
1290 . elbuf_tab(ng),ms
1291 . detonators ,veul ,ale_connectivity ,iparg(1,ng) ,fill ,
1292 . sigi ,bufmat ,nel ,mat_param ,
1293 . skew
1294 . geo ,igeo ,ipm ,
1295 . nsigs ,wma ,ptquad ,npc ,pld ,
1296 . iparg ,iloadp ,facload ,partsav ,v )
1297 ELSE IF (mtn == 151) THEN
1298
1300 . iparg, ixq, ipm, ale_connectivity, igeo, ipart, ipart(i15b), npc,
1301 . ptquad, iloadp, x, pm,
1302 . geo, sigi, skew, pld, bufmat, facload, elbuf_tab(ng), error_thrown,detonators,
1303 . mat_param)
1304 ELSE
1306 ENDIF
1307 ENDIF
1308
1309
1310
1311 ELSEIF (ity == 3)THEN
1312 istrain =iparg(44,ng)
1313 ihbe =iparg(23,ng)
1314 ithk =iparg(28,ng)
1315 ilev =iparg(45,ng)
1316 ixfem =iparg(54,ng)
1317 dt2=dt2s
1318 IF (ihbe>10.AND.ihbe<29) THEN
1319 NULLIFY(ptr_itage)
1320 IF (sitage>0) ptr_itage=>itage(1)
1322 1 ixc,pm ,x ,geo ,
1323 2 ms ,in ,nvc ,dtelem,igrsh4n ,
1324 3 xrefc ,nel ,ithk ,ihbe ,igrsh3n ,
1325 4 thk(1+nft),isigsh,sigsh ,stifn ,stifr ,
1326 5 partsav ,v ,ipart(i15c) ,msc,inc ,
1327 6 skew ,i8mi ,nsigsh ,igeo ,
1328 7 ipm ,iuser ,etnod ,nshnod ,stc ,
1329 8 ptshel ,bufmat ,sh4tree ,mcp ,mcpc ,
1330 9 temp ,ms_layer, zi_layer ,itag ,itagel ,
1331 a iparg(1,ng),ms_layerc,zi_layerc,part_area,cpt_eltens,
1332 b msz2c ,zply ,itagn ,ptr_itage ,ixfem ,
1333 c npc ,pld ,xfem_tab,isubstack ,stack ,
1334 d rnoise ,drape ,sh4ang ,iddlevel,geo_stack,
1335 e igeo_stack ,strc ,perturb ,iyldini ,ele_area,
1336 f nloc_dmg ,ng ,group_param_tab(ng),idrape,drapeg,
1338 ELSE
1339 NULLIFY(ptr_itage)
1340 IF (sitage>0) ptr_itage => itage(1)
1341 CALL cinit3(elbuf_tab(ng),
1342 1 ixc ,pm ,x ,geo ,
1343 2 ms ,in ,nvc ,dtelem ,igrsh4n ,
1344 3 xrefc ,nel ,ithk ,ihbe ,igrsh3n ,
1345 4 thk(1+nft),isigsh ,sigsh ,stifn ,stifr ,
1346 5 partsav ,v ,ipart(i15c),msc ,inc ,
1347 8 skew ,iparg(1,ng),i8mi ,nsigsh ,igeo ,
1348 9 iuser ,etnod ,nshnod ,stc ,ptshel ,
1349 a ipm ,bufmat ,sh4tree ,mcp ,mcpc ,
1350 b temp ,cpt_eltens ,part_area ,itagn ,ptr_itage ,
1351 c ixfem ,npc ,pld ,xfem_tab,isubstack,
1352 d stack ,rnoise ,drape ,sh4ang ,iddlevel ,
1353 e geo_stack,igeo_stack ,strc ,perturb ,iyldini ,
1354 f ele_area ,ng ,group_param_tab(ng) ,nloc_dmg ,
1356 h glob_therm)
1357 ENDIF
1358 nc1 = nvc / 8
1359 nc2 = (nvc-nc1*8) / 4
1360 nc3 = (nvc-nc1*8-nc2*4) / 2
1361 nc4 = nvc-nc1*8-nc2*4-nc3*2
1362 IF (nc1 == 1) nc1_old = 1
1363 IF (nc2 == 1) nc2_old = 1
1364 IF (nc3 == 1) nc3_old = 1
1365 IF (nc4 == 1) nc4_old = 1
1366 iparg(19,ng)=nc1_old*8+nc2_old*4+nc3_old*2+nc4_old
1367 dt2s=dt2
1368 dt2=0.
1369
1370
1371
1372 ELSEIF (ity == 4) THEN
1373 CALL tinit3(elbuf_tab(ng),
1374 1 ixt ,pm ,x ,geo ,ms ,
1375 2 dtelem ,nft ,nel
1376 3 v ,ipart(i15d),mst ,stifint,stt ,
1377 4 igeo
1378 5 preload_a,iboltp ,npreload_a )
1379
1380
1381
1382 ELSEIF (ity == 5) THEN
1383 CALL pinit3(elbuf_tab(ng),
1384 1 stp ,ixp ,pm ,x ,geo ,
1385 2 dtelem ,nft ,nel ,
1386 3 stifn ,stifr ,partsav ,v ,ipart(i15e),
1387 4 msp ,inp ,igeo ,strp ,
1388 5 nsigbeam ,sigbeam ,ptbeam ,iuser ,
1389 6 mcpp ,temp ,preload_a,iboltp ,npreload_a ,
1390 7 glob_therm ,ibeam_vector,rbeam_vector)
1391
1392
1393
1394 ELSEIF (ity == 6) THEN
1395 iopt = ptr_nopt_fun + 1
1396 CALL rinit3(elbuf_tab(ng),
1397 1 ixr ,x ,geo ,ms ,npc ,
1398 2 pld ,in ,skew ,dtelem ,nel ,
1399 3 stifn ,stifr ,partsav ,v ,ipart(i15f),
1400 4 itab ,msr ,
1401 5 inr ,stifint ,str(nft+1),igeo ,sigrs ,
1402 6 nsigrs ,imerge2 ,iadmerge2 ,msrt(nft+1),ixr_kj ,
1403 7 nom_opt(1,iopt),
strr ,ptspri ,ipm , pm ,
1404 8 bufmat ,r_skew ,preload_a ,iboltp ,npreload_a,
1405 9 ikine)
1406
1407
1408
1409 ELSEIF(ity == 7 .OR. ity == 8)THEN
1410 istrain =iparg(44,ng)
1411 ithk =iparg(28,ng)
1412 ish3n =iparg(23,ng)
1413 icnod =iparg(11,ng
1414 IF (ish3n == 30 .AND. icnod == 6) ish3n = 0
1415 ilev =iparg(45,ng)
1416 dt2=dt2s
1417 IF (ish3n == 30) THEN
1418 CALL cdkinit3(elbuf_tab(ng),group_param_tab(ng),
1419 1 ixtg ,pm ,x ,geo ,
1420 2 ms ,in ,nvc ,dtelem,
1421 3 xreftg ,offset,nel ,ithk ,thk(1+nft+numelc),
1422 4 isigsh ,sigsh(1,ksigsh3),stifn,stifr, partsav ,
1423 5 v ,ipart(i15h) ,mstg ,intg
1424 8 skew ,ish3n
1425 9 iuser ,etnod ,nshnod ,sttg ,ptsh3n ,
1426 a bufmat ,sh3tree,mcp ,mcptg , temp ,
1427 b iparg
1428 c sh3trim ,isubstack,stack ,rnoise,
1429 d drape,sh3ang ,geo_stack,igeo_stack,strtg,
1430 e perturb,iyldini ,ele_area,nloc_dmg,
1431 f idrape, drapeg,mat_param,glob_therm)
1432 ELSEIF (mtn == 151 .OR. n2d > 0) THEN
1434 . igeo, ipart, ipart(i15h), ipm, ptsh3n, npc, iloadp,
1435 . x, pm, geo, sigi, skew, pld, bufmat, facload, multi_fvm, error_thrown, detonators
1436 . mat_param)
1437 ELSE
1438 NULLIFY(ptr_itage)
1439 IF (sitage > 0) ptr_itage => itage(numelc+1)
1441 1 ixtg ,pm ,x ,geo ,igrsh4n,
1442 2 ms ,in ,nvc ,dtelem,igrsh3n ,
1443 3 xreftg ,offset,nel ,ithk ,thk(1+nft+numelc),
1444 4 isigsh ,sigsh(1,ksigsh3),stifn,stifr,partsav ,
1445 5 v ,ipart(i15h),mstg,intg ,ptg ,
1446 8 skew,iparg(1,ng) , nsigsh ,igeo,iuser ,
1447 9 etnod ,nshnod ,sttg ,ptsh3n ,ipm ,
1448 a bufmat ,sh3tree ,mcp ,mcptg , temp ,
1449 b cpt_eltens,part_area,ptr_itage,itagn,ixfem ,
1450 c npc ,pld ,sh3trim ,xfem_tab,
1451 d isubstack , stack,rnoise ,
1452 e drape ,sh3ang,iddlevel,geo_stack,igeo_stack,strtg,
1453 f perturb ,ish3n,iyldini ,ele_area,
1454 g nloc_dmg,ng,group_param_tab(ng),idrape,
1456 ENDIF
1457 nc1 = nvc / 8
1458 nc2 = (nvc-nc1*8) / 4
1459 nc3 = (nvc-nc1*8-nc2*4) / 2
1460 IF (nc1 == 1) nc1_old = 1
1461 IF (nc2 == 1) nc2_old = 1
1462 IF (nc3 == 1) nc3_old = 1
1463 iparg(19,ng)=nc1_old*8+nc2_old*4+nc3_old*2
1464 dt2s=dt2
1465 dt2=0.
1466
1467
1468
1469 ELSEIF(ity == 51)THEN
1470
1471 jsph=1
1472 isph2sol=iparg(69,ng
1473 CALL spinit3(ity ,spbuf ,kxsp ,x ,geo ,
1474 2 ms ,npc ,pld ,in ,skew ,
1475 3 dtelem ,nel ,stifn ,stifr ,igeo ,
1476 4 partsav ,v ,ipart(i15j),bufmat,
1477 5 pm ,itab ,msr ,inr
1478 6 nod2sp ,iparg(1,ng),ale_connectivity ,detonators ,
1479 7 sigsph ,isptag ,ipart ,
1480 8 ipm ,nsigsph ,ptsph ,npc ,
1481 9 pld ,elbuf_tab(ng),mcp,temp ,iloadp,
1482 a facload ,stifint ,i7stifs,glob_therm)
1483
1484
1485
1486 ELSEIF(ity == 100)THEN
1487 iaduix=1
1488 iadux =iaduix+maxnx
1489 iaduv =iadux +3*maxnx
1490 iaduvr=iaduv +3*maxnx
1491 iadums=iaduvr+3*maxnx
1492 iaduin=iadums+maxnx
1493 iadusm=iaduin+maxnx
1494 iadusr=iadusm+maxnx
1495 iadumv=iadusr+maxnx
1496 iadurv=iadumv+maxnx
1497 CALL xinit3(elbuf_tab(ng),kxx,ixx ,x ,v ,
1498 2 vr ,ms ,in ,
1499 3 skew ,dtelem ,nel ,stifn ,stifr ,
1500 4 partsav ,ipart(i15i),geo ,
1501 5 itab ,xelemwa(iaduix) ,xelemwa(iadux) ,xelemwa(iaduv) ,
1502 6 xelemwa(iaduvr) ,xelemwa(iadums) ,xelemwa(iaduin) ,
1503 7 xelemwa(iadusm) ,xelemwa(iadusr) ,xelemwa(iadumv) ,
1504 8 xelemwa(iadurv) ,igeo, nft)
1505
1506
1507
1508
1509 ELSEIF (ity == 101) THEN
1510 nctrl = iparg(75,ng)
1511 px = igeo(41,iparg(62,ng))
1512 py = igeo(42,iparg(62,ng))
1513 pz = igeo(43,iparg(62,ng
1515 . detonators ,geo ,veul ,ale_connectivity,iparg(1,ng),
1516 . dtelem,sigi ,nel ,skew ,igeo ,
1517 . stifn ,partsav ,v ,ipart(i15k),mss,
1518 . ipart ,sigsp ,
1519 . nsigi ,in ,vr ,ipm ,nsigs ,
1520 . vnige ,bnige ,ptsol ,
1521 . bufmat ,npc ,pld ,fail_ini,nctrl,
1522 . msig3d ,knot ,nctrlmax,wige ,px,py,pz,
1523 . knotlocpc,knotlocel)
1524 ENDIF
1525
1526 IF (ity == 3) THEN
1527 WRITE(iout,'(A,I10,A,I5)')' SHELL GROUP',ng, ' VECTORIZATION CODE =',iparg(19,ng)
1528 ELSEIF (ity == 7) THEN
1529 WRITE(iout,'(A,I10,A,I5)')' TRIANGULAR SHELL GROUP',ng, ' VECTORIZATION CODE =',iparg(19,ng)
1530 ELSEIF (ity == 1) THEN
1531 WRITE(iout,'(A,I10,A,I5)')' BRICK GROUP',ng' VECTORIZATION CODE ='
1532 ENDIF
1533
1534 ENDIF
1535 END DO
1536
1537
1538
1539
1540
1541 CALL eikonal_solver(ixq , nixq , numelq ,
1542 . ixs , nixs , numels ,
1543 . ixtg , nixtg , numeltg ,
1544 . x , numnod , titre(55),
1545 . elbuf_tab, ngroup , nparg ,
1546 . nod2eltg , knod2eltg,
1547 . nod2elq , knod2elq ,
1548 . nod2els , knod2els ,
1549 . iparg , ale_connectivity, npropm, nummat, pm, n2d, detonators,
1550 . npropmi , ipm )
1551
1552
1554
1555
1556
1557 CALL detonation_times_printout(nparg,ngroup,iparg,n2d,ipri,elbuf_tab,
1558 . nixs,nixq,nixtg,numels,numelq,numeltg,ixs,ixq,ixtg)
1559
1560
1561
1562 IF(m51_iflg6==1 .AND. m51_lset_iflg6==1)THEN
1563
1564 WRITE (iout,1001)m51_lc0max,m51_ssp0max,m51_tcp_ref
1565 ENDIF
1566
1567 1001 FORMAT(
1568 .//
1569 .' NON REFLECTING FRONTIERS (/MAT/LAW51) '/
1570 .' ------------------------------------- '/
1571 & 5x,'INITIALIZATION OF GLOBAL PARAMETERS ',/
1572 & 5x,'CHARACTERISTIC LENGTH. . . . . . . . . .=',e12.4/
1573 & 5x,'REFERENCE SOUND SPEED. . . . . . . . . ='
1574 & 5x,'CHARACTERISTIC TIME. . . . . . . . . . .='
1575
1576
1577 CALL ancmsg(msgid=1228,msgtype=msgerror,anmode=aninfo_blind_1,prmod=msg_print)
1578
1579 user_grp_domain = 0
1580
1581
1582
1583
1584 isfem=0
1585 DO ng = 1, ngroup
1586 ity =iparg(5,ng)
1587 isolnod = iparg(28,ng)
1588 isrot = iparg(41,ng)
1589 icpre = iparg(10,ng)
1590 IF(ity /= 1)cycle
1591 IF(iparg(8, ng) == 1) cycle
1592 IF(isolnod /= 4 .AND. isolnod /= 10) cycle
1593 IF(isolnod==4.AND.isrot == 3) isfem=1
1594 IF(icpre>0.AND.(isolnod==10.OR.(isolnod==4.AND.isrot == 1))) isfem=1
1595 ENDDO
1596
1597
1598
1599 IF (cpt_eltens /= 0) THEN
1600 CALL ancmsg(msgid=863,msgtype=msgwarning,anmode=aninfo_blind_1,i1=cpt_eltens)
1601 ENDIF
1602
1603
1604
1605 addedms(1:npart) = zero
1606 IF(imasadd > 0)THEN
1608 1 ixs ,ixs10
1609 2 ixc ,ixt ,ixp ,ixr ,ixtg ,
1610 3 mss ,mssx ,msq ,msc
1611 4 mst ,msp ,msr ,mstg ,
1612 5 index ,itri ,geo ,partsav1_pon ,ipart(i15a) ,
1613 6 ipart(i15b),ipart(i15c),ipart(i15d),ipart(i15e) ,ipart(i15f) ,
1614 7 ipart(i15h),ipart )
1616 . part_area,pm,addedms,nom_opt(1,ptr_nopt_adm+1),
1617 . partsav1_pon)
1619 1 ixs ,ixs10 ,ixs20 ,ixs16 ,ixq ,
1620 2 ixc ,ixt
1621 3 mss ,mssx ,msq ,msc ,
1622 4 mst ,msp ,msr ,mstg ,
1623 5 ptg
1624 6 geo ,sh4tree ,sh3tree ,partsav ,ipmas ,
1625 7 ipart(i15a),ipart(i15b),ipart(i15c),ipart(i15d),
1626 8 ipart(i15e),ipart
1627 9 ipart ,thk ,pm ,part_area ,
1628 a addedms ,itab ,partsav1_pon,ele_area )
1629 END IF
1630
1631
1632
1633 kk1=1+numels*nixs
1634 kk2=kk1+numels10*6
1635 kk3=kk2+numels20*12
1637 1 ixs ,ixq ,ixc ,ixt ,ixp ,
1638 2 ixr ,ixtg ,mss ,msq ,
1639 3 msc ,mst ,msp ,msr ,mstg ,
1640 4 inc ,inp ,inr ,intg ,
1641 5 index ,itri ,ms ,in ,
1642 6 ptg ,geo ,ixs10 ,ixs20 ,
1643 7 ixs16 ,mssx ,msnf ,mssf ,vns ,
1644 8 vnsx ,stc ,stt ,stp ,str ,
1645 9 sttg ,stur ,bns ,bnsx ,volnod ,
1646 a bvolnod ,etnod
1647 b mcp ,mcps ,mcpsx ,mcptg,sh4tree,
1648 c sh3tree ,ms_layerc, zi_layerc , ms_layer,
1649 d zi_layer,msz2c, msz2,zply ,
1650 e kxig3d ,ixig3d ,msig3d,nctrlmax,strc ,
1651 f strp,
strr,strtg,stifintr,nshnod,vnige,bnige,
1652 g mcpp ,glob_therm%ITHERM_FE)
1653 IF(i7stifs/=0)
CALL asstifi(volnod,bvolnod
1654
1655
1656
1657
1658 IF(interfaces%PARAMETERS%ISTIF_DT > 0) THEN
1659 CALL inintmass( ipari, intbuf_tab,ms , interfaces%PARAMETERS%ISTIF_DT )
1660 ENDIF
1661 interfaces%PARAMETERS%DT_STIFINT = zero
1662 IF(interfaces%PARAMETERS%ISTIF_DT > 0) THEN
1663 CALL dtnoda_stifint( ms ,stifn ,interfaces%PARAMETERS%DT_STIFINT)
1664 ENDIF
1665
1666
1667
1668 IF(nlaser/=0)THEN
1669 CALL laser10(las,xlas,x,ixq,iparg)
1670 ENDIF
1671
1672
1673
1674
1675 IF(n2d == 0 .AND. imulti_fvm /= 1)THEN
1676 DO ng=1,ngroup
1677 ity=iparg(5,ng)
1678 jeul =iparg(11,ng)
1679 IF(ity == 1 .AND. jeul /= 0 )THEN
1680 mtn=iparg(1,ng)
1681 nel=iparg(2,ng)
1682 nft=iparg(3,ng)
1683 iad=iparg(4,ng)
1684 npt=iparg(6,ng)
1685 jale=iparg(7,ng)
1686 ismstr=iparg(9,ng)
1687 jtur=iparg(12,ng)
1688 jthe=iparg(13,ng)
1689 jlag=iparg(14,ng)
1690 jmult=iparg(20,ng)
1691 jpor=iparg(27,ng)
1692 CALL eporin3(ixs,veul,ale_connectivity,geo,nft,nel)
1693 ENDIF
1694 ENDDO
1695 ENDIF
1696
1697
1698
1700 . nparg , ngroup, iparg, numnod, npart,
1701 . numels , nixs, ixs, igrnod, ngrnod,
1702 . numeltg , nixtg, ixtg,
1703 . numelq , nixq, ixq,
1704 . x , nbsubmat, kvol,
1705 . elbuf_tab, numels8, xrefs, glob_therm,
1706 . n2d ,multi_fvm, sipart, ipart ,
1707 . i15a ,i15b , i15h, sbufmat, bufmat,
1708 . npropmi ,nummat , ipm, sbufsf, bufsf,
1709 . npropg ,numgeo , geo, mvsiz ,
skvol,
1710 . itab ,mat_param)
1711
1712
1713
1714 IF (ninigrav>0)THEN
1715 nv46=4
1716 IF(n2d==0)nv46 = 6
1718 1 elbuf_tab , ipart , igrpart , iparg , ipart(i15h),
1719 2 ipart(i15a) , ipart(i15b), x , ixs , ixq ,
1720 3 ixtg , pm , ipm , bufmat , multi_fvm ,
1721 4 ale_connectivity, nv46 , igrsurf , itab , ebcs_tab ,
1722 5 npc , pld , mat_param)
1723 ENDIF
1724
1725
1726
1727 IF (ninimap1d > 0) THEN
1728 WRITE(istdo, '(A)') titre(53)
1729 CALL ini_inimap1d(inimap1d ,elbuf_tab ,ipart ,iparg ,ipart(i15a),
1730 . ipart(i15b) ,x ,v ,ixs ,ixq ,
1731 . ixtg ,pm ,ipm ,bufmat ,multi_fvm ,
1732 . pld ,npc ,igrbric ,igrquad ,igrsh3n ,
1733 . npts ,mat_param ,snpc ,stf)
1734 ENDIF
1735
1736
1737
1738 IF (ninimap2d > 0) THEN
1739 WRITE(istdo, '(a)') TITRE(53)
1740 CALL INI_INIMAP2D(INIMAP2D ,ELBUF_TAB ,IPART ,IPARG ,IPART(I15A),
1741 . IPART(I15B) ,X ,V ,IXS ,IXQ ,
1742 . IXTG ,PM ,IPM ,BUFMAT ,MULTI_FVM ,
1743 . FUNC2D ,IGRBRIC ,IGRQUAD ,IGRSH3N )
1744 ENDIF
1745
1746
1747
1748.AND. IF (MULTI_FVM%IS_USED NINVEL > 0) THEN
1749 CALL INI_FVMINIVEL(FVM_INIVEL ,MULTI_FVM ,IGRBRIC ,IGRQUAD ,IGRSH3N)
1750 ENDIF
1751
1752
1753
1754 IF (ISMS_SELEC >= 1) THEN
1755 CALL SMS_AUTO_DT(DTELEM,NATIV_SMS,
1756 . IXS ,IXQ ,IXC ,IXT ,IXP ,
1757 . IXR ,IXTG ,IXS10 ,IXS16 ,IXS20 ,
1758 . IPART(I15A) ,IPART(I15B) ,IPART(I15C) ,IPART(I15D) ,IPART(I15E),
1759 . IPART(I15F) ,IPART(I15H) ,IPART(I15I) ,IPART ,
1760 . IPARG ,ELBUF_TAB ,IGEO ,IDDLEVEL ,TAGPRT_SMS )
1761 ENDIF
1762
1763 IF(ILAG+IALE+IEULER == 0)THEN
1764 DEALLOCATE(I8MI)
1765 RETURN
1766 ENDIF
1767
1768
1769
1770 B1=ZERO
1771 B2=ZERO
1772 B3=ZERO
1773 B6=ZERO
1774 B5=ZERO
1775 B9=ZERO
1776 TOTMAS=ZERO
1777 XG=ZERO
1778 YG=ZERO
1779 ZG=ZERO
1780
1781 IF(NRBYKIN>0)THEN
1782 RBYID=0
1783 DO I=1,NUMNOD
1784 IWA(I)=0
1785 ENDDO
1786 DO N=1,NRBYKIN
1787 M=NPBY(1,N)
1788 NSL=NPBY(2,N)
1789 ISPH=NPBY(5,N)
1790 RBYID= NPBY(6,N)
1791 ISENS=NPBY(4,N)
1792 ID=NOM_OPT(1,N)
1793 CALL FRETITL2(TITR,NOM_OPT(LNOPT1-LTITR+1,N),LTITR)
1794 IF(ISENS == 0)THEN
1795 CALL INIRBY(N ,RBY ,M ,LPBY ,
1796 . MS,IN ,X ,ITAB ,SKEW ,
1797 . B1,B2 ,B3 ,B5 ,B6 ,
1798 . B9,ISPH ,TOTMAS ,XG ,YG ,
1799 . ZG,STIFN ,STIFR ,NPBY ,RBYID ,
1800 . V ,VR ,ID ,TITR ,ITAGND,
1801 . RBY_INIAXIS)
1802 IWA(M)=N
1803 ENDIF
1804 ENDDO
1805
1806
1807
1808
1809 DO N=1,NRBYKIN
1810 M=NPBY(1,N)
1811 NSL=NPBY(2,N)
1812 ISPH=NPBY(5,N)
1813 ISENS=NPBY(4,N)
1814 RBYID= NPBY(6,N)
1815 ID=NOM_OPT(1,N)
1816 CALL FRETITL2(TITR,NOM_OPT(LNOPT1-LTITR+1,N),LTITR)
1817 IF(ISENS/=0)THEN
1818 CALL INIRBYS(N ,RBY ,M ,LPBY ,
1819 . MS,IN ,X ,ITAB ,SKEW,
1820 . B1,B2 ,B3 ,B5 ,B6 ,
1821 . B9,ISPH ,TOTMAS ,XG ,YG ,
1822 . ZG,NPBY ,IWA ,V ,VR ,
1823 . RBYID,ID ,TITR ,ITAGND,RBY_INIAXIS)
1824 ENDIF
1825 ENDDO
1826 ENDIF
1827
1828
1829
1830 IF(NRBYLAG/=0)
1831 . CALL LGMINI_RBY(NPBYL ,LPBYL ,RBYL ,MS ,IN ,X ,V ,VR ,ITAB ,NOM_OPT)
1832
1833
1834
1835 IF (NRBMERGE > 0) THEN
1836 CALL RETRIRBY(NPBY ,LPBY ,RBY ,NOM_OPT)
1837 ENDIF
1838
1839
1840
1841 IF (N_SEATBELT > 0) CALL INIT_SEATBELT_RBODIES(NNPBY,NRBODY,NPBY,SLRBODY,LPBY,SICODE,ICODE,NSLIPRING)
1842
1843
1844
1845 IF(IRIGID_MAT > 0)THEN
1846 CALL ININODE_RM(CONNEC ,IRIG_NODE, SLNRBM , NSLNRBM ,NRBYM ,
1847 . NGSLNRBYM,STIFN ,STIFR,RMSTIFN, RMSTIFR ,
1848 . NELEMR,NINDX )
1849 ENDIF
1850
1851
1852
1853 CALL INISRF(X,V,VR,NPBY,RBY,IGRSURF,BUFSF)
1854
1855
1856
1857 CALL RCHECKMASS(IXR ,GEO ,PM ,MSR ,INR ,
1858 . MS ,IN ,ITAB ,IGEO ,IPM ,
1859 . BUFMAT ,IPART ,IPART(I15F),NPBY ,LPBY )
1860
1861
1862
1863 IF (NFXBODY>0) THEN
1864
1865
1866
1867 CALL INI_FXBODY(FXBIPM, FXBRPM, FXBNOD, FXBGLM,FXBCPM,
1868 . FXBCPS, FXBLM, FXBFLS, FXBDLS,FXBMOD,
1869 . ITAB, X ,MS, IN, FXB_MATRIX,
1870 . FXB_MATRIX_ADD,FXB_LAST_ADRESS,ICODE,NOM_OPT(1,PTR_NOPT_FXB+1))
1871
1872 ALLOCATE(MBUFEL_TMP(LBUFEL), MDEPL_TMP(3*NUMNOD))
1873
1874 NMANI=0
1875 DO I=1,LENVAR
1876 FXBDEP(I)=ZERO
1877 FXBVIT(I)=ZERO
1878 FXBACC(I)=ZERO
1879 ENDDO
1880 CALL FXBVINI(FXBIPM, FXBVIT, FXBRPM, V, VR)
1881 IRCS=0
1882 DO I=1,NFXBODY
1883 ALM=FXBIPM(19,I)
1884 ASIG=FXBIPM(20,I)
1885 AMOD=FXBIPM(7,I)
1886 ARPM=FXBIPM(14,I)
1887 NBNO=FXBIPM(3,I)
1888 NME=FXBIPM(17,I)
1889 NML=FXBIPM(4,I)
1890 NELS=FXBIPM(21,I)
1891 NELC=FXBIPM(22,I)
1892 NELT=FXBIPM(34,I)
1893 NELP=FXBIPM(35,I)
1894 NELTG=FXBIPM(23,I)
1895 LVSIG=NELS*7+NELC*10+NELT*2+NELP*8+NELTG*10
1896 IFILE=FXBIPM(29,I)
1897 IF (IFILE == 0) THEN
1898 AMOD=AMOD+NME*NBNO*6
1899 ELSEIF (IFILE == 1) THEN
1900 AMOD=AMOD+NME*FXBIPM(18,I)*6
1901 ENDIF
1902 FXBIPM(31,I)=IRCS
1903 CALL FXBSINI(
1904 . FXBELM(ALM) , FXBSIG(ASIG), NELS, NELC, NELTG,
1905 . X , IPARG , PM , FXBMOD(AMOD), NML ,
1906 . NBNO , IXS , IXC , IXTG , GEO ,
1907 . FXBRPM(ARPM), I , FXBIPM(29,I), LVSIG ,FXBIPM(18,I),
1908 . NME , IRCS, FXBIPM(30,I), NELT, NELP ,
1909 . IXT , IXP ,IBEAM_VECTOR,RBEAM_VECTOR)
1910
1911 FXBIPM(33,I)=IRCS
1912 ADRRPM=FXBIPM(14,I)
1913 FXBRPM(ADRRPM+10)=ZERO
1914 FXBRPM(ADRRPM+11)=ZERO
1915
1916
1917 IF (FXBIPM(36,I) == 1) THEN
1918 FXBID=FXBIPM(1,I)
1919 ANOD=FXBIPM(6,I)
1920 IFILE=FXBIPM(29,I)
1921 IRCM=FXBIPM(30,I)
1922 IRCS=FXBIPM(31,I)
1923 NSNI=FXBIPM(18,I)
1924 NSN=FXBIPM(3,I)
1925 IRCM=IRCM+(NSN-NSNI)*FXBIPM(17,I)
1926 IMIN=FXBIPM(37,I)
1927 IMAX=FXBIPM(38,I)
1928
1929 DO J=1,FXBIPM(4,I)
1930 DO K=1,3*NUMNOD
1931 MDEPL_TMP(K)=ZERO
1932 ENDDO
1933 DO K=1,LBUFEL
1934 MBUFEL_TMP(K)=ELBUF(K)
1935 ENDDO
1936
1937 CALL MODDEPL(
1938 . FXBNOD(ANOD), FXBMOD(AMOD), MDEPL_TMP , IFILE, IRCM,
1939 . NSNI, NSN, AMOD )
1940
1941 CALL MODBUFEL(
1942 . FXBELM(ALM), FXBSIG(ASIG), MBUFEL_TMP, NELS, NELC,
1943 . NELT, NELP, NELTG, FXBRPM(ARPM), LBUFEL,
1944 . ASIG , IFILE, IRCS , LVSIG )
1945
1946.AND. IF (J>=IMINJ<=IMAX) THEN
1947 NMANI=NMANI+1
1948 FXANI(1,NMANI)=FXBID
1949 FXANI(2,NMANI)=J
1950 DO K=1,3*NUMNOD
1951 MDEPL(K,NMANI)=MDEPL_TMP(K)
1952 ENDDO
1953 DO K=1,LBUFEL
1954 MBUFEL(K,NMANI)=MBUFEL_TMP(K)
1955 ENDDO
1956 ENDIF
1957 ENDDO
1958 ENDIF
1959 ENDDO
1960
1961 DEALLOCATE(MBUFEL_TMP, MDEPL_TMP)
1962 ENDIF ! end flexible bodies
1963
1964
1965
1966 CALL INIRBE2(IRBE2 ,LRBE2 ,ITAB ,X ,MS ,
1967 . IN ,STIFN ,STIFR ,TOTMAS,XG ,
1968 . YG ,ZG ,B1 ,B2 ,B3 ,
1969 . B5 ,B6 ,B9 ,
1970 . NOM_OPT(1,PTR_NOPT_RBE2+1),ITAGND)
1971
1972
1973
1974 FLAG_KJ = 0
1975 DO NG=1,NGROUP
1976 NEL = IPARG(2,NG)
1977 ITY = IPARG(5,NG)
1978 NFT = IPARG(3,NG)
1979 IAD = IPARG(4,NG)
1980 LFT = 1
1981 LLT = NEL
1982 IF (ITY == 6) THEN
1983 IPROP=IXR(1,1+NFT)
1984 IGTYP = NINT(GEO(NPROPG*(IPROP-1)+12))
1985 GBUF => ELBUF_TAB(NG)%GBUF
1986 IF (IGTYP==33) THEN
1987 NUVAR = NINT(GEO(NPROPG*(IPROP-1)+25))
1988 CALL RINI33_RB(NEL,NUVAR,IPROP,IXR,NPBY,
1989 . LPBY,RBY,STIFR,GBUF%VAR,ITAB,
1990 . IGEO(1,IPROP),IXR_KJ,GBUF%MASS)
1991 ELSEIF (IGTYP==45) THEN
1992 IF (FLAG_KJ==0) WRITE(IOUT,1500)
1993 FLAG_KJ = 1
1994 NUVAR = NINT(GEO(NPROPG*(IPROP-1)+25))
1995 CALL RINI45_RB(NEL,NUVAR,IPROP,IXR,NPBY,
1996 . LPBY,RBY,STIFR,GBUF%VAR,ITAB,
1997 . IGEO(1,IPROP),IXR_KJ,GBUF%MASS,MS,IN)
1998 ENDIF
1999 ENDIF
2000 ENDDO
2001
2002
2003
2004 IF (NDAMP_FREQ_RANGE > 0) THEN
2005 call damping_range_init(ndamp,nrdamp,dampr,ngroup,nparg,iparg,elbuf_tab)
2006 ENDIF
2007
2008
2009 IF(IPRI>=2) THEN
2010 WRITE(IOUT,1000)
2011 WRITE(IOUT,'(5(i10,1x,1pg20.13))') (ITAB(I),MS(I),I=1,NUMNOD)
2012 IF (GLOB_THERM%ITHERM_FE > 0) THEN
2013 WRITE(IOUT,1600)
2014 WRITE(IOUT,'(5(i10,1x,1pg20.13))') (ITAB(I),TEMP(I),I=1,NUMNOD)
2015 WRITE(IOUT,1700)
2016 WRITE(IOUT,'(5(i10,1x,1pg20.13))') (ITAB(I),MCP(I),I=1,NUMNOD)
2017 ENDIF
2018 ENDIF
2019
2020
2021
2022 CALL OUTPART(PARTSAV,IPART,NPART)
2023
2024
2025
2026 CALL OUTPART5(GROUP_PARAM_TAB,IPART,IPART(I15A),IPARG,IGEO,GEO ,PM )
2027
2028
2029
2030 IF(IPARI0 == 3)THEN
2031 DO N=1,NUMNOD
2032 MS(N) = MS(N) +
2033 . I8MI(1,N) + r8_deuxm43 * (
2034 . I8MI(2,N) + r8_deuxm43 * I8MI(3,N))
2035 ENDDO
2036 IF(IRODDL/=0)THEN
2037 DO N=1,NUMNOD
2038 IN(N) = IN(N) +
2039 . I8MI(4,N) + r8_deuxm43 * (
2040 . I8MI(5,N) + r8_deuxm43 * I8MI(6,N))
2041 ENDDO
2042 ENDIF
2043 ENDIF
2044
2045
2046
2047 IF (NS10E >0) THEN
2048 DO N=1,NUMNOD
2049 IF (ITAGND(N)/=0) CYCLE
2050 NN3=3*N
2051 NN2=NN3-1
2052 NN1=NN2-1
2053 TOTMAS=TOTMAS+MS(N)
2054 XG=XG+MS(N)*X(NN1)
2055 YG=YG+MS(N)*X(NN2)
2056 ZG=ZG+MS(N)*X(NN3)
2057
2058 XX=(X(NN1))**2
2059 YY=(X(NN2))**2
2060 ZZ=(X(NN3))**2
2061 XY=(X(NN1))*(X(NN2))
2062 XZ=(X(NN1))*(X(NN3))
2063 YZ=(X(NN2))*(X(NN3))
2064
2065 B1=B1+(YY+ZZ)*MS(N)
2066 B5=B5+(XX+ZZ)*MS(N)
2067 B9=B9+(XX+YY)*MS(N)
2068 B2=B2-XY*MS(N)
2069 B6=B6-YZ*MS(N)
2070 B3=B3-XZ*MS(N)
2071 ENDDO
2072 ELSE
2073 DO N=1,NUMNOD
2074 NN3=3*N
2075 NN2=NN3-1
2076 NN1=NN2-1
2077 TOTMAS=TOTMAS+MS(N)
2078 XG=XG+MS(N)*X(NN1)
2079 YG=YG+MS(N)*X(NN2)
2080 ZG=ZG+MS(N)*X(NN3)
2081
2082 XX=(X(NN1))**2
2083 YY=(X(NN2))**2
2084 ZZ=(X(NN3))**2
2085 XY=(X(NN1))*(X(NN2))
2086 XZ=(X(NN1))*(X(NN3))
2087 YZ=(X(NN2))*(X(NN3))
2088
2089 B1=B1+(YY+ZZ)*MS(N)
2090 B5=B5+(XX+ZZ)*MS(N)
2091 B9=B9+(XX+YY)*MS(N)
2092 B2=B2-XY*MS(N)
2093 B6=B6-YZ*MS(N)
2094 B3=B3-XZ*MS(N)
2095 ENDDO
2096 END IF
2097
2098 IF(IRODDL/=0)THEN
2099 DO N=1,NUMNOD
2100 B1=B1+IN(N)
2101 B5=B5+IN(N)
2102 B9=B9+IN(N)
2103 ENDDO
2104 ENDIF
2105
2106 XG=XG/MAX(TOTMAS,EM20)
2107 YG=YG/MAX(TOTMAS,EM20)
2108 ZG=ZG/MAX(TOTMAS,EM20)
2109 WRITE(IOUT,1100)
2110 WRITE(IOUT,'(5x,1pg20.13,3(1x,g20.13))')
2111 . TOTMAS,XG,YG,ZG
2112
2113 XX=XG**2
2114 YY=YG**2
2115 ZZ=ZG**2
2116 XY=XG*YG
2117 XZ=XG*ZG
2118 YZ=YG*ZG
2119
2120 B1=B1-(YY+ZZ)*TOTMAS
2121 B5=B5-(XX+ZZ)*TOTMAS
2122 B9=B9-(XX+YY)*TOTMAS
2123 B2=B2+XY*TOTMAS
2124 B6=B6+YZ*TOTMAS
2125 B3=B3+XZ*TOTMAS
2126 WRITE(IOUT,1200)
2127 WRITE(IOUT,'(4x,3(1x,1pg20.13),3(1x,g20.13))')
2128 . B1,B5,B9,B2,B6,B3
2129
2130
2131
2132 WRITE(IOUT,'(//)')
2133 WRITE(IOUT,1300)
2134 WRITE(IOUT,1400) TOTADDMAS
2135
2136
2137
2138
2139 CALL NLOC_DMG_INIT(ELBUF_TAB,NLOC_DMG ,IPARG ,IXC ,
2140 . IXS ,IXTG ,ELE_AREA ,DTELEM ,
2141 . NUMEL ,IPM ,X ,XREFS ,
2142 . XREFC ,XREFTG ,BUFMAT ,PM )
2143
2144
2145
2146 IF (GLOB_THERM%ITHERM_FE > 0 ) THEN
2147 DEALLOCATE(MCPS,MCPP)
2148.OR..OR. IF(NUMELS10 > 0NUMELS16 > 0 NUMELS20 > 0)
2149 . DEALLOCATE(MCPSX)
2150 ENDIF
2151
2152 DEALLOCATE (PARTSAV)
2153
2154 DEALLOCATE(MS_LAYERC,ZI_LAYERC,MSZ2C,ZPLY)
2155 DEALLOCATE (PARTSAV1_PON)
2156
2157 DEALLOCATE(CONNEC,IRIG_NODE)
2158 IF(ALLOCATED(PART_AREA))DEALLOCATE(PART_AREA)
2159 DEALLOCATE(I8MI)
2160 IF(ALLOCATED(VPRELOAD)) DEALLOCATE (VPRELOAD)
2161 IF(ALLOCATED(ELE_AREA))DEALLOCATE(ELE_AREA)
2162
2163 RETURN
2164
2165 1000 FORMAT(//
2166 . 5X,'nodal masses',/
2167 . 5X,'------------',/
2168 . 5X,' node mass',22X,'node mass',22X,'node mass',22X,'node mass',
2169 .22X,'node mass'/)
2170 1100 FORMAT(//
2171 . 5X,'total mass and mass center',/
2172 . 5X,'--------------------------',/
2173 . 5X,' mass',20X,'x',20X,'y',20X,'z'/)
2174 1200 FORMAT(//
2175 . 5X,'total inertia',/
2176 . 5X,'-------------',/
2177 .22X,'ixx',18X,'iyy',18X,'izz',18X,'ixy',18X,'iyz',18X,'izx')
2178 1300 FORMAT(
2179 . 5X,' added nodal non-structural masses ' /
2180 . 5X,'-----------------------------------' /)
2181 1400 FORMAT(5X,' total added mass = ',1PG20.13//)
2182 1500 FORMAT(//
2183 . 5X,'kjoint2 spring definition',/
2184 . 5X,'------------------------'/)
2185 1600 FORMAT(//
2186 . 5X,'initial nodal temperatures',/
2187 . 5x,'--------------------------',/
2188 . 6x,5('NODE TEMPERATURE',15x),'NODE TEMPERATURE'/)
2189 1700 FORMAT(//
2190 . 5x,'INITIAL NODAL MCP ',/
2191 . 5x,'--------------------------',/
2192 . 6x,5('NODE MCP ',15x),'NODE MCP '/)
2193 RETURN
subroutine addmaspart(ipart, ipmas, partsav, part_area, pm, addedms, nom_opt, partsav_pon)
subroutine asstifi(volnod, bvolnod, etnod, nshnod, stifint)
subroutine binit2(elbuf_str, ms, ixq, pm, x, detonators, veul, ale_connectivity, iparg, fill, sigi, bufmat, nel, mat_param, skew, msq, ipart, ipartq, geo, igeo, ipm, nsigs, wma, ptquad, npf, tf, ipargg, iloadp, facload, partsav, v)
subroutine c3init3(elbuf_str, ixtg, pm, x, geo, igrsh4n, xmas, in, nvc, dtelem, igrsh3n, xreftg, offset, nel, ithk, thk, isigsh, sigsh, stifn, stifr, partsav, v, ipart, mstg, intg, ptg, skew, iparg, nsigsh, igeo, iuser, etnod, nshnod, sttg, ptsh3n, ipm, bufmat, sh3tree, mcp, mcptg, temp, cpt_eltens, part_area, itage, itagn, ixfem, npf, tf, sh3trim, xfem_str, isubstack, stack, rnoise, drape, sh3ang, iddlevel, geo_stack, igeo_stack, strtg, perturb, ish3n, iyldini, ele_area, nloc_dmg, ng, group_param, idrape, drapeg, mat_param, fail_fractal, fail_brokmann, glob_therm)
subroutine cbainit3(elbuf_str, ixc, pm, x, geo, xmas, in, nvc, dtelem, igrsh4n, xrefc, nel, ithk, ihbe, igrsh3n, thke, isigsh, sigsh, stifn, stifr, partsav, v, ipart, msc, inc, skew, i8mi, nsigsh, igeo, ipm, iuser, etnod, nshnod, stc, ptshel, bufmat, sh4tree, mcp, mcps, temp, ms_layer, zi_layer, itag, itagel, iparg, ms_layerc, zi_layerc, part_area, cpt_eltens, msz2c, zply, itagn, itage, ixfem, npf, tf, xfem_str, isubstack, stack, rnoise, drape, sh4ang, iddlevel, geo_stack, igeo_stack, strc, perturb, iyldini, ele_area, nloc_dmg, ng, group_param, idrape, drapeg, mat_param, fail_fractal, fail_brokmann, glob_therm)
subroutine cdkinit3(elbuf_str, group_param, ixtg, pm, x, geo, xmas, in, nvc, dtelem, xreftg, offset, nel, ithk, thk, isigsh, sigsh, stifn, stifr, partsav, v, ipart, mstg, intg, ptg, skew, ish3n, nsigsh, igeo, ipm, iuser, etnod, nshnod, sttg, ptsh3n, bufmat, sh3tree, mcp, mcps, temp, iparg, cpt_eltens, part_area, npf, tf, sh3trim, isubstack, stack, rnoise, drape, sh3ang, geo_stack, igeo_stack, strtg, perturb, iyldini, ele_area, nloc_dmg, idrape, drapeg, mat_param, glob_therm)
subroutine cinit3(elbuf_str, ixc, pm, x, geo, xmas, in, nvc, dtelem, igrsh4n, xrefc, nel, ithk, ihbe, igrsh3n, thk, isigsh, sigsh, stifn, stifr, partsav, v, ipart, msc, inc, skew, iparg, i8mi, nsigsh, igeo, iuser, etnod, nshnod, stc, ptshel, ipm, bufmat, sh4tree, mcp, mcps, temp, cpt_eltens, part_area, itagn, itage, ixfem, npf, tf, xfem_str, isubstack, stack, rnoise, drape, sh4ang, iddlevel, geo_stack, igeo_stack, strc, perturb, iyldini, ele_area, ng, group_param, nloc_dmg, idrape, drapeg, mat_param, fail_fractal, fail_brokmann, glob_therm)
subroutine dtnoda(nodft, nodlt, neltst, ityptst, itab, ms, in, stifn, stifr, dt2t, dmast, dinert, adt, adm, imsch, weight, a, ar, igrnod, nodadt_therm, adi, rbym, arby, arrby, weight_md, mcp, mcp_off, condn, nale, h3d_data)
subroutine dtnoda_stifint(ms, stifn, dt_stifint)
subroutine eporin3(ixs, veul, ale_connectivity, geo, nft, nel)
subroutine fail_brokmann(nel, nuparam, nuvar, time, timestep, uparam, ngl, signxx, signyy, signxy, uvar, off, ipt, nindxf, indxf, tdel)
subroutine ig3dinit3(elbuf_str, ms, kxig3d, ixig3d, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, ipartig3d, mss, ipart, sigsp, nsigi, in, vr, ipm, nsigs, vnige, bnige, ptsol, bufmat, npf, tf, fail_ini, nctrl, msig3d, knot, nctrlmax, wige, px, py, pz, knotlocpc, knotlocel)
subroutine ini_inimap1d(inimap1d, elbuf_tab, ipart, iparg, iparts, ipartq, xgrid, vel, ixs, ixq, ixtg, pm, ipm, bufmat, multi_fvm, pld, npc, igrbric, igrquad, igrsh3n, npts, mat_param, snpc, stf)
subroutine ini_seatbelt(iparg, elbuf_tab, knod2el1d, nod2el1d, ixr, x, itab, ipm, alea, knod2elc, nod2elc, ixc)
subroutine iniboltprel(ixs, ipreload, preload, vpreload, iflag_bpreload)
subroutine inigrav_load(elbuf_tab, ipart, igrpart, iparg, iparttg, iparts, ipartq, x, ixs, ixq, ixtg, pm, ipm, bufmat, multi_fvm, ale_connectivity, nv46, igrsurf, itab, ebcs_tab, npf, tf, mat_param)
subroutine inintmass(ipari, intbuf_tab, ms, istif_dt)
subroutine inirig_mat(ixc, ixs, ixtg, ixs10, x, v, pm, geo, ms, in, ptg, msc, mss, mstg, inc, intg, thkc, thkt, partsav, iparts, ipartc, ipartt, veul, dtelem, ihbe, isolnod, nvc, i8mi, msnf, mssf, igeo, etnod, nshnod, stc, sttg, wma, sh4tree, sh3tree, mcp, mcpc, temp, mcps, mssx, mcpsx, ins, stifn, stifr, connec, irig_node, numel, nindx, xrefc, xreftg, xrefs, mssa, sh3trim, isubstack, bufmat, ipm, stack, rnoise, strc, strtg, perturb, nel, group_param, igtyp, defaults, glob_therm)
subroutine sgsavinieref(npe, straglob, sigsp, nsigi, ptsol, sav, offg, nel)
subroutine sgsavref(npe, xref, sav, nel)
subroutine sgsavinierefq(npe, straglob, sigsp, nsigi, ptsol, sav, offg, ixs, dr, ndr, nel)
subroutine checkmp(numel, ix, nix, ng, ne, emat, epid, ipm, igeo, elem, ipartel)
subroutine chekmp2(numel, ipart, ipartel, ix, nix, ne, emat, epid, ipm, igeo, elem)
subroutine inivoid(elbuf_str, ixc, ixs, ixtg, x, v, pm, geo, ms, in, ptg, msc, mss, mstg, inc, intg, thkc, thkt, partsav, iparts, ipartc, ipartt, veul, dtelem, ihbe, isolnod, nvc, i8mi, msnf, mssf, igeo, etnod, nshnod, stc, sttg, wma, sh4tree, sh3tree, mcp, mcpc, temp, mcps, xrefc, xreftg, xrefs, mssa, volnod, bvolnod, vns, bns, sh3trim, isubstack, stack, rnoise, perturb, ele_area, part_area, iparttr, ixt, ipartp, ixp, mst, msp, stt, stp, strp, inp, stifint, mcpp, inr, msr, msrt, str, ipartr, itab, ixr, imerge2, iadmerge2, nel, defaults, glob_therm, ibeam_vector, rbeam_vector)
subroutine inspcnd(ispcond, igrnod, kxsp, ixsp, nod2sp, itab, icode, iskew, iskn, skew, xframe, x, ispsym, isptag, pm, geo, ipart, ipartsp)
subroutine laser10(las, xlas, x, ixq, iparg)
subroutine multifluid_global_tdet(iparg, elbuf_tab, multi_fvm, ipm)
subroutine multifluid_init2(nel, nsigs, iparg, ixq, ipm, ale_connectivity, igeo, ipart, ipartq, npf, ptquad, iloadp, x, pm, geo, sigi, skew, tf, bufmat, facload, elbuf_str, error_thrown, detonators, mat_param)
subroutine multifluid_init2t(elbuf_str, nel, nsigs, nvc, iparg, ixtg, ale_connectivity, igeo, ipart, iparttg, ipm, ptsh3n, npf, iloadp, xgrid, pm, geo, sigi, skew, tf, bufmat, facload, multi_fvm, error_thrown, detonators, mat_param)
subroutine multifluid_init3(elbuf_str, mas, ixs, pm, x, geo, ale_connectivity, iparg_gr, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ipart, sigsp, ng, iparg, glob_therm, nsigi, msnf, nvc, mssf, ipm, iuser, nsigs, volnod, bvolnod, vns, bns, in, vr, ins, wma, ptsol, bufmat, mcp, mcps, temp, xrefs, npf, tf, mssa, strsglob, straglob, fail_ini, spbuf, kxsp, ipartsp, nod2sp, sol2sph, irst, iloadp, facload, multi_fvm, error_thrown, detonators, mat_param)
subroutine multifluid_init3t(elbuf_str, nel, nsigs, nsigi, ixs, igeo, ipm, iparg, ale_connectivity, iparts, ptsol, npf, ipart, iloadp, xrefs, geo, pm, facload, tf, skew, sigi, bufmat, x, wma, partsav, mas, v, mss, mssf, mssa, msnf, mcps, error_thrown, detonators, defaults, mat_param, nintemp)
integer, dimension(:), allocatable iflag_bpreload
integer, dimension(:), allocatable ipreload
type(inivol_struct_), dimension(:), allocatable inivol
subroutine pinit3(elbuf_str, stp, ic, pm, x, geo, dtelem, nft, nel, stifn, stifr, partsav, v, ipart, msp, inp, igeo, strp, nsigbeam, sigbeam, ptbeam, iuser, mcpp, temp, preload_a, ipreld, npreload_a, glob_therm, ibeam_vector, rbeam_vector)
subroutine q4init2(elbuf_str, ms, ixq, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, igeo, nel, skew, msq, ipart, ipartq, ipm, nsigs, wma, ptquad, bufmat, npf, tf, ipargg, iloadp, facload, partsav, v)
subroutine qinit2(elbuf_str, ms, ixq, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, igeo, nel, skew, msq, ipart, ipartq, ipm, nsigs, wma, ptquad, bufmat, npf, tf, ipargg, iloadp, facload, partsav, v)
subroutine rinit3(elbuf_str, ixr, x, geo, xmas, npc, pld, xin, skew, dtelem, nel, stifn, stifr, partsav, v, ipart, itab, msr, inr, stifint, str, igeo, sigrs, nsigrs, imerge2, iadmerge2, msrt, ixr_kj, nom_opt, strr, ptspri, ipm, pm, uparam, r_skew, preload_a, ipreld, npreload_a, ikine)
subroutine s10init3(elbuf_str, mas, ixs, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ixs10, ipart, glob_therm, mssx, sigsp, nsigi, ipm, iuser, nsigs, volnod, bvolnod, vns, bns, vnsx, bnsx, ptsol, bufmat, mcp, mcps, mcpsx, temp, npf, tf, in, stifr, ins, mssa, strsglob, straglob, fail_ini, iloadp, facload, rnoise, perturb, mat_param, defaults_solid)
subroutine s10jaci3(elbuf_str, sav, npt, nel)
subroutine s16init3(elbuf_str, mas, ixs, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ixs16, ipart, mssx, sigsp, nsigi, ipm, iuser, nsigs, volnod, bvolnod, vns, bns, vnsx, bnsx, ptsol, bufmat, mcp, mcps, mcpsx, temp, npf, tf, strsglob, straglob, fail_ini, iloadp, facload, rnoise, perturb, mat_param, glob_therm)
subroutine s20init3(elbuf_str, mas, ixs, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ixs20, ipart, mssx, sigsp, nsigi, ipm, iuser, nsigs, volnod, bvolnod, vns, bns, vnsx, bnsx, ptsol, bufmat, mcp, mcps, mcpsx, temp, npf, tf, strsglob, straglob, fail_ini, iloadp, facload, rnoise, perturb, mat_param, glob_therm)
subroutine s4init3(elbuf_str, mas, ixs, pm, x, detonators, geo, veul, ale_connectivity, iparg_gr, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ipart, msnf, iparg, mssf, ipm, nsigs, volnod, bvolnod, vns, bns, wma, ptsol, bufmat, mcp, mcps, temp, npf, tf, iuser, sigsp, nsigi, mssa, xrefs, strsglob, straglob, fail_ini, spbuf, sol2sph, iloadp, facload, rnoise, perturb, mat_param, defaults_solid, nintemp)
subroutine s4refsta3(elbuf_str, ixs, pm, geo, iparg, ipm, igeo, skew, x, xrefs, nel, iparts, ipart, bufmat, mat_param, npf, tf, nummat)
subroutine s6cinit3(elbuf_str, mas, ixs, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ipart, glob_therm, sigsp, nsigi, ipm, iuser, nsigs, volnod, bvolnod, vns, bns, ptsol, bufmat, mcp, mcps, mcpsx, temp, npf, tf, strsglob, straglob, mssa, orthoglob, fail_ini, iloadp, facload, rnoise, perturb, mat_param, defaults_solid)
subroutine s8cinit3(elbuf_str, mas, ixs, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ipart, sigsp, nsigi, msnf, mssf, ipm, iuser, nsigs, volnod, bvolnod, vns, bns, wma, ptsol, bufmat, mcp, mcps, temp, npf, tf, xrefs, mssa, strsglob, straglob, orthoglob, fail_ini, iloadp, facload, rnoise, perturb, mat_param, glob_therm)
subroutine s8zinit3(elbuf_str, mas, ixs, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ipart, glob_therm, sigsp, nsigi, msnf, mssf, ipm, iuser, nsigs, volnod, bvolnod, vns, bns, wma, ptsol, bufmat, mcp, mcps, temp, npf, tf, xrefs, mssa, strsglob, straglob, fail_ini, spbuf, kxsp, ipartsp, nod2sp, sol2sph, irst, iloadp, facload, perturb, rnoise, mat_param)
subroutine scaleini(elbuf_str, ixs, sigsp, sigi, nsigi, nel, lft, llt, nft, nsigs, pt, igeo)
subroutine scinit3(elbuf_str, mas, ixs, pm, x, mss, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, ipart, sigsp, nsigi, msnf, mssf, ipm, iuser, nsigs, volnod, bvolnod, vns, bns, wma, ptsol, bufmat, mcp, mcps, temp, npf, tf, mssa, strsglob, straglob, orthoglob, fail_ini, iloadp, facload, rnoise, perturb, glob_therm)
subroutine sinit3(elbuf_str, mas, ixs, pm, x, detonators, geo, veul, ale_connectivity, iparg_gr, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ipart, sigsp, ng, iparg, nsigi, msnf, nvc, mssf, ipm, iuser, nsigs, volnod, bvolnod, vns, bns, in, vr, ins, wma, ptsol, bufmat, mcp, mcps, temp, xrefs, npf, tf, mssa, strsglob, straglob, fail_ini, spbuf, kxsp, ipartsp, nod2sp, sol2sph, irst, iloadp, facload, rnoise, perturb, mat_param, glob_therm)
subroutine spinit3(igrtyp, spbuf, kxsp, x, geo, xmas, npc, pld, xin, skew, dtelem, nel, stifn, stifr, igeo, partsav, v, ipartsp, bufmat, pm, itab, msr, inr, ixsp, nod2sp, iparg, ale_connectivity, detonators, sigsph, isptag, ipart, ipm, nsigsph, ptsph, npf, tf, elbuf_str, mcp, temp, iloadp, facload, stifint, i7stifs, glob_therm)
subroutine spmd_msin(ixs, ixq, ixc, ixt, ixp, ixr, ixtg, mss, msq, msc, mst, msp, msr, mstg, inc, inp, inr, intg, index, itri, ms, in, ptg, geo, ixs10, ixs20, ixs16, mssx, msnf, mssf, vns, vnsx, stc, stt, stp, str, sttg, stur, bns, bnsx, volnod, bvolnod, etnod, stifint, ins, mcpc, mcp, mcps, mcpsx, mcptg, sh4tree, sh3tree, ms_layerc, zi_layerc, ms_layer, zi_layer, msz2c, msz2, zply, kxig3d, ixig3d, msig3d, nctrlmax, strc, strp, strr, strtg, stifintr, nshnod, vnige, bnige, mcpp, itherm_fe)
subroutine spmd_partsav_pon(ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, ixtg, mss, mssx, msq, msc, mst, msp, msr, mstg, index, itri, geo, partsav1_pon, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, ipart)
subroutine spmd_msin_addmass(ixs, ixs10, ixs20, ixs16, ixq, ixc, ixt, ixp, ixr, ixtg, mss, mssx, msq, msc, mst, msp, msr, mstg, ptg, ms, index, itri, geo, sh4tree, sh3tree, partsav, ipmas, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, totaddmas, ipart, thk, pm, part_area, addedms, itab, partsav1_pon, ele_area)
subroutine srefsta3(elbuf_str, ixs, pm, geo, iparg, ipm, igeo, skew, x, xrefs, nel, iparts, ipart, bufmat, mat_param, npf, tf, nummat)
subroutine sgsavini(npe, x, ixs, sav, nel)
subroutine suinit3(elbuf_str, ms, ixs, pm, x, detonators, geo, veul, ale_connectivity, iparg, dtelem, sigi, nel, skew, igeo, stifn, partsav, v, iparts, mss, ipart, sigsp, glob_therm, temp, nsigi, in, vr, ipm, nsigs, volnod, bvolnod, vns, bns, ptsol, bufmat, npf, tf, fail_ini, ins, iloadp, facload, rnoise, perturb, mat_param)
subroutine tinit3(elbuf_str, ic, pm, x, geo, xmas, dtelem, nft, nel, stifn, partsav, v, ipart, mst, stifint, stt, igeo, nsigtruss, sigtruss, pttruss, preload_a, ipreld, npreload_a)
subroutine xinit3(elbuf_str, kxx, ixx, x, v, vr, xmas, xin, skew, dtelem, nel, stifn, stifr, partsav, ipartx, geo, itab, uix, xusr, vusr, vrusr, umass, uiner, ustifm, ustifr, uvism, uvisr, igeo, nft)
integer function uel2sys(iu, ksysusr, numel)