43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
68 USE matparam_def_mod
71
72
73
74#include "implicit_f.inc"
75
76
77
78#include "param_c.inc"
79#include "units_c.inc"
80#include "com04_c.inc"
81
82
83
84 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
85 INTEGER, INTENT(IN) :: MAT_ID,MAXTABL
86 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
87 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
88 INTEGER, INTENT(INOUT) :: NUVAR,NUMTABL,NVARTMP,IMATVIS
89 INTEGER, DIMENSION(MAXTABL) ,INTENT(INOUT) :: ITABLE
90 my_real,
DIMENSION(100),
INTENT(INOUT) :: parmat
91 TYPE(SUBMODEL_DATA), DIMENSION(*),INTENT(IN) :: LSUBMODEL
92 TYPE (MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
93
94
95
96 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
97 INTEGER :: I,ILAW
98 my_real :: rho0,nu,bulk,e,emod,g,a11,scal,hu, shape,
99 . scale_1_unit,xscale_1_unit,xfac(2)
100
101 ilaw = 190
102 is_encrypted = .false.
103 is_available = .false.
104 imatvis = 2
105
107
108
109 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
110
111
112 CALL hm_get_floatv(
'MAT_E' ,emod ,is_available, lsubmodel, unitab)
113 nu = zero
114
115
116 CALL hm_get_floatv(
'MAT_HU' ,hu ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv(
'MAT_SHAPE' ,shape ,is_available, lsubmodel, unitab)
118
119
120 CALL hm_get_intv (
'FUN_1' ,itable(1),is_available, lsubmodel)
121 CALL hm_get_floatv(
'XSCALE_1' ,xfac(1) ,is_available, lsubmodel, unitab)
122 CALL hm_get_floatv(
'SCALE_1' ,xfac(2) ,is_available, lsubmodel, unitab)
123
124
125 CALL hm_get_floatv_dim(
'XSCALE_1' ,xscale_1_unit ,is_available, lsubmodel, unitab)
126 IF (xfac(1) == zero) xfac(1) = one * xscale_1_unit
128 IF (xfac(2) == zero) xfac(2) = one * scale_1_unit
129
130
131 e = emod
132 g = emod / two / (one+nu)
133 bulk = emod / three / (one-two * nu)
134 a11 = emod * (one - nu) / (one + nu) / (one-two * nu)
135 IF (hu == zero) hu = one
136
137
138
139
140 nuvar = 13
141 numtabl = 2
142 nvartmp = 18
143 matparam%NUPARAM = 7
144
145
146 ALLOCATE(matparam%UPARAM(matparam%NUPARAM))
147 matparam%UPARAM(1) = emod
148 matparam%UPARAM(2) = bulk
149 matparam%UPARAM(3) = g
150 matparam%UPARAM(4) = xfac(1)
151 matparam%UPARAM(5) = xfac(2)
152 matparam%UPARAM(6) = hu
153 matparam%UPARAM(7) = shape
154
155
156 pm(1) = rho0
157 pm(89) = rho0
158
159
160 parmat(1) = bulk
161 parmat(2) = e
162 parmat(3) = nu
163 parmat(16) = 2
164 parmat(17) = (one - two*nu)/(one - nu)
165
166
169
170
172
173
174
175
176 WRITE(iout,900) trim(titr),mat_id,ilaw
177 WRITE(iout,1000)
178 IF(is_encrypted)THEN
179 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
180 ELSE
181 WRITE(iout,1050) rho0
182 WRITE(iout,1110) e,bulk,g
183 WRITE(iout,1150) hu,shape
184 WRITE(iout,1200) itable(1),xfac(1),xfac(2)
185 ENDIF
186 900 FORMAT(/
187 & 5x,a,/,
188 & 5x,'MATERIAL NUMBER . . . . . . . . . . . . . . . =',i10/,
189 & 5x,'MATERIAL LAW. . . . . . . . . . . . . . . . . =',i10/)
190 1000 FORMAT(/
191 & 5x,'-----------------------------------------------',/
192 & 5x,' MATERIAL MODEL: ISOTROPIC PATH DEPENDENT FOAM ',/,
193 & 5x,'-----------------------------------------------',/)
194 1050 FORMAT(/
195 & 5x,'INITIAL DENSITY. . . . . . . . . . . . . . . .=',1pg20.13/)
196 1110 FORMAT(/
197 & 5x,'INITIAL YOUNG MODULUS E. . . . . . . . . . . .=',1pg20.13/
198 & 5x,'INITIAL BULK MODULUS K . . . . . . . . . . . .=',1pg20.13/
199 & 5x,'INITIAL SHEAR MODULUS G. . . . . . . . . . . .=',1pg20.13/)
200 1150 FORMAT(/
201 & 5x,'HYSTERETIC UNLOADING FACTOR HU . . . . . . . .=',1pg20.13/
202 & 5x,'SHAPE FACTOR FOR UNLOADING . . . . . . . . . .=',1pg20.13/)
203 1200 FORMAT(/
204 & 5x,'LOADING TABLE IDENTIFIER . . . . . . . . . . .=',i10/
205 & 5x,'REFERENCE STRAIN RATE (SCALE FACTOR) . . . . .=',1pg20.13/
206 & 5x,'LOADING STRESS SCALE FACTOR. . . . . . . . . .=',1pg20.13/)
207
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_floatv_dim(name, dim_fac, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle