52#include "implicit_f.inc"
62 INTEGER IGEO(NPROPGI,*),NSPHSOL
64 INTEGER ,
DIMENSION (NUMGEO + NUMSTACK) :: NPLY,NSUB,NISUB
65 TYPE(),
INTENT(IN) :: DEFAULTS
69 INTEGER I, IG, , ISMSTR, , J, IR1X, IR1Y, IR1Z, IREP,
70 . IR2X, IR2Y, , ISHEAR, IRX, IROT, IMODE, IP, ISTRAIN,I8PT,
71 . ISK,ITU,IRB,IHON,IHBE,IPLAST,ITHK,IBID,IHBEOUTP,K,,LAMINATE,
72 . IGFLU, IDS, NSHELL, NSHSUP, NSHINF, FLGBADI, NBADI,UID,
73 . NSST_D, NSST_DS, NPSH, ICPRE, ICSTR ,NPTS,ISEN,ISORTH,
74 . NSPHDIR, ID_SENS,D1,D2,D3,N1,N2,N3,INTRULE,NN,NS,NIS, NUMS,
75 . NLAM,NINTS,IFRAM,CPT,INUM,ID,IS,LAMINAT
76 DATA nshell /0/, nshsup /0/, nshinf /0/
78 . fn, ft, dx, angl,pun,htest,hclos,cvis,rbid,vx,vy,vz,
79 . knot1,knot2,knot3,r5(5),dn
80 CHARACTER(LEN=NCHARTITLE) :: IDTITL
81 CHARACTER(LEN=NCHARLINE) :: KEY, SOLVERKEYWORD
82 CHARACTER(LEN=NCHARFIELD) :: STRING
83 CHARACTER :: CHROT*7,MESS*40
84 INTEGER ISH3N,ITET4,IPLAS,NPT,ISROT,NP,LAMIN,NSUB_STACK,NISUB_STACK,NPLY_STACK,NPLY_SUB,ITET4_D
97 itet4_d= defaults%SOLID%ITETRA4
99 is_available = .false.
121 SELECT CASE(key(1:len_trim(key)))
122 CASE (
'TYPE0',
'VOID')
126 CASE (
'TYPE1',
'TYPE01',
'SHELL',
'TYPE9',
'TYPE09',
'SH_ORTH',
'TYPE11',
'SH_SANDW',
127 .
'SH_FABR',
'TYPE16')
131 CALL hm_get_intv(
'Ishell',ihbe,is_available,lsubmodel
132 CALL hm_get_intv(
'ISMSTR',ismstr,is_available,lsubmodel
133 CALL hm_get_intv(
'ISH3',ish3n,is_available,lsubmodel)
135 IF(ish3n==31.AND.numeltg>0) numeltg6 = 1
137 CASE (
'TYPE17',
'STACK')
145 CALL hm_get_intv(
'laminateconfig' ,lamin, is_available, lsubmodel)
151 CALL hm_get_intv(
'sublaminateidlistmax' ,nsub_stack
152 CALL hm_get_intv(
'interfacepairsize' ,nisub_stack, is_available, lsubmodel)
156 nply_stack = nply_stack + nply_sub
160 CALL hm_get_intv(
'plyidlistmax' ,nply_stack ,is_available ,lsubmodel)
168 CASE (
'TYPE6',
'SOL_ORTH')
169 CALL hm_get_intv(
'Itetra4',itet4,is_available,lsubmodel)
170 IF(itet4 == 0) itet4 = itet4_d
171 IF(itet4 == 1)iisrot = 1
172 CALL hm_get_intv(
'Ndir',nsphdir,is_available,lsubmodel)
175 IF(nsphdir/=0)nsphsol=1
183 CALL hm_get_intv(
'laminateconfig' ,laminate, is_available, lsubmodel)
184 IF (laminate > 0)
THEN
185 CALL hm_get_intv(
'sublaminateidlistmax' ,nlam, is_available, lsubmodel)
186 CALL hm_get_intv(
'interfacepairsize' ,nints, is_available, lsubmodel)
194 CALL hm_get_intv(
'plyidlistmax' ,np, is_available, lsubmodel)
200 CASE (
'TYPE14''SOLID')
201 CALL hm_get_intv(
'I_rot',itet4,is_available,lsubmodel)
203 IF(itet4 == 1)iisrot = 1
204 CALL hm_get_intv(
'Ndir',nsphdir,is_available,lsubmodel)
207 IF(nsphdir/=0)nsphsol=1
212 CASE (
'TYPE29',
'TYPE30',
'TYPE31',
213 .
'USER1' ,
'USER2' ,
'USER3')
222 IF(numstack > 0)
THEN
228 CALL hm_get_intv(
'laminateconfig' ,laminate, is_available, lsubmodel)
229 CALL hm_get_intv(
'laminateconfig' ,lamin , is_available, lsubmodel)
231 IF (laminate > 0)
THEN
232 CALL hm_get_intv(
'sublaminateidlistmax' ,nlam, is_available, lsubmodel)
233 CALL hm_get_intv(
'interfacepairsize' ,nints, is_available, lsubmodel)
241 CALL hm_get_intv(
'plyidlistmax' ,np, is_available, lsubmodel)