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

Function/Subroutine Documentation

◆ hm_read_mat53()

subroutine hm_read_mat53 ( 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(nsubmod), intent(in) lsubmodel,
dimension(npropm), intent(inout) pm,
integer, dimension(npropmi), intent(inout) ipm,
type(matparam_struct_), intent(inout) matparam )

Definition at line 38 of file hm_read_mat53.F.

42C-----------------------------------------------
43C D e s c r i p t i o n
44C-----------------------------------------------
45C READ MAT LAW53 WITH HM READER
46C
47C DUMMY ARGUMENTS DESCRIPTION:
48C ===================
49C
50C NAME DESCRIPTION
51C
52C PM MATERIAL ARRAY(REAL)
53C UNITAB UNITS ARRAY
54C ID MATERIAL ID(INTEGER)
55C TITR MATERIAL TITLE
56C LSUBMODEL SUBMODEL STRUCTURE
57C
58C-----------------------------------------------
59C M o d u l e s
60C-----------------------------------------------
61 USE unitab_mod
62 USE elbuftag_mod
63 USE message_mod
64 USE submodel_mod
65 USE matparam_def_mod
67C-----------------------------------------------
68C I m p l i c i t T y p e s
69C-----------------------------------------------
70#include "implicit_f.inc"
71C-----------------------------------------------
72C C o m m o n B l o c k s
73C-----------------------------------------------
74#include "units_c.inc"
75#include "param_c.inc"
76C-----------------------------------------------
77C D u m m y A r g u m e n t s
78C-----------------------------------------------
79 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
80 my_real, INTENT(INOUT) :: pm(npropm),parmat(100),uparam(maxuparam)
81 INTEGER, INTENT(INOUT) :: IPM(NPROPMI),ISRATE,IFUNC(MAXFUNC),NFUNC,MAXFUNC,MAXUPARAM,NUPARAM, NUVAR,IMATVIS
82 TYPE(MLAW_TAG_),INTENT(INOUT) :: MTAG
83 INTEGER,INTENT(IN) :: MAT_ID
84 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
85 TYPE(SUBMODEL_DATA),INTENT(IN) :: LSUBMODEL(NSUBMOD)
86 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
87C-----------------------------------------------
88C L o c a l V a r i a b l e s
89C-----------------------------------------------
91 . e11, e22, n12, g12, g23, g13,fac1,fac2,fac3,fac4,fac5,
92 . fac_l,fac_t,fac_m,fac_c,dmin,dmax,ssp
93 INTEGER NRATE,J,I,IFLAG
94 my_real :: rho0, rhor, fac_unit
95 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
96C-----------------------------------------------
97C S o u r c e L i n e s
98C-----------------------------------------------
99
100 is_encrypted = .false.
101 is_available = .false.
102 israte = 0
103 imatvis = 0
104 mtag%G_PLA = 1
105 mtag%L_PLA = 1
106
107 nuparam=10
108 nfunc = 5
109 nuvar = 6
110
111 CALL hm_option_is_encrypted(is_encrypted)
112 !line+1
113 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
114 CALL hm_get_floatv('Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
115 !line-2
116 CALL hm_get_floatv('MAT_E1' ,e11 ,is_available, lsubmodel, unitab)
117 CALL hm_get_floatv('MAT_E2' ,e22 ,is_available, lsubmodel, unitab)
118 !line-3
119 CALL hm_get_floatv('MAT_GAB' ,g12 ,is_available, lsubmodel, unitab)
120 CALL hm_get_floatv('MAT_GBC' ,g23 ,is_available, lsubmodel, unitab)
121 !line-4
122 CALL hm_get_intv ('FUN_A1' ,ifunc(1) ,is_available, lsubmodel)
123 CALL hm_get_intv ('FUN_B1' ,ifunc(2) ,is_available, lsubmodel)
124 CALL hm_get_intv ('FUN_A3' ,ifunc(3) ,is_available, lsubmodel)
125 CALL hm_get_intv ('FUN_A5' ,ifunc(4) ,is_available, lsubmodel)
126 CALL hm_get_intv ('FUN_A6' ,ifunc(5) ,is_available, lsubmodel)
127 iflag=0 !no longer read
128 !line-5
129 CALL hm_get_floatv('MAT_SFAC11' ,fac1 ,is_available, lsubmodel, unitab)
130 CALL hm_get_floatv('MAT_SFAC22' ,fac2 ,is_available, lsubmodel, unitab)
131 CALL hm_get_floatv('MAT_SFAC12' ,fac3 ,is_available, lsubmodel, unitab)
132 CALL hm_get_floatv('MAT_SFAC23' ,fac4 ,is_available, lsubmodel, unitab)
133 CALL hm_get_floatv('MAT_SFAC45' ,fac5 ,is_available, lsubmodel, unitab)
134 !units
135 CALL hm_get_floatv_dim('MAT_SFAC11' ,fac_unit ,is_available, lsubmodel, unitab)
136
137
138 !---DEFAULT VALUES
139 IF(rhor == zero)rhor=rho0
140 pm(1) = rhor
141 pm(89) = rho0
142 ssp = sqrt(max(e11,e22,g12,g23)/rho0)
143 pm(27) = ssp
144 IF (fac1 == zero) fac1 = one*fac_unit
145 IF (fac2 == zero) fac2 = one*fac_unit
146 IF (fac3 == zero) fac3 = one*fac_unit
147 IF (fac4 == zero) fac4 = one*fac_unit
148 IF (fac5 == zero) fac5 = one*fac_unit
149
150 !---STORAGE
151 uparam(1)=e11
152 uparam(2)=e22
153 uparam(3)=g12
154 uparam(4)=g23
155 uparam(5)=iflag
156 uparam(6)=fac1
157 uparam(7)=fac2
158 uparam(8)=fac3
159 uparam(9)=fac4
160 uparam(10)=fac5
161 !Formulation for solid elements time step computation.
162 parmat(1) = max(e11,e22,g12,g23)
163 parmat(2) = max(e11,e22)
164 parmat(16) = 1
165 dmin = e11*e22
166 dmax = max(e11,e22)
167 parmat(17) = dmin/dmax/dmax
168c
169 CALL init_mat_keyword(matparam,"COMPRESSIBLE")
170 CALL init_mat_keyword(matparam,"HOOK")
171 CALL init_mat_keyword(matparam,"ORTHOTROPIC")
172c
173 ! Properties compatibility
174 CALL init_mat_keyword(matparam,"SOLID_ORTHOTROPIC")
175c
176 !---LISTING OUTPUT
177 WRITE(iout,1001) trim(titr),mat_id,53
178 WRITE(iout,1000)
179 IF(is_encrypted)THEN
180 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
181 ELSE
182 WRITE(iout,1002) rho0
183 WRITE(iout,1100)e11,e22,g12,g23,(ifunc(i),i=1,5)
184 WRITE(iout,1200)fac1,fac2,fac3,fac4,fac5
185 ENDIF
186
187 !---OUTPUT FORMAT
188
189 1000 FORMAT(
190 & 5x,30h /mat/law53 (tsai_tab) ,/,
191 & 5x,30h ------------- ,//)
192 1001 FORMAT(
193 & 5x,a,/,
194 & 5x,'MATERIAL NUMBER . . . . . . . . . . . . =',i10/,
195 & 5x,'MATERIAL LAW. . . . . . . . . . . . . . =',i10/)
196 1002 FORMAT(
197 & 5x,'INITIAL DENSITY . . . . . . . . . . . . =',1pg20.13/)
198 1100 FORMAT(
199 & 5x,'E11 . . . . . . . . . . . . . . . . . .=',1pg20.13/
200 & 5x,'E22 . . . . . . . . . . . . . . . . . .=',1pg20.13/
201 & 5x,'G12 . . . . . . . . . . . . . . . . . .=',1pg20.13/
202 & 5x,'G23 . . . . . . . . . . . . . . . . . .=',1pg20.13/
203 & 5x,'YIELD STRESS 11 FUNCTION NUMBER . . . .=',i10/
204 & 5x,'YIELD STRESS 22 FUNCTION NUMBER . . . .=',i10/
205 & 5x,'YIELD STRESS 12 FUNCTION NUMBER . . . .=',i10/
206 & 5x,'YIELD STRESS 23 FUNCTION NUMBER . . . .=',i10/
207 & 5x,'YIELD STRESS 45 FUNCTION NUMBER . . . .=',i10)
208 1200 FORMAT(
209 & 5x,'STRESS 11 FUNCTION SCALE FACTOR . . . .=',1pg20.13/
210 & 5x,'STRESS 22 FUNCTION SCALE FACTOR . . . .=',1pg20.13/
211 & 5x,'STRESS 33 FUNCTION SCALE FACTOR . . . .=',1pg20.13/
212 & 5x,'STRESS 12 FUNCTION SCALE FACTOR . . . .=',1pg20.13/
213 & 5x,'STRESS 23 FUNCTION SCALE FACTOR . . . .=',1pg20.13/
214 & 5x,'STRESS 45 FUNCTION SCALE FACTOR . . . .=',1pg20.13//)
215
216
217 RETURN
#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)
#define max(a, b)
Definition macros.h:21
integer, parameter nchartitle