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)
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
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
143 IF(epsm == zero) epsm = ep30
144 IF(sigm == zero) sigm = ep30
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)
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
215 IF(el>zero.OR.el<=-young.OR.el<=-three*g)
THEN
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. . . . . . .='
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)
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)