43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
67 USE matparam_def_mod
69
70
71
72#include "implicit_f.inc"
73
74
75
76#include "units_c.inc"
77#include "param_c.inc"
78
79
80
81 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
82 my_real,
DIMENSION(NPROPM) ,
INTENT(INOUT) :: pm
83 my_real,
DIMENSION(100) ,
INTENT(INOUT) :: parmat
84 my_real,
DIMENSION(MAXUPARAM) ,
INTENT(INOUT) :: uparam
85 INTEGER, DIMENSION(MAXFUNC) ,INTENT(INOUT) :: IFUNC
86 INTEGER, INTENT(INOUT) :: ISRATE,IMATVIS,NFUNC,MAXFUNC,MAXUPARAM,NUPARAM,NUVAR
87 TYPE(MLAW_TAG_),INTENT(INOUT) :: MTAG
88 INTEGER,INTENT(IN) :: MAT_ID
89 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
90 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
91 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
92
93
94
95 INTEGER KEN,IFN1,IFN2,IFN3,IFN4,IFN5,IFN6,ICASE
96
98 . e,a,b,c,p0,phi,gama0,fac
99
101
102 my_real axx,bxx,cxx,ayy,byy,cyy,azz,bzz,czz
103 my_real axy,bxy,cxy,ayz,byz,cyz,azx,bzx,czx
110 my_real fac_unit,rho0,rhor,fac1
111
112 LOGICAL :: IS_ENCRYPTED,IS_AVAILABLE
113
114
115
116 nfunc=0
117 is_encrypted = .false.
118 is_available = .false.
119 israte=0
120 imatvis=1
121
123
124 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
125 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
126
127 CALL hm_get_floatv(
'MAT_E' ,e ,is_available, lsubmodel, unitab)
128 CALL hm_get_intv (
'Itype' ,ken ,is_available, lsubmodel)
129 CALL hm_get_intv (
'FUN_A1' ,ifn1 ,is_available, lsubmodel)
132
133
134
135 ifn2=0
136 fac1=zero
137
141
142 IF (fac == zero) fac = one * fac_unit
143
144
145 parmat(1)=e
146
147 IF(rhor==zero)rhor=rho0
148 pm(01)=rhor
149 pm(89)=rho0
150 icase = abs(ken)+1
151 SELECT CASE (icase)
152
153 CASE(1,3)
154
155
156
157
158 nuparam=11
162 CALL hm_get_floatv(
'MAT_SIGT_CUTOFF' ,sigt_coff ,is_available, lsubmodel
163
164 IF(sigt_coff == zero) sigt_coff = ep20
165 uparam(1)=ken
166 uparam(2)=e
167 uparam(3)=a
168 uparam(4)=b
169 uparam(5)=c
170 uparam(6)=p0
171 uparam(7)=phi
172 uparam(8)=gama0
173 uparam(9)=fac
174 uparam(10)=fac1
175 uparam(11)=sigt_coff
176
177 ifunc(1)=ifn1
178 ifunc(2)=ifn2
179 nfunc=2
180
181 WRITE(iout,1001) trim(titr),mat_id,33
182 WRITE(iout,1000)
183
184 IF(is_encrypted)THEN
185 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
186 ELSE
187 WRITE(iout,1002) rho0
188 WRITE(iout,1200) e,ken,ifn1,fac,ifn2,fac1,
189 & a,b,c,sigt_coff,p0,phi,gama0
190 ENDIF
191
192 CASE(2)
193
194
195
196 nuparam=15
198 CALL hm_get_floatv(
'MAT_A1' ,b ,is_available, lsubmodel, unitab
199 CALL hm_get_floatv(
'MAT_A2' ,c ,is_available, lsubmodel, unitab)
200
201 CALL hm_get_floatv(
'MAT_E1' ,c1 ,is_available, lsubmodel, unitab)
202 CALL hm_get_floatv(
'MAT_E2' ,c2 ,is_available, lsubmodel, unitab)
204 CALL hm_get_floatv(
'MAT_ETA1' ,vmu ,is_available, lsubmodel, unitab)
205 CALL hm_get_floatv(
'MAT_ETA2' ,vmu0 ,is_available, lsubmodel, unitab)
206
207 IF (vmu<=0..OR.vmu0<=0.) THEN
209 . msgtype=msgerror,
210 . anmode=aninfo,
211 . i1=mat_id,
212 . c1=titr)
213 ENDIF
214 uparam(1)=ken
215 uparam(2)=e
216 uparam(3)=a
217 uparam(4)=b
218 uparam(5)=c
219 uparam(6)=p0
220 uparam(7)=phi
221 uparam(8)=gama0
222 uparam(9)=c1
223 uparam(10)=c2
224 uparam(11)=et
225 uparam(12)=vmu
226 uparam(13)=vmu0
227 uparam(14)=fac
228 uparam(15)=fac1
229
230 ifunc(1)=ifn1
231 ifunc(2)=ifn2
232 nfunc=2
233
234
235
236 parmat(16) = 2
237 parmat(17) = one
238
240
241 WRITE(iout,1001) trim(titr),mat_id,33
242 WRITE(iout,1000)
243 IF(is_encrypted)THEN
244 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
245 ELSE
246 WRITE(iout,1100) e,ken,ifn1,fac,ifn2,fac1,
247 & c1,c2,et,vmu,vmu0,
248 & a,b,c,p0,phi,gama0
249 ENDIF
250 END SELECT
251
252
255
256 RETURN
257
258 1000 FORMAT
259 & (5x,43h low density closed cell polyurethane foam,/,
260 & 5x,43h -----------------------------------------,//)
261 1001 FORMAT(/
262 & 5x,a,/,
263 & 5x, 'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
264 & 5x, 'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
265 1002 FORMAT(
266 & 5x, 'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
267 1100 FORMAT
268 & (5x, 'YOUNG''S MODULUS . . . . . . . . . . . .=',1pg20.13/
269 & ,5x, 'FLAG. . . . . . . . . . . . . . . . . .=',i10/
270 & ,5x, 'FUNCTION NUMBER FOR THE YIELD CURVE . .=',i10//
271 & ,5x, 'YIELD CURVE SCALE FACTOR. . . . . . . .=',1pg20.13/
272 & ,5x, 'STRAIN RATE EFFECT CURVE. . . . . . . =',i10/
273 & ,5x, 'STRAIN RATE EFFECT SCALE FACTOR . . . .=',1pg20.13/
274 & ,5x, 'USER CONSTANT FOR YOUNG MODULUS C1. . .=',1pg20.13/
275 & ,5x, 'USER CONSTANT FOR YOUNG MODULUS C2. . .=',1pg20
276 & ,5x, 'TANGENT MODULUS . . . . . . . . . . . .=',1pg20.13/
277 & ,5x, 'VISCOUS COEFFICIENT (PURE COMPRESSION).=',1pg20.13/
278 & ,5x, 'VISCOUS COEFFICIENT (PURE SHEAR). . . .=',1pg20.13//
279 & ,5x, 'USER CONSTANT FOR YIELD STRESS A. . . .=',1pg20.13
280 & ,5x, 'USER CONSTANT FOR YIELD STRESS B. . . .=',1pg20.13/
281 & ,5x, 'USER CONSTANT FOR YIELD STRESS C. . . .=',1pg20.13//
282 & ,5x, 'INITIAL FOAM PRESSURE . . . . . . . . .=',1pg20.13/
283 & ,5x, 'RATIO OF FOAM TO POLYMER DENSITY. . . .=',1pg20.13/
284 & ,5x, 'INITIAL VOLUMETRIC STRAIN. . . .. . . .=',1pg20.13/)
285 1200 FORMAT
286 & (5x, 'YOUNG''S MODULUS . . . . . . . . . . . .=',1pg20.13/
287 & ,5x, 'FLAG. . . . . . . . . . . . . . . . . .=',i10/
288 & ,5x, 'FUNCTION NUMBER FOR THE YIELD CURVE . .=',i10//
289 & ,5x, 'YIELD CURVE SCALE FACTOR. . . . . . . .=',1pg20.13/
290 & ,5x, 'STRAIN RATE EFFECT CURVE. . . . . . . =',i10/
291 & ,5x, 'STRAIN RATE EFFECT SCALE FACTOR . . . .=',1pg20
292 & ,5x, 'USER CONSTANT FOR YIELD STRESS A. . . .=',1pg20.13/
293 & ,5x, 'USER CONSTANT FOR YIELD STRESS B. . . .=',1pg20.13/
294 & ,5x, 'USER CONSTANT FOR YIELD STRESS C. . . .=',1pg20
295 & ,5x, 'TENSION CUT OFF STRESS . . . . .. . . .=',1pg20
296 & ,5x, 'INITIAL FOAM PRESSURE . . . . . . . . .=',1pg20.13/
297 & ,5x, 'RATIO OF FOAM TO POLYMER DENSITY. . . .=',1pg20.13/
298 & ,5x, 'INITIAL VOLUMETRIC STRAIN. . . .. . . .=',1pg20.13/)
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
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)