38 . NUVAR ,IFUNC ,MAXFUNC ,NFUNC , PARMAT ,
39 . UNITAB ,MAT_ID ,TITR ,MTAG , LSUBMODEL,
40 . PM ,IPM ,UID ,MATPARAM )
69#include "implicit_f.inc"
78 my_real,
INTENT(INOUT) :: pm(npropm
79 INTEGER,
INTENT(INOUT) :: (NPROPMI),ISRATE,IFUNC(MAXFUNC),,MAXFUNC,MAXUPARAM,NUPARAM, ,IMATVIS
80 INTEGER,
INTENT(IN) :: UID
82 INTEGER,
INTENT(IN) :: MAT_ID
83 CHARACTER(LEN=NCHARTITLE) ,
INTENT(IN) :: TITR
86 TYPE(matparam_struct_),
INTENT(INOUT) :: MATPARAM
91 . a, b, r1, r2, w, d, pcj, e0, c0, c1, vcj,
93 . psh,reaction_rate,reaction_rate2,a_mil,m_mil,n_mil,alpha_unit,
95 INTEGER :: IBID, IBFRAC, QOPT, I_ERROR, IFLAGUNIT, J
97 LOGICAL :: IS_AVAILABLE,
110 reaction_rate2 = zero
120 is_encrypted = .false.
121 is_available = .false.
128 IF (unitab%UNIT_ID(j) == uid)
THEN
137 CALL hm_get_floatv(
'MAT_RHO', rho0, is_available, lsubmodel, unitab)
138 CALL hm_get_floatv(
'Refer_Rho', rhor, is_available, lsubmodel, unitab)
140 CALL hm_get_floatv(
'MAT_A', a, is_available, lsubmodel, unitab)
141 CALL hm_get_floatv(
'MAT_B', b, is_available, lsubmodel, unitab)
142 CALL hm_get_floatv(
'MAT_PDIR1', r1, is_available, lsubmodel, unitab)
143 CALL hm_get_floatv(
'MAT_PDIR2', r2, is_available, lsubmodel, unitab)
144 CALL hm_get_floatv(
'Omega', w, is_available, lsubmodel, unitab)
146 CALL hm_get_floatv(
'MAT_D', d, is_available, lsubmodel, unitab)
147 CALL hm_get_floatv(
'MAT_PC', pcj, is_available, lsubmodel, unitab)
148 CALL hm_get_floatv(
'MAT_E0', e0, is_available, lsubmodel, unitab)
149 CALL hm_get_floatv(
'MAT_E', eadd, is_available, lsubmodel, unitab)
150 CALL hm_get_intv(
'MAT_IBFRAC', ibfrac, is_available, lsubmodel)
151 CALL hm_get_intv(
'QOPT', qopt, is_available, lsubmodel)
153 IF(qopt < 0 .OR. qopt > 3)
THEN
158 CALL hm_get_floatv('law5_p0
', C0, IS_AVAILABLE, LSUBMODEL, UNITAB)
159 CALL HM_GET_FLOATV('law5_psh
', PSH, IS_AVAILABLE, LSUBMODEL, UNITAB)
160 CALL HM_GET_FLOATV('bunreacted
', BULK, IS_AVAILABLE, LSUBMODEL, UNITAB)
163.OR..OR..AND.
IF((QOPT == 0 QOPT == 1 QOPT == 2) EADD > 0)THEN
165 CALL HM_GET_FLOATV('tstart
', TBEGIN, IS_AVAILABLE, LSUBMODEL, UNITAB)
166 CALL HM_GET_FLOATV('tstop
', TEND, IS_AVAILABLE, LSUBMODEL, UNITAB)
167 IF(TEND==ZERO) TEND=INFINITY
170 !Dirac function release : this means instantaneous
174.AND.
ELSEIF(QOPT == 3 EADD > 0)THEN
175 CALL HM_GET_FLOATV('law5_a
', A_MIL, IS_AVAILABLE, LSUBMODEL, UNITAB)
176 CALL HM_GET_FLOATV('law5_m
', M_MIL, IS_AVAILABLE, LSUBMODEL, UNITAB)
177 CALL HM_GET_FLOATV('law5_n
', N_MIL, IS_AVAILABLE, LSUBMODEL, UNITAB)
180 !========AFTERBURNING REACTION RATE===========!
182 REACTION_RATE2 = ZERO
187 REACTION_RATE2 = ZERO
189 !---CONSTANT AFTERBURNING RATE
190 REACTION_RATE = ONE/(TEND-TBEGIN)
191 REACTION_RATE2 = ZERO
193 !---LINEAR AFTERBURNING RATE
194 REACTION_RATE = TWO/(TEND-TBEGIN)**2
195 REACTION_RATE2 = TBEGIN**2/(TEND-TBEGIN)**2
197 !---MILLER S EXTENSION
199 REACTION_RATE2 = ZERO
200 IF(ALPHA_UNIT == ZERO)ALPHA_UNIT=ONE
207 !========C1: MODULE EQUIVALENT POUR LES RIGIDITES D'interfaces
215 IF(rhor == zero)rhor=rho0
230 pm(40) = pm(1)*d**2/pcj
240 pm(163) = reaction_rate
244 pm(167) = reaction_rate2
268 WRITE(iout,1001) trim(titr),mat_id,5
271 WRITE(iout,'(5x,a,//)
')'confidential data
'
273 WRITE(IOUT,1002)RHO0,RHOR
274 WRITE(IOUT,1300)A,B,R1,R2,W
275 WRITE(IOUT,1400)D,PCJ,VCJ,E0,C0,PSH,BULK,IBFRAC
276 !AFTERBURNING OPTIONAL MODEL
277 IF(EADD == ZERO) THEN
281 WRITE(IOUT,1504)EADD,TBEGIN
282 ELSEIF(QOPT == 1) THEN
283 WRITE(IOUT,1501)EADD,TBEGIN,TEND
284 ELSEIF(QOPT == 2) THEN
285 WRITE(IOUT,1502)EADD,TBEGIN,TEND
286 ELSEIF(QOPT == 3) THEN
287 WRITE(IOUT,1503)EADD,A_MIL,M_MIL,N_MIL, ALPHA_UNIT
294 & 5X,' j.w.l. explosive
',/,
295 & 5X,' ----------------
',//)
298 & 5X,'material number . . . . . . . . . . . . =
',I10/,
299 & 5X,'material law. . . . . . . . . . . . . . =
',I10/)
301 & 5X,'initial density . . . . . . . . . . . . =
',1PG20.13/,
302 & 5X,'reference density . . . . . . . . . . . =
',1PG20.13/)
304 & 5X,'a . . . . . . . . . . . . . . . . . . .=
',E12.4/,
305 & 5X,'b . . . . . . . . . . . . . . . . . . .=
',E12.4/,
306 & 5X,'r1. . . . . . . . . . . . . . . . . . .=
',E12.4/,
307 & 5X,'r2. . . . . . . . . . . . . . . . . . .=
',E12.4/,
308 & 5X,'w . . . . . . . . . . . . . . . . . . .=
',E12.4//)
310 & 5X,'detonation velocity . . . . . . . . . .=
',E12.4/,
311 & 5X,'chapman jouguet pressure. . . . . . . .=
',E12.4/,
312 & 5X,'chapman jouguet volume. . . . . . . . .=
',E12.4/,
313 & 5X,'initial energy per unit volume. . . . .=
',E12.4/,
314 & 5X,'initial pressure of unreacted explo.. .=
',E12.4/,
315 & 5X,'pressure shift. . . . . . . . . . . . .=
',E12.4/,
316 & 5X,'unreacted explosive bulk modulus. . . .=
',E12.4/,
317 & 5X,'burn fraction method. . . . . . . . . .=
',I12/)
319 & 5X,'no afterburning modeling
'//)
321 & 5X,'afterburning model : constant reaction rate
',/,
322 & 5X,'additional energy per unit volume . . .=
',E12.4/,
323 & 5X,'begin time. . . . . . . . . . . . . . .=
',E12.4/,
324 & 5X,'END TIME. . . . . . . . . . . . . . . .=
',E12.4//)
326 & 5X,'AFTERBURNING : LINEAR REACTION RATE
',/,
327 & 5X,'ADDITIONAL ENERGY PER UNIT VOLUME . . .=
',E12.4/,
328 & 5X,'BEGIN TIME. . . . . . . . . . . . . . .=
',E12.4/,
329 & 5X,'END TIME. . . . . . . . . . . . . . . .=
',E12.4//)
331 & 5X,'AFTERBURNING : MILLER S EXTENSION
',/,
332 & 5X,'ADDITIONAL ENERGY PER UNIT VOLUME . . .=
',E12.4/,
333 & 5X,'a PARAMETER . . . . . . . . . . . . . .=
',E12.4/,
334 & 5X,'m PARAMETER . . . . . . . . . . . . . .=
',E12.4/,
335 & 5X,'n PARAMETER . . . . . . . . . . . . . .=
',E12.4/,
336 & 5X,'PRESSURE TRANSLATI
',E12.4//)
338 & 5X,'AFTERBURNING : INSTANTANEOUS
',/,
339 & 5X,'ADDITIONAL ENERGY PER UNIT VOLUME . . .=
',E12.4/,
340 & 5X,'BEGIN TIME. . . . . . . . . . . . . . .=
',E12.4//)