42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
65 USE matparam_def_mod
67
68
69
70#include "implicit_f.inc"
71
72
73
74#include "units_c.inc"
75#include "param_c.inc"
76
77
78
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(*)
86 TYPE(MATPARAM_STRUCT_) ,INTENT(INOUT) :: MATPARAM
87
88
89
91 . w, d, pcj, e0, p0, c1, vcj,c,
92 . eadd, tbegin, tend, psh,rhor,rho0,
93 . a(5),
94 . r(5),
95 . al(5),
96 . bl(5),
97 . rl(5)
98 INTEGER :: IBFRAC, I
99 LOGICAL IS_AVAILABLE,IS_ENCRYPTED
100
101
102
103 is_encrypted = .false.
104 is_available = .false.
105 imatvis = 0
106 israte=0
107
108 nuvar = 5
109
110
111 mtag%G_TB = 1
112 mtag%G_TEMP = 1
113 mtag%G_BFRAC = 1
114 mtag%G_ABURN = 1
115 mtag%L_TB = 1
116 mtag%L_TEMP = 1
117 mtag%L_BFRAC = 1
118 mtag%L_ABURN = 1
119 mtag%L_SSP = 1
120 mtag%L_EINT = 1
121 mtag%G_EINT = 1
122 mtag%L_VK = 1
123
124
125 ibfrac = 0
126 psh = zero
127 p0 = zero
128 d = zero
129 pcj = zero
130 e0 = zero
131 w = zero
132 c = zero
133 a(1:5) = zero
134 r(1:5) = zero
135 al(1:5) = zero
136 bl(1:5) = zero
137 rl(1:5) = zero
138
139
140
142
143 CALL hm_get_floatv(
'MAT_RHO' ,rho0 ,is_available, lsubmodel, unitab)
144 CALL hm_get_floatv(
'Refer_Rho' ,rhor ,is_available, lsubmodel, unitab)
145
146 CALL hm_get_floatv(
'MAT_P0' , p0 ,is_available, lsubmodel, unitab)
147 CALL hm_get_floatv(
'MAT_PSH' , psh ,is_available, lsubmodel, unitab)
148 CALL hm_get_intv(
'MAT_IBFRAC' ,ibfrac ,is_available, lsubmodel)
149
150 CALL hm_get_floatv(
'MLAW97_D' , d ,is_available, lsubmodel, unitab)
151 CALL hm_get_floatv(
'MLAW97_PCJ' , pcj ,is_available, lsubmodel, unitab)
152 CALL hm_get_floatv(
'MLAW97_E0' , e0 ,is_available, lsubmodel, unitab)
153 CALL hm_get_floatv(
'Omega' , w ,is_available, lsubmodel, unitab)
154 CALL hm_get_floatv(
'MLAW97_C' , c ,is_available, lsubmodel, unitab)
155
156 CALL hm_get_floatv(
'MLAW97_A1' ,a(1) ,is_available, lsubmodel, unitab)
157 CALL hm_get_floatv(
'MLAW97_A2' ,a(2) ,is_available, lsubmodel, unitab)
158 CALL hm_get_floatv(
'MLAW97_A3' ,a(3) ,is_available, lsubmodel, unitab)
159 CALL hm_get_floatv(
'MLAW97_A4' ,a(4) ,is_available, lsubmodel, unitab)
160 CALL hm_get_floatv(
'MLAW97_A5' ,a(5) ,is_available, lsubmodel, unitab)
161
162 CALL hm_get_floatv(
'MLAW97_R1' ,r(1) ,is_available, lsubmodel, unitab)
163 CALL hm_get_floatv(
'MLAW97_R2' ,r(2) ,is_available, lsubmodel, unitab)
164 CALL hm_get_floatv(
'MLAW97_R3' ,r(3) ,is_available, lsubmodel, unitab)
165 CALL hm_get_floatv(
'MLAW97_R4' ,r(4) ,is_available, lsubmodel, unitab)
166 CALL hm_get_floatv(
'MLAW97_R5' ,r(5) ,is_available, lsubmodel, unitab)
167
168 CALL hm_get_floatv(
'MLAW97_AL1' ,al(1) ,is_available, lsubmodel, unitab)
169 CALL hm_get_floatv(
'MLAW97_AL2' ,al(2) ,is_available, lsubmodel, unitab)
170 CALL hm_get_floatv(
'MLAW97_AL3' ,al(3) ,is_available, lsubmodel, unitab)
171 CALL hm_get_floatv(
'MLAW97_AL4' ,al(4) ,is_available, lsubmodel, unitab)
172 CALL hm_get_floatv(
'MLAW97_AL5' ,al(5) ,is_available, lsubmodel, unitab)
173
174 CALL hm_get_floatv(
'MLAW97_BL1' ,bl(1) ,is_available, lsubmodel, unitab)
175 CALL hm_get_floatv(
'MLAW97_BL2' ,bl(2) ,is_available, lsubmodel, unitab)
176 CALL hm_get_floatv(
'MLAW97_BL3' ,bl(3) ,is_available, lsubmodel, unitab)
177 CALL hm_get_floatv(
'MLAW97_BL4' ,bl(4) ,is_available, lsubmodel, unitab)
178 CALL hm_get_floatv(
'MLAW97_BL5' ,bl(5) ,is_available, lsubmodel, unitab)
179
180 CALL hm_get_floatv(
'MLAW97_RL1' ,rl(1) ,is_available, lsubmodel, unitab)
181 CALL hm_get_floatv(
'MLAW97_RL2' ,rl(2) ,is_available, lsubmodel, unitab)
182 CALL hm_get_floatv(
'MLAW97_RL3' ,rl(3) ,is_available, lsubmodel, unitab)
183 CALL hm_get_floatv(
'MLAW97_RL4' ,rl(4) ,is_available, lsubmodel, unitab)
184 CALL hm_get_floatv(
'MLAW97_RL5' ,rl(5) ,is_available, lsubmodel, unitab)
185
186
187 IF(rhor==zero)rhor=rho0
188 pm(1) =rhor
189 pm(89)=rho0
190
191
192 IF(w==zero)THEN
194 . msgid = 77 ,
195 . msgtype = msgerror ,
196 . anmode = aninfo_blind,
197 . i1 = mat_id
198 . )
199 ENDIF
200
201 DO i=1,5
202 IF (a(i)==zero)THEN
203 r(i)=one
204 ENDIF
205 IF(r(i)==zero)THEN
207 . msgid = 76 ,
208 . msgtype = msgerror ,
209 . anmode = aninfo_blind,
210 . i1 = mat_id
211 . )
212 ENDIF
213 ENDDO
214
215
216 uparam(01) = p0
217 uparam(02) = psh
218 uparam(03) = ibfrac
219 uparam(04) = d
220 uparam(05) = pcj
221 uparam(06) = e0
222 uparam(07) = w
223 uparam(08) = c
224 uparam(09:13) = a(1:5)
225 uparam(14:18) = r(1:5)
226 uparam(19:23) = al(1:5)
227 uparam(24:28) = bl(1:5)
228 uparam(29:33) = rl(1:5)
229 uparam(34) = rho0*d**2/pcj
230 vcj = one-one/uparam(34)
231 uparam(35) = vcj
232 nuparam = 35
233 nfunc = 0
234 parmat(1) = w*(pcj+e0)
235 pm(38) = d
236
237
238 pm(31)=p0
239 pm(104)=p0
240
241
242 pm(27)=d
243
244
245
246
248
249
251
252
255
256
257 WRITE(iout,1100) trim(titr),mat_id,97
258 WRITE(iout,1000)
259 IF(is_encrypted)THEN
260 WRITE(iout,'(5X,A,//)')'CONFIDENTIAL DATA'
261 ELSE
262 WRITE(iout,1200) rho0
263 WRITE(iout,1400) w,c,d,pcj,vcj,e0,p0,psh,ibfrac
264 WRITE(iout,1300) a(1:5)
265 WRITE(iout,1301) r(1:5)
266 WRITE(iout,1302)al(1:5)
267 WRITE(iout,1303)bl(1:5)
268 WRITE(iout,1304)rl(1:5)
269 ENDIF
270
271
272
273 RETURN
274
275
276
277 1000 FORMAT(
278 & 5x,' J.W.L.B. EXPLOSIVE ',/,
279 & 5x,' ------------------ ',//)
280 1100 FORMAT(/
281 & 5x,a,/,
282 & 5x,'MATERIAL NUMBER . . . . . . . . . . . .=',i10/,
283 & 5x,'MATERIAL LAW. . . . . . . . . . . . . .=',i10/)
284 1200 FORMAT(
285 & 5x,'INITIAL DENSITY . . . . . . . . . . . .=',1pg20.13/)
286 1300 FORMAT(
287 & 5x,'A1. . . . . . . . . . . . . . . . . . .=',e12.4/,
288 & 5x,'A2. . . . . . . . . . . . . . . . . . .=',e12.4/,
289 & 5x,'A3. . . . . . . . . . . . . . . . . . .=',e12.4/,
290 & 5x,'A4. . . . . . . . . . . . . . . . . . .=',e12.4/,
291 & 5x,'A5. . . . . . . . . . . . . . . . . . .=',e12.4//)
292 1301 FORMAT(
293 & 5x,'R1. . . . . . . . . . . . . . . . . . .=',e12.4/,
294 & 5x,'R2. . . . . . . . . . . . . . . . . . .=',e12.4/,
295 & 5x,'R3. . . . . . . . . . . . . . . . . . .=',e12.4/,
296 & 5x,'R4. . . . . . . . . . . . . . . . . . .=',e12.4/,
297 & 5x,'R5. . . . . . . . . . . . . . . . . . .=',e12.4//)
298 1302 FORMAT(
299 & 5x,'AL1 . . . . . . . . . . . . . . . . . .=',e12.4/,
300 & 5x,'AL2 . . . . . . . . . . . . . . . . . .=',e12.4/,
301 & 5x,'AL3 . . . . . . . . . . . . . . . . . .=',e12.4/,
302 & 5x,'AL4 . . . . . . . . . . . . . . . . . .=',e12.4/,
303 & 5x,'AL5 . . . . . . . . . . . . . . . . . .=',e12.4//)
304 1303 FORMAT(
305 & 5x,'BL1 . . . . . . . . . . . . . . . . . .=',e12.4/,
306 & 5x,'BL2 . . . . . . . . . . . . . . . . . .=',e12.4/,
307 & 5x,'BL3 . . . . . . . . . . . . . . . . . .=',e12.4/,
308 & 5x,'BL4 . . . . . . . . . . . . . . . . . .=',e12.4/,
309 & 5x,'BL5 . . . . . . . . . . . . . . . . . .=',e12.4//)
310 1304 FORMAT(
311 & 5x,'RL1 . . . . . . . . . . . . . . . . . .=',e12.4/,
312 & 5x,'RL2 . . . . . . . . . . . . . . . . . .=',e12.4/,
313 & 5x,'RL3 . . . . . . . . . . . . . . . . . .=',e12.4/,
314 & 5x,'RL4 . . . . . . . . . . . . . . . . . .=',e12.4/,
315 & 5x,'RL5 . . . . . . . . . . . . . . . . . .=',e12.4//)
316 1400 FORMAT(
317 & 5x,'OMEGA . . . . . . . . . . . . . . . . .=',e12.4/,
318 & 5x,'C PARAMETER . . . . . . . . . . . . . .=',e12.4/,
319 & 5x,'DETONATION VELOCITY . . . . . . . . . .=',e12.4/,
320 & 5x,'CHAPMAN JOUGUET PRESSURE. . . . . . . .=',e12.4/,
321 & 5x,'CHAPMAN JOUGUET VOLUME. . . . . . . . .=',e12.4/,
322 & 5x,'INITIAL ENERGY PER UNIT VOLUME. . . . .=',e12.4/,
323 & 5x,'INITIAL PRESSURE. . . . . . . . . . . .=',e12.4/,
324 & 5x,'PRESSURE SHIFT. . . . . . . . . . . . .=',e12.4/,
325 & 5x,'BURN FRACTION METHOD. . . . . . . . . .=',i10/)
326
327
328
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 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)