OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_mat18.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| hm_read_mat18 ../starter/source/materials/mat/mat018/hm_read_mat18.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_mat ../starter/source/materials/mat/hm_read_mat.F90
27!||--- calls -----------------------------------------------------
28!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.f
29!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
30!|| hm_option_is_encrypted ../starter/source/devtools/hm_reader/hm_option_is_encrypted.F
31!|| init_mat_keyword ../starter/source/materials/mat/init_mat_keyword.F
32!||--- uses -----------------------------------------------------
33!|| elbuftag_mod ../starter/share/modules1/elbuftag_mod.F
34!|| message_mod ../starter/share/message_module/message_mod.F
35!|| submodel_mod ../starter/share/modules1/submodel_mod.F
36!||====================================================================
37 SUBROUTINE hm_read_mat18(
38 . NUPARAM ,NUVAR ,NFUNC ,MAT_ID ,TITR ,
39 . UNITAB ,LSUBMODEL,MTAG ,PM ,IPM ,
40 . JTHE ,MATPARAM )
41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE elbuftag_mod
45 USE message_mod
46 USE submodel_mod
47 USE matparam_def_mod
48 USE unitab_mod
50C-----------------------------------------------
51C ROUTINE DESCRIPTION :
52C ===================
53C READ MAT LAW18 WITH HM READER
54C-----------------------------------------------
55C I m p l i c i t T y p e s
56C-----------------------------------------------
57#include "implicit_f.inc"
58C-----------------------------------------------
59C C o m m o n B l o c k s
60C-----------------------------------------------
61#include "units_c.inc"
62#include "param_c.inc"
63C-----------------------------------------------
64C D u m m y A r g u m e n t s
65C-----------------------------------------------
66 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
67 TYPE(SUBMODEL_DATA), DIMENSION(NSUBMOD),INTENT(IN) :: LSUBMODEL
68 TYPE(UNIT_TYPE_), INTENT(in) :: UNITAB
69 INTEGER, INTENT(IN) :: MAT_ID
70 INTEGER, INTENT(INOUT) :: IPM(NPROPMI)
71 my_real, INTENT(INOUT) :: pm(npropm)
72 INTEGER, INTENT(INOUT) :: NUPARAM,NUVAR,NFUNC,JTHE
73 TYPE(MLAW_TAG_) ,INTENT(INOUT) :: MTAG
74 TYPE(matparam_struct_) ,INTENT(INOUT) :: MATPARAM
75C-----------------------------------------------
76C L o c a l V a r i a b l e s
77C-----------------------------------------------
78 LOGICAL :: IS_AVAILABLE,IS_ENCRYPTED
79 INTEGER :: ILAW,ITF,ISPH,IAS
80 my_real :: RHOR,RHO0,T0,SPH,AS,BS,E0,TIMESCAL,TSCAL,ESCAL,KSCAL
81C=======================================================================
82 is_encrypted = .false.
83 is_available = .false.
84 ilaw = 18
85 jthe = 1
86c--------------------------------------------------
87c Check crypting option
88c--------------------------------------------------
89c
90 CALL hm_option_is_encrypted(is_encrypted)
91c
92c--------------------------------------------------
93c Read input Parameters
94c--------------------------------------------------
95 CALL hm_get_floatv('MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
96 CALL hm_get_floatv('Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
97c
98 CALL hm_get_floatv('MAT_SPHEAT',sph ,is_available, lsubmodel, unitab)
99 CALL hm_get_floatv('MAT_A' ,as ,is_available, lsubmodel, unitab)
100 CALL hm_get_floatv('MAT_B' ,bs ,is_available, lsubmodel, unitab)
101c
102 CALL hm_get_intv ('Xt_fun' ,itf ,is_available, lsubmodel)
103 CALL hm_get_floatv('MAT_T0' ,t0 ,is_available, lsubmodel, unitab)
104 CALL hm_get_floatv('SCALE' ,timescal ,is_available, lsubmodel, unitab)
105c
106 CALL hm_get_intv ('FUN_A1' ,isph ,is_available, lsubmodel)
107 CALL hm_get_intv ('FUN_A2' ,ias ,is_available, lsubmodel)
108 CALL hm_get_floatv('FScale11' ,tscal ,is_available, lsubmodel, unitab)
109 CALL hm_get_floatv('FScale22' ,escal ,is_available, lsubmodel, unitab)
110 CALL hm_get_floatv('FScale33' ,kscal ,is_available, lsubmodel, unitab)
111c--------------------------------------------------
112c DEFAULT VALUES
113c--------------------------------------------------
114c
115 IF (timescal == zero) THEN
116 timescal = one
117 ENDIF
118 IF (tscal == zero) THEN
119 tscal = one
120 ENDIF
121 IF (escal == zero) THEN
122 escal = one
123 ENDIF
124 IF (kscal == zero) THEN
125 kscal = one
126 ENDIF
127 timescal = one / timescal
128 escal = one / escal
129 IF (t0 == zero) t0 = three100
130 e0 = t0*sph
131c
132c------------------
133 nfunc = 0
134 nuparam = 0
135 nuvar = 0
136c------------------
137c
138 ipm(10)= 3 ! Nfunc
139 ipm(11)= itf
140 ipm(12)= isph
141 ipm(13)= ias
142c
143 pm(23) = e0
144 pm(41) = timescal
145 pm(42) = tscal
146 pm(43) = escal
147 pm(44) = kscal
148 pm(71) = jthe+em01
149 pm(72) = zero
150 pm(69) = sph
151 pm(75) = as
152 pm(76) = bs
153 pm(79) = t0
154 pm(80) = infinity
155c---
156 pm(1) = rhor
157 pm(89) = rho0
158c--------------------------
159c
160c---- Definition des variables internes (stockage elementaire)
161c
162 mtag%G_TEMP = 1
163 mtag%G_DELTAX = 1
164 mtag%L_TEMP = 1
165 mtag%L_DELTAX = 1
166
167 ! MATPARM keywords
168
169 ! EOS/Thermo keyword for pressure treatment in elements
170 CALL init_mat_keyword(matparam,"HYDRO_EOS")
171
172 CALL init_mat_keyword(matparam,"INCOMPRESSIBLE")
173
174 ! Properties compatibility
175 CALL init_mat_keyword(matparam,"SOLID_ORTHOTROPIC")
176c--------------------------------------------------
177c Starter output
178c--------------------------------------------------
179 WRITE(iout,1000) trim(titr),mat_id,ilaw
180 WRITE(iout,1100)
181 IF (is_encrypted) THEN
182 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
183 ELSE
184 WRITE(iout,1200) rho0,rhor
185 IF (itf > 0) WRITE(iout,1300) itf
186 WRITE(iout,1400) t0,sph,as,bs,isph,ias
187 ENDIF
188c-----------------------------------------------------------------------
189 1000 FORMAT(/
190 & 5x,a,/,
191 & 5x,'MATERIAL NUMBER. . . . . . . . . . . . . . .=',i10/,
192 & 5x,'MATERIAL LAW . . . . . . . . . . . . . . . .=',i10/)
193 1100 FORMAT(
194 & 5x,' THERMAL MATERIAL ',/,
195 & 5x,'-------------------- ',/)
196 1200 FORMAT(
197 & 5x,'INITIAL DENSITY . . . . . . . . . . . . . .=',1pg20.13/,
198 & 5x,'REFERENCE DENSITY. . . . . . . . . . . . . .=',1pg20.13/)
199 1300 FORMAT(
200 & 5x,'TEMPERATURE LOAD CURVE . . . . . . . . . . .=',i10/)
201 1400 FORMAT(
202 & 5x,'T0 . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
203 & 5x,'SPECIFIC HEAT. . . . . . . . . . . . . . . .=',1pg20.13/,
204 & 5x,'AS . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
205 & 5x,'BS . . . . . . . . . . . . . . . . . . . . .=',1pg20.13/,
206 & 5x,'CONDUCTIVITY CURVE NUMBER. . . . . . . . . .=',i10/,
207 & 5x,'TEMPERATURE VERSUS ENERGY CURVE NUMBER . . .=',i10/)
208c--------------------------------------------------
209 RETURN
210 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine hm_read_mat18(nuparam, nuvar, nfunc, mat_id, titr, unitab, lsubmodel, mtag, pm, ipm, jthe, matparam)
subroutine init_mat_keyword(matparam, keyword)
integer, parameter nchartitle
program starter
Definition starter.F:39