OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat73.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_mat73 (uparam, maxuparam, nuparam, israte, imatvis, nuvar, ifunc, maxfunc, nfunc, parmat, unitab, mat_id, titr, mtag, lsubmodel, itable, maxtabl, ntable, pm, ipm, matparam)

Function/Subroutine Documentation

◆ hm_read_mat73()

subroutine hm_read_mat73 ( dimension(maxuparam), 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,
dimension(100), 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,
integer, dimension(maxtabl), intent(inout) itable,
integer, intent(in) maxtabl,
integer, intent(inout) ntable,
dimension(npropm), intent(inout) pm,
integer, dimension(npropmi), intent(inout) ipm,
type(matparam_struct_), intent(inout) matparam )

Definition at line 39 of file hm_read_mat73.F.

44C-----------------------------------------------
45C D e s c r i p t i o n
46C-----------------------------------------------
47C READ MAT LAW43 WITH HM READER ( TO BE COMPLETED )
48C
49C DUMMY ARGUMENTS DESCRIPTION:
50C ===================
51C
52C NAME DESCRIPTION
53C
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, INTENT(INOUT) :: pm(npropm),parmat(100),uparam(maxuparam)
83 INTEGER, INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
84 . ,NTABLE,ITABLE(MAXTABL)
85 TYPE(MLAW_TAG_),INTENT(INOUT) :: MTAG
86 INTEGER,INTENT(IN) :: MAT_ID,MAXTABL
87 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
88 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(*)
89 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
90C-----------------------------------------------
91C L o c a l V a r i a b l e s
92C-----------------------------------------------
93 INTEGER I,J,NRATE,NPS,IR0,ILAW
94 my_real
95 . e,nu,g,c1,epsmax,epsr1,epsr2,
96 . r0,r45,r90,r,h,fisokin,m,
97 . einf,ce,t0, rhocp,x2fac,yfac,fac_pres,fac_freq
98 INTEGER IFUNCE, OPTE, NUM_FUNC
99 my_real :: rho0, rhor
100 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
101C-----------------------------------------------
102C S o u r c e L i n e s
103C-----------------------------------------------
104 is_encrypted = .false.
105 is_available = .false.
106 mtag%G_PLA = 1
107 mtag%G_SEQ = 1
108 mtag%L_SEQ = 1
109 mtag%L_PLA = 1
110 israte=0
111 imatvis=0
112 ilaw=73
113
114
115 CALL hm_option_is_encrypted(is_encrypted)
116 !line+1
117 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
118 !line-2
119 CALL hm_get_floatv('MAT_E' ,e ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv('MAT_NU' ,nu ,is_available, lsubmodel, unitab)
121 !line-3
122 CALL hm_get_intv ('Yr_fun' ,ifunce ,is_available, lsubmodel)
123 CALL hm_get_floatv('MAT_EFIB' ,einf ,is_available, lsubmodel, unitab)
124 CALL hm_get_floatv('MAT_C' ,ce ,is_available, lsubmodel, unitab)
125 !line-4
126 CALL hm_get_floatv('MAT_R00' ,r0 ,is_available, lsubmodel, unitab)
127 CALL hm_get_floatv('MAT_R45' ,r45 ,is_available, lsubmodel, unitab)
128 CALL hm_get_floatv('MAT_R90' ,r90 ,is_available, lsubmodel, unitab)
129 CALL hm_get_floatv('MAT_CHARD' ,fisokin ,is_available, lsubmodel, unitab)
130 CALL hm_get_intv ('MAT_Iyield' ,ir0 ,is_available, lsubmodel)
131 !line-5
132 CALL hm_get_floatv('MAT_EPS' ,epsmax ,is_available, lsubmodel, unitab)
133 CALL hm_get_floatv('MAT_EPST1' ,epsr1 ,is_available, lsubmodel, unitab)
134 CALL hm_get_floatv('MAT_EPST2' ,epsr2 ,is_available, lsubmodel, unitab)
135 !line-6
136 CALL hm_get_intv ('FUN_A1' ,itable(1) ,is_available, lsubmodel)
137 CALL hm_get_floatv('MAT_FScale' ,yfac ,is_available, lsubmodel, unitab)
138 CALL hm_get_floatv('MAT_PScale' ,x2fac ,is_available, lsubmodel, unitab)
139 !line-7
140 CALL hm_get_floatv('T_Initial' ,t0 ,is_available, lsubmodel, unitab)
141 CALL hm_get_floatv('MAT_SPHEAT' ,rhocp ,is_available, lsubmodel, unitab)
142 !unit
143 CALL hm_get_floatv_dim('MAT_FScale' ,fac_pres ,is_available, lsubmodel, unitab)
144 CALL hm_get_floatv_dim('MAT_PScale' ,fac_freq ,is_available, lsubmodel, unitab)
145 !========== DEFAULT VALUES=============!
146 rhor=rho0
147 IF(rhor==zero)rhor=rho0
148 pm(1) =rhor
149 pm(89)=rho0
150!!
151 IF(yfac == zero)yfac=fac_pres
152 IF(x2fac == zero)x2fac=fac_freq
153C
154C tab(1st entry = plastic strain, 2nd entry = strain rate, 3rd entry = temperature)
155C
156 IF(r0 == zero) r0 = one
157 IF(r45 == zero) r45 = one
158 IF(r90 == zero) r90 = one
159 IF(epsr1 == zero)epsr1=infinity
160 IF(epsr2 == zero)epsr2=two*infinity
161 IF(t0 == zero) t0=twohundred93
162C
163 IF(epsr1 >= epsr2)THEN
164 CALL ancmsg(msgid=1044,
165 . msgtype=msgerror,
166 . anmode=aninfo_blind_1,
167 . i1=mat_id,
168 . c1=titr)
169
170 ENDIF
171 ntable=1
172 uparam(1)=fisokin
173 uparam(2)=e
174 uparam(3)=e/(one-nu*nu)
175 uparam(4)=nu*uparam(3)
176 g=half*e/(1.+nu)
177 uparam(5)=g
178 uparam(6)=nu
179 r=(r0+r45+r45+r90)*fourth
180 h=r/(one+r)
181C-----------A1,A2,A3,A12--------
182 uparam(7)=h*(one+one/r0)
183 uparam(8)=h*(one+one/r90)
184 uparam(9)=h*two
185 uparam(10)=(r45*two + one)*(uparam(7)+uparam(8)-uparam(9))
186 IF (ir0 > 0) THEN
187 uparam(8)=uparam(8)/uparam(7)
188 uparam(9)=uparam(9)/uparam(7)
189 uparam(10)=uparam(10)/uparam(7)
190 uparam(7)=one
191 END IF
192 uparam(11)=one/x2fac
193 uparam(12)=yfac
194 uparam(13)=epsmax
195 uparam(14)=epsr1
196 uparam(15)=epsr2
197 uparam(16)=two*g
198 uparam(17)=three*g
199 c1=e/3./(one - two*nu)
200 uparam(18)=c1
201 uparam(19)=c1+ four_over_3*g
202 uparam(20)=t0
203 IF(rhocp==zero)THEN
204 uparam(21)=zero
205 ELSE
206 uparam(21)=one/rhocp
207 END IF
208c--------------------------------
209 opte = 0
210 IF (ifunce > 0 )opte = 1
211 nfunc = 1
212 ifunc(nfunc) = ifunce
213 uparam(22) = nfunc
214 uparam(23) = opte
215 uparam(24) = einf
216 uparam(25) = ce
217c--------------------------------
218 nuparam =25
219C
220 parmat(1)=c1
221 parmat(2)=e
222 parmat(3)=nu
223 nuvar = 7
224CC Formulation for solid elements time step computation.
225 parmat(16) = 2
226 parmat(17) = (one - two*nu)/(one - nu) ! == TWO*G/(C1+FOUR_OVER_3*G)
227C
228 CALL init_mat_keyword(matparam,"ELASTO_PLASTIC")
229 CALL init_mat_keyword(matparam,"INCREMENTAL")
230 CALL init_mat_keyword(matparam,"LARGE_STRAIN")
231 ! MATPARAM keywords
232 CALL init_mat_keyword(matparam,"orthotropic")
233C
234 ! Properties compatibility
235 CALL INIT_MAT_KEYWORD(MATPARAM,"shell_orthotropic")
236C
237 WRITE(IOUT,1001) TRIM(TITR),MAT_ID,73
238 WRITE(IOUT,1000)
239 IF(IS_ENCRYPTED)THEN
240 WRITE(IOUT,'(5X,A,//)')'CONFIDENTIAL DATA'
241 ELSE
242 WRITE(IOUT,1002)RHO0
243 WRITE(IOUT,1100)E,NU,G,R0,R45,R90,FISOKIN
244 IF (IR0 >0) WRITE(IOUT,1110)
245 WRITE(IOUT,1300)EPSMAX,EPSR1,EPSR2
246 WRITE(IOUT,1200)ITABLE(1),X2FAC,YFAC
247 WRITE(IOUT,1400)T0,RHOCP,IFUNCE,EINF,CE
248 WRITE(IOUT,*)' '
249 ENDIF
250C
251 RETURN
252 1001 FORMAT(
253 & 5X,A,/,
254 & 5X,'MATERIAL NUMBER . . . . . . . . . . . .=',I10/,
255 & 5X,'MATERIAL LAW. . . . . . . . . . . . . .=',I10/)
256 1002 FORMAT(
257 & 5X,'INITIAL DENSITY . . . . . . . . . . . .=',1PG20.13/)
258 1000 FORMAT(
259 & 5X,47H THERMAL TABULATED HILL ORTHOTROPIC PLASTICITY,/,
260 & 5X,47H ---------------------------------------------,//)
261 1100 FORMAT(
262 & 5X,'YOUNG MODULUS . . . . . . . . . . . . .=',1PG20.13/
263 & 5X,'POISSON RATIO . . . . . . . . . . . . .=',1PG20.13/
264 & 5X,'SHEAR MODULUS . . . . . . . . . . . . .=',1PG20.13/
265 & 5X,'LANKFORD COEFFICIENT R00. . . . . . . .=',1PG20.13/
266 & 5X,'LANKFORD COEFFICIENT R45. . . . . . . .=',1PG20.13/
267 & 5X,'LANKFORD COEFFICIENT R90. . . . . . . .=',1PG20.13/
268 & 5X,'ISO-KINEMATIC HARDENNING FACTOR. . . . =',1PG20.13)
269 1110 FORMAT(
270 & 5X,'YIELD STRESS IS SUPPOSSD IN ORTHOTROPIC DIR. 1 '/)
271 1200 FORMAT(
272 & 5X,'YIELD STRESS TABLE NUMBER . . . . . . .=',I10/
273 & 5X,'2ND ENTRY (STRAIN RATE) SCALE FACTOR. .=',1PG20.13/
274 & 5X,'YIELD SCALE FACTOR. . . . . . . . . . .=',1PG20.13)
275 1300 FORMAT(
276 & 5X,'MAXIMUM PLASTIC STRAIN. . . . . . . . .=',1PG20.13/
277 & 5X,'TENSILE FAILURE STRAIN 1. . . . . . . .=',1PG20.13/
278 & 5X,'TENSILE FAILURE STRAIN 2. . . . . . . .=',1PG20.13)
279 1400 FORMAT(
280 & 5X,'INITIAL TEMPERATURE . . . . . . . . . .=',1PG20.13/
281 & 5X,'HEAT CAPACITY PER VOLUME UNIT . . . . .=',1PG20.13/
282 & 5X,'YOUNG MODULUS SCALE FACTOR FUNCTION . .=',I10/
283 & 5X,'YOUNG MODULUS EINF. . . . . . . . . . .=',1PG20.13/
284 & 5X,'PARAMETER CE. . . . . . . . . . . . . .=',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