39 . ITABLE ,MAXTABL ,NTABL ,PARMAT ,UNITAB ,
40 . MAT_ID ,TITR ,RHO ,MTAG ,MATPARAM ,
54#include "implicit_f.inc"
62 INTEGER ,
INTENT(IN) :: MAT_ID,MAXTABL,MAXUPARAM
63 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
64 my_real ,
INTENT(INOUT) :: RHO
65 my_real ,
DIMENSION(100) ,
INTENT(INOUT) :: parmat
66 my_real ,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
67 INTEGER ,
DIMENSION(MAXTABL) ,
INTENT(INOUT) :: ITABLE
68 INTEGER ,
INTENT(INOUT) :: NTABL,NUPARAM,NUVAR,NVARTMP
71 TYPE (UNIT_TYPE_) ,
INTENT(IN) :: UNITAB
72 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
76 INTEGER :: ISMOOTH,ILAW,TAB_YLD,TAB_TEMP,TAB_ETA
77 my_real :: YOUNG,NU,G,LAME,BULK,A1,A2,CP,TREF,TINI,ETA,XRATE,
78 . XSCALE,YSCALE,YSCALE_UNIT,XSCALE_UNIT,FCUT
79 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
81 is_encrypted = .false.
82 is_available = .false.
89 CALL hm_get_floatv(
'MAT_RHO' ,rho ,is_available, lsubmodel, unitab)
91 CALL hm_get_floatv(
'MAT_E' ,young ,is_available, lsubmodel, unitab)
92 CALL hm_get_floatv'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
95 CALL hm_get_floatv(
'MAT_SPHEAT' ,cp ,is_available, lsubmodel, unitab)
96 CALL hm_get_floatv(
'MAT_ETA' ,eta ,is_available, lsubmodel, unitab)
97 CALL hm_get_floatv(
'WPREF' ,tref ,is_available, lsubmodel, unitab)
98 CALL hm_get_floatv(
'T_Initial' ,tini ,is_available, lsubmodel, unitab)
100 CALL hm_get_intv (
'MAT_TAB_YLD' ,tab_yld ,is_available,lsubmodel)
101 CALL hm_get_intv (
'MAT_TAB_TEMP' ,tab_temp ,is_available,lsubmodel)
102 CALL hm_get_floatv(
'MAT_Xscale' ,xscale ,is_available, lsubmodel, unitab)
103 CALL hm_get_floatv(
'MAT_Yscale' ,yscale ,is_available, lsubmodel, unitab)
104 CALL hm_get_intv (
'MAT_Ismooth' ,ismooth ,is_available,lsubmodel)
106 CALL hm_get_intv (
'TAB_ETA' ,tab_eta ,is_available,lsubmodel)
107 CALL hm_get_floatv(
'MAT_Xrate' ,xrate ,is_available, lsubmodel, unitab)
111 g = half *young / (one + nu)
112 lame = two * g * nu /(one - two*nu)
113 bulk = third * young / (one - nu*two)
118 IF (ismooth == 0) ismooth = 1
119 IF (tref == zero) tref = 293.0
120 IF (tini == zero) tini = tref
121 IF (yscale == zero)
THEN
122 CALL hm_get_floatv_dim(
'MAT_Yscale' ,yscale_unit ,is_available, lsubmodel, unitab)
123 yscale = one * yscale_unit
125 IF (xscale == zero)
THEN
126 CALL hm_get_floatv_dim(
'MAT_Xscale' ,xscale_unit ,is_available, lsubmodel, unitab)
127 xscale = one * xscale_unit
129 IF (xrate == zero)
THEN
130 CALL hm_get_floatv_dim(
'MAT_XRATE' ,xscale_unit ,is_available, lsubmodel, unitab)
131 xrate = one * xscale_unit
134 a1 = young / (one - nu*nu)
136 fcut = 10000.0d0*unitab%FAC_T_WORK
147 uparam(7) = one/xrate
148 uparam(8) = one/xscale
153 uparam(13) = g * three
158 uparam(18) = nu / (one - nu)
159 uparam(19) = (one - two*nu) / (one - nu)
161 uparam(21) = fcut*two*pi
168 parmat(17) = two*g / (bulk + four_over_3*g)
180 matparam%HEAT_FLAG = 1
200 IF (tab_temp > 0 .or. tab_eta > 0)
THEN
206 WRITE(iout,1001) trim(titr),mat_id,ilaw
208 IF (is_encrypted)
THEN
209 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
212 WRITE(iout,1200) young,nu
213 WRITE(iout,1300) tab_yld,ismooth,xscale,yscale
214 WRITE(iout,1400) tab_temp,tref,tab_eta,cp,tini,eta,xrate
220 & 5x,
'-------------------------------------------------------',/
221 & 5x,
' MATERIAL MODEL: TABULATED ELASTO-PLASTIC ',/,
222 & 5x,
'-------------------------------------------------------',/)
225 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . . . . . . . . .=',i10/,
226 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . . . . . . . . .=',i10/)
228 & 5x,
'INITIAL DENSITY. . . . . . . . . . . . . . . . . . . .=',1pg20.13/)
230 & 5x,
'ELASTIC PARAMETERS: ',/,
231 & 5x,
'------------------- ',/,
232 & 5x,
'YOUNG MODULUS. . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
233 & 5x,
"POISSON'S RATIO. . . . . . . . . . . . . . . . . . . .=",1pg20.13/)
235 & 5x,
'PLASTIC PARAMETERS: ',/,
236 & 5x,
'------------------- ',/,
237 & 5x,
'YIELD STRESS VS PL. STRAIN (VS STRAIN RATE) TABLE ID .=',i10/,
238 & 5x,
'INTERPOLATION FLAG:. . . . . . . . . . . . . . . . . .=',i10/,
239 & 5x,
' = 1: LINEAR INTERPOLATION (DEFAULT) ',/,
240 & 5x,
' = 2: LOGARITHMIC INTERPOLATION BASE 10 ',/,
241 & 5x,
' = 3: LOGARITHMIC INTERPOLATION BASE N ',/,
242 & 5x,
'STRAIN RATE SCALE FACTOR . . . . . . . . . . . . . . .=',1pg20.13/
243 & 5x,
'YIELD STRESS SCALE FACTOR. . . . . . . . . . . . . . .=',1pg20.13/)
245 & 5x,
'THERMAL PARAMETERS: ',/,
246 & 5x,
'------------------- ',/,
247 & 5x,
'YIELD STRESS TEMPERATURE DEPENDENCY TABLE ID . . . . .=',i10/
248 & 5x,
'REFERENCE TEMPERATURE. . . . . . . . . . . . . . . . .=',1pg20.13/
249 & 5x,
'HEAT FRACTION TABLE ID . . . . . . . . . . . . . . . .=',i10/
250 & 5x,
'SPECIFIC HEAT COEFFICIENT. . . . . . . . . . . . . . .=',1pg20.13/
251 & 5x,
'INITIAL TEMPERATURE. . . . . . . . . . . . . . . . . .=',1pg20.13/
252 & 5x,
'TAYLOR-QUINNEY COEFFICIENT . . . . . . . . . . . . . .=',1pg20.13/
253 & 5x,
'STRAIN RATE SCALE FACTOR FOR HEAT FRACTION . . . . . .=',1pg20.13/)