28 SUBROUTINE jwlun51 (TIME,XL,TBURN,UPARAM,DD,MU,MUP1,
29 . VOLUME,DVOL,V1OLD,EINT1,VISCMAX,
31 . RHO,RHO10,MAS1,SSP1, QA,QB,BFRAC,DPDE)
35#include "implicit_f.inc"
39 my_real,
INTENT(IN) :: time,xl,tburn,dd,
44 my_real,
INTENT(INOUT) :: ssp1, p1, dvol, rho, bfrac, mu, viscmax, q1, dpde
49 my_real AA,BB,P0,VDET,BHE,B1,B2,W1,R1,R2,R1M,ER1M,R2M,ER2M,
50 . QAL,QBL,DPDMU,MUP1,C01,C11,
51 . psol, pgas, psol_min, pgas_min, ssp_unreacted, ssp_reacted
62 ibfrac= nint(uparam(68))
64 IF(r1 == zero) r1=ep30
65 IF(r2 == zero) r2=ep30
75 IF(ibfrac/=1 .AND. time > -tburn) bfrac = vdet*(time+tburn)*two_third/xl
76 IF(ibfrac/=2) bfrac =
max( bfrac , bhe * (one - rho10/rho) )
79 ELSEIF(bfrac > one)
THEN
94 p0 = b1*(one-w1/r1m)*er1m + b2*(one-w1/r2m)*er2m
96 dpdmu = b1*er1m*( (-w1*mup1/r1) + r1m - w1) + b2*er2m*( (-w1*mup1/r2) + r2m - w1) + w1*eint1/volume +p1*w1
97 dpdmu = abs(dpdmu) / mup1
98 ssp_reacted = sqrt(dpdmu/rho10)
99 ssp_unreacted = sqrt(c11/rho10)
100 ssp1 =
max(bfrac*ssp_reacted,(one-bfrac)*ssp_unreacted)
104 viscmax = rho*(qal*
max(zero,dd) + qbl*ssp1)
105 q1 = viscmax*
max(zero,dd)
106 bb = half*(volume-v1old)
108 p1 = ( p0-pext + aa*eint1 )
116 psol =
max(psol,psol_min)
120 pgas =
max(pgas,pgas_min)
122 p1 = bfrac*pgas + (one-bfrac)*psol
128 dpdmu = b1*er1m*( (-w1*mup1/r1) + r1m - w1) + b2*er2m*( (-w1*mup1/r2) + r2m - w1) + w1*eint1/volume +(p1+pext)*w1
129 dpdmu = abs(dpdmu) / mup1
130 ssp_reacted = sqrt(dpdmu/rho10)
131 ssp_unreacted = sqrt(c11/rho10)
132 ssp1 =
max(bfrac*ssp_reacted,(one-bfrac)*ssp_unreacted)
145 . V1,V1OLD,MU1,MUP1,EINT1,
147 . RHO1,RHO10,MAS1,SSP1,BFRAC,V10, DPDE1)
151#include "implicit_f.inc"
155 my_real,
INTENT(IN) :: v1,v1old,
158 . uparam(*),bfrac, v10
159 my_real,
INTENT(INOUT) :: rho1, mu1, eint1, p1, ssp1, dpde1
164 my_real AA,BB,P0,VDET,BHE,B1,B2,W1,R1,R2,R1M,ER1M,R2M,ER2M,
165 . mup1,c11,c01,ssp_products,ssp_unreacted,
166 . psol, pgas, psol_min, pgas_min,dpdmu
177 ibfrac = nint(uparam(68))
191 p0 = b1*(one-w1/r1m)*er1m + b2*(one-w1/r2m)*er2m
192 p1 = p0 - pext + aa * eint1
199 psol =
max(psol,psol_min)
203 pgas =
max(pgas,pgas_min)
205 p1 = bfrac*pgas + (one-bfrac)*psol
210 dpdmu = b1*er1m*( (-w1*mup1/r1) + r1m - w1) + b2*er2m*( (-w1*mup1/r2) + r2m - w1)
211 . + w1*eint1/v1 + (pgas+pext)*w1
212 dpdmu = abs(dpdmu) / mup1
213 ssp_products = sqrt(dpdmu/rho10)
214 ssp_unreacted = sqrt(c11/rho10)
215 ssp1 = (one-bfrac)*ssp_unreacted + bfrac*ssp_products
217 dpde1 = bfrac * w1/mup1
subroutine jwl51(uparam, v1, v1old, mu1, mup1, eint1, pext, p1, pm1, rho1, rho10, mas1, ssp1, bfrac, v10, dpde1)
subroutine jwlun51(time, xl, tburn, uparam, dd, mu, mup1, volume, dvol, v1old, eint1, viscmax, q1, pext, p1, pm1, rho, rho10, mas1, ssp1, qa, qb, bfrac, dpde)