42 1 IFLAG , NEL ,PMIN ,OFF ,EINT ,MU ,
43 2 DVOL , VNEW ,PSH ,PNEW ,DPDM ,
44 3 DPDE , EOS_STRUCT, C0, BULK)
49 USE eos_param_mod ,
ONLY : eos_param_
75 INTEGER,
INTENT(IN) :: IFLAG, NEL
76 my_real,
INTENT(IN) :: PMIN,OFF(NEL),MU(NEL),DVOL(NEL),VNEW(NEL)
77 my_real,
INTENT(INOUT) :: PNEW(NEL),DPDM(NEL),DPDE(NEL),PSH(NEL),EINT(NEL)
78 TYPE(eos_param_),
INTENT(IN) :: EOS_STRUCT
79 my_real,
INTENT(IN) :: c0,bulk
89 psh(1:nel) = eos_struct%PSH
95 pnew(i) = c0+bulk*mu(i)
96 pnew(i) =
max(pmin-psh(i),pnew(i))
97 pnew(i) = pnew(i)*off(i)
100 ELSEIF(iflag == 1)
THEN
102 pnew(i) = c0+bulk*mu(i)
103 pnew(i) =
max(pnew(i),pmin-psh(i))
104 pnew(i) = pnew(i)*off(i)
105 eint(i) = eint(i) - half*dvol(i)*(pnew(i)+psh(i))
109 ELSEIF (iflag == 2)
THEN
111 IF (vnew(i) > zero)
THEN
112 pnew(i) = c0+bulk*mu(i)
113 pnew(i) =
max(pnew(i),pmin-psh(i))
114 pnew(i) = pnew(i)*off(i)
subroutine eoslinear(iflag, nel, pmin, off, eint, mu, dvol, vnew, psh, pnew, dpdm, dpde, eos_struct, c0, bulk)