39 . MTAG ,PM ,MAT_ID ,TITR ,IPM ,
40 . LSUBMODEL,UNITAB,MATPARAM )
56#include "implicit_f.inc"
65 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
66 INTEGER,
INTENT(IN) :: MAT_ID
67 INTEGER,
DIMENSION(NPROPMI) ,
INTENT(INOUT) :: IPM
68 my_real,
DIMENSION(NPROPM) INTENT(INOUT)
70 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
72 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
78 . young, anu, ca, cb, cn, epsm, sigm, c0, c, s, gam0, a, aw,
79 . pmin, e0, cc, eps0, cm, tmelt, tmax, gam0m, am, game, ge, ds,
80 . tm0, vj, vb, unit, e0h, ay, thet, g, rho,
alpha, r, xm, rp3,
81 . gp, dsp, alphap, rp, pcc, e00, apy, xj, x, zj, e0j, xp, tmj,
82 . xlamj, d1, d2, d3, e, g0ax, p1j, c1, c2, c3,eps0_unit,ener_unit
83 . fac_m_bb,fac_l_bb,fac_t_bb,rho0
84 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
88 is_encrypted = .false.
89 is_available = .false.
94 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab
95 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab
101 CALL hm_get_floatv(
'MAT_BETA' ,cb ,is_available, lsubmodel, unitab)
102 CALL hm_get_floatv('mat_hard
' ,CN ,IS_AVAILABLE, LSUBMODEL, UNITAB)
103 CALL HM_GET_FLOATV('mat_eps
' ,EPSM ,IS_AVAILABLE, LSUBMODEL, UNITAB)
104 CALL HM_GET_FLOATV('mat_sig
' ,SIGM ,IS_AVAILABLE, LSUBMODEL, UNITAB)
106 CALL HM_GET_FLOATV('mat_p0
' ,C0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
107 CALL HM_GET_FLOATV('mat_c' ,c ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'MAT_S' ,s ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'MAT_GAMA0' ,gam0 ,is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'MAT_A' ,a ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv(
'MAT_AW' ,aw ,is_available, lsubmodel, unitab)
113 CALL hm_get_floatv(
'MAT_PC' ,pmin ,is_available, lsubmodel, unitab)
114 CALL hm_get_floatv(
'MAT_E0' ,e0 ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv'MAT_SRC' ,cc ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv(
'MAT_SRP' ,eps0 ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv(
'MAT_M' ,cm ,is_available, lsubmodel, unitab)
119 CALL hm_get_floatv(
'MAT_TMELT' ,tmelt ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_TMAX' ,tmax ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_GAMAm' ,gam0m ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv(
'Acoeft1' ,am ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv(
'GAMMA' ,game ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'MAT_G0' ,ge ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'MAT_dS' ,ds ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'T_melt_0' ,tm0 ,is_available, lsubmodel, unitab)
129 CALL hm_get_floatv(
'MAT_VOL' ,vj ,is_available, lsubmodel, unitab)
133 CALL hm_get_floatv(
'MAT_EOH' ,e0h ,is_available, lsubmodel, unitab)
134 CALL hm_get_floatv(
'MAT_Ay' ,ay ,is_available, lsubmodel, unitab)
135 CALL hm_get_floatv(
'MAT_Theta' ,thet ,is_available, lsubmodel, unitab)
141 IF (pmin == zero) pmin = -infinity
142 IF (cn == zero .OR. cn == one) cn = onep0001
143 IF (epsm == zero) epsm = infinity
144 IF (sigm == zero) sigm = infinity
145 IF (cc == zero) eps0 = one*eps0_unit
146 IF (cm == zero) cm = one
147 IF (tmelt == zero)
THEN
149 ELSEIF (tm0 == zero)
THEN
152 IF (tmax == zero) tmax = infinity
154 g=young/(two*(one+anu))
156 IF (rhor == zero) rhor=rho0
183 fac_m_bb = unitab%FAC_MASS*ep03
184 fac_l_bb = unitab%FAC_LENGTH*ep02
185 fac_t_bb = unitab%FAC_TIME*ep06
187 IF (a == zero) a = gam0-half
188 IF (gam0m == zero) gam0m = gam0
189 IF (am == zero) am = a
190 IF (game == zero) game = two_third
191 IF (thet == zero) thet = one
194 unit = one * (fac_t_bb * fac_t_bb)/(fac_m_bb*fac_l_bb**2)
195 IF (ds == zero) ds = ninep637em5 * (fac_t_bb * fac_t_bb)/(fac_l_bb * fac_l_bb)
196 IF (vb == zero) vb=half/rhor
206 pcc=three100**2*gp*(gam0-game)*rhor*half
207 e00=-three100*(three*r + hundred50*ge)/aw
212 e0j=(c**2*x**2/(2*(one-s*x)))*
215 . +s**2*(one-gam0/s)*x**2/six)
216 . +e00*(one+gam0*x)+e0h
219 IF (x >= zero) xp=one
222 . +two*(gam0m-four_over_3)*x
223 . +((two*gam0m-five_over_3)*(gam0m-four_over_3)-am)*x**2
227 . +(two*gam0m-two_third)*x
228 . +((gam0m-third)*(two*gam0m+third)-am)*x**2))
229 xlamj=two_third-two*gam0m+two*am*x
232 d1=e0j+tmj*(dsp-half*alphap*(one-xm**2))+apy*rhor/(one-x)
233 d2=three_half*rp-xm*alphap
238 . *(one-(one+half*gam0)*x+half*a*x**2)*rhor
239 . /((one-x)*(one-s*x)**2)
240 . +g0ax*(e-e0h)*rhor/(one-x)
241 c1=p1j-tmj*(xlamj+g0ax)*(dsp-half*alphap*(one-xm**2))*rhor/(one-x)
242 . +apy*(rhor/(one-x))**2
243 c2=g0ax*(d2+three_half*rp)*rhor/(one-x)
244 . +alphap*xm*(xlamj+g0ax)*rhor/(one-x)
245 . -rp*rhor*((one+zj+zj**2-zj**3)/(one-zj)**3)/(one-x)
246 c3=game*gp*rhor*half/(one-x)
276 pm(105) = (one -two*anu)/(one - anu)
291 WRITE(iout,1001)trim(titr),mat_id,ilaw
293 IF (is_encrypted)
THEN
294 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
296 WRITE(iout,1002)rho0,rhor
297 WRITE(iout,1300)young,anu,g
298 WRITE(iout,1400)ca,cb,cn,epsm,sigm
299 WRITE(iout,1500)c0,c,s,gam0,a,aw,pmin,e0
300 WRITE(iout,1600)cc,eps0,cm,tmelt,tmax
301 WRITE(iout,1700)gam0m,am,game,ge,ds,tm0,vj,vb
302 WRITE(iout,1800)unit,e0h,ay,thet
307 IF (eps0 == zero)
THEN
308 CALL ancmsg(msgid=298,msgtype=msgerror,anmode=aninfo,
328 & 5x,40h johnson cook - gray law ,/,
329 & 5x,40h ----------------------- ,//)
332 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
333 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
335 & 5x,
'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/,
336 & 5x,
'REFERENCE DENSITY . . . . . . . . . . .=',1pg20.13/)
338 & 5x,40hyoung
'S MODULUS . . . . . . . . . . . .=,1PG20.13/,
339 & 5X,40HPOISSON's ratio . . . . . . . . . . . .=,1pg20.13/,
340 & 5x,40hshear modulus . . . . . . . . . . . . .=,1pg20.13//)
342 & 5x,40hplasticity yield stress ca. . . . . . .=,1pg20.13/,
343 & 5x,40hplasticity hardening
Parameter cb.. . .=,1pg20.13/,
344 & 5x,40hplasticity hardening exponent cn. . . .=,1pg20.13/,
345 & 5x,40heps-
max . . . . . . . . . . . . . . . .=,1pg20.13/,
346 & 5x,40hsig-
max . . . . . . . . . . . . . . . .=,1pg20.13//)
348 & 5x,40hc0 initial pressure(not active) . . . .=,1pg20.13/,
349 & 5x,40hc hugoniot parameters . . . . . . . . .=,1pg20.13/,
350 & 5x,40hs us=c+s up . . . . . . . . . . . . . .=,1pg20.13/,
351 & 5x,40hgam0. . . . . . . . . . . . . . . . . .=,1pg20.13/,
352 & 5x,40ha gama=gam0-a x . . . . . . . . . . . .=,1pg20.13/,
353 & 5x,40hatomic weight . . . . . . . . . . . . .=,1pg20.13/,
354 & 5x,40hpressure cutoff . . . . . . . . . . . .=,1pg20.13/,
355 & 5x,40hinitial internal energy per unit volume=,1pg20.13//)
357 & 5x,40hstrain rate coefficient cc. . . . . . .=,1pg20.13/,
358 & 5x,40hreference strain rate . . . . . . . . .=,1pg20.13/,
359 & 5x,40htemperature exponent. . . . . . . . . .=,1pg20.13/,
360 & 5x,40hmelting temperature degree k. . . . . .=,1pg20.13/,
361 & 5x,40htheta-
max . . . . . . . . . . . . . . .=,1pg20.13//)
363 & 5x,40hgam0m melting gamma . . . . . . . . . .=,1pg20.13/,
364 & 5x,40ham gamam=gam0m-am x . . . . . . . . . .=,1pg20.13/,
365 & 5x,40hgame electronic gamma . . . . . . . . .=,1pg20.13/,
366 & 5x,40hge electronic energy. . . . . . . . . .=,1pg20.13/,
367 & 5x,40hds entropy of melting . . . . . . . . .=,1pg20.13/,
368 & 5x,40htm0 melting temperature
PARAMETER . . .=,1pg20.13/,
369 & 5x,40hvj volume
WHERE eos are joined. . . . .=,1pg20.13/,
370 & 5x,40hvb excluded volume
for vapor phase. . .=,1pg20.13//)
372 & 5x,40hunit(1. mbar cm3)(1e5 si). . . . . . .=,1pg20.13/,
373 & 5x,40he0h energy at v=v0 t=300k p=0 . . . . .=,1pg20.13/,
374 & 5x,40hay attractive potential
for vapor . . .=,1pg20.13/,
375 & 5x,40htheta join
PARAMETER. . . . . . . . . .=,1pg20.13//)
377 & 5x,40hc1 . . . . . . . . . . . .. . . . . . .=,1pg20.13/,
378 & 5x,40hc2 . . . . . . . . . . . .. . . . . . .=,1pg20.13/,
379 & 5x,40hc3 . . . . . . . . . . . .. . . . . . .=,1pg20.13/,
380 & 5x,40hd1 . . . . . . . . . . . .. . . . . . .=,1pg20.13/,
381 & 5x,40hd2 . . . . . . . . . . . .. . . . . . .=,1pg20.13/,
382 & 5x,40hd3 . . . . . . . . . . . .. . . . . . .=,1pg20.13//)
384 & 5x,40he0j. . . . . . . . . . . .. . . . . . .=,1pg20.13/,
385 & 5x,40htmj. . . . . . . . . . . .. . . . . . .=,1pg20.13/,
386 & 5x,40hp1j. . . . . . . . . . . .. . . . . . .=,1pg20.13//)