42 . UPARAM ,MAXUPARAM,NUPARAM ,NUVAR ,NFUNC ,
43 . MAXFUNC ,IFUNC ,MTAG ,PARMAT ,UNITAB ,
44 . PM ,LSUBMODEL,ISRATE ,MAT_ID ,TITR ,
69#include "implicit_f.inc"
78 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
79 INTEGER,
INTENT(IN) :: MAT_ID,MAXUPARAM,MAXFUNC
80 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: PM
81 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
82 INTEGER,
INTENT(INOUT) :: ISRATE
83 INTEGER,
INTENT(INOUT) :: NUPARAM,NUVAR,NFUNC
84 INTEGER,
DIMENSION(MAXFUNC) ,
INTENT(INOUT) :: IFUNC
85 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
86 my_real,
DIMENSION(100),
INTENT(INOUT) :: parmat
89 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
93 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
94 INTEGER :: I,ILAW,NRATE,ISRAT
95 my_real :: RHO0,RHOR,E,NU,G,C1,EPSMAX,FCUT,PRESS_SCALE
96 INTEGER ,
DIMENSION(MAXFUNC) :: FUN_LOAD,FUN_UNLOAD
97 my_real ,
DIMENSION(MAXFUNC) :: yfac,rate
99 is_encrypted = .false.
100 is_available = .false.
105 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
106 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
108 CALL hm_get_floatv(
'MAT_E' ,e ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
110 CALL hm_get_floatv(
'MAT_EPS' ,epsmax ,is_available, lsubmodel, unitab)
112 CALL hm_get_intv (
'NRATEP' ,nrate ,is_available,lsubmodel)
113 CALL hm_get_intv (
'Fsmooth' ,israt ,is_available,lsubmodel)
114 CALL hm_get_floatv(
'Fcut' ,fcut ,is_available, lsubmodel, unitab)
126 nuparam = nrate*3 + 14
130 ifunc(1:nrate) = fun_load(1:nrate)
131 ifunc(nrate+1:nfunc) = fun_unload(1:nrate)
136 IF (ifunc(i) == 0)
THEN
139 . anmode=aninfo_blind_1,
146 IF (nrate > 1 .AND. israt == 0)
THEN
148 . msgtype=msgwarning,
149 . anmode=aninfo_blind_1,
156 IF (rate(i) < rate(i-1))
THEN
159 . anmode=aninfo_blind_1,
171 IF (yfac(i) == zero) yfac(i) = one*press_scale
174 IF (epsmax == zero) epsmax = ep20
176 c1 = third*e/(one - two*nu)
178 israte =
max(israte,israt)
184 uparam(5) = one/(one - nu*nu)
185 uparam(6) = nu*uparam(5)
189 uparam(10)= c1 + g*four*third
193 uparam(14+i+nrate)=yfac(i)
194 uparam(14+i+nrate*2)=ep20
204 parmat(17) = (one - two*nu)/(one - nu)
221 WRITE(iout,1000) trim(titr),mat_id,65
223 IF (is_encrypted)
THEN
224 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
226 WRITE(iout,1200) rho0
227 WRITE(iout,1300) e,nu,epsmax,israte,fcut
229 WRITE(iout,1400) fun_load(i),fun_unload(i),yfac(i),rate(i)
236 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . .=',i10/,
237 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . .=',i10/)
239 &(5x,
'MATERIAL MODEL : TABULATED ELASTIC PLASTIC (LAW65) ',/,
240 & 5x,
'---------------------------------------------------',/)
242 & 5x,
'INITIAL DENSITY. . . . . . . . . . . . .=',1pg20.13/)
244 & 5x,
'YOUNG''S MODULUS . . . . . . . . . . . .=',1pg20.13/
245 & 5x,
'POISSON''S RATIO . . . . . . . . . . . .=',1pg20.13/
246 & 5x,
'MAXIMUM PLASTIC STRAIN . . . . . . . . =',1pg20.13/
247 & 5x,
'SMOOTH STRAIN RATE OPTION . . . . . . . =',i10/
248 & 5x,
'STRAIN RATE CUTTING FREQUENCY . . . . . =',1pg20.13/)
250 & 5x,
'LOAD STRESS FUNCTION NUMBER . . . . . =',i10/
251 & 5x,
'UNLOAD STRESS FUNCTION NUMBER . . . . . =',i10/
252 & 7x,
'YIELD SCALE FACTOR. . . . . . . . . . . =',1pg20.13/
253 & 7x,
'STRAIN RATE . . . . . . . . . . . . . . =',1pg20.13)
subroutine hm_read_mat65(uparam, maxuparam, nuparam, nuvar, nfunc, maxfunc, ifunc, mtag, parmat, unitab, pm, lsubmodel, israte, mat_id, titr, matparam)
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)