40 1 IFLAG , NEL ,PM ,OFF , EINT ,MU ,MU2 ,
41 2 ESPE , DVOL ,DF ,VNEW , MAT ,PSH ,
42 3 PNEW , DPDM ,DPDE ,MAT_PARAM ,
43 4 VAREOS, NVAREOS,DT1 ,RHO0 ,BFRAC )
65 USE matparam_def_mod,
ONLY : matparam_struct_
66 use constant_mod ,
only : zero, one, zep07, three100, em04
80 INTEGER,
INTENT(IN) :: NVAREOS,NUMMAT,NPROPM
81 INTEGER MAT(NEL), IFLAG, NEL
82 my_real,
INTENT(IN) :: PM(NPROPM,NUMMAT),OFF(NEL),MU(NEL),MU2(NEL),DVOL(NEL),DF(NEL),VNEW(NEL)
83INTENT(INOUT) :: PNEW(NEL),DPDM(NEL),DPDE(NEL),EINT(NEL),ESPE(NEL)
84 my_real,
INTENT(INOUT) :: vareos(nel,nvareos),bfrac(nel)
85 my_real,
INTENT(IN) :: dt1
86 TYPE(matparam_struct_),
INTENT(IN) :: MAT_PARAM
91 my_real :: bulk,P0,PSH(NEL),DD,EG,Gr,CC,ALPHA,FSCALE_B,FSCALE_P,FSCALE_G,FSCALE_RHO, C1,C2
94 my_real :: total_bfrac
95 my_real :: dpdm_gas, dpdm_powder
96 my_real :: mass,ps,pg,rho_s, rho_g,pold
98 INTEGER :: funcb,funcg
102 my_real,
EXTERNAL :: finter
117 bulk = mat_param%EOS%UPARAM(01)
118 p0 = mat_param%EOS%UPARAM(02)
119 psh(1:nel) = mat_param%EOS%UPARAM(03)
120 dd = mat_param%EOS%UPARAM(04)
121 eg = mat_param%EOS%UPARAM(05)
122 gr = mat_param%EOS%UPARAM(06)
123 cc = mat_param%EOS%UPARAM(07)
124 alpha = mat_param%EOS%UPARAM(08)
125 fscale_b = mat_param%EOS%UPARAM
126 fscale_p = mat_param%EOS%UPARAM(10)
127 fscale_g = mat_param%EOS%UPARAM(11)
128 fscale_rho = mat_param%EOS%UPARAM(12)
129 c1 = mat_param%EOS%UPARAM(13)
130 c2 = mat_param%EOS%UPARAM(14)
131 funcb = mat_param%EOS%FUNC(1)
132 funcg = mat_param%EOS%FUNC(2)
138 eint(i) = eg*rho0(i)*vnew(i)
141 vareos(i,3) = rho0(i)/compac
145 vareos(i,7) = rho0(i)*vnew(i)
154 rho(i) = rho0(i) * (one + mu(i))
155 mass = rho(i)*vnew(i)
167 tmp = (one+mu(i))*rho0(i)/dd
168 tmp2 = (one+mu(i)) ; tmp2=tmp2*tmp2
169 dpdm_gas = eg*exp(tmp)*(one+tmp) + pg/tmp2*(one+mu(i))*exp(tmp)
171 dpdm(i) = total_bfrac * dpdm_gas + (one-total_bfrac)*dpdm_powder
172 dpde(i) = total_bfrac * (one+mu(i)*tmp)
175 ELSEIF(iflag == 1)
THEN
177 ELSEIF (iflag == 2)
THEN
179 IF (vnew(i) > zero)
THEN
subroutine powder_burn(npropm, nummat, iflag, nel, pm, off, eint, mu, mu2, espe, dvol, df, vnew, mat, psh, pnew, dpdm, dpde, mat_param, vareos, nvareos, dt1, rho0, bfrac)