OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat33.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_mat33 (uparam, maxuparam, nuparam, israte, imatvis, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, mat_id, titr, mtag, lsubmodel, pm, matparam)

Function/Subroutine Documentation

◆ hm_read_mat33()

subroutine hm_read_mat33 ( intent(inout) uparam,
integer, intent(inout) maxuparam,
integer, intent(inout) nuparam,
integer, intent(inout) israte,
integer, intent(inout) imatvis,
integer, intent(inout) nuvar,
integer, dimension(maxfunc), intent(inout) ifunc,
integer, intent(inout) maxfunc,
integer, intent(inout) nfunc,
intent(inout) parmat,
type (unit_type_), intent(in) unitab,
integer, intent(in) mat_id,
character(len=nchartitle), intent(in) titr,
type(mlaw_tag_), intent(inout) mtag,
type(submodel_data), dimension(*), intent(in) lsubmodel,
intent(inout) pm,
type(matparam_struct_), intent(inout) matparam )

Definition at line 39 of file hm_read_mat33.F.

43C-----------------------------------------------
44C D e s c r i p t i o n
45C-----------------------------------------------
46C READ MAT LAW33 WITH HM READER ( TO BE COMPLETED )
47C
48C DUMMY ARGUMENTS DESCRIPTION:
49C ===================
50C
51C NAME DESCRIPTION
52C
53C IPM MATERIAL ARRAY(INTEGER)
54C PM MATERIAL ARRAY(REAL)
55C UNITAB UNITS ARRAY
56C MAT_ID MATERIAL ID(INTEGER)
57C TITR MATERIAL TITLE
58C LSUBMODEL SUBMODEL STRUCTURE
59C
60C-----------------------------------------------
61C M o d u l e s
62C-----------------------------------------------
63 USE unitab_mod
64 USE elbuftag_mod
65 USE message_mod
66 USE submodel_mod
67 USE matparam_def_mod
69C-----------------------------------------------
70C I m p l i c i t T y p e s
71C-----------------------------------------------
72#include "implicit_f.inc"
73C-----------------------------------------------
74C C o m m o n B l o c k s
75C-----------------------------------------------
76#include "units_c.inc"
77#include "param_c.inc"
78C-----------------------------------------------
79C D u m m y A r g u m e n t s
80C-----------------------------------------------
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
92C-----------------------------------------------
93C L o c a l V a r i a b l e s
94C-----------------------------------------------
95 INTEGER KEN,IFN1,IFN2,IFN3,IFN4,IFN5,IFN6,ICASE
96
97 my_real
98 . e,a,b,c,p0,phi,gama0,fac,sigt_coff
99
100 my_real c1,c2,et,vmu,vmu0
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
104 my_real c1xx,c2xx,etxx,vmuxx
105 my_real c1yy,c2yy,etyy,vmuyy
106 my_real c1zz,c2zz,etzz,vmuzz
107 my_real c1xy,c2xy,gtxy,vmuxy
108 my_real c1yz,c2yz,gtyz,vmuyz
109 my_real c1zx,c2zx,gtzx,vmuzx
110 my_real fac_unit,rho0,rhor,fac1
111
112 LOGICAL :: IS_ENCRYPTED,IS_AVAILABLE
113C-----------------------------------------------
114C S o u r c e L i n e s
115C-----------------------------------------------
116 nfunc=0
117 is_encrypted = .false.
118 is_available = .false.
119 israte=0
120 imatvis=1
121
122 CALL hm_option_is_encrypted(is_encrypted)
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)
130 CALL hm_get_floatv('IFscale' ,fac ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv_dim('IFscale' ,fac_unit ,is_available, lsubmodel, unitab)
132 !hidden param/flag
133 !CALL HM_GET_INTV ('IFORM' ,IFN2 ,IS_AVAILABLE, LSUBMODEL)
134 !CALL HM_GET_FLOATV('MAT_RHO' ,FAC1 ,IS_AVAILABLE, LSUBMODEL, UNITAB)
135 ifn2=0
136 fac1=zero
137
138 CALL hm_get_floatv('MAT_P0' ,p0 ,is_available, lsubmodel, unitab)
139 CALL hm_get_floatv('MAT_PHI' ,phi ,is_available, lsubmodel, unitab)
140 CALL hm_get_floatv('MAT_GAMA0' ,gama0 ,is_available, lsubmodel, unitab)
141
142 IF (fac == zero) fac = one * fac_unit
143 !hiddent no longer supported
144 !FAC1 = ONE / FAC_UNIT
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)
152C-------------
153 CASE(1,3)
154C-------------
155c KEN = 0 or KEN = 2
156C-------------
157C-------------
158 nuparam=11
159 CALL hm_get_floatv('MAT_A0' ,a ,is_available, lsubmodel, unitab)
160 CALL hm_get_floatv('MAT_A1' ,b ,is_available, lsubmodel, unitab)
161 CALL hm_get_floatv('MAT_A2' ,c ,is_available, lsubmodel, unitab)
162 CALL hm_get_floatv('MAT_SIGT_CUTOFF' ,sigt_coff ,is_available, lsubmodel, unitab)
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
191C-------------
192 CASE(2)
193C-------------
194c KEN=1
195C-------------
196 nuparam=15
197 CALL hm_get_floatv('MAT_A0' ,a ,is_available, lsubmodel, unitab)
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)
203 CALL hm_get_floatv('MAT_ETAN' ,et ,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
208 CALL ancmsg(msgid=310,
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
233C-------------
234C
235C Formulation for solid elements time step computation.
236 parmat(16) = 2
237 parmat(17) = one
238c-----------------
239 CALL init_mat_keyword(matparam,"COMPRESSIBLE")
240c-----------------
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
251c
252 ! Properties compatibility
253 CALL init_mat_keyword(matparam,"SOLID_ISOTROPIC")
254 CALL init_mat_keyword(matparam,"SPH")
255c
256 RETURN
257C 12345678901234567890123456789012345678901
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.13/
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.13/
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.13/
295 & ,5x, 'TENSION CUT OFF STRESS . . . . .. . . .=',1pg20.13//
296 & ,5x, 'INITIAL FOAM PRESSURE . . . . . . . . .=',1pg20.13/
297 & ,5x, 'RATIO OF FOAM TO POLYMER DENSITY. . . .=',1pg20.13/
298 & ,5x, 'INITIAL VOLUMETRIC STRAIN. . . .. . . .=',1pg20.13/)
#define my_real
Definition cppsort.cpp:32
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)
Definition message.F:889