82 SUBROUTINE contrl(MULTI_FVM,LSUBMODEL,IS_DYNA,DETONATORS,USER_WINDOWS,MAT_ELEM,
83 . NAMES_AND_TITLES,LIPART1,DEFAULTS,GLOB_THERM,PBLAST,OUTPUT)
108 USE bcs_mod ,
only : bcs
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
120#include "implicit_f.inc"
124#include "mvsiz_p.inc"
128#include "units_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"
149#include "param_c.inc"
151#include "lagmult.inc"
153#include "scr14_c.inc"
154#include "remesh_c.inc"
155#include "sysunit.inc"
156#include "commandline.inc"
158#include "userlib.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"
169 TYPE(multi_fvm_struct),
INTENT(IN) :: MULTI_FVM
171 INTEGER,
INTENT(IN)::IS_DYNA
174 TYPE(mat_elem_),
INTENT(INOUT) :: MAT_ELEM
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
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,nctrl,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,
195 INTEGER IS_BEGIN,SCHAR
196 INTEGER :: NPROP,NALEMAT,NEULERMAT
197 INTEGER IHBE_DS,ISST_DS,IPLA_DS,IFRAME_DS,ITET4_D,ITET10_D,ICPRE_D,IMAS_DS,ICONTROL_D,
198 . ihbe_d,ipla_d,istr_d,ithk_d,ishea_d,isst_d,
199 . ish3n_d, istra_d,npts_d,idril_d,ioffset_d,def_inter(100)
201 CHARACTER (LEN=NCHARLINE) :: CART
202 CHARACTER (LEN=NCHARLINE) :: XRFILE
203 CHARACTER (LEN=NCHARLINE) :: KEY
204 CHARACTER (LEN=NCHARLINE) ::
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
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
221 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: NPLY,NSUB,NISUB
223 INTEGER :: NITER,IFORM
225 INTEGER :: LEN_TMP_NAME
226 CHARACTER(len=4096) :: TMP_NAME
227 LOGICAL :: IS_AVAILABLE
228 INTEGER :: NUMTITLE, NGRTRIA, IDUMMY, NANIM_VERS
230 INTEGER :: NB_INISHE,NB_INISH3,NB_INIBRI,NB_INIQUAD,
231 . nb_inibeam,nb_initruss,nb_inisprig,nb_inisphcel
233 CHARACTER*20 UNIT_NAME
255 IF (numtitle > 0)
THEN
263 WRITE(istdo,
'(A)') line(1:len_trim(line))
267 names_and_titles%TITLE(1:len_line)=line(1:len_line)
275 WRITE(istdo,
'(A)')titre(12)
282 IF (is_begin /= 0)
THEN
286 CALL hm_get_intv(
'INVERS', invers, is_available, lsubmodel)
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)
298 CALL ascii_encoding_mu_letter(keyli, keymi, keyti, keyl, keym, keyt)
310 IF(unit_name ==
'LENGTH')
THEN
313 IF(unit_name ==
'MASS')
THEN
316 IF(unit_name ==
'TIME')
THEN
327 WRITE(istdo,
'(A)')titre(10)
334 IF (got_ncpu ==1)
THEN
347 CALL getenv(
'OMP_NUM_THREADS',str)
350 READ(str,
'(I10)',err=999)nthread1
354 IF (got_nth ==1)
THEN
365 nthread =
max(nthread,1)
367 nthread_r2r = nthread
368 CALL omp_set_num_threads(nthread_s)
372 IF (got_nth ==1)
THEN
383 nvsiz = archinfo(ibuiltin,1)
384 ivector = archinfo(ibuiltin,2)
426 IF(iprivate > 0 ) iprivate = 1
431 IF(istamping > 0 ) istamping = 1
438 CALL init_def_zero(defaults)
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
463 CALL init_def_elem(n2d,iimplicit,defaults)
471 defaults%interface%DEF_INTER(1:100) = def_inter(1:100)
474 IF (iintthick > 1)
THEN
475 CALL ancmsg(msgid=725,msgtype=msgerror,anmode=aninfo,i1=iintthick)
482 IF (nshfram == 1)
THEN
484 ELSEIF (nshfram > 1)
THEN
485 CALL ancmsg(msgid=546,msgtype=msgerror,anmode=aninfo,i1=nshfram)
494 IF(decneq==0) decneq = 100
507 IF(nb_ams==0.AND.iimplicit==0)
THEN
519 ELSEIF(iimplicit/=0)
THEN
525 IF(nspmd < 1) nspmd=1
526 IF(nspmd > parasiz) nspmd=parasiz
527 IF(nthread < 1) nthread=1
529 IF(nthread > nthmax) nthread=nthmax
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'
535 WRITE(istdo,
'(A,I4,A)')
' .. SOLVER RUNNING ON ',nthread_s,
' THREADS'
538 IF (nthread_s==1)
THEN
539 WRITE(istdo,
'(A,I4,A)')
' .. STARTER RUNNING ON ',nthread_s,
' THREAD'
541 WRITE(istdo,
'(A,I4,A)')
' .. STARTER RUNNING ON ',nthread_s,
' THREADS'
553 CALL cpp_nodes_count(numnusr,numcnod)
560 CALL ancmsg(msgid=3,msgtype=msgerror,anmode=aninfo)
610 numels8 = numbrick+numtetra4+numpenta6
613 IF (is_dyna == 0)
CALL hm_elem_count(
'BRICK20',numels20,is_dyna)
617 numels = numels8+numels10+numels20+numels16
626 IF(numelc > 0 .AND. nanaly /= 0)
THEN
627 CALL ancmsg(msgid=285,msgtype=msgerror,anmode=aninfo)
632 IF(numeltg > 0 .AND. nanaly /= 0)
THEN
633 CALL ancmsg(msgid=287,msgtype=msgerror,anmode=aninfo)
647 numeltg = numeltg + numeltria
653 . msgtype=msgwarning,
667 nadmesh = nadmeshg + nadmeshset + nadmeshstat
691 numelig3d0 = numelig3d
702 nummat = hm_nummat + 1
703 mat_elem%NUMMAT = nummat
733 nfunct = nfunct0 + ntable0 + ntable1 + npyfun
740 IF (nperturb > 0) iperturb = 1
768 nbcskin = numbcs - nbcslag
777 nfxvel = nimpdisp + nimpvel + nimpacc
782 nrbykin = nrbody - nrbylag
820 ninter = hm_ninter - nintsub
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)
846 CALL HM_OPTION_COUNT('/grbeam
',NGRBEAM)
847 CALL HM_OPTION_COUNT('/grspri
',NGRSPRI)
849 CALL HM_OPTION_COUNT('/set
',NSETS)
850 NGPE = NGRNOD + NGRBRIC + NGRQUAD + NGRSHEL + NGRSH3N + NGRTRUS + NGRBEAM + NGRSPRI + NGRPART
854 CALL HM_OPTION_COUNT('/
inivel',HM_NINVEL)
857 CALL HM_OPTION_COUNT('/refsta
',IREFSTA)
859 IF(IREFSTA > 0)IS_REFSTA = .TRUE.
861 CALL HM_OPTION_COUNT('/xref
',NXREF)
863 CALL HM_OPTION_COUNT('/eref
',NEREF)
866 CALL HM_READ_INISTA(S0FILE, ISIGI, IOUTP_FMT, IROOTYY_R, LSUBMODEL)
871 IF (IRFORM /= 12) THEN
872 CALL ANCMSG(MSGID=636,MSGTYPE=MSGWARNING,ANMODE=ANINFO_BLIND_1)
877 CALL HM_READ_REFSTA(LSUBMODEL, XRFILE)
879 CALL HM_OPTION_COUNT('/
inigrav',NINIGRAV)
881 CALL HM_OPTION_COUNT('/inimap1d
', NINIMAP1D)
882 CALL HM_OPTION_COUNT('/inimap2d
', NINIMAP2D)
884 CALL HM_OPTION_COUNT('/
inivol' ,NUM_INIVOL)
888 CALL HM_OPTION_COUNT('/initemp
' ,GLOB_THERM%NINTEMP)
889 CALL HM_OPTION_COUNT('/imptemp
' ,GLOB_THERM%NIMTEMP)
890 CALL HM_OPTION_COUNT('/impflux
' ,GLOB_THERM%NIMPFLUX)
891 CALL HM_OPTION_COUNT('/
convec' ,GLOB_THERM%NCONVEC)
892 CALL HM_OPTION_COUNT('/
radiation',GLOB_THERM%NRADIA)
896 CALL HM_OPTION_COUNT('/sphcel
',NUMSPH)
899 CALL HM_OPTION_COUNT('/sphbcs
',NSPCOND)
907 CALL NBSPH(LSUBMODEL)
910 NUMNOD=NUMNOD+NSPHRES
911 NUMSPH=NUMSPH+NSPHRES
917 CALL HM_OPTION_COUNT('/madymo/exfem
', NEXMAD)
918 CALL HM_OPTION_COUNT('/madymo/link
', NCONX)
919 IF (NCONX > 0) CALL ANCMSG(MSGID=2023, MSGTYPE=MSGERROR, ANMODE=ANINFO)
922 CALL HM_OPTION_COUNT('/
eig',NEIG)
923 IF (NEIG>0) IPARI0 = 0
926 CALL HM_OPTION_COUNT('/bem/flow
', NFLOW)
928 CALL HM_OPTION_COUNT('/bem/daa
', IDUMMY)
929 NFLOW = NFLOW + IDUMMY
934 ALE%GLOBAL%IS_BOUNDARY_MATERIAL = .FALSE.
936 CALL HM_OPTION_COUNT('/ebcs
',NEBCS)
940 CALL HM_OPTION_COUNT('/dfs/detpoin
',DETONATORS%N_DET_POINT)
941 CALL HM_OPTION_COUNT('/dfs/detline
',DETONATORS%N_DET_LINE)
942 CALL HM_OPTION_COUNT('/dfs/wav_sha
',DETONATORS%N_DET_WAVE_SHAPER)
943 CALL HM_OPTION_COUNT('/dfs/detplan
',DETONATORS%N_DET_PLANE)
944 CALL HM_OPTION_COUNT('/dfs/
detcord',DETONATORS%N_DET_CORD)
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
954 CALL HM_OPTION_COUNT('/dfs/laser
',NLASER)
956! DETECT ALE OR EULER FRAMEWORK
958 CALL HM_OPTION_COUNT('/
ale/mat
',NALEMAT)
959 CALL HM_OPTION_COUNT('/euler/mat
',NEULERMAT)
960 IF(NALEMAT > 0) ALE%GLOBAL%IS_DEFINED_ALE = 1
961 IF(NEULERMAT > 0)ALE%GLOBAL%IS_DEFINED_EULER = 1
962 CALL HM_OPTION_COUNT('/prop
', NPROP)
964 CALL HM_OPTION_START('/prop
')
965 CALL HM_OPTION_NEXT()
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.AND.
IF(ALE%GLOBAL%IS_DEFINED_EULER == 1 ALE%GLOBAL%IS_DEFINED_EULER == 1)EXIT
971 JEUL = ALE%GLOBAL%IS_DEFINED_EULER ! =1 : if /EULER/MAT or /PROP/SOLID (IALE=2) is defined within the input file
972 JALE = ALE%GLOBAL%IS_DEFINED_ALE ! =1 : if /ALE/MAT or /PROP/SOLID (IALE=1) is defined within the input file
974 IF(INTEG8==1)LVEUL=52
977 CALL HM_OPTION_COUNT('/
ale/bcs
', NALEBCS)
978 IF(ALE%GLOBAL%ICAA == 1) ALE%GRID%NWALE = -1
980 !********************************
981 ! /ALE/GRID: ALE grid formulation
982 !********************************
983 CALL HM_READ_ALE_GRID(DT_INPUT, ALE%GRID%ALPHA, ALE%GRID%GAMMA, ALE%GRID%VGX, ALE%GRID%VGY, ALE%GRID%VGZ,
984 . VOLMIN, LSUBMODEL, UNITAB)
986 !*******************************************************************
987 ! /ALE/MUSCL: activation of second order methods for LAW51 or LAW151
988 !*******************************************************************
989 CALL HM_READ_ALE_MUSCL(LSUBMODEL, UNITAB)
991 !************************
992 ! /ALE/LINK/VEL: counting
993 !************************
994 CALL HM_OPTION_COUNT('/
ale/link/vel
', NALELK)
999 CALL HM_READ_ALE_SOLVER(LSUBMODEL, UNITAB, ALE%GLOBAL%ICAA, ALE%GLOBAL%ISFINT)
1004 CALL HM_READ_UPWIND(JUPW, ALE%UPWIND%UPWMG, ALE%UPWIND%UPWOG, ALE%UPWIND%UPWSM, LSUBMODEL, UNITAB)
1008 CALL HM_OPTION_COUNT('/run
',NRUN_ENG)
1009 CALL HM_OPTION_COUNT('/anim
',NANIM_ENG)
1010 CALL HM_OPTION_COUNT('/tfile
',NTFILE_ENG)
1011 CALL HM_OPTION_COUNT('/rfile
',NRFILE_ENG)
1012 CALL HM_OPTION_COUNT('/dt
',NDT_ENG)
1013 CALL HM_OPTION_COUNT('/stop
',NSTOP_ENG)
1014 CALL HM_OPTION_COUNT('/vers
',NVERS_ENG)
1015 NGINE=NRUN_ENG+NANIM_ENG+NTFILE_ENG+NRFILE_ENG+NDT_ENG+NSTOP_ENG+NVERS_ENG
1022 CALL HM_OPTION_COUNT('/anim/vers
',NANIM_VERS)
1023 IF (NANIM_VERS > 0) THEN
1024 CALL HM_OPTION_START('/anim/vers
')
1025 CALL HM_OPTION_NEXT()
1026 CALL HM_GET_INTV('anim_vers
', ANIM_VERS, IS_AVAILABLE, LSUBMODEL)
1048 CALL HM_OPTION_COUNT('/
inivel/node
',I)
1050 IRODDL=MIN(1,NUMELC+NUMELP+NRBODY+NUMELR+NUMELTG+NGJOINT+NUMMPC+NFXBODY+NUMELX+KROT)
1053 !for SIN initialization and IN allocation in lectur.F
1054 CALL HM_OPTION_START('material
')
1057 CALL HM_OPTION_READ_KEY(LSUBMODEL,KEYWORD2 = KEY)
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
1071 ALLOCATE(IGEO(NPROPGI*NUMGEO),STAT=stat)
1072 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='igeo')
1076 ALLOCATE(NSUB (NUMGEO + NUMSTACK) ,STAT=stat)
1077 ALLOCATE(NISUB(NUMGEO + NUMSTACK) ,STAT=stat)
1078 ALLOCATE(NPLY (NUMGEO + NUMSTACK) ,STAT=stat)
1080 CALL HM_PREREAD_PROPERTIES(IGEO,NSPHSOL,NPLY,NSUB,NISUB,LSUBMODEL,DEFAULTS)
1082.AND.
IF(NSPHSOL/=0NUMELS8/=0)THEN
1083 ALLOCATE(IPART(LIPART1*NPART),STAT=stat)
1084 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='ipart')
1086 CALL HM_PREREAD_PART(IPART,IGEO,LSUBMODEL)
1088 ALLOCATE(IXS(NIXS*NUMELS8),STAT=stat)
1089 IF (STAT /= 0) CALL ANCMSG(MSGID=268,ANMODE=ANINFO,MSGTYPE=MSGERROR,C1='ipart')
1090 CALL HM_PRELCE16S(IPART,IGEO,IXS,NSPHSOL,LSUBMODEL,IS_DYNA)
1095 NUMNOD=NUMNOD+NSPHSOL
1096 NUMSPH=NUMSPH+NSPHSOL
1099 CALL HM_READ_SPHGLO(LSUBMODEL)
1102 CALL CONTRBE2(ICR,LSUBMODEL)
1103 CALL CONTRBE3(ICR3,LSUBMODEL)
1104.OR..OR.
IF(IISROT==1ICR>0ICR3>0)IRODDL = 1
1106 CALL HM_OPTION_COUNT('/userwi
',USER_WINDOWS%HAS_USER_WINDOW)
1108 IF(DTINI==ZERO)DTINI=EP06
1109 IF(VOLMIN==ZERO)VOLMIN=-EP20
1120 OUTPUT%DTANIM = ZERO
1122 OUTPUT%TANIM_STOP = EP20
1129 OUTPUT%TH%WFEXT = ZERO
1145.AND.
IF(DTFAC==ZERON2D/=0)DTFAC=0.67 !0.67 => 0.670000016689301 !ZEP67 => 0.670000000000000
1146.AND.
IF(DTFAC==ZERON2D==0)DTFAC=0.90 !0.90 => 0.899999976158142 !ZEP9 => 0.900000000000000
1150.OR.
IF(ISIGI==1ISIGI==2) THEN
1152.OR..OR.
ELSEIF(ISIGI==3ISIGI==4ISIGI==5) THEN
1154 IF(S0FILE==' ') THEN
1158 IF(IROOTYY_R==2)THEN
1160 IF(S0FILE(I:I)/=' ')J = J + 1
1163 TMP_NAME=INFILE_NAME(1:INFILE_NAME_LEN)//S0FILE(1:len_trim(S0FILE))
1164 LEN_TMP_NAME = INFILE_NAME_LEN+len_trim(S0FILE)
1165 IF(S0FILE(N:N)=='y
')THEN
1166 OPEN(UNIT=IIN4,FILE=TMP_NAME(1:LEN_TMP_NAME),ACCESS='sequential
',FORM='formatted
',STATUS='old
')
1168 TMP_NAME=INFILE_NAME(1:INFILE_NAME_LEN)//S0FILE(1:N)//'000
'
1169 LEN_TMP_NAME = INFILE_NAME_LEN+N+3
1170 OPEN(UNIT=IIN5,FILE=TMP_NAME(1:LEN_TMP_NAME),ACCESS='sequential
',FORM='formatted
',STATUS='old
')
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)
1179 DO WHILE(S0FILE(I:I)/=' ')
1184 TMP_NAME=INFILE_NAME(1:INFILE_NAME_LEN)//S0FILE(1:len_trim(S0FILE))
1185 LEN_TMP_NAME = INFILE_NAME_LEN+len_trim(S0FILE)
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
')
1189 TMP_NAME=INFILE_NAME(1:INFILE_NAME_LEN)//S0FILE(1:N-6)//'_0000.sty
'
1190 LEN_TMP_NAME = INFILE_NAME_LEN+N-6+9
1191 OPEN(UNIT=IIN5,FILE=TMP_NAME(1:LEN_TMP_NAME),ACCESS='sequential
',FORM='formatted
',STATUS='old
')
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)
1203 CALL HM_OPTION_COUNT('/inishe
', NB_INISHE)
1204 CALL HM_OPTION_COUNT('/inish3
', NB_INISH3)
1205 CALL HM_OPTION_COUNT('/inibri
', NB_INIBRI)
1206 CALL HM_OPTION_COUNT('/iniqua
', NB_INIQUAD)
1207 CALL HM_OPTION_COUNT('/inibeam
', NB_INIBEAM)
1208 CALL HM_OPTION_COUNT('/initruss
', NB_INITRUSS)
1209 CALL HM_OPTION_COUNT('/inispri
', NB_INISPRIG)
1210 CALL HM_OPTION_COUNT('/inisphcel
', NB_INISPHCEL)
1213 . (NB_INISHE+NB_INISH3
1214 . +NB_INIBRI+NB_INIQUAD
1215 . +NB_INIBEAM+NB_INITRUSS
1216 . +NB_INISPRIG+NB_INISPHCEL)/=0) ISIGI=-3
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. . . . . . . . . . . . . .
',
1227 . ' npart: number of parts. . . . . . . . . . . . . . .
',
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
1234 . WRITE (IOUT,'(a,i10)
') TITRE(189)(1:57), NALEBCS
1235 WRITE (IOUT,'(a,i10)
')
1236 . ' numfram: number of reference frames . . . . . . . . .
',
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) . . .
',
1252 WRITE (IOUT,'(a,i10)
')
1253 .' nsphbcs: number of sph symmetry conditions. . . . . .
',
1255 WRITE (IOUT,'(a,i10)
')
1256 .' nsphio : number of sph inlet/outlet conditions. . . .
',
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. . .
',
1265 WRITE (IOUT,'(a,/,a,i10)
')
1266 .' nsphsol:number of particles & nodes created from solids .
',
1267 .' (among numsph & numnod) . . . . . . . . . . . . .
',
1270 WRITE (IOUT,'(/(a,i10))
') TITRE(138)(1:57),NFUNCT,
1271 .' ngrav: number of gravity loads . . . . . . . . . . .
',
1273 .' nfunc2d: number of user 2d functions . . . . . . . .
',
1275 .' ninigrv:number of initial gravity loads . . . . . . .
',
1277 .' nconld: number of concentrated loads. . . . . . . . .
',
1279 .' ninvel: number of initial velocities. . . . . . . . .
',
1281 .' npreld: number of pressure loads. . . . . . . . . . .
',
1283 .' ninimap1d: number of initial 1d mapping.. . . . . . .
',
1285 .' ninimap2d: number of initial 2d mapping.. . . . . . .
',
1288 WRITE (IOUT,'(a,i10)
')
1289 . ' npreload: number of bolt preloadings. . . . . . . . .
',
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
1299 IF(NLASER > 0) WRITE (IOUT,'((a,i10))
') TITRE(178)(1:57),NLASER
1300 WRITE (IOUT,'(4x,a,i10)
')
1301 . 'number of accelerometers. . . . . . . . . . . . . . .
',
1303 . 'number of sensors . . . . . . . . . . . . . . . . . .
',
1305 . 'number of gauges. . . . . . . . . . . . . . . . . . .
',
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. . . . . . . . . .
',
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
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. . . . . . . . . . . . .
',
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 . .
',
1331 WRITE(IOUT,'(a,i10)
')
1332 .' nbem: number of bem solved problems . . . . . . . .
',
1334 WRITE(IOUT,'(a,i10)
')
1335 .' nrbe2: number of rbe2 rigid elements . . . . . . . .
',
1337 WRITE(IOUT,'(a,i10)
')
1338 .' nrbe3: number of rbe3 constraint elements . . . . .
',
1340 WRITE (IOUT,'(2a/a,i10)
')' initial stress file =
',TRIM(S0FILE),
1341 . ' flag isigi. . .
',
1344 IF (IREFSTA/=0) THEN
1345 WRITE (IOUT,'(2a/a,i10/a,i10)
')
1346 . ' reference metric file =
',XRFILE,
1347 . ' flag irefsta. .
',
1349 . ' number of steps , nitrs. .
',
1353 IF(JALE+JEUL/=0)THEN
1354 WRITE(IOUT,'(a,i10)
')' isfint:
ale/euler momentum integration formulation. .
',ALE%GLOBAL%ISFINT
1356 IF(ALE%GLOBAL%ICAA==1)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)
1371 IF(INT(ALE%GRID%VGX) == 1)LABEL_DEF = 'yes
'
1373 IF(INT(ALE%GRID%VGY) == 1)LABEL_ROT = 'yes
'
1374 WRITE (IOUT,5355) LABEL_DEF,LABEL_ROT,ALE%GRID%ALPHA,ALE%GRID%GAMMA
1378 IF(ALEFVM_Param%ISOLVER /= 0)ALEMUSCL_Param%IALEMUSCL=0 !muscl not compatible with FVM solver for int22
1379 CALL HM_OPTION_COUNT('/
ale/muscl
', NALEMUSCL)
1380 IF(ALE%UPWIND%UPWSM/=ONE)THEN
1381.OR.
IF(NALEMUSCL>0 ALEMUSCL_Param%IALEMUSCL>0)THEN
1383 ALEMUSCL_Param%IALEMUSCL=0
1384 !ignore muscl & use upwsm3 (backward compatibility)
1385 !double check engine file with /ALE/MUSCL/OFF
1389 IF(JALE+JEUL/=0)THEN
1390.AND.
IF(ALEMUSCL_Param%IALEMUSCL == 1 JUPW/=0 ) THEN !eta3 + muscl(law51) : conflict
1391 CALL ANCMSG(MSGID=1564, MSGTYPE=MSGWARNING, ANMODE=ANINFO)
1392.OR.
ELSEIF(ALEMUSCL_Param%IALEMUSCL == 0 JUPW/=0)THEN
1393 WRITE (IOUT,5360)ALE%UPWIND%UPWMG,ALE%UPWIND%UPWOG !,UPWSM
1395.OR.
IF (ALEMUSCL_Param%IALEMUSCL == 1 ALEMUSCL_Param%IALEMUSCL==2) THEN
1396 WRITE (IOUT, 5504) ALEMUSCL_Param%BETA,ALEMUSCL_Param%IALEMUSCL-1
1400 WRITE (IOUT,'(//,a,i10)
') TITRE(130)(1:57),NANALY
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
1411 IOFFSET_D= DEFAULTS%SHELL%ioffset !< offset support contact
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
1419 ICONTROL_D= DEFAULTS%SOLID%ICONTROL
1421.AND.
IF(NUMELQ/=0. OR. (NUMELTG/=0N2D/=0) )THEN
1422 CALL ANCMSG(MSGID = 286,MSGTYPE = MSGERROR,ANMODE = ANINFO)
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,
1431 WRITE(IOUT,5501)ISHFRAM
1432 IF(ANALY_TEMP /= 0)WRITE(IOUT,5505)ANALY_TEMP
1433 IF(ISH3NFRAM>0)WRITE(IOUT,5901)ISH3NFRAM
1434.AND.
IF(JALE/=0 ALEFVM_Param%IEnabled/=0)WRITE(IOUT,5502)ALEFVM_Param%ISOLVER
1435.AND.
IF(JALE/=0 ALE%GLOBAL%ISFINT/=0) WRITE(IOUT,5503)ALE%GLOBAL%ISFINT
1436 WRITE(IOUT,5700)LAGM_TOL
1437 WRITE(IOUT,5800)IMAS_DS
1438.AND.
IF ((NUMSPH>0)(NSPHSOL==0)) WRITE (IOUT,5600) SPASORT,LVOISPH,KVOISPH
1439.AND.
IF ((NUMSPH>0)(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
1446 ELSE IF(IMOT/=0) THEN
1447 WRITE(IOUT,*)'memory request not efficient on this computer
'
1453 ELSE IF(ICRAY==2) THEN
1459 STR_NBTHREADS = 'threads
'
1461 STR_NBTHREADS = 'thread
'
1463 IF(GOT_INSPIRE_ALM == 1)THEN
1464 WRITE(IOUT,4001) NTHREAD_S,STR_NBTHREADS,NSPMD,NTHREAD,IARCH,ARCHN(IARCH),NVSIZ
1466 WRITE(IOUT,4000) NTHREAD_S,STR_NBTHREADS,NSPMD,NTHREAD,IARCH,ARCHN(IARCH),NVSIZ
1469.OR.
IF(IGNORE_SPMD==1IGNORE_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
'
1474 IF(GOT_VARIABLE==1)THEN
1475 WRITE(IOUT,'(a)
') ' '
1476 WRITE(IOUT,*) ' info : omp_num_threads set, default setting ignored
'
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'
1487 IF (USERL_AVAIL==1)THEN
1489 IF(GOT_INSPIRE_ALM == 1)THEN
1490 WRITE(IOUT,4601) DLIBFILE(1:DLIBFILE_SIZE),DLIBTKVERS
1492 WRITE(IOUT,4600) DLIBFILE(1:DLIBFILE_SIZE),DLIBTKVERS
1499 IF(ALLOCATED(IXS)) DEALLOCATE(IXS)
1500 IF(ALLOCATED(IGEO)) DEALLOCATE(IGEO)
1501 IF(ALLOCATED(IPART))DEALLOCATE(IPART)
1504 & 4X,'speed parameters
'/
1505 & 4X,'----------------
'/)
1516 & 4X,'starter running on. . . . . . . . . . . . . . . . . .
',I10,
1518 & 4X,'number of spmd domains. . . . . . . . . . . . . . . .
',I10/
1519 & 4X,'number of threads per domain. . . . . . . . . . . . .
',I10/
1520 & 4X,'architecture optimization . . . . . . . . . . . . . .
',I10,
1522 & 4X,'SIZE of element buffer. . . . . . . . . . . . . . . .
',I10)
1524 & 4X,'solver running on . . . . . . . . . . . . . . . . . .
',I10,
1526 & 4X,'number of spmd domains. . . . . . . . . . . . . . . .
',I10/
1527 & 4X,'number of threads per domain. . . . . . . . . . . . .
',I10/
1528 & 4X,'architecture optimization . . . . . . . . . . . . . .
',I10,
1530 & 4X,'SIZE of element buffer. . . . . . . . . . . . . . . .
',I10)
1533 & 4X,'EXTERNAL library
for users code
INTERFACE '/
1534 & 4X,'-----------------------------------------
'/)
1536 & 4X,'library name . . . . . . . . . . . . . . . . . . . .
',A/
1537 & 4X,'radioss users code
INTERFACE version . . . . . . . .
',I10)
1539 & 4X,'library name . . . . . . . . . . . . . . . . . . . .
',A/
1540 & 4X,'solver users code
INTERFACE version . . . . . . . . .
',I10)
1544 & ' nvolu: number of monitored volumes . . . . . . . . .
',I10)
1546 & ' nr2rlnk: number of
EXTERNAL coupling links . . . . .
',I10)
1548 & ' nactiv: number of element deactivation groups . . . .
',I10)
1550 & ' ndamp: number of rayleigh
damping groups . . . . . .
',I10)
1552 & ' ngjoint: number of gear
TYPE joints . . . . . . . . .
',I10)
1554 & ' nummpc: number of multi-point constraints . . . . . .
',I10)
1556 & ' nsubdom: number of subdomains . . . . . .. . . . . .
',I10)
1558 & 4X,'nwale :
ale grid
velocity formulation . . . . . . . .
',I10)
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 . . . .
',1PG20.13/
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)
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)
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.13/
1584 &5X,'volmin: minimum volume
for element deletion. . . .
',1PG20.13)
1586 & 4X,'ale grid smoothing formulation
'/
1587 & 4X,'------------------------------
'/
1588 & 5X,'grid
velocity is not computed(quasi euler)
')
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)
1598 & 4X,'ale grid smoothing formulation
'/
1599 & 4X,'------------------------------
'/
1600 & 5X,'laplacian smoothing
'//
1601 & 5X,'lambda:. . . . . . . . . . . . . . . . . . . . .
',1PG20.13/
1602 & 5X,'niter :. . . . . . . . . . . . . . . . . . . . .
',I10)
1604 & 4X,'ale grid smoothing formulation
'/
1605 & 4X,'------------------------------
'/
1606 & 5X,'volume smoothing
')
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/)
1619 & 4X,'---------------------
'/
1620 & 5X,'upwind for momentum transport . . . . .=
',1PG20.13/,
1621 & 5X,'upwind for other transport. . . . . . .=
',1PG20.13/)
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)
1648 & 4X,'ishfram: local shell frame definition. . . . . . . . .
',I10)
1650 & 4X,'ialefvm: fvm
for ale momentum equation. . . . . . . .
',I10)
1652 & 4X,'isfint : internal forces formulation . . . . . . . . .
',I10)
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)
1659 & 4X,'itemp : temperature cutoff flag . . . . . . . . . . .
',I10)
1661 & 4X,'lagrange multiplier options
'/
1662 & 4X,'---------------------------
'/
1663 & 4X,'lagm_tol:convergence criterion. . . . . . . . . . . .
',
1666 5600 FORMAT(//4X,'sph global parameters
'/
1667 & 4X,'---------------------
'//
1668 & 4X,'alpha sort :sorting security coefficient . . . . . .
',
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 . . . . . .',
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 . . . . . .',
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)')
1689 & //4x,
'NODAL MASS DISTRIBUTION FLAG . . . . . . . . .',i10)
1691 & 4x,
'ISH3NFRAM: OLD LOCAL SH3N FRAME ACTIVATION . . . . . .',i10)
1809#include "implicit_f.inc"
1813#include "com01_c.inc"
1814#include "com04_c.inc"
1815#include "scr15_c.inc"
1816#include "scr17_c.inc"
1817#include "param_c.inc"
1821 INTEGER ,
INTENT(IN) :: IDDLEVEL
1822 INTEGER,
DIMENSION(NPARG,NGROUP) ,
INTENT(IN):: IPARG
1823 INTEGER ,
DIMENSION(LIPART1,NPART),
INTENT(IN):: IPART
1824 INTEGER ,
DIMENSION(NUMELS),
INTENT(IN):: IPARTS
1825 INTEGER ,
DIMENSION(NUMELC),
INTENT(IN):: IPARTC
1826 INTEGER ,
DIMENSION(NUMELTG),
INTENT(IN):: IPARTG
1830 INTEGER I, J, K, N ,NELC , NELTG , IP , NPRT , IPRT
1831 INTEGER IH3D,NG,ITY,NFT,IKEY,K_LEN
1833 INTEGER :: TMAX_IPART(NPART),NKPART(NPART+1,NKEYMAX+1)
1834 CHARACTER(LEN=NCHARLINE) :: CARTE
1845 nkpart(1:npart+1,1:nkeymax+1) = 0
1851 carte(1:k_len) =
'/H3D/ELEM/VONM/TMAX'
1857 carte(1:k_len) =
'/H3D/SOLID/VONM/TMAX'
1859 IF (ikey >0)
ikeymax(ih3d) = 1
1860 carte(1:k_len) =
'/H3D/SHELL/VONM/TMAX'
1862 IF (ikey >0)
ikeymax(ih3d) = 1
1866 carte(1:k_len) =
'/H3D/ELEM/SIGEQ/TMAX'
1872 carte(1:k_len) =
'/H3D/SOLID/SIGEQ/TMAX'
1874 IF (ikey >0)
ikeymax(ih3d) = 1
1875 carte(1:k_len) =
'/H3D/SHELL/SIGEQ/TMAX'
1877 IF (ikey >0)
ikeymax(ih3d) = 1
1881 carte(1:k_len) =
'/H3D/ELEM/ENER/TMAX'
1887 carte(1:k_len) =
'/H3D/SOLID/ENER/TMAX'
1889 IF (ikey >0)
ikeymax(ih3d) = 1
1890 carte(1:k_len) =
'/H3D/SHELL/ENER/TMAX'
1892 IF (ikey >0)
ikeymax(ih3d) = 1
1896 carte(1:k_len) =
'/H3D/ELEM/DAMA/TMAX'
1902 carte(1:k_len) =
'/H3D/SOLID/DAMA/TMAX'
1904 IF (ikey >0)
ikeymax(ih3d) = 1
1905 carte(1:k_len) =
'/H3D/SHELL/DAMA/TMAX'
1907 IF (ikey >0)
ikeymax(ih3d) = 1
1911 carte(1:k_len) =
'/H3D/ELEM/TENS/STRESS/TMAX'
1917 carte(1:k_len) =
'/H3D/SOLID/TENS/STRESS/TMAX'
1919 IF (ikey >0)
ikeymax(ih3d) = 1
1920 carte(1:k_len) =
'/H3D/SHELL/TENS/STRESS/TMAX'
1922 IF (ikey >0)
ikeymax(ih3d) = 1
1926 carte(1:k_len) =
'/H3D/ELEM/TENS/STRAIN/TMAX'
1932 carte(1:k_len) =
'/H3D/SOLID/TENS/STRAIN/TMAX'
1934 IF (ikey >0)
ikeymax(ih3d) = 1
1935 carte(1:k_len) =
'/H3D/SHELL/TENS/STRAIN/TMAX'
1937 IF (ikey >0)
ikeymax(ih3d) = 1
1941 carte(1:k_len) =
'/H3D/PART'
1943 IF (ikey == 0 ) nkpart(1:npart,ih3d)=1
1946 carte(1:k_len) =
'/H3D/NODA/DIS/TMAX'
1951 carte(1:k_len) =
'/H3D/NODA/VEL/TMAX'
1956 carte(1:k_len) =
'/H3D/NODA/GPS/TMAX'
1961 carte(1:k_len) =
'/H3D/NODA/GPSTRAIN/TMAX'
1971 nkpart(1:npart,i)=nkpart(1:npart,nkeymax+1)*nkpart(1:npart,i)
1987 IF(iprt>0)
ipart_ok(ng,1:nkeymax) = nkpart(iprt,1:nkeymax)
subroutine eig(k_diag, k_lt, iadk, jdik, ms, in, nddl, ndof, nnzl, x, d, v, a, bufel, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, pm, geo, cont, icut, skew, xcut, fint, itab, fext, fopt, anin, lpby, npby, nstrf, rwbuf, nprw, tani, elbuf_tab, matparam_tab, dd_iad, fr_iad, dd_front, cluster, weight, eani, ipart, rby, nom_opt, igrsurf, bufsf, idata, rdata, bufmat, bufgeo, kxx, ixx, kxsp, ixsp, nod2sp, spbuf, ixs10, ixs20, ixs16, vr, monvol, volmon, ipm, igeo, iparg, eigipm, eigibuf, eigrpm, ldiag, ljdik, ljdik2, ikc, maxncv, thke, nms, nint2, iint2, ipari, intbuf_tab, nodglob, iad_elem, fr_elem, fr_sec, fr_rby2, iad_rby2, fr_wall, inloc, iddl, partsav, fncont, ftcont, temp, err_thk_sh4, err_thk_sh3, irbe2, irbe3, lrbe2, lrbe3, fr_rbe2, fr_rbe3m, iad_rbe2, weight_md, fcluster, mcluster, xfem_tab, w, nv46, nercvois, nesdvois, lercvois, lesdvois, crkedge, indx_crk, xedge4n, xedge3n, stack, sph2sol, stifn, stifr, drape_q4, drape_t3, h3d_data, subset, igrnod, fcont_max, fncontp2, ftcontp2, ale_connectivity, glob_therm)