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) :: (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)
117!! CALL HM_GET_FLOATV('refer_rho
',RHOR ,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) ! =(1-2*Nu)/(1-Nu)
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
207 CALL ANCMSG(MSGID=301,
215 CALL ANCMSG(MSGID=213,
223 CALL ANCMSG(MSGID=298,
230.OR..OR.
IF(EL>ZEROEL<=-YOUNGEL<=-THREE*G) THEN
231 CALL ANCMSG(MSGID=308,
247 CALL INIT_MAT_KEYWORD(MATPARAM,"ELASTO_PLASTIC")
249 ! Properties compatibility
250 CALL INIT_MAT_KEYWORD(MATPARAM,"SHELL_ISOTROPIC")
251 CALL INIT_MAT_KEYWORD(MATPARAM,"SOLID_ISOTROPIC")
252 CALL INIT_MAT_KEYWORD(MATPARAM,"SPH")
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)