37 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC , PARMAT ,
38 . UNITAB ,MAT_ID ,TITR ,MTAG , LSUBMODEL,
68#include "implicit_f.inc"
77 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
78 my_real,
INTENT(INOUT) :: PM(NPROPM),PARMAT(100),UPARAM(MAXUPARAM)
79 INTEGER,
INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
81 INTEGER,
INTENT(IN) :: MAT_ID
82 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
84 TYPE(matparam_struct_) ,
INTENT(INOUT) :: MATPARAM
89 my_real E,NU,G,MU,RBULK,C10,C20,C30,D1,D2,D3
90 CHARACTER(LEN=NCHARFIELD) :: STRING
92 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
96 is_encrypted = .false.
97 is_available = .false.
106 CALL hm_get_floatv('mat_rho
' ,RHO0 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
107 !! CALL HM_GET_FLOATV('mat_rho
' ,RHOR ,IS_AVAILABLE, LSUBMODEL, UNITAB)
108 !line-1 Is not active (Blank)
109 !CALL HM_GET_INTV ('itype
' ,ITEST ,IS_AVAILABLE, LSUBMODEL)
110 !CALL HM_GET_INTV ('mat_fct_idi
' ,IFUNC(1) ,IS_AVAILABLE, LSUBMODEL)
111 !CALL HM_GET_FLOATV('mat_nu
' ,NU ,IS_AVAILABLE, LSUBMODEL, UNITAB)
113 CALL HM_GET_FLOATV('law94_c01
' ,C10 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
114 CALL HM_GET_FLOATV('law94_c02
' ,C20 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
115 CALL HM_GET_FLOATV('law94_c03
' ,C30 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
117 CALL HM_GET_FLOATV('law94_d1
' ,D1 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
118 CALL HM_GET_FLOATV('law94_d2
' ,D2 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
119 CALL HM_GET_FLOATV('law94_d3
' ,D3 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
120 !========== DEFAULT VALUES=============!
122 !!IF(RHOR==ZERO)RHOR=RHO0
131!the proposed one READ(LINE,FMT=FMT_A_I_F)STRING,IFUNC(1),NU
141 IF(D2 /= ZERO ) D2 = ONE/D2
142 IF(D3 /= ZERO ) D3 = ONE/D3
149 RBULK = TWO_THIRD*G*(ONE + NU)/(ONE-TWO*NU)
150 D1 = RBULK / TWO ! 1/D1
155 NU = (THREE*RBULK -TWO*G)/(THREE*RBULK + G)/TWO
156 E = NINE*RBULK*G/(THREE*RBULK + G)
168!! not used UPARAM(10) = ITEST
171 IF(NUPARAM>MAXUPARAM)THEN
172 WRITE(IOUT,*)' ** error : nuparam gt maxuparam
'
173 WRITE(IOUT,*)' nuparam =
',NUPARAM,
174 . ' maxuparam =',maxuparam
183 parmat(17) = two*g/(rbulk + four_over_3*g)
196 WRITE(iout,1010) trim(titr),mat_id,94
199 WRITE(iout,
'(5X,A,//)')
'CONFIDENTIAL DATA'
212 WRITE(iout,1100)c10,c20,c30,d1,d2,d3
213 WRITE(iout,1200)g,rbulk, nu
219 & 5x,
' ---------- ',//)
222 & 5x,
'MATERIAL NUMBER. . . . . . . . . . . . . =',i10/,
223 & 5x,
'MATERIAL LAW . . . . . . . . . . . . . . =',i10
225 & 5x,
'INITIAL DENSITY . . . . . . . . . . . . .=',1pg20.13/)
227 & 5x,
'C10 . . . . . . . . . . . . . . . . . . .=',1pg20.13/
228 & 5x,
'C20 . . . . . . . . . . . . . . . . . . .=',1pg20.13/
229 & 5x,
'C30 . . . . . . . . . . . . . . . . . . .=',1pg20.13/
230 & 5x,
'1/D1 . . . . . . . . . . . . . . . . . .=',1pg20.13/
231 & 5x,
'1/D2 . . . . . . . . . . . . . . . . . .=',1pg20.13/
232 & 5x,
'1/D3 . . . . . . . . . . . . . . . . . .=',1pg20.13)
234 & 5x,
'INITIAL SHEAR MODULUS . . . . . . . . . .=',1pg20.13/
235 & 5x,
'BULK MODULUS. . . . . . . . . . . . . . .=',1pg20.13/
236 & 5x,
'POISSON RATIO . . . . . . . . . . . . . .=',1pg20.13/)
238 & 5x,
'UNIAXIAL DATA TEST CURVE. . . . . . . . .=',i10/
239 & 5x,
'POISSON RATIO . . . . . . . . . . . . . .=',1pg20.13///)
241 & 5x,
'EQUIBIAXIAL DATA TEST CURVE . . . . . . .=',i10/
242 & 5x,
'POISSON RATIO . . . . . . . . . . . . . .=',1pg20.13///)
244 & 5x,
'PLANAR DATA TEST CURVE. . . . . . . . . .=',i10/
245 & 5x,
'POISSON RATIO . . . . . . . . . . . . . .=',1pg20.13///)
subroutine hm_read_mat94(uparam, maxuparam, nuparam, israte, imatvis, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, mat_id, titr, mtag, lsubmodel, pm, ipm, matparam)