GenericCubic_Ar Subroutine

public subroutine GenericCubic_Ar(self, n, v, t, ar, arv, ArT, artv, arv2, ArT2, Arn, ArVn, ArTn, Arn2)

Residual Helmholtz Energy for a generic Cubic Equation of State.

Calculates the residual Helmholtz Energy for a generic Cubic EoS as defined by Michelsen and Møllerup:

This routine assumes that the is not a constant parameter (as it uses to be in classical Cubic EoS) to be compatible with the three parameter EoS RKPR where is not a constant and has its own mixing rule.

Type Bound

CubicEoS

Arguments

Type IntentOptional Attributes Name
class(CubicEoS), intent(in) :: self
real(kind=pr), intent(in) :: n(:)

Number of moles

real(kind=pr), intent(in) :: v

Volume [L]

real(kind=pr), intent(in) :: t

Temperature [K]

real(kind=pr), intent(out), optional :: ar

Residual Helmholtz

real(kind=pr), intent(out), optional :: arv

real(kind=pr), intent(out), optional :: ArT

real(kind=pr), intent(out), optional :: artv

real(kind=pr), intent(out), optional :: arv2

real(kind=pr), intent(out), optional :: ArT2

real(kind=pr), intent(out), optional :: Arn(size(n))

real(kind=pr), intent(out), optional :: ArVn(size(n))

real(kind=pr), intent(out), optional :: ArTn(size(n))

real(kind=pr), intent(out), optional :: Arn2(size(n),size(n))


Variables

Type Visibility Attributes Name Initial
real(kind=pr), public :: AUX
real(kind=pr), public :: Bmix
real(kind=pr), public :: D
real(kind=pr), public :: FFB
real(kind=pr), public :: FFBB
real(kind=pr), public :: FFBV
real(kind=pr), public :: Tr(size(n))
real(kind=pr), public :: a(size(n))
real(kind=pr), public :: auxD2
real(kind=pr), public :: d1
real(kind=pr), public :: d2
real(kind=pr), public :: dBi(size(n))
real(kind=pr), public :: dBij(size(n),size(n))
real(kind=pr), public :: dD1i(size(n))
real(kind=pr), public :: dD1ij(size(n),size(n))
real(kind=pr), public :: dDdT
real(kind=pr), public :: dDdT2
real(kind=pr), public :: dDi(size(n))
real(kind=pr), public :: dDidT(size(n))
real(kind=pr), public :: dDij(size(n),size(n))
real(kind=pr), public :: dadt(size(n))
real(kind=pr), public :: dadt2(size(n))
real(kind=pr), public :: f
real(kind=pr), public :: fB
real(kind=pr), public :: fBD1
real(kind=pr), public :: fD1
real(kind=pr), public :: fD1D1
real(kind=pr), public :: fVD1
real(kind=pr), public :: fv
real(kind=pr), public :: fv2
real(kind=pr), public :: g
real(kind=pr), public :: gv
real(kind=pr), public :: gv2
integer, public :: i
integer, public :: j
integer, public :: nc
real(kind=pr), public :: totn