29 . C0 ,C1 ,C2 ,C3 ,C4 , C5 ,GG,
30 . VOLUME ,DVOL ,VOLD ,
31 . RHO ,MASA ,RHOA0 ,DD ,MU , MUP1 ,
32 . POLD ,PEXT ,P ,PM ,Q ,
33 . RHO0E ,EINTA ,VISCMAX ,XL ,SSP ,
38#include "implicit_f.inc"
42 my_real,
INTENT(IN) :: c0,c1,c2,c3,c5,c4,gg,volume,vold,masa ,rhoa0,dd, pold,pext,pm
43 my_real,
INTENT(IN) :: rho0e,xl, qa,qb
45 my_real,
INTENT(INOUT) :: p, dvol, rho, mu, viscmax, q, ssp
49 my_real :: aa,bb,dpdv,dpdmu,v0,qal,qbl,mup1
59 dpdv = (-(c1 + (c2 + c2 + three*c3*mu)*
max(zero,mu) + c5*rho0e )*mup1*mup1 -(c4
60 dpdmu = -dpdv*volume/mup1
62 ssp = sqrt((dpdmu + two_third*gg)/rhoa0)
66 viscmax = rho*(qal*
max(zero,dd) + qbl*ssp)
67 q = viscmax*
max(zero,dd)
70 bb = half*(volume-vold)
73 p = ( c0 + c1*mu+
max(mu,zero)*(c2*mu + c3*mu*mu) + aa*einta )
83 dpdv = (-(c1 + (c2 + c2 + three*c3*mu)*
max(zero,mu) + c5*rho0e )*mup1*mup1 -(c4 + c5*mu)*(p+pext) ) / v0
84 dpdmu = -dpdv*volume/mup1
86 ssp = sqrt((dpdmu + two_third*gg)/rhoa0)
96 SUBROUTINE poly51 (C01,C11,C21,C31,C41,C51,GG1,
97 . V10,V1,V1OLD,MU1,MUP1,EINT1,
99 . RHO1,RHO10,MAS1,SSP1,DVDP1,DPDV1, E_INF,
104#include "implicit_f.inc"
108 my_real,
INTENT(IN) :: c01,c11,c21,c31,c41,c51,gg1,
112 my_real,
INTENT(INOUT) :: dvdp1,p1,ssp1,dpdv1,eint1,mu1,mup1,rho1
120 IF (flag == 1) rho1 = mas1/v1
123 aa = (c41 + c51*mu1)/v10
125 IF (flag == 1) eint1 = eint1 - (p1i+pext+pext)*bb
127 p1 = ( c01 + c11*mu1 +
max(mu1,zero)*(c21*mu1 + c31*mu1*mu1) + aa*eint1 ) / (one+aa*bb)
129 p1 = ( c01 + c11*mu1 +
max(mu1,zero)*(c21*mu1 + c31*mu1*mu1) + aa*eint1 )
132 IF (flag == 1) eint1 = eint1 - p1*bb
133 IF (flag == 1) eint1 =
max(eint1, e_inf*v10)
135 dpdv1 = (-(c11 + (c21 + c21 + three*c31*mu1)*
max(zero,mu1) + c51*eint1/v10 )*mup1*mup1 -(c41 + c51*mu1)*(p1+pext) ) / v10
136 ssp1 = (-dpdv1*v1/mup1 + two_third*gg1)/rho10
137 ssp1 = sqrt(abs(ssp1))
139 IF(abs(dpdv1)<em20)
THEN
subroutine poly51(c01, c11, c21, c31, c41, c51, gg1, v10, v1, v1old, mu1, mup1, eint1, pext, p1, pm1, p1i, rho1, rho10, mas1, ssp1, dvdp1, dpdv1, e_inf, flag)
subroutine polyun51(c0, c1, c2, c3, c4, c5, gg, volume, dvol, vold, rho, masa, rhoa0, dd, mu, mup1, pold, pext, p, pm, q, rho0e, einta, viscmax, xl, ssp, qa, qb)