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) ::
81 INTEGER,
INTENT(IN) :: ID,MAXUPARAM,MAXFUNC,IFORM
82 INTEGER,
INTENT(INOUT) :: IPM(NPROPMI),IMATVIS,ISRATE
83 my_real,
INTENT(INOUT) :: PM()
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
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)
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
142 IF(anu == half) anu=zep499
143 IF(epsl == zero) epsl=zep15
144 IF(cn == zero) cn = one
145 IF(epsm == zero) epsm = infinity
146 IF(sigm == zero) sigm = infinity
147 IF(cc == zero) eps0 = one
149 g=young/(two*(one + anu))
152 c1=young/(three*(one - two*anu))
153 e1mn2=young/(one-anu**2)
155 sdsp =sqrt(young/
max(pm(1),em20))
156 hl =young * el /
max(em20,young-el)
157 yldl = ca+cb*exp(cn*log(epsl))
158 yldl =
min(yldl,sigm)
188 pm(105) = ( one -two*anu)/(one - anu)
192 pm(105) = two*g/(c1+four_over_3*g)
194 WRITE(iout,1010) trim(titr),id,ilaw
197 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
200 WRITE(iout,1300)young,anu,g
201 WRITE(iout,1400)ca,cb,cn,epsm,sigm
202 WRITE(iout,1600)cc,eps0,icc
203 WRITE(iout,1800)epsl,el
230 IF(el>zero.OR.el<=-young.OR.el<=-three*g)
THEN
258 & 5x,
' ELASTIC PLASTIC + DAMAGE LAW ',/,
259 & 5x,
' ---------------------------- ',//)
262 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . . .=',i10/,
263 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . . .=',i10/)
265 & 5x,
'INITIAL DENSITY. . . . . . . . . . . . . .=',1pg20.13/)
267 & 5x,
'YOUNG''S MODULUS . . . . . . . . . . . .=',1pg20.13/,
268 & 5x,
'POISSON''S RATIO . . . . . . . . . . . .=',1pg20.13/,
269 & 5x,
'SHEAR MODULUS . . . . . . . . . . . . .=',1pg20.13//)
271 & 5x,
'YIELD COEFFICIENT CA. . . . . . . . . .=',1pg20.13/,
272 & 5x,
'YIELD COEFFICIENT CB. . . . . . . . . .=',1pg20.13/,
273 & 5x,
'YIELD COEFFICIENT CN. . . . . . . . . .=',1pg20.13/,
274 & 5x,
'EPS-MAX . . . . . . . . . . . . . . . .=',1pg20.13/,
275 & 5x,
'SIG-MAX . . . . . . . . . . . . . . . .=',1pg20.13//)
277 & 5x,
'STRAIN RATE COEFFICIENT CC. . . . . . .=',1pg20.13/,
278 & 5x,
'REFERENCE STRAIN RATE . . . . . . . . .=',1pg20.13/,
279 & 5x,'flag
for strain rate on sig-
max . . . .=
',I10//)
281 & 5X,'damage strain limit . . . . . . . . . .=
',1PG20.13/,
282 & 5X,'damage tangent modulus el . . . . . . .=
',1PG20.13//)
subroutine hm_read_mat22(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)