39 . NUVAR ,NVARTMP ,NUMTABL ,ITABLE ,PARMAT ,
40 . MATPARAM ,PM ,MAT_ID ,TITR ,ISRATE ,
70#include "implicit_f.inc"
79 TYPE (UNIT_TYPE_),
INTENT(IN) :: UNITAB
80 INTEGER ,
INTENT(IN ) :: MAXUPARAM,MAXTABL,MAT_ID
81 INTEGER ,
INTENT(INOUT) :: NUMTABL,NUPARAM,NUVAR,NVARTMP
82 INTEGER ,
DIMENSION(MAXTABL) ,
INTENT(INOUT) :: ITABLE
83 my_real ,
INTENT(INOUT) :: pm(npropm),parmat(100),uparam(maxuparam)
84 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
87 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
91 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
92 INTEGER :: ILAW,YTAB_ID,ISRATE,IFORM,ITRX,IDAM
93 my_real :: RHO0,RHOR,E,NU,Y0,Q,B,H,G,BULK,C11,C12,EPSPMIN,EPSPMAX
95 . xscale,yscale,yscale_unit,unit_l,xscale_unit,thick
98 is_encrypted = .false.
99 is_available = .false.
106 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'MAT_E' ,e ,is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
111 CALL hm_get_intv (
'MAT_IFORM' ,iform ,is_available, lsubmodel)
112 CALL hm_get_intv (
'MAT_ITRX' ,itrx ,is_available, lsubmodel)
113 CALL hm_get_intv (
'MAT_IDAM' ,idam ,is_available, lsubmodel)
114 CALL hm_get_floatv(
'MAT_THICK' ,thick ,is_available, lsubmodel, unitab)
116 CALL hm_get_intv (
'MAT_TAB_ID',ytab_id ,is_available,lsubmodel)
117 CALL hm_get_floatv(
'MAT_Xscale',xscale ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv(
'MAT_Yscale',yscale ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv(
'MAT_TAU' ,y0 ,is_available, lsubmodel, unitab)
121 CALL hm_get_floatv(
'MAT_Q' ,q ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'MAT_B' ,b ,is_available, lsubmodel, unitab)
123 CALL hm_get_floatv(
'MAT_H' ,h ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'MAT_AF1' ,a1f ,is_available, lsubmodel, unitab)
126 CALL hm_get_floatv(
'MAT_AF2' ,a2f ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv(
'MAT_AH1' ,a1h ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv(
'MAT_AH2' ,a2h ,is_available, lsubmodel, unitab)
129 CALL hm_get_floatv(
'MAT_AS' ,as ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv(
'MAT_CC' ,cc ,is_available, lsubmodel, unitab)
132 CALL hm_get_floatv(
'MAT_GAM0' ,epspmin ,is_available, lsubmodel, unitab)
133 CALL hm_get_floatv(
'MAT_GAMF' ,epspmax ,is_available, lsubmodel, unitab)
135 CALL hm_get_floatv(
'MAT_D1C' ,d1c ,is_available, lsubmodel, unitab)
136 CALL hm_get_floatv(
'MAT_D2C' ,d2c ,is_available, lsubmodel, unitab)
137 CALL hm_get_floatv(
'MAT_D1F' ,d1f ,is_available, lsubmodel, unitab)
138 CALL hm_get_floatv(
'MAT_D2F' ,d2f ,is_available, lsubmodel, unitab)
140 CALL hm_get_floatv(
'D_TRX' ,d_trx ,is_available, lsubmodel, unitab)
141 CALL hm_get_floatv(
'D_JC' ,d_jc ,is_available, lsubmodel, unitab)
142 CALL hm_get_floatv(
'MAT_EXP' ,exp_n ,is_available, lsubmodel, unitab)
145 g = e * half / (one + nu)
146 bulk = e * third / (one - two*nu)
147 c11 = e * (one-nu) /((one + nu)*(one - two*nu))
148 c12 = c11 * nu/(one - nu)
149 ssp = sqrt((bulk + four_over_3*g) / rho0)
156 fcut = 1000.0d0 * unitab%FAC_T_WORK
158 IF (exp_n == zero) exp_n = one
159 IF (iform == 0) iform = 1
160 IF (itrx == 0) itrx = 2
161 IF (idam == 0) idam = 2
162 IF (xscale == zero)
THEN
163 CALL hm_get_floatv_dim(
'MAT_Xscale' ,xscale_unit ,is_available, lsubmodel, unitab)
164 xscale = one * xscale_unit
166 IF (yscale == zero)
THEN
167 CALL hm_get_floatv_dim(
'MAT_Yscale' ,yscale_unit ,is_available, lsubmodel, unitab)
168 yscale = one * yscale_unit
170 IF (thick == zero)
THEN
183 IF (ytab_id > 0)
THEN
225 uparam(30) = one / xscale
245 parmat(17) = two*g/(bulk+four_over_3*g)
264 WRITE(iout,1000) trim(titr),mat_id,ilaw
267 IF (is_encrypted)
THEN
268 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
270 WRITE(iout,1200) rho0,e,nu,thick,iform
271 IF (ytab_id > 0)
THEN
272 WRITE(iout,1300) ytab_id,xscale,yscale
274 WRITE(iout,1400) q,b,h,y0,cc,epspmin,epspmax
276 WRITE(iout,1500) a1f,a2f,a1h,a2h,as,d1c,d2c,d1f,d2f,
277 . d_trx,d_jc,exp_n,itrx,idam
282 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . =',i10/,
283 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . =',i10/)
285 &(5x,
'MATERIAL MODEL : TOUGHENED ADHESIVE POLYMER',/,
286 & 5x,
'-------------------------------------------',/)
288 & 5x,
'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/
289 & 5x,
'YOUNG MODULUS . . . . . . . . . . . . .=',1pg20.13/
290 & 5x,
'POISSON RATIO . . . . . . . . . . . . .=',1pg20.13/
291 & 5x,
'REFERENCE THICKNESS . . . . . . . . . .=',1pg20.13/
292 & 5x,
'YIELD CRITERION FLAG . . . . . . . . .=',i3
294 & 5x,
'YIELD FUNCTION TABLE IDENTIFIER . . . .=',i10/
295 & 5x,
'SCALE FACTOR FOR STRAIN RATE. . . . . .=',1pg20.13/
296 & 5x,
'SCALE FACTOR FOR YLD FUNCTION . . . . .=',1pg20.13)
298 & 5x,
'NONLINEAR HARDENING PARAMETER . . . . .=',1pg20.13/
299 & 5x,
'EXPONENTIAL DECAY COEFFICIENT . . . . .=',1pg20.13/
300 & 5x,
'LINEAR HARDENING PARAMETER. . . . . . .=',1pg20.13/
301 & 5x,
'INITIAL YIELD STRESS. . . . . . . . . .=',1pg20.13/
302 & 5x,
'STRAIN RATE COEFFICIENT . . . . . . . .=',1pg20.13/
303 & 5x,
'STATIC STRAIN RATE. . . . . . . . . . .=',1pg20.13/
304 & 5x,
'MAXIMAL STRAIN RATE . . . . . . . . . .=',1pg20.13)
306 & 5x,
'YIELD FUNCTION PARAMETER A1F. . . . . .=',1pg20.13/
307 & 5x,
'YIELD FUNCTION PARAMETER A2F. . . . . .=',1pg20.13/
308 & 5x,
'YIELD FUNCTION PARAMETER A1H. . . . . .=',1pg20.13/
309 & 5x,
'YIELD FUNCTION PARAMETER A2H. . . . . .=',1pg20.13/
310 & 5x,
'PLASTIC FLOW PARAMETER AS . . . . . .=',1pg20.13/
311 & 5x,
'FAILURE MODEL COEFFICIENT D1C . . . . .=',1pg20.13/
312 & 5x,
'FAILURE MODEL COEFFICIENT D2C . . . . .=',1pg20.13/
313 & 5x,
'FAILURE MODEL COEFFICIENT D1F . . . . .=',1pg20.13/
314 & 5x,
'FAILURE MODEL COEFFICIENT D2F . . . . .=',1pg20.13/
315 & 5x,
'DAMAGE COEFFICIENT D_TRX. . . . . . . .=',1pg20.13/
316 & 5x,
'DAMAGE COEFFICIENT D_JC . . . . . . . .=',1pg20.13/
317 & 5x,'exponent coefficient . . . . . . . . .=
',1PG20.13/
318 & 5X,'itrx: failure dependency on triaxiality=
',I3/
319 & 5X,'strain rate definition
for damage . . .=
',I3/)