39 . PARMAT ,MAT_ID ,PM ,TITR ,
40 . UNITAB ,LSUBMODEL,ISRATE ,NFUNC ,
66#include "implicit_f.inc"
75 INTEGER,
INTENT(IN) :: MAT_ID,MAXUPARAM
76 TYPE(UNIT_TYPE_),
INTENT(in) :: UNITAB
77 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: PM
78 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
79 INTEGER,
INTENT(INOUT) :: NUPARAM,NUVAR,ISRATE,NFUNC
80 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
81 my_real,
DIMENSION(100),
INTENT(INOUT) :: parmat
82 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
84 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
89 . e,nu,ca,cb,cn,cc,cd,cm,ce,ck,
90 . fisokin,fcut, sigm,eps0,epsm,epsr1,epsr2,
92 INTEGER ILAW,ISRATE_LOCAL
93 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
95 is_encrypted = .false.
96 is_available = .false.
105 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
106 CALL hm_get_floatv('refer_rho
',RHOR ,IS_AVAILABLE, LSUBMODEL, UNITAB)
108 CALL HM_GET_FLOATV('mat_e
' ,E ,IS_AVAILABLE, LSUBMODEL, UNITAB)
109 CALL HM_GET_FLOATV('mat_nu
' ,NU ,IS_AVAILABLE, LSUBMODEL, UNITAB)
111 CALL HM_GET_FLOATV('mat_sigy
' ,CA ,IS_AVAILABLE, LSUBMODEL, UNITAB)
112 CALL HM_GET_FLOATV('mat_b
' ,CB ,IS_AVAILABLE, LSUBMODEL, UNITAB)
113 CALL HM_GET_FLOATV('mat_n
' ,CN ,IS_AVAILABLE, LSUBMODEL, UNITAB)
114 CALL HM_GET_FLOATV('mat_hard
' ,FISOKIN ,IS_AVAILABLE, LSUBMODEL, UNITAB)
115 CALL HM_GET_FLOATV('mat_sig
' ,SIGM ,IS_AVAILABLE, LSUBMODEL, UNITAB)
117 CALL HM_GET_FLOATV('mat_c
' ,CC ,IS_AVAILABLE, LSUBMODEL, UNITAB)
118 CALL HM_GET_FLOATV('mat_d
' ,CD ,IS_AVAILABLE, LSUBMODEL, UNITAB)
119 CALL HM_GET_FLOATV('mat_m
' ,CM ,IS_AVAILABLE, LSUBMODEL, UNITAB)
120 CALL HM_GET_FLOATV('mat_e1
' ,CE ,IS_AVAILABLE, LSUBMODEL, UNITAB)
121 CALL HM_GET_FLOATV('mat_k
' ,CK ,IS_AVAILABLE, LSUBMODEL, UNITAB)
123 CALL HM_GET_FLOATV('mat_e0
' ,EPS0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
124 CALL HM_GET_FLOATV('scale
' ,FCUT ,IS_AVAILABLE, LSUBMODEL, UNITAB)
126 CALL HM_GET_FLOATV('mat_eps
' ,EPSM ,IS_AVAILABLE, LSUBMODEL, UNITAB)
127 CALL HM_GET_FLOATV('mat_eta1
' ,EPSR1 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
128 CALL HM_GET_FLOATV('mat_eta2
' ,EPSR2 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
133.OR.
IF (NU < ZERO NU >= HALF) THEN
135 CALL ANCMSG(MSGID=49,
137 . ANMODE=ANINFO_BLIND_2,
142.AND..AND.
IF(CC > ZERO EPS0 > ZERO FCUT == ZERO) THEN
143 CALL ANCMSG(MSGID=1220,
144 . MSGTYPE=MSGWARNING,
145 . ANMODE=ANINFO_BLIND_1,
150.OR.
IF (CN == ZERO CN == ONE) CN = ONEP0001
151.OR.
IF (CM == ZERO CM == ONE) CM = ONEP0001
152 IF (CK == ZERO) CK = ONE
153 IF (EPSR1 == ZERO) EPSR1 = INFINITY
154 IF (EPSR2 == ZERO) EPSR2 = TWO*INFINITY
155 IF (EPSM == ZERO) EPSM = INFINITY
156 IF (SIGM == ZERO) SIGM = INFINITY
157 IF (CC == ZERO) EPS0 = ONE
158 IF (FCUT <= ZERO)THEN
161 !----------------------------------------------------------------------
164 !----------------------------------------------------------------------
165 IF(EPSR2 <= EPSR1)THEN
167 CALL ANCMSG(MSGID=420,
169 . ANMODE=ANINFO_BLIND_2,
176 IF(NUPARAM > MAXUPARAM)THEN
177 CALL ANCMSG(MSGID=309,
179 . ANMODE=ANINFO_BLIND_2,
187 C1 = E / THREE / (ONE - TWO*NU)
188 G = E / TWO / (ONE + NU)
201 UPARAM(13) = ISRATE_LOCAL
208 UPARAM(20) = E/(ONE - NU*NU)
209 UPARAM(21) = NU*UPARAM(20)
219 PARMAT(4) = ISRATE_LOCAL
224 PARMAT(17) = TWO*G/(C1+FOUR_OVER_3*G) ! == (1-2*nu)/(1-nu)
226 IF (RHOR == ZERO) RHOR = RHO0
235 ! Properties compatibility
236 CALL INIT_MAT_KEYWORD(MATPARAM,"SHELL_ISOTROPIC")
237 CALL INIT_MAT_KEYWORD(MATPARAM,"SOLID_ISOTROPIC")
242 WRITE(IOUT,1000) TRIM(TITR),MAT_ID,ILAW
244 IF (IS_ENCRYPTED) THEN
245 WRITE(IOUT,'(5x,a,//)
')'confidential data
'
247 WRITE(IOUT,1200) RHO0
248 WRITE(IOUT,1300) E,NU
249 WRITE(IOUT,1400) CA,CB,CN,FISOKIN,SIGM
250 WRITE(IOUT,1500) CC,CD,CM,CE,CK
251 WRITE(IOUT,1600) EPS0,FCUT
252 WRITE(IOUT,1700) EPSM,EPSR1,EPSR2
260 & 5X,'material number. . . . . . . . . . . . . . .=
',I10/,
261 & 5X,'material law . . . . . . . . . . . . . . . .=
',I10/)
263 &(5X,'material : zhao constitutive law
',/,
264 & 5X,'--------------------------------
',/)
266 & 5X,'initial density . . . . . . . . . . . . . .=
',1PG20.13/)
268 & 5X,'young
''s modulus . . . . . . . . . . . . . .=
',1PG20.13/,
269 & 5X,'poisson
''s ratio . . . . . . . . . . . . . .=
',1PG20.13/)
271 & 5X,'plasticity yield stress a . . . . . . . . . =
',1PG20.13/,
272 & 5X,'plasticity hardening
PARAMETER b . . . . . =
',1PG20.13/,
273 & 5X,'plasticity hardening exponent n . . . . . . =
',1PG20.13/,
274 & 5X,'iso-kinematic hardening factor chard . . . =
',1PG20.13/,
275 & 5X,'plasticity maximum stress sigma_max . . . . =
',1PG20.13/)
277 & 5X,'relative strain-rate coefficient c . . . . =
',1PG20.13/,
278 & 5X,'strain-rate plasticity factor d . . . . . . =
',1PG20.13/,
279 & 5X,'relative strain-rate exponent n . . . . . . =
',1PG20.13/,
280 & 5X,'strain-rate coefficient e1 . . . . . . . . =
',1PG20.13/,
281 & 5X,'strain-rate exponent k . . . . . . . . . . =
',1PG20.13/)
283 & 5X,'reference strain-rate eps_rate_0 . . . . . =
',1PG20.13/,
284 & 5X,'cutoff frequency fcut . . . . . . . . . . . =
',1PG20.13/)
286 & 5X,'failure plastic strain eps_max . . . . . . =
',1PG20.13/
287 & 5X,'tensile failure strain 1 eps_t1 . . . . . . =
',1PG20.13/
288 & 5X,'tensile failure strain 2 eps_t2 . . . . . . =
',1PG20.13/)
289 2100 FORMAT(1X,'eps0 should be > 0.
IF cc /= 0.
')
subroutine hm_read_mat48(uparam, maxuparam, nuparam, nuvar, parmat, mat_id, pm, titr, unitab, lsubmodel, israte, nfunc, mtag, matparam)