39 . UPARAM ,MAXUPARAM ,NUPARAM ,NUVAR ,IFUNC ,
40 . MAXFUNC ,NFUNC ,PARMAT ,IMATVIS ,IFORM ,
41 . UNITAB ,ID ,TITR ,LSUBMODEL,MTAG ,
42 . PM ,IPM ,ISRATE ,MATPARAM )
71#include "implicit_f.inc"
80 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
81 INTEGER,
INTENT(IN) :: ID,MAXUPARAM,MAXFUNC,IFORM
82 INTEGER,
INTENT(INOUT) :: IPM(NPROPMI),IMATVIS,ISRATE
83 my_real,
INTENT(INOUT) :: PM(NPROPM)
84 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
86 INTEGER,
INTENT(INOUT) :: NUPARAM,NUVAR,NFUNC
87 INTEGER,
DIMENSION(MAXFUNC),
INTENT(INOUT) :: IFUNC
88 my_real,
DIMENSION(MAXUPARAM),
INTENT(INOUT) :: uparam
89 my_real,
INTENT(INOUT) :: parmat(*)
91 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
95 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
96 INTEGER :: ICC,ISRAT1,IFLAG,MFLAG,ILAW
99 . young, anu, ca, cb, cn, epsm, sigm, cc, eps0, epsl, el, g,
100 . e0, c0, c1, e1mn2, en1n2, sdsp, hl, yldl
105 is_encrypted = .false.
106 is_available = .false.
116 CALL hm_get_floatv('mat_rho
' ,RHO0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
117!! CALL HM_GET_FLOATV('refer_rho
',RHOR ,IS_AVAILABLE, LSUBMODEL, UNITAB)
119 CALL HM_GET_FLOATV('mat_e
' ,YOUNG ,IS_AVAILABLE, LSUBMODEL, UNITAB)
120 CALL HM_GET_FLOATV('mat_nu
' ,ANU ,IS_AVAILABLE, LSUBMODEL, UNITAB)
122 CALL HM_GET_FLOATV('mat_sigy
' ,CA ,IS_AVAILABLE, LSUBMODEL, UNITAB)
123 CALL HM_GET_FLOATV('mat_beta
' ,CB ,IS_AVAILABLE, LSUBMODEL, UNITAB)
124 CALL HM_GET_FLOATV('mat_hard
' ,CN ,IS_AVAILABLE, LSUBMODEL, UNITAB)
125 CALL HM_GET_FLOATV('mat_eps
' ,EPSM ,IS_AVAILABLE, LSUBMODEL, UNITAB)
126 CALL HM_GET_FLOATV('mat_sig
' ,SIGM ,IS_AVAILABLE, LSUBMODEL, UNITAB)
129 CALL HM_GET_FLOATV('mat_src
' ,CC ,IS_AVAILABLE, LSUBMODEL, UNITAB)
130 CALL HM_GET_FLOATV('mat_srp
' ,EPS0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
131 CALL HM_GET_INTV ('strflag
' ,ICC ,IS_AVAILABLE, LSUBMODEL)
133 CALL HM_GET_FLOATV('mat_damage
' ,EPSL ,IS_AVAILABLE, LSUBMODEL, UNITAB)
134 CALL HM_GET_FLOATV('mat_etan
' ,EL ,IS_AVAILABLE, LSUBMODEL, UNITAB)
136 IF(RHOR == ZERO)RHOR = RHO0
140 IF(ANU == HALF) ANU=ZEP499
141 IF(EPSL == ZERO) EPSL=ZEP15
142 IF(CN == ZERO) CN = ONE
143 IF(EPSM == ZERO) EPSM = EP30
144 IF(SIGM == ZERO) SIGM = EP30
145 IF(CC == ZERO) EPS0 = ONE
146 G=YOUNG/(TWO*(ONE + ANU))
149 C1=YOUNG/(THREE*(ONE - TWO*ANU))
150 E1MN2=YOUNG/(ONE - ANU**2)
152 SDSP =SQRT(YOUNG/MAX(PM(1),EM20))
153 HL =YOUNG * EL / MAX(EM20,YOUNG-EL)
154 YLDL = CA+CB*EXP(CN*LOG(EPSL))
155 YLDL = MIN(YLDL,SIGM)
185 PM(105) = TWO*G/(C1+FOUR_OVER_3*G) ! =(1-2*Nu)/(1-Nu)
187 WRITE(IOUT,1010) TRIM(TITR),ID,ILAW
190 WRITE(IOUT,'(5x,a,//)
')'confidential data
'
193 WRITE(IOUT,1300)YOUNG,ANU,G
194 WRITE(IOUT,1400)CA,CB,CN,EPSM,SIGM
195 WRITE(IOUT,1600)CC,EPS0,ICC
196 WRITE(IOUT,1800)EPSL,EL
200 CALL ANCMSG(MSGID=213,
208 CALL ANCMSG(MSGID=298,
215.OR..OR.
IF(EL>ZEROEL<=-YOUNGEL<=-THREE*G) THEN
216 CALL ANCMSG(MSGID=308,
232 CALL INIT_MAT_KEYWORD(MATPARAM,"ELASTO_PLASTIC")
234 ! Properties compatibility
235 CALL INIT_MAT_KEYWORD(MATPARAM,"SOLID_ISOTROPIC")
236 CALL INIT_MAT_KEYWORD(MATPARAM,"SPH")
242 & 5X,' elastic plastic + damage law
',/,
243 & 5X,' ----------------------------
',//)
246 & 5X,'material number. . . . . . . . . . . . . .=
',I10/,
247 & 5X,'material law . . . . . . . . . . . . . . .=
',I10/)
249 & 5X,'initial density. . . . . . . . . . . . . .=
',1PG20.13/)
251 & 5X,'young
''s modulus . . . . . . . . . . . .=
',1PG20.13/,
252 & 5X,'poisson
''s ratio . . . . . . . . . . . .=
',1PG20.13/,
253 & 5X,'shear modulus . . . . . . . . . . . . .=
',1PG20.13//)
255 & 5X,'yield coefficient ca. . . . . . . . . .=
',1PG20.13/,
256 & 5X,'yield coefficient cb. . . . . . . . . .=
',1PG20.13/,
257 & 5X,'yield coefficient cn. . . . . . . . . .=
',1PG20.13/,
258 & 5X,'eps-
max . . . . . . . . . . . . . . . .=
',1PG20.13/,
259 & 5X,'sig-
max . . . . . . . . . . . . . . . .=
',1PG20.13//)
261 & 5X,'strain rate coefficient cc. . . . . . .=
',1PG20.13/,
262 & 5X,'reference strain rate . . . . . . . . .=
',1PG20.13/,
263 & 5X,'flag
for strain rate on sig-
max . . . .=
',I10//)
265 & 5X,'damage strain limit . . . . . . . . . .=
',1PG20.13/,
266 & 5X,'damage tangent modulus el . . . . . . .=
',1PG20.13//)
subroutine hm_read_mat23(uparam, maxuparam, nuparam, nuvar, ifunc, maxfunc, nfunc, parmat, imatvis, iform, unitab, id, titr, lsubmodel, mtag, pm, ipm, israte, matparam)