59
60
61
62
63
64
65
66
67
68
69
70
71
75 USE multi_fvm_mod
81 USE mat_elem_mod
82 USE hm_read_mat_mod
83 use hm_read_therm_stress_mod
84
85
86
87#include "implicit_f.inc"
88
89
90
91#include "param_c.inc"
92#include "tablen_c.inc"
93#include "units_c.inc"
94#include "com01_c.inc"
95#include "com04_c.inc"
96#include "scr19_c.inc"
97
98
99
100 INTEGER ,INTENT(IN) :: LTITR
101 INTEGER ,INTENT(IN) :: USERL_AVAIL
102 INTEGER ,INTENT(IN) :: SBUFMAT
103 INTEGER ,INTENT(INOUT) :: MAT_NUMBER
104 INTEGER ,INTENT(INOUT) :: BUFLEN
105 INTEGER ,DIMENSION(NPROPMI,NUMMAT), INTENT(INOUT) :: IPM
106 my_real ,
DIMENSION(NPROPM ,NUMMAT),
INTENT(INOUT) :: pm
107 my_real ,
DIMENSION(SBUFMAT) ,
INTENT(INOUT) :: bufmat
108 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
109 TYPE(MLAW_TAG_) , DIMENSION(NUMMAT) , INTENT(INOUT) :: MLAW_TAG
110 TYPE(EOS_TAG_) ,DIMENSION(0:MAXEOS) , INTENT(INOUT) :: EOS_TAG
111 TYPE(FAIL_TAG_) ,DIMENSION(0:MAXFAIL), INTENT(INOUT) :: FAIL_TAG
112 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
113 TYPE(FAILWAVE_STR_) :: FAILWAVE
114 TYPE(NLOCAL_STR_) :: NLOC_DMG
115 TYPE(SUBMODEL_DATA) ,INTENT(IN) :: LSUBMODEL(NSUBMOD)
116 TYPE(TTABLE) ,DIMENSION(NTABLE) :: TABLE
117 TYPE(MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
118 INTEGER,INTENT(IN) :: SNPC, NPTS
119 INTEGER,INTENT(IN) :: NPC(SNPC)
121
122
123
124 INTEGER :: IADBUF,ILAW
125 CHARACTER MESS*40
126
127 DATA iadbuf /1/
128 DATA mess/'MATERIAL DEFINITION '/
129
130
131
133
134
137
138 ilaw = 0
139 buflen = 0
140 ilag = 0
141 iale = 0
142 ieuler = 0
143 iturb = 0
144
145 pm(1:100,nummat)=zero
146 multi_fvm%NBMAT = 0
147 failwave%WAVE_MOD = 0
148 failwave%NDDL = 0
149
150
151 IF (nummat == 1) THEN
152 ilag=1
153 RETURN
154 ENDIF
155
156
157 WRITE(iout,1000)nummat-1
158
159
160
161
162 CALL hm_read_mat(
163 . mat_elem%MAT_PARAM ,mlaw_tag ,eos_tag ,bufmat ,
164 . buflen ,iadbuf ,ipm ,pm ,
165 . multi_fvm ,unitab ,lsubmodel ,table ,
166 . sbufmat ,npropmi ,npropm ,trimat ,
167 . ialelag ,ntable ,nummat ,hm_nummat ,
168 . ltitr ,userl_avail,mat_number )
169
170
171
172
173 CALL hm_read_eos(mat_elem%MAT_PARAM ,ipm ,pm ,bufmat ,nummat, nfunct,
174 . buflen ,iadbuf ,eos_tag ,unitab ,lsubmodel,
175 . mlaw_tag ,npc ,tf ,snpc ,npts ,sbufmat,
176 . ntable ,table)
177
178
179
180
181 CALL hm_read_fail(mat_elem%MAT_PARAM,nummat,maxfail ,fail_tag,
182 . ntable ,table ,failwave ,nloc_dmg,
183 . unitab ,lsubmodel)
184
185
186
187
189 . unitab ,lsubmodel ,table )
190
191
192
193
195
196
197
198
200
201
202
203
205
206
207
208
209 CALL fill_buffer_51_0(mat_elem%MAT_PARAM, ipm, pm, bufmat, mat_elem%MAT_PARAM, mlaw_tag )
210
211
212
213
214 CALL hm_read_therm(mat_elem%MAT_PARAM,bufmat, buflen, ipm, pm, unitab, lsubmodel)
215
216
217
218
219 CALL hm_read_therm_stress(nummat ,mat_elem%MAT_PARAM,mlaw_tag, unitab, lsubmodel,
220 . iout ,npropm ,npropmi ,ipm ,pm )
221
222
223
224
225 CALL hm_read_nonlocal(mat_elem%MAT_PARAM,nloc_dmg ,mlaw_tag ,ipm, unitab, lsubmodel)
226
227
228
229
230
231
232 IF (multi_fvm%IS_USED) THEN
233
234
237 ENDIF
238
239
240 RETURN
241
242 1000 FORMAT(//
243 . ' MATERIAL LAWS'/
244 . ' -------------'/,
245 . ' NUMBER OF MATERIALS. . . . . . . . . =',i10//)
246
subroutine fill_buffer_51_0(matparam_tab, ipm, pm, bufmat, mat_param, mlaw_tag)
subroutine hm_read_eos(mat_param, ipm, pm, bufmat, nummat, nfunct, buflen, iadbuf, eos_tag, unitab, lsubmodel, mlaw_tag, npc, tf, snpc, npts, sbufmat, ntable, table)
subroutine hm_read_fail(mat_param, nummat, maxfail, fail_tag, ntable, table, failwave, nloc_dmg, unitab, lsubmodel)
subroutine hm_read_leak(ipm, pm, unitab, lsubmodel)
subroutine hm_read_nonlocal(mat_param, nloc_dmg, mlaw_tag, ipm, unitab, lsubmodel)
subroutine hm_read_therm(mat_param, bufmat, buflen, ipm, pm, unitab, lsubmodel)
subroutine hm_read_visc(mat_param, ipm, bufmat, unitab, lsubmodel, table)
subroutine ini_eos_vars(eos_tag)
subroutine ini_mat_elem(mat_elem)
subroutine ini_mlaw_vars(mlaw_tag, nummat)
subroutine multi_check_eos(multi_fvm, nummat, npropmi, npropm, ipm, pm)
subroutine multi_check_psh(multi_fvm, nummat, npropmi, npropm, ipm, pm)
subroutine read_ale_mat(lsubmodel, unitab, ipm, pm)
subroutine read_euler_mat(lsubmodel, unitab, ipm, pm)