39 . MAXFUNC ,IFUNC ,PARMAT ,UNITAB ,MAT_ID ,
40 . PM ,TITR ,MTAG ,LSUBMODEL,MATPARAM )
53#include "implicit_f.inc"
62 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
63 INTEGER,
INTENT(IN) :: MAT_ID,MAXUPARAM,MAXFUNC
64 INTEGER,
INTENT(INOUT) :: NUPARAM,NUVAR,IFUNC(),NFUNC
65 TYPE (UNIT_TYPE_),
INTENT(IN)
66 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
67 my_real,
DIMENSION(100),
INTENT(INOUT) :: parmat
70 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
71 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
77 . young,nu,nnu,nnu1,bulk,lam,g,g2,a1,a2,c1,fcut,asrate
78 . qvoce,bvoce,jcc,epsp0,mtemp,tref,eta,cp,dpis,dpad,
79 . yld0,hp,kdr,tini,rho0
81 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
83 is_encrypted = .false.
84 is_available = .false.
90 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
92 CALL hm_get_floatv(
'MAT_E' ,young ,is_available, lsubmodel, unitab)
93 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab
94 CALL hm_get_intv (
'MAT104_Ires' ,flagnice ,is_available, lsubmodel)
96 CALL hm_get_floatv(
'SIGMA_r' ,yld0 ,is_available, lsubmodel, unitab
97 CALL hm_get_floatv(
'MAT104_H' ,hp ,is_available, lsubmodel, unitab)
98 CALL hm_get_floatv(
'MAT_PR' ,qvoce ,is_available, lsubmodel, unitab)
99 CALL hm_get_floatv(
'MAT104_Bv' ,bvoce ,is_available, lsubmodel, unitab)
100 CALL hm_get_floatv(
'MAT104_Cdr' ,cdr ,is_available, lsubmodel, unitab)
102 CALL hm_get_floatv(
'MAT104_Cjc' ,jcc ,is_available, lsubmodel, unitab)
103 CALL hm_get_floatv(
'MAT104_Eps0' ,epsp0 ,is_available, lsubmodel, unitab)
104 CALL hm_get_floatv(
'MAT104_Fcut' ,fcut ,is_available, lsubmodel, unitab)
106 CALL hm_get_floatv(
'MAT104_Tss' ,mtemp ,is_available, lsubmodel, unitab)
107 CALL hm_get_floatv(
'MAT104_Tref' ,tref ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'T_Initial' ,tini ,is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'MAT_ETA' ,eta ,is_available, lsubmodel, unitab)
111 CALL hm_get_floatv(
'MAT_SPHEAT' ,cp ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv(
'MAT104_EpsIso',dpis ,is_available, lsubmodel, unitab)
113 CALL hm_get_floatv(
'MAT104_EpsAd' ,dpad ,is_available, lsubmodel, unitab)
116 IF (yld0 == zero) yld0 = infinity
118 IF (fcut == zero)
THEN
119 fcut = 10000.0d0*unitab%FAC_T_WORK
123 IF(epsp0 == zero)
THEN
127 CALL ancmsg(msgid=1654,msgtype=msginfo,
128 . anmode=aninfo_blind_1,i1=mat_id,c1=titr)
131 IF (dpis == zero) dpis = infinity
132 IF (dpad == zero) dpad = two*infinity
133 IF (dpis > dpad)
THEN
135 CALL ancmsg(msgid=1655,msgtype=msgerror,
136 . anmode=aninfo_blind_1,i1=mat_id,c1=titr)
139 IF (flagnice == 0) flagnice = 1
140 IF (flagnice > 2)
THEN
141 CALL ancmsg(msgid=1731,msgtype=msgwarning
142 . anmode=aninfo_blind_1,i1=mat_id,c1=titr,
149 g2 = young / (one + nu)
151 lam = g2 * nu /(one - two*nu)
152 bulk = third * young / (one - nu*two)
153 nnu = nu / (one - nu)
155 a1 = young / (one - nu*nu)
157 c1 = young / three/(one - two*nu)
160 IF (cdr > 2.25d0)
THEN
163 CALL ancmsg(msgid=1651,msgtype=msgwarning,
164 . anmode=aninfo_blind_1,i1=mat_id,c1=titr)
165 ELSEIF (cdr < -twenty7/eight)
THEN
168 CALL ancmsg(msgid=1652,msgtype=msgwarning,
169 . anmode=aninfo_blind_1,i1=mat_id,c1=titr)
173 kdr = (one/twenty7) - cdr*(four/twenty7/twenty7)
183 uparam(6) = nu ! poisson ratio
188 uparam(11) = flagnice
227 IF (flagnice == 1)
THEN
242 matparam%HEAT_FLAG = 1
259 parmat(17) = (one - two*nu)/(one - nu
265 WRITE(iout,900) trim(titr),mat_id,ilaw
267 IF (is_encrypted)
THEN
268 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
270 WRITE(iout,1050) rho0
271 WRITE(iout,1100) young,nu ,cdr ,qvoce,bvoce,
272 . yld0, hp ,jcc ,epsp0,fcut,
273 . mtemp,tref ,tini,eta ,cp, dpis,dpad,
281 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . =',i10/,
282 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . =',i10/)
284 &(5x,
'MATERIAL MODEL : DRUCKER - VOCE - JOHNSON-COOK ',/,
285 & 5x,
'-------------------------------------------------',/)
287 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . . . .=',1pg20.13/)
289 & 5x,
'YOUNG MODULUS . . . . . . . . . . . . . . . .=',1pg20.13/
290 & 5x,
'POISSON RATIO . . . . . . . . . . . . . . . .=',1pg20.13/
291 & 5x,
'DRUCKER COEFFICIENT C . . . . . . . . . . . .=',1pg20.13/
292 & 5x,
'YIELD VOCE PARAMETER Q. . . . . . . . . . . .=',1pg20.13/
293 & 5x,
'YIELD VOCE PARAMETER B . . . . . . . . . . .=',1pg20.13/
295 & 5x,
'INITIAL YIELD STRESS YLD0 . . . . . . . . . .=',1pg20.13/
296 & 5x,
'LINEAR HARDENING PARAMETER. . . . . . . . . .=',1pg20.13/
297 & 5x,
'J-C STRAIN RATE COEFFICIENT C . . . . . . . .=',1pg20.13/
298 & 5x,
'J-C REFERENCE STRAIN RATE . . . . . . . . . .=',1pg20.13/
299 & 5x,
'PLASTIC STRAIN RATE CUTOFF FREQUENCY. . . . .=',1pg20.13/
301 & 5x,
'THERMAL SOFTENING SLOPE . . . . . . . . . . .=',1pg20.13/
302 & 5x,
'REFERENCE TEMPERATURE . . . . . . . . . . . .=',1pg20.13/
303 & 5x,
'INITIAL TEMPERATURE . . . . . . . . . . . . .=',1pg20.13/
304 & 5x,
'TAYLOR-QUINNEY COEF . . . . . . . . . . . . .=',1pg20.13/
305 & 5x,
'SPECIFIC HEAT . . . . . . . . . . . . . . . .=',1pg20.13/
307 & 5x,
'ISOTHERMAL PLASTIC STRAIN RATE. . . . . . . .=',1pg20.13/
308 & 5x,
'ADIABATIC PLASTIC STRAIN RATE . . . . . . . .=',1pg20.13/
310 & 5x,
'RETURN MAPPING ALGORITHM FLAG . . . . . . . .=',i3/
311 & 5x,
' IRES=1 NICE EXPLICIT (DEFAULT)'/
312 & 5x,
' IRES=2 NEWTON-ITERATION IMPLICIT (CUTTING PLANE)'/)
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)