39 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC , PARMAT ,
40 . UNITAB ,MAT_ID ,TITR ,MTAG , LSUBMODEL,
71#include "implicit_f.inc"
80 TYPE (UNIT_TYPE_),
INTENT(IN) ::
81 INTEGER,
INTENT(INOUT) :: IPM(NPROPMI)
82 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: PM
83 my_real,
DIMENSION(100) ,
INTENT(INOUT) :: parmat
84 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
85 INTEGER,
DIMENSION(MAXFUNC) ,
INTENT(INOUT) :: IFUNC
86 INTEGER,
INTENT(INOUT) :: ISRATE,IMATVIS,NFUNC,MAXFUNC,MAXUPARAM,NUPARAM,NUVAR
88 INTEGER,
INTENT(IN) :: MAT_ID
89 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
91 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
98 . young, anu, ca, ce, cn, epsm, sigm, cm, eps0, g, e0, c0, c1,
99 . e1mn2, en1n2, sdsp, epst1, epsm1, epst2, epsm2, dmax1, dmax2,
100 . amu, r00, r45, r90, r, h, a11, a22, a1122, a12, rho0, rhor
102 LOGICAL :: IS_ENCRYPTED,IS_AVAILABLE
108 is_encrypted = .false.
109 is_available = .false.
115 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv(
'MAT_E' ,young ,is_available, lsubmodel, unitab)
119 CALL hm_get_floatv(
'MAT_NU' ,anu ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'MAT_SIGY' ,ca ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_BETA' ,ce ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv(
'MAT_HARD' ,cn ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv(
'MAT_EPS' ,epsm ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'MAT_SIG' ,sigm ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'MAT_SRP' ,eps0 ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_SRC' ,cm ,is_available, lsubmodel, unitab)
130 CALL hm_get_floatv(
'MAT_R00' ,r00 ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv(
'MAT_R45' ,r45 ,is_available, lsubmodel, unitab)
132 CALL hm_get_floatv(
'MAT_R90' ,r90 ,is_available, lsubmodel, unitab)
133 CALL hm_get_intv (
'MAT_Iyield' ,ir0 ,is_available, lsubmodel)
135 IF(rhor==zero)rhor=rho0
139 IF(anu==half)anu=zep499
140 IF(r00==zero) r00 = one
141 IF(r45==zero) r45 = one
142 IF(r90==zero) r90 = one
143 IF(ca==zero) ca = infinity
144 IF(cn==zero) cn = one
145 IF(epsm==zero) epsm = infinity
146 IF(sigm==zero) sigm = infinity
147 IF(cm==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))
157 r = fourth * (r00 + two*r45 + r90)
159 a11 = h * (one + one/r00)
160 a22 = h * (one + one/r90)
162 a12 = h * two * (r45 + half) * (one/r00 + one/r90)
196 pm(52)=onep414*amu*pm(1)*sdsp
200 pm(105) = (one -two*anu)/(one - anu)
204 WRITE(iout,1001) trim(titr),mat_id,32
208 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
211 WRITE(iout,1300)young,anu,g
212 WRITE(iout,1400)ca,ce,cn,epsm,sigm
213 WRITE(iout,1600)eps0,cm
214 WRITE(iout,1700)r00,r45,r90
215 IF (ir0 >0)
WRITE(iout,1110)
257 & 5x,
' HILL ANISOTROPIC PLASTICITY '
258 & 5x,
' --------------------------- '//)
261 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
262 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
264 & 5x
'INITIAL DENSITY . . . . . . . . . . . .='
266 & 5x,
'YOUNG MODULUS . . . . . . . . . . . .=',1pg20.13/,
267 & 5x,
'POISSON RATIO . . . . . . . . . . . . .=',1pg20.13/,
268 & 5x,
'SHEAR MODULUS . . . . . . . . . . . . .=',1pg20.13//)
270 & 5x,
'YIELD COEFFICIENT A . . . . . . . . . .=',1pg20.13/,
271 & 5x,
'YIELD COEFFICIENT CE. . . . . . . . . .=',1pg20.13/,
272 & 5x,
'YIELD COEFFICIENT CN. . . . . . . . . .=',1pg20.13/,
273 & 5x,
'EPS-MAX . . . . . . . . . . . . . . . .=',1pg20.13/,
274 & 5x,
'SIG-MAX . . . . . . . . . . . . . . . .=',1pg20.13//)
276 & 5x,
'REFERENCE STRAIN RATE . . . . . . . . .=',1pg20.13/,
277 & 5x,
'STRAIN RATE COEFFICIENT CM. . . . . . .=',1pg20.13//)
279 & 5x,
'LANKFORD COEFFICIENT R00. . . . . . . .=',1pg20.13/,
280 & 5x,
'LANKFORD COEFFICIENT R45. . . . . . . .=',1pg20.13/,
281 & 5x,
'LANKFORD COEFFICIENT R90. . . . . . . .='
283 & 5x,
'YIELD STRESS IN ORTHOTROPIC DIR. 1 IS SUPPOSSD '/)
subroutine hm_read_mat32(uparam, maxuparam, nuparam, israte, imatvis, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, mat_id, titr, mtag, lsubmodel, pm, ipm, 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)