39 . UPARAM ,MAXUPARAM,NUPARAM ,NUVAR ,NFUNC ,
40 . MAXFUNC ,IFUNC ,PARMAT ,MAT_ID ,PM ,
41 . ISRATE ,MTAG ,TITR ,UNITAB ,LSUBMODEL,
59#include "implicit_f.inc"
68 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
69 my_real,
INTENT(INOUT) :: PARMAT(100), UPARAM(MAXUPARAM), PM(NPROPM)
70 INTEGER,
INTENT(INOUT) :: IFUNC(MAXFUNC), NFUNC, MAXFUNC, ,
71 . NUPARAM, NUVAR, ISRATE
72 INTEGER,
INTENT(IN) :: MAT_ID
73 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
75 TYPE(MLAW_TAG_),
INTENT(INOUT) :: MTAG
76 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
82, BB, MM, NN, CC, EPS0, SIGFMAX, TMAX, HEL, PHEL,
83 . D1, D2, K1, K2, K3, BETA, YOUNG, NU, RHO0, RHOR, ASRATE,
85 LOGICAL :: IS_ENCRYPTED, IS_AVAILABLE
90 is_encrypted = .false.
91 is_available = .false.
96 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
97 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
100 CALL hm_get_floatv(
'tau_shear', shear, is_available, lsubmodel, unitab)
103 CALL hm_get_floatv(
'MAT_A', aa, is_available, lsubmodel, unitab)
105 CALL hm_get_floatv(
'MAT_M', mm, is_available, lsubmodel, unitab)
106 CALL hm_get_floatv(
'MAT_N', nn, is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'MAT_C', cc, is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'MAT_Epsilon_F', eps0, is_available, lsubmodel, unitab)
112 CALL hm_get_floatv(
'MAT_FCUT', asrate, is_available, lsubmodel, unitab)
115 CALL hm_get_floatv(
'MAT_T0', tmax, is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'MAT_E', hel, is_available, lsubmodel, unitab)
117 CALL hm_get_floatv(
'MAT_EPS', phel, is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'D1' , d1, is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'D2' , d2, is_available, lsubmodel, unitab)
122 CALL hm_get_intv (
'IDEL',idel, is_available, lsubmodel)
123 CALL hm_get_floatv(
'EPSMAX',epsmax, is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'K1', k1, is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'K2', k2, is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'K3', k3, is_available, lsubmodel, unitab)
129 CALL hm_get_floatv(
'MAT_Beta', beta, is_available, lsubmodel, unitab)
145 IF (asrate /= zero)
THEN
154 IF (epsmax == zero) epsmax = infinity
159 IF(cc==zero) eps0 = one
160 IF(sigfmax==zero) sigfmax=infinity
171 IF(shear <= zero)
THEN
192 IF(beta < zero .OR. beta > one)
THEN
203 uparam(2) = two*shear
211 uparam(10)= tmax/phel
213 uparam(12)= three_half*(hel-phel)
224 nu=(three*k1-two*shear)/(six*k1+two*shear)
225 young=nine*k1*shear/(three*k1+shear)
236 WRITE(iout, 900) trim(titr),mat_id,79
239 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
241 WRITE(iout,1050) rho0
242 WRITE(iout,1100) shear, aa, bb, mm, nn, cc, eps0, sigfmax
243 WRITE(iout,1200) tmax, hel, phel, d1, d2, idel, epsmax
244 WRITE(iout,1300) k1, k2, k3, beta
245 WRITE(iout,1400) young, nu
246 IF (israte > 0)
WRITE(iout,1500) asrate
253 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . . . .=',i10/,
254 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . . . .=',i10/)
256 & 5x,
' JOHNSON HOLMQUIST MATERIAL',/,
257 & 5x,
' --------------------------',//)
259 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . . .=',1pg20.13/)
261 & 5x,
'SHEAR MODULUS . . . . . . . . . . . . . . .=',1pg20.13/,
262 & 5x,
'INTACT STRENGTH CONSTANT (A). . . . . . . .=',1pg20.13/,
263 & 5x,
'FRACTURED STRENGTH CONSTANT (B) . . . . . .=',1pg20.13/,
264 & 5x,
'FRACTURED STRENGTH EXPONENT (M) . . . . . .=',1pg20.13/,
265 & 5x,
'INTACT STRENGTH EXPONENT (N). . . . . . . .=',1pg20.13/,
266 & 5x,
'STRAIN RATE COEFFICIENT (C) . . . . . . . .=',1pg20.13/,
267 & 5x,
'REFERENCE STRAIN RATE . . . . . . . . . . .=',1pg20.13/,
268 & 5x,
'MAXIMUM NORMALIZED FRACTURED STRENGTH . . .=',1pg20.13//)
270 & 5x,
'MAXIMUM PRESSURE TENSILE STRENGTH . . . . .=',1pg20.13/,
271 & 5x,
'HUGONIOT ELASTIC LIMIT (HEL). . . . . . . .=',1pg20.13/,
272 & 5x,
'PRESSURE AT HUGONIOT ELASTIC LIMIT. . . . .=',1pg20.13/,
273 & 5x,
'DAMAGE CONSTANT (D1). . . . . . . . . . . .=',1pg20.13/,
274 & 5x,
'DAMAGE EXPONENT (D2). . . . . . . . . . . .=',1pg20.13/,
275 & 5x,
'ELEMENT DELETION FLAG (IDEL). . . . . . . .=',i10/,
276 & 5x,
' IDEL = 0: NO ELEMENT DELETION ',/,
277 & 5x,
' IDEL = 1: ELEMENT DELETION IN TENSION ONLY ',/,
278 & 5x,
' IDEL = 2: ELEMENT DELETION IF PLASTIC STRAIN > EPSMAX',/,
279 & 5x,
' IDEL = 3: ELEMENT DELETION IF DAMAGE = 1.0 ',/,
280 & 5x,
'CRITICAL PLASTIC STRAIN (EPSMAX). . . . . .=',1pg20.13/)
282 & 5x,
'BULK MODULUS (K1) . . . . . . . . . . . . .=',1pg20.13/
283 & 5x,'pressure coefficient (k2) . . . . . . . . .=
',1PG20.13/
284 & 5X,'pressure coefficient(k3) . . . . . . . . .=
',1PG20.13/
285 & 5X,'bulking pressure coefficient(beta) . . . .=
',1PG20.13)
287 & 5X,'young',1h
','s modulus . . . . . . . . . . . . . .=
',1PG20.13/,
288 & 5X,'poisson
',1H',
'S RATIO . . . . . . . . . . . . . .=',1pg20.13/)
290 & 5x,
'STRAIN RATE FILTERING FREQUENCY . . . . . .=',1pg20.13/)
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)