84
85
86
88 USE multi_fvm_mod
101 USE output_mod
106 USE mat_elem_mod
108 USE bcs_mod , only : bcs
109 USE defaults_mod
110 USE format_mod
111 use glob_therm_mod
112 USE pblast_mod
113 USE output_mod , ONLY : output_
114 use ascii_encoding_mu_letter_mod, only : ascii_encoding_mu_letter
115 USE eos_param_mod , ONLY : analy_temp
116 use element_mod , only : nixs
117
118
119
120#include "implicit_f.inc"
121
122
123
124#include "mvsiz_p.inc"
125
126
127
128#include "units_c.inc"
129#include "warn_c.inc"
130#include "com01_c.inc"
131#include "com04_c.inc"
132#include "com06_c.inc"
133#include "com08_c.inc"
134#include "com09_c.inc"
135#include "com10_c.inc"
136#include "com_xfem1.inc"
137#include "intstamp_c.inc"
138#include "random_c.inc"
139#include "scr03_c.inc"
140#include "scr05_c.inc"
141#include "scr06_c.inc"
142#include "scr10_c.inc"
143#include "scr12_c.inc"
144#include "scr15_c.inc"
145#include "scr16_c.inc"
146#include "scr22_c.inc"
147#include "scr23_c.inc"
148#include "titr_c.inc"
149#include "param_c.inc"
150#include "sphcom.inc"
151#include "lagmult.inc"
152#include "fxbcom.inc"
153#include "scr14_c.inc"
154#include "remesh_c.inc"
155#include "sysunit.inc"
156#include "commandline.inc"
157#include "r2r_c.inc"
158#include "userlib.inc"
159#include "spmd_c.inc"
160#include "drape_c.inc"
161#include "inter22.inc"
162#include "boltpr_c.inc"
163#include "ige3d_c.inc"
164#include "com_engcards_c.inc"
165#include "sms_c.inc"
166
167
168
169 TYPE(MULTI_FVM_STRUCT), INTENT(IN) :: MULTI_FVM
170 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
171 INTEGER,INTENT(IN)::IS_DYNA
172 TYPE(DETONATORS_STRUCT_) :: DETONATORS
173 TYPE(USER_WINDOWS_), INTENT(INOUT) :: USER_WINDOWS
174 TYPE(MAT_ELEM_), INTENT(INOUT) :: MAT_ELEM
175 TYPE(NAMES_AND_TITLES_),INTENT(INOUT) :: NAMES_AND_TITLES
176 INTEGER,INTENT(IN) :: LIPART1
177 TYPE(DEFAULTS_), INTENT(INOUT) :: DEFAULTS
178 type (glob_therm_) ,intent(inout) :: glob_therm
179 TYPE(PBLAST_), INTENT(INOUT) :: PBLAST
180 TYPE(OUTPUT_),INTENT(INOUT) :: OUTPUT
181
182
183
184 INTEGER I, J, N, ISFIL, IPCT, IBID,INSH,
185 . IHBE_DD,IPARITH,JALE,JEUL,
186 . IUN,NSHFRAM,JUPW,IMAT,IG,ISH3N_DD,IFRAME_DDS,
187 . IPLA_DDS,NPTS_DD,UID,IHBE,ISMSTR,IPLAS,ICPRE,ICSTR,NPT,
188 . ISROT,L1,NPTS, NIMPDISP,NIMPVEL,NIMPACC,ICR,
189 . STAT,IERROR,ID,IDX,IDY,IDZ,,BID,NSH3NFRAM,NS17_OLD,
190 . IGNORE_SPMD,IGNORE_THREADS,GOT_VARIABLE,KROT,OLD_RSB,
191 . NRAFX,NRAFY,NRAFZ,NFUNCT0,NTABLE0,NTABLE1,NSENSOR,
192 . IRFE,IRFL, HM_NINTER_DEF,NB_AMS,NUMNUSR,NPERTURB_HM,ICR3,
193 . NPYFUN
194 INTEGER IARCHS(8)
195 INTEGER IS_BEGIN,SCHAR
196 INTEGER :: NPROP,NALEMAT,NEULERMAT
197 INTEGER IHBE_DS,ISST_DS
198
199
200
201 CHARACTER (LEN=NCHARLINE) :: CART
202 CHARACTER (LEN=NCHARLINE) :: XRFILE
203 CHARACTER (LEN=NCHARLINE) :: KEY
204 CHARACTER (LEN=NCHARLINE) :: KEY2
205 CHARACTER (LEN=NCHARLINE) :: TMPLINE
206 CHARACTER (LEN=NCHARLINE) :: LINE
207 CHARACTER (LEN=NCHARTITLE) :: TITR
208 CHARACTER (LEN=255) :: STR_NBTHREADS
209 CHARACTER MESS*40, ERRMSG*40
210 CHARACTER*3 :: LABEL_DEF,LABEL_ROT
211
212
213#if defined(_OPENMP)
214 INTEGER OMP_GET_THREAD_NUM, OMP_GET_NUM_THREADS,NTHREAD1
215 EXTERNAL omp_get_thread_num, omp_get_num_threads
216 CHARACTER (LEN=255) :: STR
217#endif
218 INTEGER NTHREAD_S
220
221 INTEGER , DIMENSION(:), ALLOCATABLE :: NPLY,NSUB,NISUB
222
223 INTEGER :: NITER,IFORM
224
225 INTEGER :: LEN_TMP_NAME
226 CHARACTER(len=4096) :: TMP_NAME
227 LOGICAL :: IS_AVAILABLE
228 INTEGER :: NUMTITLE, NGRTRIA, IDUMMY, NANIM_VERS
229 INTEGER ::
230 INTEGER :: NB_INISHE,NB_INISH3,NB_INIBRI,NB_INIQUAD,
231 . NB_INIBEAM,NB_INITRUSS,NB_INISPRIG,NB_INISPHCEL
232 INTEGER :: LEN_LINE
233 CHARACTER*20 UNIT_NAME
234 INTEGER IS_U_STRING
235
236
237
238 INTEGER NBCS_LAGM
239 EXTERNAL nbcs_lagm
240
241
242
243 DATA s0file/' '/
244 DATA xrfile/' '/
245 DATA iun/1/
246
247
248
249
250
251
252
253
255 IF (numtitle > 0) THEN
259 ELSE
260 line = ' '
261 ENDIF
262
263 WRITE(istdo,'(A)') line(1:len_trim(line))
264
265
267 names_and_titles%TITLE(1:len_line)=line(1:len_line)
268
269 imot=0
270 reel=zep66
271
272
273
274
275 WRITE(istdo,'(A)')titre(12)
278
280
281 schar = 20
282 IF (is_begin /= 0) THEN
285
286 CALL hm_get_intv(
'INVERS', invers, is_available, lsubmodel)
287 invers_src = invers
288 invers_init = invers
289
290 CALL hm_get_string(
'length_inputunit_code',keyli,schar,is_available)
291 CALL hm_get_string(
'mass_inputunit_code',keymi,schar,is_available)
292 CALL hm_get_string(
'time_inputunit_code',keyti,schar,is_available)
293 CALL hm_get_string(
'length_workunit_code',keyl,schar,is_available)
294 CALL hm_get_string(
'mass_workunit_code',keym,schar,is_available)
295 CALL hm_get_string(
'time_workunit_code',keyt,schar,is_available)
296
297
298 CALL ascii_encoding_mu_letter(keyli, keymi, keyti, keyl, keym, keyt)
299
300 IF(invers <= 90)THEN
301
302
303
305 DO n=1,nunit0
307 unit_name = ''
309
310 IF(unit_name == 'LENGTH') THEN
312 ENDIF
313 IF(unit_name == 'MASS') THEN
315 ENDIF
316 IF(unit_name == 'TIME') THEN
318 ENDIF
319 ENDDO
320 ENDIF
321
322 ENDIF
324
325
326
327 WRITE(istdo,'(A)')titre(10)
328
329
330
332
333 ignore_spmd=0
334 IF (got_ncpu ==1) THEN
335 IF (nspmd/=0) THEN
336 ignore_spmd=1
337 END IF
338 nspmd = ncpu
339 ENDIF
340
341
342
343 ignore_threads=0
344 got_variable=0
345#if defined(_OPENMP)
346 str = ' '
347 CALL getenv('OMP_NUM_THREADS',str)
348 nthread1=0
349
350 READ(str,'(I10)',err=999)nthread1
351 IF(nthread1>0)THEN
352 nthread = nthread1
353 ENDIF
354 IF (got_nth ==1) THEN
355 IF (nthread/=0) THEN
356 ignore_threads=1
357 END IF
358 nthread = nth
359 ELSE
360 IF(nthread1>0)THEN
361 got_variable=1
362 END IF
363 ENDIF
364
365 nthread =
max(nthread,1)
366 nthread_s = nthread
367 nthread_r2r = nthread
368 CALL omp_set_num_threads(nthread_s)
369
370
371#elif 1
372 IF (got_nth ==1) THEN
373 IF (nthread/=0) THEN
374 ignore_threads=1
375 END IF
376 nthread = nth
377 ENDIF
378 nthread_s = 1
379#endif
380
381
382 iarch = ibuiltin
383 nvsiz = archinfo(ibuiltin,1)
384 ivector = archinfo(ibuiltin,2)
385
386
387
390 ENDIF
391
392
393
394
396
397
398
399 ipari0= 1
400 integ8= 0
402 n2d = nanaly
403
404
405
407
408
409
412
413
414
416
417
418
420
421
422
424
426 IF(iprivate > 0 ) iprivate = 1
427
428
429
431 IF(istamping > 0 ) istamping = 1
432
433 icrash = 0
434
435
436
437
438 CALL init_def_zero(defaults)
439
440 ipla_ds =2
441 istr_d=1
442 ishea_d=0
443 iner_9_12 = zero
444 insh = 0
445 npts_d = -1
446
447
448
450
451
452
454
455 is17old = 1
456
457 IF(insh==1)iner_9_12 = twelve
458 IF(insh==2)iner_9_12 = sixteen
459 IF(insh==3)iner_9_12 = forty8
460 IF(insh==4)iner_9_12 = thirty
461 IF(insh==5)iner_9_12 = nine
462
463 CALL init_def_elem(n2d,iimplicit,defaults)
464
465
466
467 hm_ninter_def = 0
468 def_inter(1:100) = 0
471 defaults%interface%DEF_INTER(1:100) = def_inter(1:100)
472
474 IF (iintthick > 1) THEN
475 CALL ancmsg(msgid=725,msgtype=msgerror,anmode=aninfo,i1=iintthick)
476 ENDIF
477
478
479
480 ishfram = 0
482 IF (nshfram == 1) THEN
483 ishfram = 2
484 ELSEIF (nshfram > 1) THEN
485 CALL ancmsg(msgid=546,msgtype=msgerror,anmode=aninfo,i1=nshfram)
486 ENDIF
487
488
489
490 ish3nfram = 0
491
492
493
494 IF(decneq==0) decneq = 100
495 IF(dectyp < 0) THEN
496 dectyp = - dectyp
497 edge_filtering = 0
498 ELSE
499 edge_filtering = 1
500 ENDIF
501 old_rsb=0
502 IF(dectyp == 2)THEN
503 dectyp=0
504 old_rsb=1
505 ENDIF
506 IF(dectyp==0)THEN
507 IF(nb_ams==0.AND.iimplicit==0) THEN
508 dectyp = 3
509 ELSE
510 dectyp = 5
511 END IF
512 END IF
513
514 ddnod_sms=0
515 IF(dectyp==7)THEN
516 IF(nb_ams/=0)THEN
517 dectyp = 5
518 ddnod_sms=1
519 ELSEIF(iimplicit/=0) THEN
520 dectyp = 5
521 ELSE
522 dectyp = 3
523 END IF
524 END IF
525 IF(nspmd < 1) nspmd=1
526 IF(nspmd > parasiz) nspmd=parasiz
527 IF(nthread < 1) nthread=1
528
529 IF(nthread > nthmax) nthread=nthmax
530
531 IF (got_inspire_alm == 1)THEN
532 IF (nthread_s==1)THEN
533 WRITE(istdo,'(A,I4,A)')' .. SOLVER RUNNING ON ',nthread_s,' THREAD'
534 ELSE
535 WRITE(istdo,'(A,I4,A)')' .. SOLVER RUNNING ON ',nthread_s,' THREADS'
536 ENDIF
537 ELSE
538 IF (nthread_s==1)THEN
539 WRITE(istdo,'(A,I4,A)')' .. STARTER RUNNING ON ',nthread_s,' THREAD'
540 ELSE
541 WRITE(istdo,'(A,I4,A)')' .. STARTER RUNNING ON ',nthread_s,' THREADS'
542 ENDIF
543 ENDIF
544
545
546
547
548
549
550
551
552
553 CALL cpp_nodes_count(numnusr,numcnod)
554
555
557
558
559 IF(numnod==0)THEN
560 CALL ancmsg(msgid=3,msgtype=msgerror,anmode=aninfo)
562 ENDIF
563
564 isumnx = 0
565 nanim1d = 0
566 maxnx = 0
567 nanim2d = 0
568 nanim3d = 0
569 nthread_r2r = 1
570 ibid = 0
571 rbid = zero
573 nsubdom = 0
574
577
578 lenmod=0
579 lenglm=0
580 lencp=0
581 lenlm=0
582 lenfls=0
583 lendls=0
584 lenvar=0
585 lenrpm=0
586 lenmcd=0
587 lenelm=0
588 lensig=0
589 lengrvi=0
590 lengrvr=0
591
592
593
594
595 nlevmax = 0
597
598
599
600 numelx = 0
601 numbrick = 0
602 numtetra4 = 0
603 numpenta6 = 0
604 numels10 = 0
605 numels20 = 0
610 numels8 = numbrick+numtetra4+numpenta6
611
613 IF (is_dyna == 0)
CALL hm_elem_count(
'BRICK20',numels20,is_dyna)
615
616
617 numels = numels8+numels10+numels20+numels16
618
619
620
621 IF(numels>0)THEN
623 END IF
624
626 IF(numelc > 0 .AND. nanaly /= 0)THEN
627 CALL ancmsg(msgid=285,msgtype=msgerror,anmode=aninfo)
628 numelc = 0
629 ENDIF
630
632 IF(numeltg > 0 .AND. nanaly /= 0)THEN
633 CALL ancmsg(msgid=287,msgtype=msgerror,anmode=aninfo)
634 numeltg = 0
635 ENDIF
636
640
642
643 numelq = 0
645
647 numeltg = numeltg + numeltria
648
649
651 IF(npart==0)THEN
653 . msgtype=msgwarning,
654 . anmode=aninfo)
655 ENDIF
657
658 nsubs = nsubs+1
659
661
662
663
667 nadmesh = nadmeshg + nadmeshset + nadmeshstat
668 numnod0 = numnod
669 numelc0 = numelc
670 numeltg0 = numeltg
671 istatcnd = 0
672 iadmerrt = 0
673 IF(nadmesh/=0)THEN
674
675
677 END IF
678
679 IF(nspmd > 1)THEN
680
681 IF(nadmesh/=0)THEN
683 . msgtype=msgerror,
684 . anmode=aninfo)
685 END IF
686 END IF
687
688
689
690 numnodige0 = numnod
691 numelig3d0 = numelig3d
692 IF(nrafmax/=0)THEN
693
694
696 END IF
697
698
699
700 hm_nummat = 0
702 nummat = hm_nummat + 1
703 mat_elem%NUMMAT = nummat
704
705
706
707 hm_numgeo = 0
709 numgeo = hm_numgeo
710
714
715
716
718
720
722
724
726
728
730
733 nfunct = nfunct0 + ntable0 + ntable1 + npyfun
734 ntable = nfunct
735
737
738 iperturb = 0
740 IF (nperturb > 0) iperturb = 1
741
743
746
748
749
750
757
758
759
761
762
763
768 nbcskin = numbcs - nbcslag
771
772
773
777 nfxvel = nimpdisp + nimpvel + nimpacc
778
780 nrbody0 = nrbody
782 nrbykin = nrbody - nrbylag
784
786
788
791
793
795
799
800
801
804
805
806
808
809
810
811 ninter = 0
812 hm_ninter= 0
814
816 IF(int22>0)nsub22=2
818
820 ninter = hm_ninter - nintsub
821
823 CALL HM_OPTION_COUNT('/fric_orient',NFRIC_ORIENT)
824
825 CALL HM_OPTION_COUNT('/damp',NDAMP)
826
827 CALL HM_OPTION_COUNT('/preload',NPRELOAD) !Bolt preloading
828
829 CALL HM_OPTION_COUNT('/sect',NSECT)
830
831
832
833
834 CALL HM_OPTION_COUNT('/box' ,NBBOX)
835 CALL HM_OPTION_COUNT('/surf',NSURF)
836 CALL HM_OPTION_COUNT('/line' ,NSLIN)
837 CALL HM_OPTION_COUNT('/grnod' ,NGRNOD )
838 CALL HM_OPTION_COUNT('/grbric',NGRBRIC)
839 CALL HM_OPTION_COUNT('/grquad',NGRQUAD)
840 CALL HM_OPTION_COUNT('/grpart',NGRPART)
841 CALL HM_OPTION_COUNT('/grshel',NGRSHEL)
842 CALL HM_OPTION_COUNT('/grsh3n',NGRSH3N)
843 CALL HM_OPTION_COUNT('/grtria',NGRTRIA)
844 NGRSH3N = NGRSH3N + NGRTRIA ! 3D or 2D (same buffer)
845 CALL HM_OPTION_COUNT('/grtrus',ngrtrus)
850 ngpe = ngrnod + ngrbric + ngrquad + ngrshel + ngrsh3n + ngrtrus + ngrbeam + ngrspri + ngrpart
851
852
853
855 ninvel = hm_ninvel
856
860
862
864
865
866 CALL hm_read_inista(s0file, isigi, ioutp_fmt, irootyy_r, lsubmodel)
867
868 irfe=irform/5
869 irfl=irform-5*irfe
870 irform=5*irfe+irfl
871 IF (irform /= 12) THEN
872 CALL ancmsg(msgid=636,msgtype=msgwarning,anmode=aninfo_blind_1)
873 irform = 12
874 ENDIF
875
876
878
880
883
885
886
887
893
894
895
897
898 nselsp = 0
900 nsphsym= 0
901 maxpjet= 0
902
903
904
905
906
907 CALL nbsph(lsubmodel)
908
909
910 numnod=numnod+nsphres
911 numsph=numsph+nsphres
912
913
914
915 nexmad =0
916 nconx =0
919 IF (nconx > 0)
CALL ancmsg(msgid=2023, msgtype=msgerror, anmode=aninfo)
920
921 neig = 0
923 IF (neig>0) ipari0 = 0
924
925 nflow = 0
927 idummy = 0
929 nflow = nflow + idummy
930
931
932
933 flg_fsi = 0
934 ale%GLOBAL%IS_BOUNDARY_MATERIAL = .false.
935
937
938
939
945 detonators%N_DET=detonators%N_DET_POINT
946 . +detonators%N_DET_LINE
947 . +detonators%N_DET_WAVE_SHAPER
948 . +detonators%N_DET_PLANE
949 . +detonators%N_DET_CORD
950
951
952
953 nlaser = 0
955
956
957
960 IF(nalemat > 0)
ale%GLOBAL%IS_DEFINED_ALE = 1
961 IF(neulermat > 0)
ale%GLOBAL%IS_DEFINED_EULER = 1
963 DO i=1,nprop
966 CALL hm_get_intv(
'Iale',jale,is_available,lsubmodel)
967 IF(jale == 1)
ale%GLOBAL%IS_DEFINED_ALE = 1
968 IF(jale == 2)
ale%GLOBAL%IS_DEFINED_EULER = 1
969 IF(
ale%GLOBAL%IS_DEFINED_EULER == 1 .AND.
ale%GLOBAL%IS_DEFINED_EULER == 1)
EXIT
970 ENDDO
971 jeul =
ale%GLOBAL%IS_DEFINED_EULER
972 jale =
ale%GLOBAL%IS_DEFINED_ALE
973 lveul=32
974 IF(integ8==1)lveul=52
975
976 nalebcs = 0
978 IF(
ale%GLOBAL%ICAA == 1)
ale%GRID%NWALE = -1
979 dt_input = zero
980
981
982
984 . volmin, lsubmodel,
unitab)
985
986
987
988
990
991
992
993
995
996
997
998
1000
1001
1002
1003
1005
1006
1007
1015 ngine=nrun_eng+nanim_eng+ntfile_eng+nrfile_eng+ndt_eng+nstop_eng+nvers_eng
1016
1017 ndsolv=0
1018
1019
1020 anim_vers = 44
1021 nanim_vers = 0
1023 IF (nanim_vers > 0) THEN
1026 CALL hm_get_intv(
'Anim_vers', anim_vers, is_available, lsubmodel)
1027 ENDIF
1028
1029
1030
1031 iform8 = 2
1032 dtini = zero
1033 dtfac = zero
1034 dthis = zero
1035 DO i = 1,10
1036 dtabf(i) = ep30
1037 dtabfwr(i) = ep30
1038 ENDDO
1039 dtmin = zero
1040 ihsh = 0
1041 DO i = 1,9
1042 dthis1(i)= 0
1043 ENDDO
1044
1045
1046
1047 krot = 0
1049 IF(i > 0)krot=1
1050 iroddl=
min(1,numelc+numelp+nrbody+numelr+numeltg+ngjoint+nummpc+nfxbody+numelx+krot)
1051 iroddl0 = 0
1052 iisrot = 0
1053
1055 DO i = 1, hm_nummat
1056 mat_number = i
1058 IF ((key(1:5) == 'LAW13' .AND. key(1:6) /= 'LAW130' .AND.
1059 . key(1:6) /= 'LAW131' .AND. key(1:6) /= 'LAW132' .AND.
1060 . key(1:6) /= 'LAW133' .AND. key(1:6) /= 'LAW134' .AND.
1061 . key(1:6) /= 'LAW135' .AND. key(1:6) /= 'LAW136' .AND.
1062 . key(1:6) /= 'LAW137' .AND. key(1:6) /= 'LAW138' .AND.
1063 . key(1:6) /= 'LAW139' )
1064 . .OR. key(1:5) == 'RIGID') iroddl0 = 1
1065 IF (key(1:5) == 'LAW68' .OR. key(1:5) == 'COSSE') iisrot = 1
1066 ENDDO
1067
1068
1069
1070
1071 ALLOCATE(
igeo(npropgi*numgeo),stat=stat)
1072 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'IGEO')
1074 numeltg6 = 0
1075 nsphsol = 0
1076 ALLOCATE(nsub(numgeo + numstack) ,stat=stat)
1077 ALLOCATE(nisub(numgeo + numstack) ,stat=stat)
1078 ALLOCATE(nply(numgeo + numstack) ,stat=stat)
1079
1081
1082 IF(nsphsol/=0.AND.numels8/=0)THEN
1083 ALLOCATE(
ipart(lipart1*npart),stat=stat)
1084 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'IPART')
1087
1088 ALLOCATE(
ixs(nixs*numels8),stat=stat)
1089 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,msgtype=msgerror,c1=
'IPART')
1091
1092 irest_mselt=1
1093
1094 ENDIF
1095 numnod=numnod+nsphsol
1096 numsph=numsph+nsphsol
1097
1098 IF(numsph/=0)THEN
1100 ENDIF
1101
1104 IF(iisrot==1.OR.icr>0.OR.icr3>0)iroddl = 1
1105
1107 ncpri=1
1108 IF(dtini==zero)dtini=ep06
1109 IF(volmin==zero)volmin=-ep20
1110 dt2old=dtini/onep1
1111 tt=zero
1112 dt1=zero
1113 dt2=zero
1114
1115 t1s= zero
1116 dt2s=zero
1117
1118 dtx=zero
1119 tstop=zero
1120 output%DTANIM = zero
1121 output%TANIM=zero
1122 output%TANIM_STOP = ep20
1123 dtoutp = zero
1124 toutp=zero
1125 this=zero
1126 tabfis=zero
1127 tabfwr=zero
1128 econtv = zero
1129 output%TH%WFEXT = zero
1130 reint = zero
1131 ureint = zero
1132 econtd = zero
1133 econt_cumu = zero
1134
1135 irun=0
1136 iger=0
1137 ianim=0
1138 ih3d=0
1139
1140 DO i = 1,9
1141 this1(i)= 0
1142 ENDDO
1143
1144 n2d = nanaly
1145 IF(dtfac==zero.AND.n2d/=0)dtfac=0.67
1146 IF(dtfac==zero.AND.n2d==0)dtfac=0.90
1147
1148
1149
1150 IF(isigi==1.OR.isigi==2) THEN
1151
1152 ELSEIF(isigi==3.OR.isigi==4.OR.isigi==5) THEN
1153
1154 IF(s0file==' ') THEN
1155 isigi=-isigi
1156 ELSE
1157 j = 0
1158 IF(irootyy_r==2)THEN
1160 IF(s0file(i:i)/=' ')j = j + 1
1161 ENDDO
1162 n = j - 3
1165 IF(s0file(n:n)=='Y')THEN
1166 OPEN(unit=iin4,file=tmp_name(1:len_tmp_name),access='SEQUENTIAL',form='FORMATTED',status='OLD')
1167
1170 OPEN(unit=iin5,file=tmp_name(1:len_tmp_name),access='SEQUENTIAL',form='FORMATTED',status='OLD')
1171 ELSE
1172 OPEN(unit=iin4,file=tmp_name(1:len_tmp_name),err=100,access='SEQUENTIAL',form='FORMATTED',status='OLD')
1173 CALL ancmsg(msgid=169,msgtype=msgerror,anmode=aninfo,c1=s0file)
1174100
CALL ancmsg(msgid=2062,msgtype=msgerror,anmode=aninfo,c1=s0file)
1175 ENDIF
1176 ELSE
1177 j = 0
1178 i = 1
1179 DO WHILE(s0file(i:i)/=' ')
1180 j = j + 1
1181 i = i + 1
1182 ENDDO
1183 n = j-3
1186 IF(s0file(n:n+4)=='.sty')THEN
1187 OPEN(unit=iin4,file=tmp_name(1:len_tmp_name),access='SEQUENTIAL',form='FORMATTED',status='OLD')
1188
1191 OPEN(unit=iin5,file=tmp_name(1:len_tmp_name),access='SEQUENTIAL',form='FORMATTED',status='OLD'
1192 ELSE
1193 OPEN(unit=iin4,file=tmp_name(1:len_tmp_name),err=200,access='SEQUENTIAL',form='FORMATTED',status='OLD')
1194 CALL ancmsg(msgid=169,msgtype=msgerror,anmode=aninfo,c1=s0file)
1195200
CALL ancmsg(msgid=2062,msgtype=msgerror,anmode=aninfo,c1=s0file)
1196 ENDIF
1197 ENDIF
1198 ENDIF
1199 ENDIF
1200
1201
1202
1211
1212 IF(isigi==0.AND.
1213 . (nb_inishe+nb_inish3
1214 . +nb_inibri+nb_iniquad
1215 . +nb_inibeam+nb_initruss
1216 . +nb_inisprig+nb_inisphcel)/=0) isigi=-3
1217
1218
1219
1220 WRITE (iout,'(A)') trim(names_and_titles%TITLE)
1221 WRITE (iout,'(//A/A/,(A,1PG20.13))')titre(110),titre(111)
1222 WRITE (iout,'(A,I10)') titre(117)(1:57),ipri,
1223 . titre(120)(1:57),invers_src
1224 WRITE (iout,'(A,I10)')
1225 . ' NSUBS: NUMBER OF SUBSETS. . . . . . . . . . . . . .',
1226 . nsubs,
1227 . ' NPART: NUMBER OF PARTS. . . . . . . . . . . . . . .',
1228 . npart
1229 WRITE (iout,'(A,I10)') titre(125)(1:57),nummat-1,
1230 . titre(135)(1:57),numgeo,
1231 . titre(126)(1:57),numnod,titre(127)(1:57),numskw,
1232 . titre(128)(1:57),numbcs
1233 IF (nalebcs /= 0)
1234 . WRITE (iout,'(A,I10)') titre(189)(1:57), nalebcs
1235 WRITE (iout,'(A,I10)')
1236 . ' NUMFRAM: NUMBER OF REFERENCE FRAMES . . . . . . . . .',
1237 . numfram
1238 WRITE (iout,'(A,I10)')
1239 . titre(131)(1:57),numelq ,
1240 . titre(191)(1:57),numeltria,
1241 . titre(132)(1:57),numels ,
1242 . titre(133)(1:57),numelc ,
1243 . titre(134)(1:57),numelt ,
1244 . titre(136)(1:57),numelp ,
1245 . titre(137)(1:57),numelr ,
1246 . titre(180)(1:57),numeltg-numeltria,
1247 . titre(182)(1:57),numelx ,
1248 . titre(186)(1:57),numelig3d
1249 WRITE (iout,'(A,I10)')
1250 .' NUMSPH : NUMBER OF SMOOTH PARTICLES (SPH CELLS) . . .',
1251 . numsph
1252 WRITE (iout,'(A,I10)')
1253 .' NSPHBCS: NUMBER OF SPH SYMMETRY CONDITIONS. . . . . .',
1254 . nspcond
1255 WRITE (iout,'(A,I10)')
1256 .' NSPHIO : NUMBER OF SPH INLET/OUTLET CONDITIONS. . . .',
1257 . nsphio
1258 IF(nsphres/=0)THEN
1259 WRITE (iout,'(A,/,A,I10)')
1260 .' NSPHRES:NUMBER OF PARTICLES FROM SPH RESERVES AMONG NUMSPH,',
1261 .' NUMBER OF NODES FROM SPH RESERVES AMONG NUMNOD. . .',
1262 . nsphres
1263 ENDIF
1264 IF(nsphsol/=0)THEN
1265 WRITE (iout,'(A,/,A,I10)')
1266 .' NSPHSOL:NUMBER OF PARTICLES & NODES CREATED FROM SOLIDS .',
1267 .' (AMONG NUMSPH & NUMNOD) . . . . . . . . . . . . .',
1268 . nsphsol
1269 ENDIF
1270 WRITE (iout,'(/(A,I10))') titre(138)(1:57),nfunct,
1271 .' NGRAV: NUMBER OF GRAVITY LOADS . . . . . . . . . . .',
1272 .ngrav,
1273 .' NFUNC2D: NUMBER OF USER 2D FUNCTIONS . . . . . . . .',
1274 .nfunc2d,
1275 .' NINIGRV:NUMBER OF INITIAL GRAVITY LOADS . . . . . . .',
1276 .ninigrav,
1277 .' NCONLD: NUMBER OF CONCENTRATED LOADS. . . . . . . . .',
1278 .nconld,
1279 .' NINVEL: NUMBER OF INITIAL VELOCITIES. . . . . . . . .',
1280 .ninvel,
1281 .' NPRELD: NUMBER OF PRESSURE LOADS. . . . . . . . . . .',
1282 .npreld,
1283 .' NINIMAP1D: NUMBER OF INITIAL 1D MAPPING.. . . . . . .',
1284 .ninimap1d,
1285 .' NINIMAP2D: NUMBER OF INITIAL 2D MAPPING.. . . . . . .',
1286 .ninimap2d
1287 IF(npreload>0) THEN
1288 WRITE (iout,'(A,I10)')
1289 . ' NPRELOAD: NUMBER OF BOLT PRELOADINGS. . . . . . . . .',
1290 . npreload
1291 ENDIF
1292 IF(detonators%N_DET > 0)THEN
1293 WRITE (iout,'(/(A,I10))') titre(141)(1:57),detonators%N_DET_POINT,
1294 . titre(171)(1:57),detonators%N_DET_LINE,
1295 . titre(172)(1:57),detonators%N_DET_WAVE_SHAPER,
1296 . titre(187)(1:57),detonators%N_DET_CORD,
1297 . titre(188)(1:57),detonators%N_DET_PLANE
1298 ENDIF
1299 IF(nlaser > 0) WRITE (iout,'((A,I10))') titre(178)(1:57),nlaser
1300 WRITE (iout,'(4X,A,I10)')
1301 . 'NUMBER OF ACCELEROMETERS. . . . . . . . . . . . . . .',
1302 . naccelm,
1303 . 'NUMBER OF SENSORS . . . . . . . . . . . . . . . . . .',
1304 . nsensor,
1305 . 'NUMBER OF GAUGES. . . . . . . . . . . . . . . . . . .',
1306 . nbgauge
1307 WRITE (iout,'(A,I10)') titre(146)(1:57),ninter,
1308 . titre(147)(1:57),nrwall,titre(148)(1:57),nrbody,
1309 .' NFXBODY: NUMBER OF FLEXIBLE BODIES. . . . . . . . . .',
1310 .nfxbody,
1311 . titre(149)(1:57),nconx,
1312 . titre(150)(1:57),nodmas,titre(183)(1:57),nimpdisp,
1313 . titre(184)(1:57),nimpvel,titre(185)(1:57),nimpacc,
1314 . titre(152)(1:57),nrivet,titre(153)(1:57),nsect,
1315 . titre(155)(1:57),njoint
1316
1317 IF(ninterfric > 0) WRITE (iout,'(A,I10)') titre(190)(1:57),ninterfric
1318 IF(nalelk>0)WRITE(iout,'(A,I10)')
1319 .' NALELK: NUMBER OF ALE LINKS. . . . . . . . . . . . . ',
1320 .nalelk
1321 WRITE (iout, 5051) nactiv
1322 WRITE (iout, 5052) ndamp
1323 WRITE (iout, 5053) ngjoint
1324 WRITE (iout, 5054) nummpc
1325 WRITE (iout, 5050) nr2rlnk
1326 WRITE (iout, 5055) nsubdom
1327 WRITE (iout,5000)nvolu+nmonvol
1328 WRITE(iout,'(A,I10)'
1329 .' NEIG: NUMBER OF EIGEN AND STATIC MODES PROBLEMS . .',
1330 .neig
1331 WRITE(iout,'(A,I10)')
1332 .' NBEM: NUMBER OF BEM SOLVED PROBLEMS . . . . . . . .',
1333 .nflow
1334 WRITE(iout,'(A,I10)')
1335 .' NRBE2: NUMBER OF RBE2 RIGID ELEMENTS . . . . . . . .',
1336 .nrbe2
1337 WRITE(iout,'(A,I10)')
1338 .' NRBE3: NUMBER OF RBE3 CONSTRAINT ELEMENTS . . . . .',
1339 .nrbe3
1340 WRITE (iout,'(2A/A,I10)')' INITIAL STRESS FILE =',trim(s0file),
1341 . ' FLAG ISIGI. . .',
1342 . isigi
1343
1344 IF (irefsta/=0) THEN
1345 WRITE (iout,'(2A/A,I10/A,I10)')
1346 . ' REFERENCE METRIC FILE =',xrfile,
1347 . ' FLAG IREFSTA. .',
1348 . irefsta,
1349 . ' NUMBER OF STEPS , NITRS. .',
1350 . nitrs
1351 ENDIF
1352
1353 IF(jale+jeul/=0)THEN
1354 WRITE(iout,
'(A,I10)')
' ISFINT: ALE/EULER MOMENTUM INTEGRATION FORMULATION. .',
ale%GLOBAL%ISFINT
1355 ENDIF
1356 IF(
ale%GLOBAL%ICAA==1)
THEN
1357 WRITE(iout,5380)
1358 END IF
1359 IF(jale/=0)THEN
1360 WRITE (iout,5100)
ale%GRID%NWALE
1361 SELECT CASE (
ale%GRID%NWALE)
1362 CASE(0);
WRITE (iout,5199)
ale%GRID%ALPHA,
ale%GRID%GAMMA,
ale%GRID%VGX,
ale%GRID%VGY,
ale%GRID%VGZ,volmin
1363 CASE(1);
WRITE (iout,5200)
ale%GRID%ALPHA,volmin
1364 CASE(2);
WRITE (iout,5300) dt_input,
ale%GRID%ALPHA,
ale%GRID%GAMMA,
ale%GRID%VGX,
ale%GRID%VGY,volmin
1365 CASE(3);WRITE (iout,5350)
1366 CASE(4);
WRITE (iout,5351)
ale%GRID%ALPHA,
ale%GRID%GAMMA,
ale%GRID%VGX,
ale%GRID%VGY
1367 CASE(5);
WRITE (iout,5353)
ale%GRID%ALPHA,nint(
ale%GRID%VGX)
1368 CASE(6);WRITE (iout,5354)
1369 CASE(7);
1370 label_def = ' NO'
1371 IF(int(
ale%GRID%VGX) == 1)label_def =
'YES'
1372 label_rot = ' NO'
1373 IF(int(
ale%GRID%VGY) == 1)label_rot =
'YES'
1374 WRITE (iout,5355) label_def,label_rot,
ale%GRID%ALPHA,
ale%GRID%GAMMA
1375 END SELECT
1376 ENDIF
1377
1380 IF(
ale%UPWIND%UPWSM/=one)
THEN
1382 nalemuscl=0
1384
1385
1386 ENDIF
1387 ENDIF
1388
1389 IF(jale+jeul/=0)THEN
1391 CALL ancmsg(msgid=1564, msgtype=msgwarning, anmode=aninfo)
1393 WRITE (iout,5360)
ale%UPWIND%UPWMG,
ale%UPWIND%UPWOG
1394 END IF
1397 ENDIF
1398 ENDIF
1399
1400 WRITE (iout,'(//,A,I10)') titre(130)(1:57),nanaly
1401
1402
1403 ihbe_ds= defaults%SOLID%ISOLID
1404 isst_ds= defaults%SOLID%ISMSTR
1405 icpre_d= defaults%SOLID%ICPRE
1406 itet4_d= defaults%SOLID%ITETRA4
1407 itet10_d= defaults%SOLID%ITETRA10
1408 iframe_ds = defaults%SOLID%IFRAME
1409 imas_ds= defaults%SOLID%IMAS
1410
1411 ioffset_d= defaults%SHELL%ioffset
1412 ihbe_d = defaults%SHELL%ishell
1413 ish3n_d= defaults%SHELL%ish3n
1414 isst_d = defaults%SHELL%ismstr
1415 ipla_d = defaults%SHELL%iplas
1416 ithk_d = defaults%SHELL%ithick
1417 idril_d= defaults%SHELL%idrill
1418
1419 icontrol_d= defaults%SOLID%ICONTROL
1420 IF(n2d==0)THEN
1421 IF(numelq/=0. or. (numeltg/=0.AND.n2d/=0) )THEN
1422 CALL ancmsg(msgid = 286,msgtype = msgerror,anmode = aninfo)
1423 ENDIF
1424 ENDIF
1425
1426 WRITE(iout,5500)integ8,iparith,user_windows%HAS_USER_WINDOW,ihbe_ds,
1427 . itet4_d,itet10_d,isst_ds,icpre_d,ihbe_d,isst_d,ithk_d,
1428 . ipla_d,istr_d,ishea_d,insh,ish3n_d, npts_d, iframe_ds,
1429 . ioffset_d,
1430 . icontrol_d
1431 WRITE(iout,5501)ishfram
1432 IF(analy_temp /= 0)WRITE(iout,5505)analy_temp
1433 IF(ish3nfram>0)WRITE(iout,5901)ish3nfram
1435 IF(jale/=0 .AND.
ale%GLOBAL%ISFINT/=0)
WRITE(iout,5503)
ale%GLOBAL%ISFINT
1436 WRITE(iout,5700)lagm_tol
1437 WRITE(iout,5800)imas_ds
1438 IF ((numsph>0).AND.(nsphsol==0)) WRITE (iout,5600) spasort,lvoisph,kvoisph
1439 IF ((numsph>0).AND.(nsphsol>0)) THEN
1440 IF (itsol2sph==1) WRITE (iout,5610) spasort,lvoisph,kvoisph,itsol2sph
1441 IF (itsol2sph==2) WRITE (iout,5620) spasort,lvoisph,kvoisph,itsol2sph
1442 ENDIF
1443
1444 WRITE(iout,1000)
1445 IF(iexpm==1) THEN
1446 ELSE IF(imot/=0) THEN
1447 WRITE(iout,*)'MEMORY REQUEST NOT EFFICIENT ON THIS COMPUTER'
1448 ENDIF
1449 IF(icray<2) THEN
1450
1451 ipct=nint(reel*100)
1452
1453 ELSE IF(icray==2) THEN
1454
1455
1456 ENDIF
1457
1458 IF(nthread_s>1)THEN
1459 str_nbthreads = 'THREADS'
1460 ELSE
1461 str_nbthreads = 'THREAD'
1462 ENDIF
1463 IF(got_inspire_alm == 1)THEN
1464 WRITE(iout,4001) nthread_s,str_nbthreads,nspmd,nthread,iarch,archn(iarch),nvsiz
1465 ELSE
1466 WRITE(iout,4000) nthread_s,str_nbthreads,nspmd,nthread,iarch,archn(iarch),nvsiz
1467 ENDIF
1468
1469 IF(ignore_spmd==1.OR.ignore_threads==1)THEN
1470 WRITE(iout,'(A)') ' '
1471 WRITE(iout,'(A)') ' INFO : NUMBER OF SPMD DOMAIN AND THREADS DEFINED IN COMMAND LINE'
1472 WRITE(iout,'(A)') ' /SPMD CARD PARAMETER ARE IGNORED'
1473 ENDIF
1474 IF(got_variable==1)THEN
1475 WRITE(iout,'(A)') ' '
1476 WRITE(iout,*) ' INFO : OMP_NUM_THREADS SET, DEFAULT SETTING IGNORED'
1477 WRITE(iout,*)' '
1478 ENDIF
1479
1480 IF(old_rsb==1)THEN
1481 WRITE(iout,'(A)') ' '
1482 WRITE(iout,'(A)') ' INFO : /SPMD OPTION, DECTYP=2 '
1483 WRITE(iout,'(A)') ' RSB DOMAIN DECOMPOSITION DEPRECATED, CHANGING TO DEFAULT VALUE'
1484 ENDIF
1485
1486
1487 IF (userl_avail==1)THEN
1488 WRITE(iout,4500)
1489 IF(got_inspire_alm == 1)THEN
1490 WRITE(iout,4601) dlibfile(1:dlibfile_size),dlibtkvers
1491 ELSE
1492 WRITE(iout,4600) dlibfile(1:dlibfile_size),dlibtkvers
1493 ENDIF
1494 ENDIF
1495
1496
1497
1498
1499 IF(
ALLOCATED(
ixs))
DEALLOCATE(
ixs)
1500 IF(
ALLOCATED(
igeo))
DEALLOCATE(
igeo)
1502
1503 1000 FORMAT(//
1504 & 4x,'SPEED PARAMETERS '/
1505 & 4x,'---------------- '/)
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515 4000 FORMAT(
1516 & 4x,'STARTER RUNNING ON. . . . . . . . . . . . . . . . . .',i10,
1517 . ' ',a20/
1518 & 4x,'NUMBER OF SPMD DOMAINS. . . . . . . . . . . . . . . .',i10/
1519 & 4x,'NUMBER OF THREADS PER DOMAIN. . . . . . . . . . . . .',i10/
1520 & 4x,'ARCHITECTURE OPTIMIZATION . . . . . . . . . . . . . .',i10,
1521 . ', ',a20/
1522 & 4x,'SIZE OF ELEMENT BUFFER. . . . . . . . . . . . . . . .',i10)
1523 4001 FORMAT(
1524 & 4x,'SOLVER RUNNING ON . . . . . . . . . . . . . . . . . .',i10,
1525 . ' ',a20/
1526 & 4x,'NUMBER OF SPMD DOMAINS. . . . . . . . . . . . . . . .',i10/
1527 & 4x,'NUMBER OF THREADS PER DOMAIN. . . . . . . . . . . . .',i10/
1528 & 4x,'ARCHITECTURE OPTIMIZATION . . . . . . . . . . . . . .',i10,
1529 . ', ',a20/
1530 & 4x,'SIZE OF ELEMENT BUFFER. . . . . . . . . . . . . . . .',i10)
1531
1532 4500 FORMAT(//
1533 & 4x,'EXTERNAL LIBRARY FOR USERS CODE INTERFACE '/
1534 & 4x,'----------------------------------------- '/)
1535 4600 FORMAT(
1536 & 4x,'LIBRARY NAME . . . . . . . . . . . . . . . . . . . . ',a/
1537 & 4x,'RADIOSS USERS CODE INTERFACE VERSION . . . . . . . .',i10)
1538 4601 FORMAT(
1539 & 4x,'LIBRARY NAME . . . . . . . . . . . . . . . . . . . . ',a/
1540 & 4x,'SOLVER USERS CODE INTERFACE VERSION . . . . . . . . .',i10)
1541
1542
1543 5000 FORMAT(
1544 & ' NVOLU: NUMBER OF MONITORED VOLUMES . . . . . . . . .',i10)
1545 5050 FORMAT(
1546 & ' NR2RLNK: NUMBER OF EXTERNAL COUPLING LINKS . . . . . ',i10)
1547 5051 FORMAT(
1548 & ' NACTIV: NUMBER OF ELEMENT DEACTIVATION GROUPS . . . .',i10)
1549 5052 FORMAT(
1550 & ' NDAMP: NUMBER OF RAYLEIGH DAMPING GROUPS . . . . . .',i10)
1551 5053 FORMAT(
1552 & ' NGJOINT: NUMBER OF GEAR TYPE JOINTS . . . . . . . . .',i10)
1553 5054 FORMAT(
1554 & ' NUMMPC: NUMBER OF MULTI-POINT CONSTRAINTS . . . . . .',i10)
1555 5055 FORMAT(
1556 & ' NSUBDOM: NUMBER OF SUBDOMAINS . . . . . .. . . . . . ',i10)
1557 5100 FORMAT(/
1558 & 4x,'NWALE : ALE GRID VELOCITY FORMULATION . . . . . . . .',i10)
1559 5199 FORMAT(//
1560 & 4x,'ALE GRID SMOOTHING FORMULATION'/
1561 & 4x,'------------------------------'/
1562 & 5x,'DONEA GRID VELOCITY COMPUTATION METHOD '//
1563 & 5x,'ALPHA : DONEA COEFFICIENT. . . . . . . . . . ',1pg20.13/
1564 & 5x,'GAMMA : GRID VELOCITY LIMITATION FACTOR. . . ',1pg20.13/
1565 & 5x,'FscaleX : X-GRID VELOCITY SCALE FACTOR . . . . ',
1566 & 5x,'FscaleY : Y-GRID VELOCITY SCALE FACTOR . . . . ',1pg20.13/
1567 & 5x,'FscaleZ : Z-GRID VELOCITY SCALE FACTOR . . . . ',1pg20.13/
1568 & 5x,'VOLMIN : MINIMUM VOLUME FOR ELEMENT DELETION. ',1pg20.13)
1569 5200 FORMAT(//
1570 & 4x,'ALE GRID SMOOTHING FORMULATION'/
1571 & 4x,'------------------------------'/
1572 & 5x,'ALTAIR AVERAGE DISPLACEMENT GRID FORMULATION '//
1573 & 5x,'UMAX : MAXIMUM ABSOLUTE GRID VELOCITY . . . . ',1pg20.13/
1574 & 5x,'VMIN : MINIMUM VOLUME FOR ELEMENT DELETION. . ',1pg20.13)
1575 5300 FORMAT(//
1576 & 4x,'ALE GRID SMOOTHING FORMULATION'/
1577 & 4x,'------------------------------'/
1578 &5x,'ALTAIR SPRING METHOD FOR GRID VELOCITY COMPUTATION '//
1579 &5x,'DT0 : TYPICAL TIME STEP . . . . . . . . . . . . ',1pg20.13/
1580 &5x,'DT0* : EFFECTIVE TIME STEP. . . . . . . . . . . . ',1pg20.13/
1581 &5x,'GAMMA : NON LINEARITY FACTOR . . . . . . . . . . . ',1pg20.13/
1582 &5x,'ETA : DAMPING COEFFICIENT . . . . . . . . . . . ',1pg20.13/
1583 &5x,'NU : SHEAR FACTOR . . . . . . . . . . . . . . . ',1pg20
1584 &5x,'VOLMIN: MINIMUM VOLUME FOR ELEMENT DELETION. . . . ',1pg20.13)
1585 5350 FORMAT(//
1586 & 4x,'ALE GRID SMOOTHING FORMULATION'/
1587 & 4x,'------------------------------'/
1588 & 5x,'GRID VELOCITY IS NOT COMPUTED (QUASI EULER) ')
1589 5351 FORMAT(//
1590 & 4x,'ALE GRID SMOOTHING FORMULATION'/
1591 & 4x,'------------------------------'/
1592 & 5x,'ALTAIR STANDARD METHOD FOR GRID VELOCITY COMPUTATION '//
1593 & 5x,'ALPHA : STABILITY FACTOR . . . . . . . . . . . . ',1pg20.13/
1594 & 5x,'GAMMA : NON LINEARITY FACTOR . . . . . . . . . . ',1pg20.13/
1595 & 5x,'BETA : DAMPING COEFFICIENT. . . . . . . . . . . ',1pg20.13/
1596 & 5x,'LC : CHARACTERISTIC LENGTH. . . . . . . . . . ',1pg20.13)
1597 5353 FORMAT(//
1598 & 4x,'ALE GRID SMOOTHING FORMULATION'/
1599 & 4x,'------------------------------'/
1600 & 5x,'LAPLACIAN SMOOTHING '//
1601 & 5x,'LAMBDA:. . . . . . . . . . . . . . . . . . . . . ',1pg20.13/
1602 & 5x,'NITER :. . . . . . . . . . . . . . . . . . . . . ',i10)
1603 5354 FORMAT(//
1604 & 4x,'ALE GRID SMOOTHING FORMULATION'/
1605 & 4x,'------------------------------'/
1606 & 5x,'VOLUME SMOOTHING ')
1607 5355 FORMAT(//
1608 & 4x,'ALE GRID SMOOTHING FORMULATION'/
1609 & 4x,'------------------------------'/
1610 & 5x,'FLOW-TRACKING (MASS WEIGHTED AVERAGED VELOCITY)'//
1611 & 5x,'DEFORMATION ENABLED : . . . . . . . . . . . . . ',a3/
1612 & 5x,'ROTATION ENABLED : . . . . . . . . . . . . . . . ',a3/
1613 & 5x,'DEFORMATION SCALE FACTOR : . . . . . . . . . . . ',1pg20.13/
1614 & 5x,'ROTATION SCALE FACTOR: . . . . . . . . . . . . . ',1pg20.13/)
1615
1616
1617 5360 FORMAT(//
1618 & 4x,'ALE UPWIND PARAMETERS'/
1619 & 4x,'---------------------'/
1620 & 5x,'UPWIND FOR MOMENTUM TRANSPORT . . . . .='
1621 & 5x,'UPWIND FOR OTHER TRANSPORT. . . . . . .=',1pg20.13/)
1622 5380 FORMAT(/
1623 & 4x,'CAA FLUID FORMULATION ACTIVATED')
1624 5500 FORMAT(//4x,'ANALYSIS OPTIONS'/
1625 & 4x,'----------------'//
1626 & 4x,'INTEG8 : 8 GAUSS POINT CONDENSED INTEGRATION . . . . .',i10/
1627 & 4x,'IPARITH: PARALLEL ARITHMETIC FLAG (2 OFF, 1 0N). . . .',i10/
1628 & 4x,'IUSERW : GENERAL USER WINDOW FLAG. . . . . . . . . . .',i10/
1629 & 4x,'ISOLID : DEFAULT BRICK FORMULATION FLAG. . . . . . . .',i10/
1630 & 4x,'ITET4 : DEFAULT TETRA4 FORMULATION FLAG . . . . . . .',i10/
1631 & 4x,'ITET10 : DEFAULT TETRA10 FORMULATION FLAG. . . . . . .',i10/
1632 & 4x,'ISMSTR : DEFAULT BRICK SMALL STRAIN FLAG . . . . . . .',i10/
1633 & 4x,'ICPRE : DEFAULT SOLID CONSTANT PRESSURE FLAG. . . . .',i10/
1634 & 4x,'ISHELL : DEFAULT SHELL FORMULATION FLAG. . . . . . . .',i10/
1635 & 4x,'ISST : DEFAULT SHELL SMALL STRAIN FLAG . . . . . . .',i10/
1636 & 4x,'ITHK : DEFAULT SHELL THICKNESS VARIATION FLAG. . . .',i10/
1637 & 4x,'IPLA : DEFAULT PLANE STRESS PLASTICITY FLAG. . . . .',i10/
1638 & 4x,'ISTR : DEFAULT SHELL STRAIN COMPUTATION FLAG . . . .',i10/
1639 & 4x,'ISHEA : DEFAULT SHELL SHEAR COMPUTATION FLAG. . . . .',i10/
1640 & 4x,'INSH : SHELL INERTIA FLAG. . . . . . . . . . . . . .',i10/
1641 & 4x,'ISH3N : DEFAULT 3 NODE SHELL FORMULATION FLAG . . . .',i10/
1642 & 4x,'NPTS : SHELL PROPERTIES DEFAULT NUMBER OF ',/
1643 & 4x,' INTEGRATION POINTS OR LAYERS. . . . . . . . .',i10/
1644 & 4x,'IFRAME : DEFAULT SOLID FRAME FORMULATION FLAG . . . . ',i10/
1645 & 4x,'IOFFSET: DEFAULT SHELL OFFSET FLAG. . . . . . . . . . ',i10/
1646 & 4x,'ICONTROL:DEFAULT SOLID DISTORTION CONTROL FLAG. . . . ',i10)
1647 5501 FORMAT(
1648 & 4x,'ISHFRAM: LOCAL SHELL FRAME DEFINITION. . . . . . . . .',i10)
1649 5502 FORMAT(
1650 & 4x,'IALEFVM: FVM FOR ALE MOMENTUM EQUATION. . . . . . . .',i10)
1651 5503 FORMAT(
1652 & 4x,'ISFINT : INTERNAL FORCES FORMULATION . . . . . . . . .',i10)
1653 5504 FORMAT(//
1654 & 4x,'MUSCL (MONOTONIC UPSTREAM-CENTERED SCHEME FOR CONSERVATION LAWS)'/
1655 & 4x,'----------------------------------------------------------------'/
1656 & 5x,'COMPRESSION COEFFICIENT (BETA). . . . . . . . . . . : ',1pg20.13/
1657 & 5x,'FORMULATION FLAG (IFLAG). . . . . . . . . . . . . . : ',i10)
1658 5505 FORMAT(
1659 & 4x,'ITEMP : TEMPERATURE CUTOFF FLAG . . . . . . . . . . .',i10)
1660 5700 FORMAT(//
1661 & 4x,'LAGRANGE MULTIPLIER OPTIONS'/
1662 & 4x,'---------------------------'/
1663 & 4x,'LAGM_TOL:CONVERGENCE CRITERION. . . . . . . . . . . .',
1664 & 1pg20.13)
1665 RETURN
1666 5600 FORMAT(//4x,'SPH GLOBAL PARAMETERS'/
1667 & 4x,'---------------------'//
1668 & 4x,'ALPHA SORT :SORTING SECURITY COEFFICIENT . . . . . .',
1669 & 1pg20.13/,
1670 & 4x,'LNEIGH :MAXIMUM NUMBER OF COMPUTED NEIGHBOURS. .',i10/,
1671 & 4x,'NNEIGH :MAXIMUM NUMBER OF STORED NEIGHBOURS. . .',i10)
1672 5610 FORMAT(//4x,'SPH GLOBAL PARAMETERS'/
1673 & 4x,'---------------------'//
1674 & 4x,'ALPHA SORT :SORTING SECURITY COEFFICIENT . . . . . .',
1675 & 1pg20.13/,
1676 & 4x,'LNEIGH :MAXIMUM NUMBER OF COMPUTED NEIGHBOURS. .',i10/,
1677 & 4x,'NNEIGH :MAXIMUM NUMBER OF STORED NEIGHBOURS. . .',i10/,
1678 & 4x,'ITSOL2SPH :SOL2SPH PARTICLES ACTIVATION TYPE. . . .',i10/,
1679 & 4x,'(SOL2SPH PARTICLES ACTIVATION BASED ON PARTS)')
1680 5620 FORMAT(//4x,'SPH GLOBAL PARAMETERS'/
1681 & 4x,'---------------------'//
1682 & 4x,'ALPHA SORT :SORTING SECURITY COEFFICIENT . . . . . .',
1683 & 1pg20.13/,
1684 & 4x,'LNEIGH :MAXIMUM NUMBER OF COMPUTED NEIGHBOURS. .',i10/,
1685 & 4x,'NNEIGH :MAXIMUM NUMBER OF STORED NEIGHBOURS. . .',i10/,
1686 & 4x,'ITSOL2SPH :SOL2SPH PARTICLES ACTIVATION TYPE. . . .',i10/,
1687 & 4x,'(SOL2SPH PARTICLES ACTIVATION BASED ON SUBSETS)')
1688 5800 FORMAT(
1689 & //4x,'NODAL MASS DISTRIBUTION FLAG . . . . . . . . .',i10)
1690 5901 FORMAT(
1691 & 4x,'ISH3NFRAM: OLD LOCAL SH3N FRAME ACTIVATION . . . . . .',i10)
1693 RETURN
subroutine contrbe3(icr, lsubmodel)
subroutine find_dt1brick_engine()
subroutine hm_elem_count(elem_type, hm_elem_number, is_dyna)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_get_string(name, sval, size, is_available)
subroutine hm_option_count(entity_type, hm_option_number)
subroutine hm_option_next()
subroutine hm_option_start(entity_type)
subroutine hm_preread_node(unitab, lsubmodel, numnusr, is_dyna)
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_analy(nanaly, iparith, ipari0, lsubmodel)
subroutine hm_read_caa(lsubmodel)
subroutine hm_read_definter(hm_ninter_def, def_inter, lsubmodel)
subroutine hm_read_defshell(lsubmodel, defaults_shell)
subroutine hm_read_defsolid(lsubmodel, defaults_solid)
subroutine hm_read_implicit(lsubmodel)
subroutine hm_read_inista(s0file, isigi, ioutp_fmt, irootyy_r, lsubmodel)
subroutine hm_read_ioflag(lsubmodel)
subroutine hm_read_lagmul(lsubmodel)
subroutine hm_preread_part(ipart, igeo, lsubmodel)
subroutine contrbe2(icr, lsubmodel)
subroutine hm_read_refsta(lsubmodel, xrfile)
subroutine hm_read_sms(lsubmodel)
subroutine hm_prelce16s(ipart, igeo, ixs, nsphsol, lsubmodel, is_dyna)
subroutine hm_read_sphglo(lsubmodel)
subroutine hm_read_spmd(lsubmodel)
subroutine hm_read_unit(unitab, lsubmodel)
subroutine hm_read_upwind(jupw, eta1, eta2, eta3, lsubmodel, unitab)
type(alefvm_param_), target alefvm_param
type(alemuscl_param_) alemuscl_param
character(len=infile_char_len) infile_name
integer, parameter ltitle
integer, parameter ncharfield
integer, parameter ncharline
integer, dimension(:), allocatable, target ixs
integer, dimension(:), allocatable, target ipart
integer, dimension(:), allocatable igeo
subroutine nbadigemesh(lsubmodel, numnusr)
subroutine nbadmesh(lsubmodel, numnusr, unitab)
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)