lnfug_vt Subroutine

private subroutine lnfug_vt(eos, n, V, T, P, lnf, dlnfdV, dlnfdT, dlnfdn, dPdV, dPdT, dPdn)

Calculate natural logarithm of fugacity given volume and temperature.

Calculate the natural logarithm of the fugacity and its derivatives. The routine gives the possibility to calculate the pressure and it’s derivatives.

Examples

eos = PengRobinson76(Tc, Pc, w)

n = [1.0_pr, 1.0_pr]
T = 300.0_pr
V = 1.0_pr

call eos%lnfug_vt(&
   n, V, T, lnf=lnf, &
   dlnfdV=dlnfdV, dlnfdT=dlnfdT, dlnfdn=dlnfdn &
   )

Type Bound

ArModel

Arguments

Type IntentOptional Attributes Name
class(ArModel) :: eos

Model

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

Mixture mole numbers

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

Volume [L]

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

Temperature [K]

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

Pressure [bar]

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

vector

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

Volume derivative

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

Temp derivative

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

compositional derivative

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

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

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


Variables

Type Visibility Attributes Name Initial
real(kind=pr), private :: Ar
real(kind=pr), private :: ArTV
real(kind=pr), private, dimension(size(n)) :: ArTn
real(kind=pr), private :: ArV
real(kind=pr), private :: ArV2
real(kind=pr), private, dimension(size(n)) :: ArVn
real(kind=pr), private, dimension(size(n)) :: Arn
real(kind=pr), private :: Arn2(size(n),size(n))
real(kind=pr), private :: P_in
real(kind=pr), private :: RT
real(kind=pr), private :: Z
real(kind=pr), private :: dPdT_in
real(kind=pr), private :: dPdV_in
real(kind=pr), private :: dPdn_in(size(n))
integer, private :: i
integer, private :: j
integer, private :: nc
real(kind=pr), private :: totn