39 . LSUBMODEL ,MTAG ,UNITAB ,IPM ,PM ,
40 . MAT_ID ,TITR ,ISRATE ,MAT_PARAM)
64#include "implicit_f.inc"
74 INTEGER,
INTENT(INOUT) :: MAT_ID
75 INTEGER,
INTENT(INOUT) :: ISRATE
76 INTEGER,
DIMENSION(NPROPMI) ,
INTENT(INOUT) :: IPM
77 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
78 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
80 TYPE(
submodel_data),
DIMENSION(NSUBMOD),
INTENT(IN) :: LSUBMODEL
82 TYPE(matparam_struct_),
INTENT(INOUT) :: MAT_PARAM
86 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED,IS_EOS, EOS_EMBEDDED
87 INTEGER JTUR, I, EMPTY_LINE,COUNT,IEOS,LAW6_OPT
90 . young, anu, ca, cb, cn, epsm, sigm, bulk,
91 . pmin, cc, eps0, cm, tmelt, tmax, cs, t0, sph, as, bs,
92 . al, bl, g, tba, tbk, pco, fac_l, fac_t, fac_m, fac_c,
93 . bid2 ,bid3 ,bid4 ,bid5 ,
94 . bid2_,bid3_,bid4_,bid5_,
95 . c0,c1,c2,c3,c4,c5,e0,psh,ti,rho0,rhor
105 is_encrypted = .false.
106 is_available = .false.
110 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab
111 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab
113 CALL hm_get_floatv(
'MAT_E' ,young ,is_available, lsubmodel, unitab)
114 CALL hm_get_floatv(
'MAT_NU' ,anu ,is_available, lsubmodel, unitab)
116 CALL hm_get_floatv(
'MAT_SIGY' ,ca ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv(
'MAT_BETA' ,cb ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_SIG' ,sigm ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_PC' ,pmin ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'MAT_SRP' ,eps0 ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'MAT_M' ,cm ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'MAT_TMELT' ,tmelt ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_TMAX' ,tmax ,is_available, lsubmodel, unitab)
130 CALL hm_get_floatv(
'MAT_SPHEAT' ,cs ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv(
'MAT_T0' ,t0 ,is_available, lsubmodel, unitab)
133 CALL hm_get_intv (
'Line_count' ,count ,is_available, lsubmodel)
135 IF(invers_init>=2018)
THEN
137 ELSEIF(invers_init>=110)
THEN
138 IF(count==3)eos_embedded=.true.
148 IF(invers_init>=140)
THEN
156 CALL hm_get_floatv(
'MAT_C0' ,c0 ,is_available, lsubmodel, unitab)
157 CALL hm_get_floatv(
'MAT_C1' ,c1 ,is_available, lsubmodel, unitab)
158 CALL hm_get_floatv(
'MAT_C2' ,c2 ,is_available, lsubmodel, unitab)
159 CALL hm_get_floatv(
'MAT_C3' ,c3 ,is_available, lsubmodel, unitab)
161 CALL hm_get_floatv(
'MAT_C5' ,c5 ,is_available, lsubmodel, unitab)
162 CALL hm_get_floatv(
'MAT_E0' ,e0 ,is_available, lsubmodel, unitab)
163 CALL hm_get_floatv(
'MAT_PSH' ,psh ,is_available, lsubmodel, unitab)
180 CALL INIT_MAT_KEYWORD(MAT_PARAM,"large_strain
")
181 MAT_PARAM%IEOS = IEOS
182 IPM(4) = IEOS ! keep this temporarily for output and fluid sections
184 IF (PMIN==ZERO) PMIN=-EP20
185 IF (RHOR==ZERO) RHOR=RHO0
190.AND.
IF(CS == ZEROTMELT == ZERO)THEN
191 CALL ANCMSG(MSGID=593,
192 . MSGTYPE=MSGWARNING,
193 . ANMODE=ANINFO_BLIND_1,
197 ELSEIF(CS == ZERO)THEN
198 CALL ANCMSG(MSGID=594,
200 . ANMODE=ANINFO_BLIND_1,
205 IF(PMIN == ZERO) PMIN =-EP20
206.OR.
IF(CN == ZEROCN == ONE) CN = ONEP0001
207 IF(EPSM == ZERO) EPSM = EP20
208 IF(SIGM == ZERO) SIGM = EP20
209 IF(CC == ZERO) EPS0 = ONE
210 IF(CM == ZERO) CM = ONE
211 IF(TMELT == ZERO)TMELT = EP20
212 IF(TMAX == ZERO) TMAX = EP20
213 IF(T0<=ZERO) T0 = THREE100
214 G=YOUNG/(TWO*(ONE + ANU))
215.NOT.
IF(EOS_EMBEDDED)BULK=YOUNG/(THREE*(ONE - TWO*ANU))
239 PM(105) = (ONE -TWO*ANU)/(ONE - ANU) ! TWO*G/(BULK + FOUR_OVER_3*G)
241 !sizes for element buffer
250 ! Material compatibility with /EOS option
251 CALL INIT_MAT_KEYWORD(MAT_PARAM,"eos
")
253 ! EOS/Thermo keyword for pressure treatment in elements
254 CALL INIT_MAT_KEYWORD(MAT_PARAM,"hydro_eos
")
256 ! Properties compatibility
257 CALL INIT_MAT_KEYWORD(MAT_PARAM,"solid_isotropic
")
258 CALL INIT_MAT_KEYWORD(MAT_PARAM,"sph
")
260 ! activate heat source calculation in material for /heat/mat
262 MAT_PARAM%HEAT_FLAG = 1
265 WRITE(IOUT,2001) TITR,MAT_ID,4
269 WRITE(IOUT,'(5X,A,//)')'CONFIDENTIAL DATA'
271 WRITE(IOUT,2002)RHO0,RHOR
272 WRITE(IOUT,1300)YOUNG,ANU,G,BULK
273 WRITE(IOUT,1400)CA,CB,CN,EPSM,SIGM
275 WRITE(IOUT,1600)CC,EPS0,CM,TMELT,TMAX,CS,T0
278 !--------------------------------------------------!
279 ! OLD FORMAT 100 (OBSOLETE) !
280 !--------------------------------------------------!
281 IF(EOS_EMBEDDED)THEN !
283 IF(IS_ENCRYPTED)THEN !
284 WRITE(IOUT,'(5X,A,//)')'CONFIDENTIAL DATA' !
286 WRITE(IOUT,2500)C0,C1,C2,C3,C4,C5,E0,PM(1),PSH !
289 !--------------------------------------------------!
291 IF(EPS0 == ZERO) THEN
292 CALL ANCMSG(MSGID=298,MSGTYPE=MSGERROR,ANMODE=ANINFO,I1=4,I2=MAT_ID,C1=TITR)
296 & 5X,' JOHNSON COOK LAW ',/,
297 & 5X,' ---------------- ',//)
299 & 5X,'YOUNG',1H','S MODULUS . . . . . . . . . . . .=',1PG20.13/,
300 & 5X,'POISSON',1H','S RATIO . . . . . . . . . . . .=',1PG20.13/,
301 & 5X,'SHEAR MODULUS . . . . . . . . . . . . .=',1PG20.13/,
302 & 5X,'BULK MODULUS . . . . . . . . . . . . .=',1PG20.13//)
304 & 5X,'YIELD COEFFICIENT CA. . . . . . . . . .=',1PG20.13/,
305 & 5X,'YIELD COEFFICIENT CB. . . . . . . . . .=',1PG20.13/,
306 & 5X,'YIELD COEFFICIENT CN. . . . . . . . . .=',1PG20.13/,
307 & 5X,'EPS-MAX . . . . . . . . . . . . . . . .=',1PG20.13/,
308 & 5X,'SIG-MAX . . . . . . . . . . . . . . . .=',1PG20.13//)
310 & 5X,'PRESSURE CUTOFF . . . . . . . . . . . .=',1PG20.13/)
312 & 5X,'STRAIN RATE COEFFICIENT CC. . . . . . .=',1PG20.13/,
313 & 5X,'REFERENCE STRAIN RATE . . . . . . . . .=',1PG20.13/,
314 & 5X,'TEMPERATURE EXPONENT. . . . . . . . . .=',1PG20.13/,
315 & 5X,'MELTING TEMPERATURE DEGREE K. . . . . .=',1PG20.13/,
316 & 5X,'THETA-MAX . . . . . . . . . . . . . . .=',1PG20.13/,
317 & 5X,'SPECIFIC HEAT . . . . . . . . . . . . .=',1PG20.13/,
318 & 5X,'ROOM TEMPERATURE . . . . . . . . . . . =',1PG20.13//)
320 & 5X,' POLYNOMIAL EOS ',/,
321 & 5X,' -------------- ',/,
322 & 5X,' INPUT 100 IS OBSOLETE ',/,
323 & 5X,' IT CAN BE ERASED BY /EOS CARD ',/)
326 & 5X,' MATERIAL NUMBER . . . . . . . . . . . .=',I10/,
327 & 5X,' MATERIAL LAW. . . . . . . . . . . . . .=',I10/)
329 & 5X,' INITIAL DENSITY . . . . . . . . . . . .=',1PG20.13/,
330 & 5X,' REFERENCE DENSITY . . . . . . . . . . .=',1PG20.13/)
332 & 5X,'C0. . . . . . . . . . . . . . . . . . . .=',1PG20.13/,
333 & 5X,'C1. . . . . . . . . . . . . . . . . . . .=',1PG20.13/,
334 & 5X,'C2. . . . . . . . . . . . . . . . . . . .=',1PG20.13/,
335 & 5X,'C3. . . . . . . . . . . . . . . . . . . .=',1PG20.13/,
336 & 5X,'C4. . . . . . . . . . . . . . . . . . . .=',1PG20.13/,
337 & 5X,'C5. . . . . . . . . . . . . . . . . . . .=',1PG20.13/,
338 & 5X,'INITIAL INTERNAL ENERGY PER UNIT VOLUME .=',1PG20.13/,
339 & 5X,'REFERENCE DENSITY . . . . . . . . . . . .=',1PG20.13/,
340 & 5X,'PRESSURE SHIFT. . . . . . . . . . . . . .=',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)