39 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC , PARMAT ,
40 . UNITAB ,MAT_ID ,TITR ,MTAG , LSUBMODEL,
70#include "implicit_f.inc"
79 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
80 my_real,
INTENT(INOUT)
81INTEGER,
INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
83 INTEGER,
INTENT(IN) :: MAT_ID
84 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
85 TYPE(),
INTENT(IN) :: LSUBMODEL(*)
86TYPE() ,
INTENT(INOUT) :: MATPARAM
92 . E,NU,G,MU,LAM,D,RBULK,SCALEFAC,C(5),
93 . a1,a2,a3,a4,nu0 ,fac_unit
94 CHARACTER(LEN=NCHARFIELD) :: STRING
96 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
100 is_encrypted = .false.
101 is_available = .false.
111 CALL hm_get_floatv(
'MAT_MUE1' ,mu ,is_available, lsubmodel, unitab)
112 CALL hm_get_floatv(
'MAT_D' ,d ,is_available, lsubmodel, unitab)
113 CALL hm_get_floatv(
'MAT_Lamda' ,lam ,is_available, lsubmodel, unitab)
115 CALL hm_get_intv (
'Itype' ,itest ,is_available, lsubmodel)
116 CALL hm_get_intv (
'MAT_FCT_IDI' ,ifunc(1) ,is_available, lsubmodel)
117 CALL hm_get_floatv(
'MAT_NU' ,nu ,is_available, lsubmodel, unitab)
118 CALL hm_get_floatv(
'MAT_FScale' ,scalefac ,is_available, lsubmodel, unitab)
119 IF(scalefac == zero)
THEN
121 scalefac = one * fac_unit
131 IF(itest == 0) itest = 1
151 c(3) = eleven/1050.d00
152 c(4) = 19.d00/7000.d00
153 c(5) = 519.d00/673750.d00
155 IF(lam == zero) lam = seven
160 g= mu*(one + three*a1/five + eighty19*a2/175.d00
161 . + 513.d00*a3/875.d00 + 42039.d00*a4/67375.d00)
165 IF(ifunc(1) /= 0)
THEN
167 IF (nu == zero) nu= 0.495
168 ELSEIF(d == zero)
THEN
170 rbulk = two_third*(one + nu)*g/(one - two*nu)
178 e = nine*rbulk*g/
max(em20,(three*rbulk + g))
179 IF(ifunc(1) == 0 ) nu = (three*rbulk -two*g)/(three*rbulk + g)/two
193 uparam(14) = scalefac
196 IF(nuparam > maxuparam)
THEN
197 WRITE(iout,*)
' ** ERROR : NUPARAM GT MAXUPARAM'
198 WRITE(iout,*)
' NUPARAM =',nuparam,
199 .
' MAXUPARAM =',maxuparam
217 WRITE(iout,1001) trim(titr),mat_id,92
220 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
222 WRITE(iout,1002) rho0
223 IF(ifunc(1) > 0)
THEN
225 WRITE(iout,1200)ifunc(1),scalefac, nu
226 ELSEIF(itest == 2)
THEN
227 WRITE(iout,1300)ifunc(1),scalefac, nu
228 ELSEIF(itest == 3)
THEN
229 WRITE(iout,1400)ifunc(1),scalefac, nu
238 & 5x
' ARRUDA-BOYCE LAW ',/,
239 & 5x,
' ---------------- '
242 & 5x,
'MATERIAL NUMBER . . . . . . . . . . . . =',i10/,
243 & 5x,
'MATERIAL LAW. . . . . . . . . . . . . . =',i10/)
245 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . =',1pg20.13/)
247 & 5x,
'MU . . . . . . . . . . . . . . . . . . .=',1pg20.13/
248 & 5x,
'D. . . . . . . . . . . . . . . . . . . .=',1pg20.13/
249 & 5x,
'LAM. . . . . . . . . . . . . . . . . . .=',1pg20.13/
250 & 5x,
'POISSON RATIO. . . . . . . . . . . . . .=',e12.4//)
252 & 5x,
'UNIAXIAL DATA TEST CURVE . . . . . . .=',i10/
253 & 5x,
'SCALE FACTOR FOR STRESS IN FUNCTION. . .=',1pg20.13/
254 & 5x,
'POISSON RATIO. . . . . . . . . . . . . .=',e12.4///)
256 & 5x,
'EQUIBIAXIAL DATA TEST CURVE. . . . . . .=',i10/
257 & 5x,
'SCALE FACTOR FOR STRESS IN FUNCTION. . .=',1pg20.13/
258 & 5x,
'POISSON RATIO. . . . . . . . . . . . . .=',e12.4///)
260 & 5x,
'PLANAR DATA TEST CURVE . . . . . . . .=',i10/
261 & 5x,
'SCALE FACTOR FOR STRESS IN FUNCTION. . .=',1pg20.13/
262 & 5x,
'POISSON RATIO. . . . . . . . . . . . . .=',e12.4///)
subroutine hm_read_mat92(uparam, maxuparam, nuparam, israte, imatvis, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, mat_id, titr, mtag, lsubmodel, pm, ipm, matparam)