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 IF (nu < zero .OR. nu >= half)
THEN
137 . anmode=aninfo_blind_2,
142 IF(cc > zero .AND. eps0 > zero .AND. fcut == zero)
THEN
144 . msgtype=msgwarning,
145 . anmode=aninfo_blind_1,
150 IF (cn == zero .OR. cn == one) cn = onep0001
151 IF (cm == zero .OR. 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
165 IF(epsr2 <= epsr1)
THEN
169 . anmode=aninfo_blind_2,
176 IF(nuparam > maxuparam)
THEN
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)
226 IF (rhor == zero) rhor = rho0
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 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)