83
84
85
87 USE multi_fvm_mod
105 USE mat_elem_mod
107 USE bcs_mod , only : bcs
108 USE defaults_mod
109 USE format_mod
110 use glob_therm_mod
111 USE pblast_mod
112 USE output_mod , ONLY : output_
113
114
115
116#include "implicit_f.inc"
117
118
119
120#include "mvsiz_p.inc"
121
122
123
124#include "units_c.inc"
125#include "warn_c.inc"
126#include "com01_c.inc"
127#include "com04_c.inc"
128#include "com06_c.inc"
129#include "com08_c.inc"
130#include "com09_c.inc"
131#include "com10_c.inc"
132#include "com_xfem1.inc"
133#include "intstamp_c.inc"
134#include "random_c.inc"
135#include "scr03_c.inc"
136#include "scr05_c.inc"
137#include "scr06_c.inc"
138#include "scr10_c.inc"
139#include "scr12_c.inc"
140#include "scr15_c.inc"
141#include "scr16_c.inc"
142#include "scr22_c.inc"
143#include "scr23_c.inc"
144#include "titr_c.inc"
145#include "param_c.inc"
146#include "sphcom.inc"
147#include "lagmult.inc"
148#include "fxbcom.inc"
149#include "scr14_c.inc"
150#include "remesh_c.inc"
151#include "sysunit.inc"
152#include "commandline.inc"
153#include "r2r_c.inc"
154#include "userlib.inc"
155#include "spmd_c.inc"
156#include "drape_c.inc"
157#include "inter22.inc"
158#include "boltpr_c.inc"
159#include "ige3d_c.inc"
160#include "com_engcards_c.inc"
161#include "sms_c.inc"
162
163
164
165 TYPE(MULTI_FVM_STRUCT), INTENT(IN) :: MULTI_FVM
166 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
167 INTEGER,INTENT(IN)::IS_DYNA
168 TYPE(DETONATORS_STRUCT_) :: DETONATORS
169 TYPE(USER_WINDOWS_), INTENT(INOUT) :: USER_WINDOWS
170 TYPE(MAT_ELEM_), INTENT(INOUT) :: MAT_ELEM
171 TYPE(NAMES_AND_TITLES_),INTENT(INOUT) :: NAMES_AND_TITLES
172 INTEGER,INTENT(IN) :: LIPART1
173 TYPE(DEFAULTS_), INTENT(INOUT) :: DEFAULTS
174 type (glob_therm_) ,intent(inout) :: glob_therm
175 TYPE(PBLAST_), INTENT(INOUT) :: PBLAST
176 TYPE(OUTPUT_),INTENT(INOUT) :: OUTPUT
177
178
179
180 INTEGER I, J, N, ISFIL, IPCT, IBID,INSH,
181 . ,IPARITH,JALE,JEUL,
182 . IUN,NSHFRAM,JUPW,IMAT,IG,,IFRAME_DDS,
183 . IPLA_DDS,NPTS_DD,UID,IHBE,ISMSTR,IPLAS,ICPRE,ICSTR,NPT,
184 . ISROT,L1,NPTS, ,NIMPVEL,NIMPACC,ICR,
185 . ,IERROR,ID,IDX,IDY,IDZ,NCTRL,BID,NSH3NFRAM,NS17_OLD,
186 . ,IGNORE_THREADS,GOT_VARIABLE,KROT,OLD_RSB,
187 . NRAFX,NRAFY,NRAFZ,NFUNCT0,NTABLE0,NTABLE1,NSENSOR,
188 . IRFE,IRFL, HM_NINTER_DEF,NB_AMS,NUMNUSR,NPERTURB_HM,ICR3,
189 . NPYFUN
190 INTEGER IARCHS(8)
191 INTEGER IS_BEGIN,SCHAR
192 INTEGER IHBE_DS,ISST_DS,IPLA_DS,IFRAME_DS,ITET4_D,ITET10_D,ICPRE_D,IMAS_DS,ICONTROL_D,
193 . IHBE_D,IPLA_D,ISTR_D,ITHK_D,ISHEA_D,ISST_D,
194 . ISH3N_D, ISTRA_D,NPTS_D,IDRIL_D,IOFFSET_D,DEF_INTER(100)
196 CHARACTER (LEN=NCHARLINE) :: CART
197 CHARACTER (LEN=NCHARLINE) :: XRFILE
198 CHARACTER (LEN=NCHARLINE) :: KEY
199 CHARACTER (LEN=NCHARLINE) :: KEY2
200 CHARACTER (LEN=NCHARLINE) :: TMPLINE
201 CHARACTER (LEN=NCHARLINE) :: LINE
202 CHARACTER (LEN=NCHARTITLE) :: TITR
203 CHARACTER (LEN=255) :: STR_NBTHREADS
204 CHARACTER MESS*40, ERRMSG*40
205 CHARACTER*3 :: LABEL_DEF,LABEL_ROT
206
207
208#if defined(_OPENMP)
209 INTEGER OMP_GET_THREAD_NUM, OMP_GET_NUM_THREADS,NTHREAD1
210 EXTERNAL omp_get_thread_num, omp_get_num_threads
211 CHARACTER (LEN=255) :: STR
212#endif
213 INTEGER NTHREAD_S
215
216 INTEGER , DIMENSION(:), ALLOCATABLE :: NPLY,NSUB,NISUB
217
218 INTEGER :: NITER,IFORM
219
220 INTEGER :: LEN_TMP_NAME
221 CHARACTER(len=4096) :: TMP_NAME
222 LOGICAL :: IS_AVAILABLE
223 INTEGER :: NUMTITLE, NGRTRIA, , NANIM_VERS
224 INTEGER :: NALEMUSCL
225 INTEGER :: NB_INISHE,NB_INISH3,NB_INIBRI,NB_INIQUAD,
226 . NB_INIBEAM,NB_INITRUSS,NB_INISPRIG,NB_INISPHCEL
227 INTEGER :: LEN_LINE
228 CHARACTER*20 UNIT_NAME
229 INTEGER IS_U_STRING
230
231
232
233 INTEGER NBCS_LAGM
234 EXTERNAL nbcs_lagm
235
236
237
238 DATA s0file/' '/
239 DATA xrfile/' '/
240 DATA iun/1/
241
242
243
244
245
246
247
248
250 IF (numtitle > 0) THEN
252 CALL HM_OPTION_READ_KEY(LSUBMODEL, OPTION_TITR = LINE)
253 CALL HM_GET_STRING('my_title', LINE, ncharline, IS_AVAILABLE)
254 ELSE
255 LINE = ' '
256 ENDIF
257! Standard output
258 WRITE(ISTDO,'(a)') LINE(1:LEN_TRIM(LINE))
259
260 ! Store the input deck title in Structure
261 LEN_LINE= MIN(LEN_TRIM(LINE),LTITLE) ! Truncate to LTITLE
262 NAMES_AND_TITLES%TITLE(1:LEN_LINE)=LINE(1:LEN_LINE)
263
264 IMOT=0
265 REEL=ZEP66
266
267
268
269
270 WRITE(ISTDO,'(a)')TITRE(12)
271 CALL HM_OPTION_COUNT('/unit',NUNIT0)
272 UNITAB%NUNIT0 = NUNIT0
273
274 CALL HM_OPTION_COUNT('/begin',IS_BEGIN)
275
276 SCHAR = 20
277 IF (IS_BEGIN /= 0) THEN
278 CALL HM_OPTION_START('/begin')
279 CALL HM_OPTION_NEXT()
280
281 CALL HM_GET_INTV('invers', INVERS, IS_AVAILABLE, LSUBMODEL)
282 INVERS_SRC = INVERS
283 INVERS_INIT = INVERS
284
285 CALL HM_GET_STRING('length_inputunit_code',KEYLI,SCHAR,IS_AVAILABLE)
286 CALL HM_GET_STRING('mass_inputunit_code',KEYMI,SCHAR,IS_AVAILABLE)
287 CALL HM_GET_STRING('time_inputunit_code',KEYTI,SCHAR,IS_AVAILABLE)
288 CALL HM_GET_STRING('length_workunit_code',KEYL,SCHAR,IS_AVAILABLE)
289 CALL HM_GET_STRING('mass_workunit_code',KEYM,SCHAR,IS_AVAILABLE)
290 CALL HM_GET_STRING('time_workunit_code',KEYT,SCHAR,IS_AVAILABLE)
291
292 !convert into ascci format specific encoding of greek letter \mu
293 CALL ASCII_ENCODING_MU_LETTER(KEYLI, KEYMI, KEYTI, KEYL, KEYM, KEYT)
294
295 IF(INVERS <= 90)THEN
296 ! /UNIT/LENGTH/[value]
297 ! /UNIT/MASS/[value]
298 ! /UNIT/TIME/[value]
299 CALL HM_OPTION_START('/unit')
300 DO N=1,NUNIT0
301 CALL HM_OPTION_READ_KEY(LSUBMODEL,OPTION_ID = ID)
302 UNIT_NAME = ''
303 CALL HM_GET_STRING('unit_name',UNIT_NAME,2*ncharfield,IS_AVAILABLE)
304
305 IF(UNIT_NAME == 'length') THEN
306 CALL HM_GET_STRING('type_unit',KEYL,2*ncharfield,IS_AVAILABLE)
307 ENDIF
308 IF(UNIT_NAME == 'mass') THEN
309 CALL HM_GET_STRING('type_unit',KEYM,2*ncharfield,IS_AVAILABLE)
310 ENDIF
311 IF(UNIT_NAME == 'time') THEN
312 CALL HM_GET_STRING('type_unit',KEYT,2*ncharfield,IS_AVAILABLE)
313 ENDIF
314 ENDDO
315 ENDIF !(INVERS <= 90)
316
317 ENDIF
318 CALL HM_READ_UNIT(UNITAB,LSUBMODEL)
319
320
321
322 WRITE(ISTDO,'(a)')TITRE(10)
323
324
325
326 CALL HM_READ_SPMD(LSUBMODEL)
327
328 IGNORE_SPMD=0
329 IF (GOT_NCPU ==1) THEN
330 IF (NSPMD/=0) THEN
331 IGNORE_SPMD=1
332 END IF
333 NSPMD = NCPU
334 ENDIF
335
336
337
338 IGNORE_THREADS=0
339 GOT_VARIABLE=0
340#if defined(_OPENMP)
341 STR = ' '
342 CALL GETENV('omp_num_threads',STR)
343 NTHREAD1=0
344
345 READ(STR,'(i10)',ERR=999)NTHREAD1
346 IF(NTHREAD1>0)THEN
347 NTHREAD = NTHREAD1
348 ENDIF
349 IF (GOT_NTH ==1) THEN
350 IF (NTHREAD/=0) THEN
351 IGNORE_THREADS=1
352 END IF
353 NTHREAD = NTH
354 ELSE
355 IF(NTHREAD1>0)THEN
356 GOT_VARIABLE=1
357 END IF
358 ENDIF
359
360 NTHREAD = MAX(NTHREAD,1)
361 NTHREAD_S = NTHREAD
362 NTHREAD_R2R = NTHREAD
363 CALL OMP_SET_NUM_THREADS(NTHREAD_S)
364
365
366#elif 1
367 IF (GOT_NTH ==1) THEN
368 IF (NTHREAD/=0) THEN
369 IGNORE_THREADS=1
370 END IF
371 NTHREAD = NTH
372 ENDIF
373 NTHREAD_S = 1
374#endif
375
376
377 IARCH = IBUILTIN
378 NVSIZ = ARCHINFO(IBUILTIN,1)
379 IVECTOR = ARCHINFO(IBUILTIN,2)
380
381 ! ---------------------------
382 ! -grp_size hidden option
383 IF(GRP_SIZE_BOOL) THEN
384 NVSIZ = GRP_SIZE
385 ENDIF
386 ! ---------------------------
387
388
389
390 CALL HM_READ_IOFLAG(LSUBMODEL)
391
392
393
394 IPARI0= 1
395 INTEG8= 0
396 CALL HM_READ_ANALY(NANALY,IPARITH,IPARI0,LSUBMODEL)
397 N2D = NANALY
398
399
400
401 CALL HM_READ_IMPLICIT(LSUBMODEL)
402
403
404
405 CALL HM_OPTION_COUNT('/ams', NB_AMS)
406 CALL HM_READ_SMS(LSUBMODEL)
407
408
409
410 CALL HM_READ_CAA(LSUBMODEL)
411
412
413
414 CALL HM_OPTION_COUNT('/random',NRAND)
415
416
417
418 CALL HM_READ_LAGMUL(LSUBMODEL)
419
420 CALL HM_OPTION_COUNT('/PRIVATE/metadata/fatxml',IPRIVATE)
421 IF(IPRIVATE > 0 ) IPRIVATE = 1
422
423
424
425 CALL HM_OPTION_COUNT('/stamping',ISTAMPING)
426 IF(ISTAMPING > 0 ) ISTAMPING = 1
427
428 ICRASH = 0
429
430
431
432!--- remove first /DEF/SOLID in src21_c.inc
433 CALL init_def_zero(DEFAULTS)
434!---- obsolet flag values fixed here
435 IPLA_DS =2 ! obsolet
436 ISTR_D=1 ! istrain
437 ISHEA_D=0 ! Old hidden flag in /DEF_SHELL
438 INER_9_12 = ZERO
439 INSH = 0 ! Old hidden flag in /DEF_SHELL
440 NPTS_D = -1 ! Old hidden flag in /DEF_SHELL
441
442
443
444 CALL HM_READ_DEFSHELL(LSUBMODEL,DEFAULTS%SHELL)
445
446
447
448 CALL HM_READ_DEFSOLID(LSUBMODEL,DEFAULTS%SOLID)
449
450 IS17OLD = 1 ! To be cleaned
451
452 IF(INSH==1)INER_9_12 = TWELVE
453 IF(INSH==2)INER_9_12 = SIXTEEN
454 IF(INSH==3)INER_9_12 = FOURTY8
455 IF(INSH==4)INER_9_12 = THIRTY
456 IF(INSH==5)INER_9_12 = NINE
457! default values in def_solid/def_shell
458 CALL init_def_elem(N2D,IIMPLICIT,DEFAULTS)
459
460
461
462 HM_NINTER_DEF = 0
463 DEF_INTER(1:100) = 0
464 CALL HM_OPTION_COUNT('/default/inter',HM_NINTER_DEF)
465 CALL HM_READ_DEFINTER(HM_NINTER_DEF,DEF_INTER,LSUBMODEL)
466 DEFAULTS%interface%DEF_INTER(1:100) = DEF_INTER(1:100)
467
468 CALL HM_OPTION_COUNT('/intthick/v5',IINTTHICK)
469 IF (IINTTHICK > 1) THEN
470 CALL ANCMSG(MSGID=725,MSGTYPE=MSGERROR,ANMODE=ANINFO,I1=IINTTHICK)
471 ENDIF
472
473
474
475 ISHFRAM = 0
476 CALL HM_OPTION_COUNT('/shfra/v4',NSHFRAM)
477 IF (NSHFRAM == 1) THEN
478 ISHFRAM = 2
479 ELSEIF (NSHFRAM > 1) THEN
480 CALL ANCMSG(MSGID=546,MSGTYPE=MSGERROR,ANMODE=ANINFO,I1=NSHFRAM)
481 ENDIF
482
483
484
485 ISH3NFRAM = 0
486
487
488
489 IF(DECNEQ==0) DECNEQ = 100
490 IF(DECTYP < 0) THEN
491 DECTYP = - DECTYP
492 EDGE_FILTERING = 0
493 ELSE
494 EDGE_FILTERING = 1
495 ENDIF
496 OLD_RSB=0
497 IF(DECTYP == 2)THEN
498 DECTYP=0
499 OLD_RSB=1
500 ENDIF
501 IF(DECTYP==0)THEN
502.AND. IF(NB_AMS==0IIMPLICIT==0) THEN
503 DECTYP = 3
504 ELSE
505 DECTYP = 5
506 END IF
507 END IF
508
509 DDNOD_SMS=0
510 IF(DECTYP==7)THEN
511 IF(NB_AMS/=0)THEN
512 DECTYP = 5
513 DDNOD_SMS=1
514 ELSEIF(IIMPLICIT/=0) THEN
515 DECTYP = 5
516 ELSE
517 DECTYP = 3
518 END IF
519 END IF
520 IF(NSPMD < 1) NSPMD=1
521 IF(NSPMD > PARASIZ) NSPMD=PARASIZ
522 IF(NTHREAD < 1) NTHREAD=1
523
524 IF(NTHREAD > NTHMAX) NTHREAD=NTHMAX
525
526 IF (GOT_INSPIRE_ALM == 1)THEN
527 IF (NTHREAD_S==1)THEN
528 WRITE(ISTDO,'(a,i4,a)')' .. solver running on ',NTHREAD_S,' thread'
529 ELSE
530 WRITE(ISTDO,'(a,i4,a)')' .. solver running on ',NTHREAD_S,' threads'
531 ENDIF
532 ELSE
533 IF (NTHREAD_S==1)THEN
534 WRITE(ISTDO,'(a,i4,a)
')' ..
starter running on
',NTHREAD_S,' thread
'
535 ELSE
536 WRITE(ISTDO,'(a,i4,a)
')' ..
starter running on
',NTHREAD_S,' threads
'
537 ENDIF
538 ENDIF
539
540
541
542
543
544
545
546
547
548 CALL CPP_NODES_COUNT(NUMNUSR,NUMCNOD)
549
550
551 CALL HM_PREREAD_NODE(UNITAB,LSUBMODEL,NUMNUSR,IS_DYNA) ! NUMNOD is computed here
552
553
554 IF(NUMNOD==0)THEN
555 CALL ANCMSG(MSGID=3,MSGTYPE=MSGERROR,ANMODE=ANINFO)
556 CALL ARRET(2)
557 ENDIF
558
559 ISUMNX = 0
560 NANIM1D = 0
561 MAXNX = 0
562 NANIM2D = 0
563 NANIM3D = 0
564 NTHREAD_R2R = 1
565 IBID = 0
566 RBID = ZERO
567 NPINCH = 0
568 NSUBDOM = 0
569
570 CALL HM_OPTION_COUNT('/subdomain',NSUBDOM)
571 CALL HM_OPTION_COUNT('/extern/link',NR2RLNK)
572
573 LENMOD=0
574 LENGLM=0
575 LENCP=0
576 LENLM=0
577 LENFLS=0
578 LENDLS=0
579 LENVAR=0
580 LENRPM=0
581 LENMCD=0
582 LENELM=0
583 LENSIG=0
584 LENGRVI=0
585 LENGRVR=0
586
587
588
589
590 NLEVMAX = 0
591 CALL HM_OPTION_COUNT('/inicrack',NINICRACK)
592
593
594
595 NUMELX = 0
596 NUMBRICK = 0
597 NUMTETRA4 = 0
598 NUMPENTA6 = 0
599 NUMELS10 = 0
600 NUMELS20 = 0
601 CALL HM_ELEM_COUNT('xelem',NUMELX,IS_DYNA)
602 CALL HM_ELEM_COUNT('brick',NUMBRICK,IS_DYNA)
603 CALL HM_ELEM_COUNT('tetra4',NUMTETRA4,IS_DYNA)
604 CALL HM_ELEM_COUNT('penta6',NUMPENTA6,IS_DYNA)
605 NUMELS8 = NUMBRICK+NUMTETRA4+NUMPENTA6
606
607 CALL HM_ELEM_COUNT('tetra10',NUMELS10,IS_DYNA)
608 IF (IS_DYNA == 0) CALL HM_ELEM_COUNT('brick20',NUMELS20,IS_DYNA)
609 CALL HM_ELEM_COUNT('shel16',NUMELS16,IS_DYNA)
610
611
612 NUMELS = NUMELS8+NUMELS10+NUMELS20+NUMELS16
613
614
615
616 IF(NUMELS>0)THEN
617 CALL FIND_DT1BRICK_ENGINE()
618 END IF
619
620 CALL HM_ELEM_COUNT('shell',NUMELC,IS_DYNA)
621.AND. IF(NUMELC > 0 NANALY /= 0)THEN
622 CALL ANCMSG(MSGID=285,MSGTYPE=MSGERROR,ANMODE=ANINFO)
623 NUMELC = 0
624 ENDIF
625
626 CALL HM_ELEM_COUNT('sh3n',NUMELTG,IS_DYNA)
627.AND. IF(NUMELTG > 0 NANALY /= 0)THEN
628 CALL ANCMSG(MSGID=287,MSGTYPE=MSGERROR,ANMODE=ANINFO)
629 NUMELTG = 0
630 ENDIF
631
632 CALL HM_ELEM_COUNT('truss' ,NUMELT,IS_DYNA)
633 CALL HM_ELEM_COUNT('beam' ,NUMELP,IS_DYNA)
634 CALL HM_ELEM_COUNT('spring',NUMELR,IS_DYNA)
635
636 CALL HM_ELEM_COUNT('rivet',NRIVET,IS_DYNA)
637
638 NUMELQ = 0
639 CALL HM_ELEM_COUNT('quad',NUMELQ,IS_DYNA)
640
641 CALL HM_ELEM_COUNT('tria',NUMELTRIA,IS_DYNA)
642 NUMELTG = NUMELTG + NUMELTRIA !2d shell + 3d tria (only one type depending on N2D flag)
643
644
645 CALL HM_OPTION_COUNT('part',NPART)
646 IF(NPART==0)THEN
647 CALL ANCMSG(MSGID=1114,
648 . MSGTYPE=MSGWARNING,
649 . ANMODE=ANINFO)
650 ENDIF
651 CALL HM_OPTION_COUNT('subset',NSUBS)
652
653 NSUBS = NSUBS+1
654
655 CALL HM_OPTION_COUNT('/thpart',NTHPART)
656
657
658
659 CALL HM_OPTION_COUNT('/admesh/global',NADMESHG)
660 CALL HM_OPTION_COUNT('/admesh/set',NADMESHSET)
661 CALL HM_OPTION_COUNT('/admesh/state',NADMESHSTAT)
662 NADMESH = NADMESHG + NADMESHSET + NADMESHSTAT
663 NUMNOD0 = NUMNOD
664 NUMELC0 = NUMELC
665 NUMELTG0 = NUMELTG
666 ISTATCND = 0
667 IADMERRT = 0
668 IF(NADMESH/=0)THEN
669
670
671 CALL NBADMESH(LSUBMODEL,NUMNUSR,UNITAB)
672 END IF
673
674 IF(NSPMD > 1)THEN
675
676 IF(NADMESH/=0)THEN
677 CALL ANCMSG(MSGID=704,
678 . MSGTYPE=MSGERROR,
679 . ANMODE=ANINFO)
680 END IF
681 END IF
682
683
684
685 NUMNODIGE0 = NUMNOD
686 NUMELIG3D0 = NUMELIG3D
687 IF(NRAFMAX/=0)THEN
688
689
690 CALL NBADIGEMESH(LSUBMODEL,NUMNUSR)
691 END IF
692
693
694
695 HM_NUMMAT = 0
696 CALL HM_OPTION_COUNT('material',HM_NUMMAT)
697 NUMMAT = HM_NUMMAT + 1
698 MAT_ELEM%NUMMAT = NUMMAT
699
700
701
702 HM_NUMGEO = 0
703 CALL HM_OPTION_COUNT('property',HM_NUMGEO)
704 NUMGEO = HM_NUMGEO
705
706 CALL HM_OPTION_COUNT('/ply', NUMPLY)
707 CALL HM_OPTION_COUNT('/drape',NDRAPE)
708 CALL HM_OPTION_COUNT('/stack',NUMSTACK)
709
710
711
712 CALL HM_OPTION_COUNT('/accel', naccelm)
713
715
717
719
721
723
725
728 nfunct = nfunct0 + ntable0 + ntable1 + npyfun
729 ntable = nfunct
730
732
733 iperturb = 0
735 IF (nperturb > 0) iperturb = 1
736
738
741
743
744
745
752
753
754
756
757
758
763 nbcskin = numbcs - nbcslag
765
766
767
771 nfxvel = nimpdisp + nimpvel + nimpacc
772
774 nrbody0 = nrbody
776 nrbykin = nrbody - nrbylag
778
780
782
785
787
789
793
794
795
798
799
800
802
803
804
805 ninter = 0
806 hm_ninter= 0
808
810 IF(int22>0)nsub22=2
812
814 ninter = hm_ninter - nintsub
815
818
820
822
824
825
826
827
838 ngrsh3n = ngrsh3n + ngrtria
844 ngpe = ngrnod + ngrbric + ngrquad + ngrshel + ngrsh3n
845
846
847
849 ninvel = hm_ninvel
850
854
856
858
859
860 CALL hm_read_inista(s0file, isigi, ioutp_fmt, irootyy_r, lsubmodel)
861
862 irfe=irform/5
863 irfl=irform-5*irfe
864 irform=5*irfe+irfl
865 IF (irform /= 12) THEN
866 CALL ancmsg(msgid=636,msgtype=msgwarning,anmode=aninfo_blind_1)
867 irform = 12
868 ENDIF
869
870
872
874
877
879
880
881
887
888
889
891
892 nselsp = 0
894 nsphsym= 0
895 maxpjet= 0
896
897
898
899
900
901 CALL nbsph(lsubmodel)
902
903
904 numnod=numnod+nsphres
905 numsph=numsph+nsphres
906
907
908
909 nexmad =0
910 nconx =0
913 IF (nconx > 0)
CALL ancmsg(msgid=2023, msgtype=msgerror, anmode=aninfo)
914
915 neig = 0
917 IF (neig>0) ipari0 = 0
918
919 nflow = 0
921 idummy = 0
923 nflow = nflow + idummy
924
925
926
927 flg_fsi = 0
928 ale%GLOBAL%IS_BOUNDARY_MATERIAL = .false.
929
931
932
933
939 detonators%N_DET=detonators%N_DET_POINT
940 . +detonators%N_DET_LINE
941 . +detonators%N_DET_WAVE_SHAPER
942 . +detonators%N_DET_PLANE
943 . +detonators%N_DET_CORD
944
945
946
947 nlaser = 0
949
950 jeul=0
953 lveul=32
954 IF(integ8==1)lveul=52
955
956 jale=0
959
960 nalebcs = 0
962 IF(
ale%GLOBAL%ICAA == 1)
ale%GRID%NWALE = -1
963 dt_input = zero
964
965
966
968 . volmin, lsubmodel,
unitab)
969
970
971
972
974
975
976
977
979
980
981
982
984
985
986
987
989
990
991
992
1000 ngine=nrun_eng+nanim_eng+ntfile_eng+nrfile_eng+ndt_eng+nstop_eng+nvers_eng
1001
1002 ndsolv=0
1003
1004
1005 anim_vers = 44
1006 nanim_vers = 0
1008 IF (nanim_vers > 0) THEN
1011 CALL hm_get_intv(
'Anim_vers', anim_vers, is_available, lsubmodel)
1012 ENDIF
1013
1014
1015
1016 iform8 = 2
1017 dtini = zero
1018 dtfac = zero
1019 dthis = zero
1020 DO i = 1,10
1021 dtabf(i) = ep30
1022 dtabfwr(i) = ep30
1023 ENDDO
1024 dtmin = zero
1025 ihsh = 0
1026 DO i = 1,9
1027 dthis1(i)= 0
1028 ENDDO
1029
1030
1031
1032 krot = 0
1034 IF(i > 0)krot=1
1035 iroddl=
min(1,numelc+numelp+nrbody+numelr+numeltg+ngjoint+nummpc+nfxbody+numelx+krot)
1036 iroddl0 = 0
1037 iisrot = 0
1038
1040 DO i = 1, hm_nummat
1041 mat_number = i
1043 IF ((key(1:5) == 'LAW13' .AND.
1044 . key(1:6) /= 'LAW131' .AND. key(1:6) /= 'LAW132' .AND.
1045 . key(1:6) /= 'law133.AND.' KEY(1:6) /= 'law134.AND.'
1046 . KEY(1:6) /= 'law135.AND.' KEY(1:6) /= 'law136.AND.'
1047 . KEY(1:6) /= 'law137.AND.' KEY(1:6) /= 'law138.AND.'
1048 . KEY(1:6) /= 'law139' )
1049 . .OR. key(1:5) == 'RIGID') iroddl0 = 1
1050 IF (key(1:5) == 'LAW68' .OR. key(1:5) == 'COSSE') iisrot = 1
1051 ENDDO
1052
1053
1054
1055
1056 ALLOCATE(
igeo(npropgi*numgeo),stat=stat)
1057 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'IGEO')
1059 numeltg6 = 0
1060 nsphsol = 0
1061 ALLOCATE(nsub(numgeo + numstack) ,stat=stat)
1062 ALLOCATE(nisub(numgeo + numstack) ,stat=stat)
1063 ALLOCATE(nply(numgeo + numstack) ,stat=stat)
1064
1066
1067 IF(nsphsol/=0.AND.numels8/=0)THEN
1068 ALLOCATE(
ipart(lipart1*npart),stat=stat)
1069 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'IPART')
1072
1073 ALLOCATE(
ixs(nixs*numels8),stat=stat)
1074 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'IPART')
1076
1077 irest_mselt=1
1078
1079 ENDIF
1080 numnod=numnod+nsphsol
1081 numsph=numsph+nsphsol
1082
1083 IF(numsph/=0)THEN
1085 ENDIF
1086
1089 IF(iisrot==1.OR.icr>0.OR.icr3>0)iroddl = 1
1090
1092 ncpri=1
1093 IF(dtini==zero)dtini=ep06
1094 IF(volmin==zero)volmin=-ep20
1095 dt2old=dtini/onep1
1096 tt=zero
1097 dt1=zero
1098 dt2=zero
1099
1100 t1s= zero
1101 dt2s=zero
1102
1103 dtx=zero
1104 tstop=zero
1105 dtanim = zero
1106 tanim=zero
1107 tanim_stop = ep20
1108 dtoutp = zero
1109 toutp=zero
1110 this=zero
1111 tabfis=zero
1112 tabfwr=zero
1113 econtv = zero
1114 output%TH%WFEXT = zero
1115 reint = zero
1116 ureint = zero
1117 econtd = zero
1118 econt_cumu = zero
1119
1120 irun=0
1121 iger=0
1122 ianim=0
1123 ih3d=0
1124
1125 DO i = 1,9
1126 this1(i)= 0
1127 ENDDO
1128
1129 n2d = nanaly
1130 IF(dtfac==zero.AND.n2d/=0)dtfac=0.67
1131 IF(dtfac==zero.AND.n2d==0)dtfac=0.90
1132
1133
1134
1135 IF(isigi==1.OR.isigi==2) THEN
1136
1137 ELSEIF(isigi==3.OR.isigi==4.OR.isigi==5) THEN
1138
1139 IF(s0file==' ') THEN
1140 isigi=-isigi
1141 ELSE
1142 j = 0
1143 IF(irootyy_r==2)THEN
1145 IF(s0file(i:i)/=' ')j = j + 1
1146 ENDDO
1147 n = j - 3
1150 IF(s0file(n:n)=='Y')THEN
1151 OPEN(unit=iin4,file=tmp_name(1:len_tmp_name),access='SEQUENTIAL',form='FORMATTED',status='OLD')
1152
1155 OPEN(unit=iin5,file=tmp_name(1:len_tmp_name),access='SEQUENTIAL',form='FORMATTED',status='OLD')
1156 ELSE
1157 OPEN(unit=iin4,file=tmp_name(1:len_tmp_name),err=100,access='SEQUENTIAL',form='FORMATTED',status='OLD')
1158 CALL ancmsg(msgid=169,msgtype=msgerror,anmode=aninfo,c1=s0file)
1159100
CALL ancmsg(msgid=2062,msgtype=msgerror,anmode=aninfo,c1=s0file)
1160 ENDIF
1161 ELSE
1162 j = 0
1163 i = 1
1164 DO WHILE(s0file(i:i)/=' ')
1165 j = j + 1
1166 i = i + 1
1167 ENDDO
1168 n = j-3
1171 IF(s0file(n:n+4)=='.sty')THEN
1172 OPEN(unit=iin4,file=tmp_name(1:len_tmp_name),access='SEQUENTIAL',form='FORMATTED',status='OLD')
1173
1176 OPEN(unit=iin5,file=tmp_name(1:len_tmp_name),access='SEQUENTIAL',form='FORMATTED',status='OLD')
1177 ELSE
1178 OPEN(unit=iin4,file=tmp_name(1:len_tmp_name),err=200,access='SEQUENTIAL',form='FORMATTED',status='OLD')
1179 CALL ancmsg(msgid=169,msgtype=msgerror,anmode=aninfo,c1=s0file)
1180200
CALL ancmsg(msgid=2062,msgtype=msgerror,anmode=aninfo,c1=s0file)
1181 ENDIF
1182 ENDIF
1183 ENDIF
1184 ENDIF
1185
1186
1187
1196
1197.AND. IF(ISIGI==0
1198 . (NB_INISHE+NB_INISH3
1199 . +NB_INIBRI+NB_INIQUAD
1200 . +NB_INIBEAM+NB_INITRUSS
1201 . +NB_INISPRIG+NB_INISPHCEL)/=0) ISIGI=-3
1202
1203
1204
1205 WRITE (IOUT,'(a)') TRIM(NAMES_AND_TITLES%TITLE)
1206 WRITE (IOUT,'(//a/a/,(a,1pg20.13))')TITRE(110),TITRE(111)
1207 WRITE (IOUT,'(a,i10)') TITRE(117)(1:57),IPRI,
1208 . TITRE(120)(1:57),INVERS_SRC
1209 WRITE (IOUT,'(a,i10)')
1210 . ' nsubs: number of subsets. . . . . . . . . . . . . .',
1211 . NSUBS,
1212 . ' npart: number of parts. . . . . . . . . . . . . . .',
1213 . NPART
1214 WRITE (IOUT,'(a,i10)') TITRE(125)(1:57),NUMMAT-1,
1215 . TITRE(135)(1:57),NUMGEO,
1216 . TITRE(126)(1:57),NUMNOD,TITRE(127)(1:57),NUMSKW,
1217 . TITRE(128)(1:57),NUMBCS
1218 IF (NALEBCS /= 0)
1219 . WRITE (IOUT,'(a,i10)') TITRE(189)(1:57), NALEBCS
1220 WRITE (IOUT,'(a,i10)')
1221 . ' numfram: number of reference frames . . . . . . . . .',
1222 . NUMFRAM
1223 WRITE (IOUT,'(a,i10)')
1224 . TITRE(131)(1:57),NUMELQ ,
1225 . TITRE(191)(1:57),NUMELTRIA,
1226 . TITRE(132)(1:57),NUMELS ,
1227 . TITRE(133)(1:57),NUMELC ,
1228 . TITRE(134)(1:57),NUMELT ,
1229 . TITRE(136)(1:57),NUMELP ,
1230 . TITRE(137)(1:57),NUMELR ,
1231 . TITRE(180)(1:57),NUMELTG-NUMELTRIA,
1232 . TITRE(182)(1:57),NUMELX ,
1233 . TITRE(186)(1:57),NUMELIG3D
1234 WRITE (IOUT,'(a,i10)')
1235 .' numsph : number of smooth particles(sph cells) . . .',
1236 . NUMSPH
1237 WRITE (IOUT,'(a,i10)')
1238 .' nsphbcs: number of sph symmetry conditions. . . . . .',
1239 . NSPCOND
1240 WRITE (IOUT,'(a,i10)')
1241 .' nsphio : number of sph inlet/outlet conditions. . . .',
1242 . NSPHIO
1243 IF(NSPHRES/=0)THEN
1244 WRITE (IOUT,'(a,/,a,i10)')
1245 .' nsphres:number of particles from sph reserves among numsph,',
1246 .' number of nodes from sph reserves among numnod. . .',
1247 . NSPHRES
1248 ENDIF
1249 IF(NSPHSOL/=0)THEN
1250 WRITE (IOUT,'(a,/,a,i10)')
1251 .' nsphsol:number of particles & nodes created from solids .',
1252 .' (among numsph & numnod) . . . . . . . . . . . . .',
1253 . NSPHSOL
1254 ENDIF
1255 WRITE (IOUT,'(/(a,i10))') TITRE(138)(1:57),NFUNCT,
1256 .' ngrav: number of gravity loads . . . . . . . . . . .',
1257 .NGRAV,
1258 .' nfunc2d: number of user 2d functions . . . . . . . .',
1259 .NFUNC2D,
1260 .' ninigrv:number of initial gravity loads . . . . . . .',
1261 .NINIGRAV,
1262 .' nconld: number of concentrated loads. . . . . . . . .',
1263 .NCONLD,
1264 .' ninvel: number of initial velocities. . . . . . . . .',
1265 .NINVEL,
1266 .' npreld: number of pressure loads. . . . . . . . . . .',
1267 .NPRELD,
1268 .' ninimap1d: number of initial 1d mapping.. . . . . . .',
1269 .NINIMAP1D,
1270 .' ninimap2d: number of initial 2d mapping.. . . . . . .',
1271 .NINIMAP2D
1272 IF(NPRELOAD>0) THEN
1273 WRITE (IOUT,'(a,i10)')
1274 . ' npreload: number of bolt preloadings. . . . . . . . .',
1275 . NPRELOAD
1276 ENDIF
1277 IF(DETONATORS%N_DET > 0)THEN
1278 WRITE (IOUT,'(/(a,i10))') TITRE(141)(1:57),DETONATORS%N_DET_POINT,
1279 . TITRE(171)(1:57),DETONATORS%N_DET_LINE,
1280 . TITRE(172)(1:57),DETONATORS%N_DET_WAVE_SHAPER,
1281 . TITRE(187)(1:57),DETONATORS%N_DET_CORD,
1282 . TITRE(188)(1:57),DETONATORS%N_DET_PLANE
1283 ENDIF
1284 IF(NLASER > 0) WRITE (IOUT,'((a,i10))') TITRE(178)(1:57),NLASER
1285 WRITE (IOUT,'(4x,a,i10)')
1286 . 'number of accelerometers. . . . . . . . . . . . . . .',
1287 . NACCELM,
1288 . 'number of sensors . . . . . . . . . . . . . . . . . .',
1289 . NSENSOR,
1290 . 'number of gauges. . . . . . . . . . . . . . . . . . .',
1291 . NBGAUGE
1292 WRITE (IOUT,'(a,i10)') TITRE(146)(1:57),NINTER,
1293 . TITRE(147)(1:57),NRWALL,TITRE(148)(1:57),NRBODY,
1294 .' nfxbody: number of flexible bodies. . . . . . . . . .',
1295 .NFXBODY,
1296 . TITRE(149)(1:57),NCONX,
1297 . TITRE(150)(1:57),NODMAS,TITRE(183)(1:57),NIMPDISP,
1298 . TITRE(184)(1:57),NIMPVEL,TITRE(185)(1:57),NIMPACC,
1299 . TITRE(152)(1:57),NRIVET,TITRE(153)(1:57),NSECT,
1300 . TITRE(155)(1:57),NJOINT
1301
1302 IF(NINTERFRIC > 0) WRITE (IOUT,'(a,i10)') TITRE(190)(1:57),NINTERFRIC
1303 IF(NALELK>0)WRITE(IOUT,'(a,i10)')
1304 .' nalelk: number of
ale links. . . . . . . . . . . . .
',
1305 .NALELK
1306 WRITE (IOUT, 5051) NACTIV
1307 WRITE (IOUT, 5052) NDAMP
1308 WRITE (IOUT, 5053) NGJOINT
1309 WRITE (IOUT, 5054) NUMMPC
1310 WRITE (IOUT, 5050) NR2RLNK
1311 WRITE (IOUT, 5055) NSUBDOM
1312 WRITE (IOUT,5000)NVOLU+NMONVOL
1313 WRITE(IOUT,'(a,i10)')
1314 .' neig: number of eigen and
static modes problems . .
',
1315 .NEIG
1316 WRITE(IOUT,'(a,i10)')
1317 .' nbem: number of bem solved problems . . . . . . . .',
1318 .NFLOW
1319 WRITE(IOUT,'(a,i10)')
1320 .' NRBE2: NUMBER OF RBE2 RIGID ELEMENTS . . . . . . . .',
1321 .nrbe2
1322 WRITE(iout,'(A,I10)')
1323 .' NRBE3: NUMBER OF RBE3 CONSTRAINT ELEMENTS . . . . .',
1324 .nrbe3
1325 WRITE (iout,'(2A/A,I10)')' INITIAL STRESS FILE =',trim(s0file),
1326 . ' FLAG ISIGI. . .',
1327 . isigi
1328
1329 IF (irefsta/=0) THEN
1330 WRITE (iout,'(2A/A,I10/A,I10)')
1331 . ' REFERENCE METRIC FILE =',xrfile,
1332 . ' FLAG IREFSTA. .',
1333 . irefsta,
1334 . ' NUMBER OF STEPS , NITRS. .',
1335 . nitrs
1336 ENDIF
1337
1338 IF(jale+jeul/=0)THEN
1339 WRITE(iout,
'(A,I10)')' isfint:
ale/euler momentum integration formulation. .
',ALE%GLOBAL%ISFINT
1340 ENDIF
1341 IF(ALE%GLOBAL%ICAA==1)THEN
1342 WRITE(IOUT,5380)
1343 END IF
1344 IF(JALE/=0)THEN
1345 WRITE (IOUT,5100)ALE%GRID%NWALE
1346 SELECT CASE (ALE%GRID%NWALE)
1347 CASE(0);WRITE (IOUT,5199) ALE%GRID%ALPHA,ALE%GRID%GAMMA,ALE%GRID%VGX,ALE%GRID%VGY,ALE%GRID%VGZ,VOLMIN
1348 CASE(1);WRITE (IOUT,5200) ALE%GRID%ALPHA,VOLMIN
1349 CASE(2);WRITE (IOUT,5300) DT_INPUT, ALE%GRID%ALPHA,ALE%GRID%GAMMA,ALE%GRID%VGX,ALE%GRID%VGY,VOLMIN
1350 CASE(3);WRITE (IOUT,5350)
1351 CASE(4);WRITE (IOUT,5351) ALE%GRID%ALPHA,ALE%GRID%GAMMA,ALE%GRID%VGX,ALE%GRID%VGY
1352 CASE(5);WRITE (IOUT,5353) ALE%GRID%ALPHA,NINT(ALE%GRID%VGX)
1353 CASE(6);WRITE (IOUT,5354)
1354 CASE(7);
1355 LABEL_DEF = ' no'
1356 IF(INT(ALE%GRID%VGX) == 1)LABEL_DEF = 'yes'
1357 LABEL_ROT = ' no'
1358 IF(INT(ALE%GRID%VGY) == 1)LABEL_ROT = 'yes'
1359 WRITE (IOUT,5355) LABEL_DEF,LABEL_ROT,ALE%GRID%ALPHA,ALE%GRID%GAMMA
1360 END SELECT
1361 ENDIF
1362
1363 IF(ALEFVM_Param%ISOLVER /= 0)ALEMUSCL_Param%IALEMUSCL=0 !muscl not compatible with FVM solver for int22
1364 CALL HM_OPTION_COUNT('/
ale/muscl
', NALEMUSCL)
1365 IF(ALE%UPWIND%UPWSM/=ONE)THEN
1366.OR. IF(NALEMUSCL>0 ALEMUSCL_Param%IALEMUSCL>0)THEN
1367 NALEMUSCL=0
1368 ALEMUSCL_Param%IALEMUSCL=0
1369 !ignore muscl & use upwsm3 (backward compatibility)
1370 !double check engine file with /ALE/MUSCL/OFF
1371 ENDIF
1372 ENDIF
1373
1374 IF(JALE+JEUL/=0)THEN
1375.AND. IF(ALEMUSCL_Param%IALEMUSCL == 1 JUPW/=0 ) THEN !eta3 + muscl(law51) : conflict
1376 CALL ANCMSG(MSGID=1564, MSGTYPE=MSGWARNING, ANMODE=ANINFO)
1377.OR. ELSEIF(ALEMUSCL_Param%IALEMUSCL == 0 JUPW/=0)THEN
1378 WRITE (IOUT,5360)ALE%UPWIND%UPWMG,ALE%UPWIND%UPWOG !,UPWSM
1379 END IF
1380.OR. IF (ALEMUSCL_Param%IALEMUSCL == 1 ALEMUSCL_Param%IALEMUSCL==2) THEN
1381 WRITE (IOUT, 5504) ALEMUSCL_Param%BETA,ALEMUSCL_Param%IALEMUSCL-1
1382 ENDIF
1383 ENDIF
1384
1385 WRITE (IOUT,'(//,a,i10)') TITRE(130)(1:57),NANALY
1386
1387! for print out
1388 IHBE_DS= DEFAULTS%SOLID%ISOLID
1389 ISST_DS= DEFAULTS%SOLID%ISMSTR
1390 ICPRE_D= DEFAULTS%SOLID%ICPRE
1391 ITET4_D= DEFAULTS%SOLID%ITETRA4
1392 ITET10_D= DEFAULTS%SOLID%ITETRA10
1393 IFRAME_DS = DEFAULTS%SOLID%IFRAME
1394 IMAS_DS= DEFAULTS%SOLID%IMAS
1395!
1396 IOFFSET_D= DEFAULTS%SHELL%ioffset !< offset support contact
1397 IHBE_D = DEFAULTS%SHELL%ishell
1398 ISH3N_D= DEFAULTS%SHELL%ish3n
1399 ISST_D = DEFAULTS%SHELL%ismstr
1400 IPLA_D = DEFAULTS%SHELL%iplas
1401 ITHK_D = DEFAULTS%SHELL%ithick
1402 IDRIL_D= DEFAULTS%SHELL%idrill
1403
1404 ICONTROL_D= DEFAULTS%SOLID%ICONTROL
1405 IF(N2D==0)THEN
1406.AND. IF(NUMELQ/=0. OR. (NUMELTG/=0N2D/=0) )THEN
1407 CALL ANCMSG(MSGID = 286,MSGTYPE = MSGERROR,ANMODE = ANINFO)
1408 ENDIF
1409 ENDIF
1410
1411 WRITE(IOUT,5500)INTEG8,IPARITH,USER_WINDOWS%HAS_USER_WINDOW,IHBE_DS,
1412 . ITET4_D,ITET10_D,ISST_DS,ICPRE_D,IHBE_D,ISST_D,ITHK_D,
1413 . IPLA_D,ISTR_D,ISHEA_D,INSH,ISH3N_D, NPTS_D, IFRAME_DS,
1414 . IOFFSET_D,
1415 . ICONTROL_D
1416 WRITE(IOUT,5501)ISHFRAM
1417 IF(ISH3NFRAM>0)WRITE(IOUT,5901)ISH3NFRAM
1418.AND. IF(JALE/=0 ALEFVM_Param%IEnabled/=0)WRITE(IOUT,5502)ALEFVM_Param%ISOLVER
1419.AND. IF(JALE/=0 ALE%GLOBAL%ISFINT/=0) WRITE(IOUT,5503)ALE%GLOBAL%ISFINT
1420 WRITE(IOUT,5700)LAGM_TOL
1421 WRITE(IOUT,5800)IMAS_DS
1422.AND. IF ((NUMSPH>0)(NSPHSOL==0)) WRITE (IOUT,5600) SPASORT,LVOISPH,KVOISPH
1423.AND. IF ((NUMSPH>0)(NSPHSOL>0)) THEN
1424 IF (ITSOL2SPH==1) WRITE (IOUT,5610) SPASORT,LVOISPH,KVOISPH,ITSOL2SPH
1425 IF (ITSOL2SPH==2) WRITE (IOUT,5620) SPASORT,LVOISPH,KVOISPH,ITSOL2SPH
1426 ENDIF
1427
1428 WRITE(IOUT,1000)
1429 IF(IEXPM==1) THEN
1430 ELSE IF(IMOT/=0) THEN
1431 WRITE(IOUT,*)'memory request not efficient on this computer'
1432 ENDIF
1433 IF(ICRAY<2) THEN
1434
1435 IPCT=NINT(REEL*100)
1436
1437 ELSE IF(ICRAY==2) THEN
1438
1439
1440 ENDIF
1441
1442 IF(NTHREAD_S>1)THEN
1443 STR_NBTHREADS = 'threads'
1444 ELSE
1445 STR_NBTHREADS = 'thread'
1446 ENDIF
1447 IF(GOT_INSPIRE_ALM == 1)THEN
1448 WRITE(IOUT,4001) NTHREAD_S,STR_NBTHREADS,NSPMD,NTHREAD,IARCH,ARCHN(IARCH),NVSIZ
1449 ELSE
1450 WRITE(IOUT,4000) NTHREAD_S,STR_NBTHREADS,NSPMD,NTHREAD,IARCH,ARCHN(IARCH),NVSIZ
1451 ENDIF
1452
1453.OR. IF(IGNORE_SPMD==1IGNORE_THREADS==1)THEN
1454 WRITE(IOUT,'(a)') ' '
1455 WRITE(IOUT,'(a)') ' info : number of spmd domain and threads defined in command line'
1456 WRITE(IOUT,'(a)') ' /spmd card PARAMETER are ignored'
1457 ENDIF
1458 IF(GOT_VARIABLE==1)THEN
1459 WRITE(IOUT,'(a)') ' '
1460 WRITE(IOUT,*) ' info : omp_num_threads set, default setting ignored'
1461 WRITE(IOUT,*)' '
1462 ENDIF
1463
1464 IF(OLD_RSB==1)THEN
1465 WRITE(IOUT,'(a)') ' '
1466 WRITE(IOUT,'(a)') ' info : /spmd option, dectyp=2 '
1467 WRITE(IOUT,'(a)') ' rsb domain decomposition deprecated, changing to default VALUE'
1468 ENDIF
1469
1470
1471 IF (USERL_AVAIL==1)THEN
1472 WRITE(IOUT,4500)
1473 IF(GOT_INSPIRE_ALM == 1)THEN
1474 WRITE(IOUT,4601) DLIBFILE(1:DLIBFILE_SIZE),DLIBTKVERS
1475 ELSE
1476 WRITE(IOUT,4600) DLIBFILE(1:DLIBFILE_SIZE),DLIBTKVERS
1477 ENDIF
1478 ENDIF
1479
1480
1481
1482
1483 IF(ALLOCATED(IXS)) DEALLOCATE(IXS)
1484 IF(ALLOCATED(IGEO)) DEALLOCATE(IGEO)
1485 IF(ALLOCATED(IPART))DEALLOCATE(IPART)
1486
1487 1000 FORMAT(//
1488 & 4X,'speed parameters '/
1489 & 4X,'---------------- '/)
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499 4000 FORMAT(
1500 & 4X,'starter running on. . . . . . . . . . . . . . . . . .
',I10,
1501 . ' ',A20/
1502 & 4X,'number of spmd domains. . . . . . . . . . . . . . . .',I10/
1503 & 4X,'number of threads per domain. . . . . . . . . . . . .',I10/
1504 & 4X,'architecture optimization . . . . . . . . . . . . . .',I10,
1505 . ', ',A20/
1506 & 4X,'SIZE of element buffer. . . . . . . . . . . . . . . .',I10)
1507 4001 FORMAT(
1508 & 4X,'solver running on . . . . . . . . . . . . . . . . . .',I10,
1509 . ' ',A20/
1510 & 4X,'number of spmd domains. . . . . . . . . . . . . . . .',I10/
1511 & 4X,'number of threads per domain. . . . . . . . . . . . .',I10/
1512 & 4X,'architecture optimization . . . . . . . . . . . . . .',I10,
1513 . ', ',A20/
1514 & 4X,'SIZE of element buffer. . . . . . . . . . . . . . . .',I10)
1515
1516 4500 FORMAT(//
1517 & 4X,'EXTERNAL library
for users code
INTERFACE '/
1518 & 4X,'----------------------------------------- '/)
1519 4600 FORMAT(
1520 & 4X,'library name . . . . . . . . . . . . . . . . . . . . ',A/
1521 & 4X,'radioss users code
INTERFACE version . . . . . . . .
',I10)
1522 4601 FORMAT(
1523 & 4X,'library name . . . . . . . . . . . . . . . . . . . . ',A/
1524 & 4X,'solver users code INTERFACE version . . . . . . . . .',I10)
1525
1526
1527 5000 FORMAT(
1528 & ' nvolu: number of monitored volumes . . . . . . . . .',I10)
1529 5050 FORMAT(
1530 & ' nr2rlnk: number of EXTERNAL coupling links . . . . . ',I10)
1531 5051 FORMAT(
1532 & ' nactiv: number of element deactivation groups . . . .',I10)
1533 5052 FORMAT(
1534 & ' ndamp: number of rayleigh
damping groups . . . . . .
',I10)
1535 5053 FORMAT(
1536 & ' ngjoint: number of gear TYPE joints . . . . . . . . .',I10)
1537 5054 FORMAT(
1538 & ' nummpc: number of multi-point constraints . . . . . .',I10)
1539 5055 FORMAT(
1540 & ' nsubdom: number of subdomains . . . . . .. . . . . . ',I10)
1541 5100 FORMAT(/
1542 & 4X,'nwale :
ale grid velocity formulation . . . . . . . .
',I10)
1543 5199 FORMAT(//
1544 & 4X,'ale grid smoothing formulation
'/
1545 & 4X,'------------------------------'/
1546 & 5X,'donea grid velocity computation method '//
1547 & 5X,'alpha : donea coefficient. . . . . . . . . .
',1PG20.13/
1548 & 5X,'gamma : grid velocity limitation factor. . . ',1pg20.13/
1549 & 5x,'FscaleX : X-GRID VELOCITY SCALE FACTOR . . . . ',1pg20.13/
1550 & 5x,'FscaleY : Y-GRID VELOCITY SCALE FACTOR . . . . ',1pg20.13/
1551 & 5x,'FscaleZ : Z-GRID VELOCITY SCALE FACTOR . . . . ',1pg20.13/
1552 & 5x,'VOLMIN : MINIMUM VOLUME FOR ELEMENT DELETION. ',1pg20.13)
1553 5200 FORMAT(//
1554 & 4x,'ALE GRID SMOOTHING FORMULATION'/
1555 & 4x,'------------------------------'/
1556 & 5x,'ALTAIR AVERAGE DISPLACEMENT GRID FORMULATION '//
1557 & 5x,'UMAX : MAXIMUM ABSOLUTE GRID VELOCITY . . . . ',1pg20.13/
1558 & 5x,'VMIN : MINIMUM VOLUME FOR ELEMENT DELETION. . ',1pg20.13)
1559 5300 FORMAT(//
1560 & 4x,'ALE GRID SMOOTHING FORMULATION'/
1561 & 4x,'------------------------------'/
1562 &5x,'ALTAIR SPRING METHOD FOR GRID VELOCITY COMPUTATION '//
1563 &5x,'dt0 : typical time step . . . . . . . . . . . . ',1PG20.13/
1564 &5X,'dt0* : effective time step. . . . . . . . . . . . ',1PG20.13/
1565 &5X,'gamma : non linearity factor . . . . . . . . . . . ',1PG20.13/
1566 &5X,'eta :
damping coefficient . . . . . . . . . . .
',1PG20.13/
1567 &5X,'nu : shear factor . . . . . . . . . . . . . . . ',1PG20.13/
1568 &5X,'volmin: minimum volume
for element deletion. . . .
',1PG20.13)
1569 5350 FORMAT(//
1570 & 4X,'ale grid smoothing formulation
'/
1571 & 4X,'------------------------------'/
1572 & 5X,'grid velocity is not computed(quasi euler) ')
1573 5351 FORMAT(//
1574 & 4X,'ale grid smoothing formulation
'/
1575 & 4X,'------------------------------'/
1576 & 5X,'altair standard method
for grid velocity computation
'//
1577 & 5X,'alpha : stability factor . . . . . . . . . . . .
',1PG20.13/
1578 & 5X,'gamma : non linearity factor . . . . . . . . . . ',1PG20.13/
1579 & 5X,'beta :
damping coefficient. . . . . . . . . . .
',1PG20.13/
1580 & 5X,'lc : characteristic length. . . . . . . . . . ',1PG20.13)
1581 5353 FORMAT(//
1582 & 4X,'ale grid smoothing formulation
'/
1583 & 4X,'------------------------------'/
1584 & 5X,'laplacian smoothing '//
1585 & 5X,'lambda:. . . . . . . . . . . . . . . . . . . . . ',1PG20.13/
1586 & 5X,'niter :. . . . . ',I10)
1587 5354 FORMAT(//
1588 & 4X,'ale grid smoothing formulation
'/
1589 & 4X,'------------------------------'/
1590 & 5X,'volume smoothing ')
1591 5355 FORMAT(//
1592 & 4X,'ale grid smoothing formulation
'/
1593 & 4X,'------------------------------'/
1594 & 5X,'flow-tracking(mass weighted averaged velocity)'//
1595 & 5X,'deformation enabled : . . . . . . . . . . . . . ',A3/
1596 & 5X,'rotation enabled : . . . . . . . . . . . . . . . ',A3/
1597 & 5X,'deformation scale factor : . . . . . . . . . . . ',1PG20.13/
1598 & 5X,'rotation scale factor: . . . . . . . . . . . . . ',1PG20.13/)
1599
1600
1601 5360 FORMAT(//
1603 & 4X,'---------------------'/
1604 & 5X,'upwind for momentum transport . . . . .=
',1PG20.13/,
1605 & 5X,'upwind for other transport. . . . . . .=
',1PG20.13/)
1606 5380 FORMAT(/
1607 & 4X,'caa fluid formulation activated')
1608 5400 FORMAT(
1610 & 4X,'------------------------'/,
1611 . 4X,'node group
id(=0 all nodes
',I5/,
1612 & 5X,'alpha . . . . . . . . . . . . . . . . .=
',1PG20.13/,
1613 & 5X,'beta. . . . . . . . . . . . . . . . . .=',1PG20.13)
1614 5500 FORMAT(//4X,'analysis options'/
1615 & 4X,'----------------'//
1616 & 4X,'integ8 : 8 gauss point condensed integration . . . . .',I10/
1617 & 4X,'iparith: parallel arithmetic flag(2 off, 1 0n). . . .',I10/
1618 & 4X,'iuserw : general user window flag. . . . . . . . . . .',I10/
1619 & 4X,'isolid : default brick formulation flag. . . . . . . .',I10/
1620 & 4X,'itet4 : default tetra4 formulation flag . . . . . . .',I10/
1621 & 4X,'itet10 : default tetra10 formulation flag. . . . . . .',I10/
1622 & 4X,'ismstr : default brick small strain flag . . . . . . .',I10/
1623 & 4X,'icpre : default solid constant pressure flag. . . . .',I10/
1624 & 4X,'ishell : default shell formulation flag. . . . . . . .',I10/
1625 & 4X,'isst : default shell small strain flag . . . . . . .',I10/
1626 & 4X,'ithk : default shell thickness variation flag. . . .',I10/
1627 & 4X,'ipla : default plane stress plasticity flag. . . . .',I10/
1628 & 4X,'istr : default shell strain computation flag . . . .
',I10/
1629 & 4X,'ishea : default shell shear computation flag. . . . .',I10/
1630 & 4X,'insh : shell inertia flag. . . . . . . . . . . . . .',I10/
1631 & 4X,'ish3n : default 3 node shell formulation flag . . . .',I10/
1632 & 4X,'npts : shell properties default number of ',/
1633 & 4X,' integration points or layers. . . . . . . . .',I10/
1634 & 4X,'iframe : default solid frame formulation flag . . . .
',I10/
1635 & 4X,'ioffset: default shell offset flag. . . . . . . . . . ',I10/
1636 & 4X,'icontrol:default solid distortion control flag. . . . ',I10)
1637 5501 FORMAT(
1638 & 4X,'ishfram: local shell frame definition. . . . . . . . .',I10)
1639 5502 FORMAT(
1640 & 4X,'ialefvm: fvm
for ale momentum equation. . . . . . . .
',I10)
1641 5503 FORMAT(
1642 & 4X,'isfint : internal forces formulation . . . . . . . . .',I10)
1643 5504 FORMAT(//
1644 & 4X,'muscl(monotonic upstream-centered scheme
for conservation laws)
'/
1645 & 4X,'----------------------------------------------------------------'/
1646 & 5X,'compression coefficient(beta). . . . . . . . . . . : ',1PG20.13/
1647 & 5X,'formulation flag(iflag). . . . . . . . . . . . . . : ',I10)
1648 5700 FORMAT(//
1649 & 4X,'lagrange multiplier options'/
1650 & 4X,'---------------------------'/
1651 & 4X,'lagm_tol:convergence criterion. . . . . . . . . .',
1652 & 1PG20.13)
1653 RETURN
1654 5600 FORMAT(//4X,'sph global parameters'/
1655 & 4X,'---------------------'//
1656 & 4x,'ALPHA SORT :SORTING SECURITY COEFFICIENT . . . . . .',
1657 & 1pg20.13/,
1658 & 4x,'LNEIGH :MAXIMUM NUMBER OF COMPUTED NEIGHBOURS. .',i10/,
1659 & 4x,'NNEIGH :MAXIMUM NUMBER OF STORED NEIGHBOURS. . .',i10)
1660 5610 FORMAT(//4x,'SPH GLOBAL PARAMETERS'/
1661 & 4x,'---------------------'//
1662 & 4x,'ALPHA SORT :SORTING SECURITY COEFFICIENT . . . . . .',
1663 & 1pg20.13/,
1664 & 4x,'LNEIGH :MAXIMUM NUMBER OF COMPUTED NEIGHBOURS. .',i10/,
1665 & 4x,'NNEIGH :MAXIMUM NUMBER OF STORED NEIGHBOURS. . .',i10/,
1666 & 4x,'ITSOL2SPH :SOL2SPH PARTICLES ACTIVATION TYPE. . . .',i10/,
1667 & 4x,'(SOL2SPH PARTICLES ACTIVATION BASED ON PARTS)')
1668 5620 FORMAT(//4x,'SPH GLOBAL PARAMETERS'/
1669 & 4x,'---------------------'//
1670 & 4x,'ALPHA SORT :SORTING SECURITY COEFFICIENT . . . . . .',
1671 & 1pg20.13/,
1672 & 4x,'LNEIGH :MAXIMUM NUMBER OF COMPUTED NEIGHBOURS. .',i10/,
1673 & 4x,'NNEIGH :MAXIMUM NUMBER OF STORED NEIGHBOURS. . .',i10/,
1674 & 4x,'ITSOL2SPH :SOL2SPH PARTICLES ACTIVATION TYPE. . . .',i10/,
1675 & 4x,'(SOL2SPH PARTICLES ACTIVATION BASED ON SUBSETS)')
1676 5800 FORMAT(
1677 & //4x,'NODAL MASS DISTRIBUTION FLAG . . . . . . . . .',i10)
1678 5901 FORMAT(
1679 & 4x,'ISH3NFRAM: OLD LOCAL SH3N FRAME ACTIVATION . . . . . .',i10)
1681 RETURN
subroutine contrbe3(icr, lsubmodel)
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_count(entity_type, hm_option_number)
subroutine hm_option_next()
subroutine hm_option_start(entity_type)
subroutine hm_preread_properties(igeo, nsphsol, nply, nsub, nisub, lsubmodel, defaults)
subroutine hm_read_ale_grid(dt_input, alpha, gamma, vgx, vgy, vgz, volmin, lsubmodel, unitab)
subroutine hm_read_ale_muscl(lsubmodel, unitab)
subroutine hm_read_ale_solver(lsubmodel, unitab, icaa, isfint)
subroutine hm_read_inista(s0file, isigi, ioutp_fmt, irootyy_r, lsubmodel)
subroutine hm_preread_part(ipart, igeo, lsubmodel)
subroutine contrbe2(icr, lsubmodel)
subroutine hm_read_refsta(lsubmodel, xrfile)
subroutine hm_prelce16s(ipart, igeo, ixs, nsphsol, lsubmodel, is_dyna)
subroutine hm_read_sphglo(lsubmodel)
subroutine hm_read_upwind(jupw, eta1, eta2, eta3, lsubmodel, unitab)
for(i8=*sizetab-1;i8 >=0;i8--)
type(alefvm_param_), target alefvm_param
type(alemuscl_param_) alemuscl_param
character(len=infile_char_len) infile_name
integer, parameter ncharline
integer, dimension(:), allocatable, target ixs
integer, dimension(:), pointer iframe
integer, dimension(:), allocatable, target ipart
integer, dimension(:), allocatable igeo
subroutine nbsph(lsubmodel)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine static(v, vr, a, ar, ms, in, igrnod, weight_md, wfext)
subroutine upwind(rho, vis, vdx, vdy, vdz, r, s, t, deltax, gam, nel)