39 . MTAG ,PARMAT ,UNITAB ,PM ,LSUBMODEL,
40 . ISRATE ,MAT_ID ,TITR ,MATPARAM )
69#include "implicit_f.inc"
78 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
79 INTEGER,
INTENT(IN) :: MAT_ID
80 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
81 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
82 INTEGER,
INTENT(INOUT) :: ISRATE
83 my_real,
DIMENSION(100),
INTENT(INOUT) :: parmat
86 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
91 my_real :: RHO0,RHOR,YOUNG,NU,CA,CB,CN,MU,SIGM,CC,EPS0,G,C1,
92 . e1mn2,en1n2,sdsp,epst1,epsm1,epst2,epsm2,
93 . dmax1,dmax2,epsf1,epsf2,fcut
94 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
96 is_encrypted = .false.
97 is_available = .false.
104 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
105 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
107 CALL hm_get_floatv(
'MAT_E' ,young ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'MAT_SIGY' ,ca ,is_available, lsubmodel, unitab)
111 CALL hm_get_floatv(
'MAT_BETA' ,cb ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv(
'MAT_HARD' ,cn ,is_available, lsubmodel, unitab)
113 CALL hm_get_floatv(
'MAT_SIG' ,sigm ,is_available, lsubmodel, unitab)
115 CALL hm_get_floatv(
'MAT_SRC' ,cc ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'MAT_SRP' ,eps0 ,is_available, lsubmodel, unitab)
117 CALL hm_get_intv (
'STRFLAG' ,icc ,is_available,lsubmodel)
118 CALL hm_get_intv (
'Fsmooth' ,israte ,is_available,lsubmodel)
119 CALL hm_get_floatv(
'Fcut' ,fcut ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'MAT_EPST1' ,epst1 ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_EPSM1' ,epsm1 ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv(
'MAT_DAMAGE' ,dmax1 ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv(
'MAT_EPSF1' ,epsf1 ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'MAT_EPST2' ,epst2 ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'MAT_EPSM2' ,epsm2 ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_DAMAGE2',dmax2 ,is_available, lsubmodel, unitab)
129 CALL hm_get_floatv(
'MAT_EPSF2' ,epsf2 ,is_available, lsubmodel, unitab)
131 IF (israte == 0 .AND. fcut /= zero) israte = 1
132 IF (fcut == zero) fcut = ep20
133 IF (nu >= half) nu = zep499
134 IF (icc == 0) icc = 1
135 IF (ca == zero) ca = ep20
136 IF (cn == zero) cn = one
137 IF (sigm == zero) sigm = ep20
138 IF (cc == zero) eps0 = one
139 IF (epst1 == zero) epst1 = ep20
140 IF (epsm1 == zero) epsm1 = onep1*ep20
141 IF (dmax1 == zero) dmax1 = zep999
142 IF (epst2 == zero) epst2 = ep20
143 IF (epsm2 == zero) epsm2 = onep1*ep20
144 IF (dmax2 == zero) dmax2 = zep999
145 IF (epsf1 == zero) epsf1 = onep2*ep20
146 IF (epsf2 == zero) epsf2 = onep2*ep20
148 g = half*young/(one + nu)
149 c1 = young/(three*(one - two*nu))
150 e1mn2 = young/(one-nu**2)
152 sdsp = sqrt(young/
max(rho0,em20))
154 IF (mu == zero) mu = fiveem2
189 pm(52) = onep414*mu*pm(1)*sdsp
219 WRITE(iout,1000) trim(titr),mat_id,27
221 IF (is_encrypted)
THEN
222 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
224 WRITE(iout,1200) rho0
225 WRITE(iout,1300) young,nu,g
226 WRITE(iout,1400) ca,cb,cn,sigm
227 WRITE(iout,1600) cc,eps0,icc
229 WRITE(iout,1800) epst2,epsm2,dmax2,epsf2
243 IF (eps0 <= zero)
THEN
250 IF (epsm1 <= epst1)
THEN
257 IF (epsm2 <= epst2)
THEN
264 IF (dmax1 >= one .OR. dmax1 < zero)
THEN
271 IF (dmax2 >= one .OR. dmax2 < zero)
THEN
283 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . =',i10/,
284 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . =',i10/)
286 & 5x,
' ELASTIC PLASTIC BRITTLE MATERIAL '/,
287 & 5x,
' -------------------------------- '//)
289 & 5x,
'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
291 & 5x,
'YOUNG MODULUS . . . . . . . . . . . .=',1pg20.13/,
292 & 5x,
'POISSON RATIO . . . . . . . . . . . . .=',1pg20.13/,
293 & 5x,
'SHEAR MODULUS . . . . . . . . . . . . .=',1pg20.13//)
295 & 5x,
'YIELD COEFFICIENT CA. . . . . . . . . .=',1pg20.13/,
296 & 5x,
'YIELD COEFFICIENT CB. . . . . . . . . .=',1pg20.13/,
297 & 5x,
'YIELD COEFFICIENT CN. . . . . . . . . .=',1pg20.13/,
298 & 5x,
'SIG-MAX . . . . . . . . . . . . . . . .=',1pg20.13//)
300 & 5x,
'STRAIN RATE COEFFICIENT CC. . . . . . .=',1pg20.13/,
301 & 5x,
'REFERENCE STRAIN RATE . . . . . . . . .=',1pg20.13/,
302 & 5x,
'FLAG FOR STRAIN RATE ON SIG-MAX . . . .=',i10//,
303 & 5x,
'SMOOTH STRAIN RATE OPTION . . . . . . .=',i10/,
304 & 5x,'strain rate cutting frequency . . . . .=
',1PG20.13/)
306 & 5X,'tensile failure strain dir-1. . . . . .=
',1PG20.13/,
307 & 5X,'maximum tensile strain dir-1. . . . . .=
',1PG20.13/,
308 & 5X,'maximum damage dir-1. . . . . . . . . .=
',1PG20.13/,
309 & 5X,'element rupture tensile strain dir-1. .=
',1PG20.13/)
311 & 5X,'tensile failure strain dir-2. . . . . .=
',1PG20.13/,
312 & 5X,'maximum tensile strain dir-2. . . . . .=
',1PG20.13/,
313 & 5X,'maximum damage dir-2. . . . . . . . . .=
',1PG20.13/,
314 & 5X,'element rupture tensile strain dir-2. .=
',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)