IV M-PROPATH:
Binary Mixtures

Binary mixtures in part IV stand for those that have been formulated as binary mixtures by their own
formulations.

490

M-PROPATH: Binary Mixtures

1. General Features
1.1 SUBPROGRAM REFERENCE
Every M-PROPATH user has to make the initiation process by writing the following 2 lines before the ﬁrst
REFERENCE to a M-PROPATH SUBPROGRAM (FUNCTION SUBPROGRAM or SUBROUTINE SUBPROGRAM) in the MAIN PROGRAM. If a user happens to want to use other settings in other places of his/her
PROGRAM UNIT, he/she is supposed to do a similar at those places.

CALL KPAMES(value of KPA, value of MESS)CALL STNKAS(value of KSTAN, value of KAS)

The arguments of these SUBROUTINE SUBPROGRAMs specify the system of units, reference values ofenthalpy and entropy and necessity of listing error messages to erroneous SUBPROGRAM REFERENCEs on
the standard output device. All arguments in these SUBROUTINE SUBPROGRAMs are INTEGERs. KPA
speciﬁes the units of pressure and temperature, and KAS unit of the amount of substance. KSTAN selects thereference values of enthalpy and entropy. The relation between KPA and the units of pressure and temperatureand that between KAS and the unit of amount of substance are shown in 1.3. M-PROPATH does not return
any messages when MESS=0, while it does when MESS=0. KSTAN diﬀers from one mixture to another, and is
described in the section of each mixture.

Operations to Manage Erroneous SUBPROGRAM REFERENCE

491

1.2 Operations to Manage Erroneous SUBPROGRAM
REFERENCE
A predetermined sequence of operations will occur to process an erroneous SUBPROGRAM REFERENCE
when an improper SUBPROGRAM REFERENCE has been done. Erroneous SUBPROGRAM REFERENCEs
are grouped into 2 levels, with the ascending severity of user’s mistake. A user has committed a more serious
mistake when a level 2 ERROR occurs than when level 1 ERROR does.

1.2.1 Level 1 ERROR (Convergence Failure)
The method of iterations built in to some of the M-PROPATH SUBPROGRAMs to solve implicit relations
will not work somehow from time to time. M-PROPATH stops further iterations after executing the preset
number of iterations. Though the user is not responsible for level 1 ERROR, the M-PROPATH detects this typeof ERROR time to time, unfortunately.
A level 1 ERROR is processed as below.
FUNCTION SUBPROGRAM
value of REAL FUNCTION returned to the CALLing program : −1.0E+10
value of INTEGER FUNCTION returned to the CALLing Program : −1
output to the standard output device :**** NO CONVERGENCE AT (NAME OF FUNCTION CALLED) ****SUBROUTINE SUBPROGRAM
value of error detection cord : −1
output to the standard output device :**** NO CONVERGENCE AT (NAME OF SUBROUTINE CALLED) ****

1.2.2 Level 2 ERROR (Invalid ARGUMENT(s))
A level 2 ERROR will occur when the ARGUMENT(s) a user transferred to M-PROPATH SUBPROGRAM
from his/her MAIN PROGRAM fail to drop in the proper range.
A level 2 ERROR is processed as below.
FUNCTION SUBPROGRAM
value of REAL FUNCTION returned to the CALLing program : −1.0E+20
value of INTEGER FUNCTION returned to the CALLing Program : −2
output to the standard output device :**** OUT OF RANGE AT (NAME OF FUNCTION CALLED) ****SUBROUTINE SUBPROGRAM
value of error detection cord : −2
output to the standard output device :**** OUT OF RANGE AT (NAME OF SUBROUTINE CALLED) ****

492

M-PROPATH: Binary Mixtures

1.3 System of Units and Reference Value of Enthalpy and
Entropy
All REAL quantities are in the fundamental SI or in the coherent derived SI with three exceptions. Pressure
can be in the unit of Pascal Pa or bar, temperature in the unit of Kelvin K or degree Celsius ◦ C. These depend on
the value of INTEGER KPA when a user referred the SUBROUTINE SUBPROGRAM KPAMES(KPA, MESS)
shown in 1.1. The amount of substance can be in the unit of kilomole kmol or kilogram kg. INTEGER KAS in
the SUBROUTINE SUBPROGRAM STNKAS(KSTAN, KAS) in 1.1 switches this. These go as shown in thetable below. The INTEGER KSTAN in the SUBROUTINE SUBPROGRAM STNKAS(KSTAN, KAS) controls
the reference values of enthalpy and entropy and is explained for each speciﬁc mixture, since they diﬀer from one
mixture to another.
Table IV-1.3-1 Units of Pressure and Temperature Speciﬁed by KPA
KPA
0
1
2
3
othersunit of pressure
Pa
bar
bar
Pa
Pa

unit of temperature
K
◦
C
K
◦
C
K

Table IV-1.3-2 Amount of Substance Speciﬁed by KAS
KAS
01
othersamount of substance
kmol
kg
kmol

Reserved NAMEs

493

1.4 Reserved NAMEs
M-PROPATH uses a lot of NAMEs, listed below, for its own purpose. These are the NAMEs of SUBPROGRAMs and NAMED COMMON BLOCK to which a user can access directly and NAMEs of SUBPROGRAM
headed by “FMF” which an user cannot access. A user is supposed to use the NAMEs of SUBPROGRAM and
COMMON BLOCK only when he/she does so in the original meaning. The letters in the ﬁrst column are theﬁrst LETTERs in the NAMEs listed in the same line.
Name of COMMON BLOCK, FUNCTION and SUBROUTINE
F
I
K
P
S

FCM, FMF**** , COMMON /FMFC/IDENTM, IPHASEKPAMESPSTM
STNKAS, SUBM, SUBMIX, SUBPB, SUBPD, SUBPST, SUBPUR, SUBTB, SUBTD,
SUBTSP, SUBXY
T T68, T90, TSPM
U COMMON /UNIT/

494

M-PROPATH: Binary Mixtures

1.5 Terminology, Symbols and Compositions
The component with lower critical temperature is to be called as the ﬁrst component. A composition is
supposed to stand for the mole fraction or the mass fraction of the ﬁrst component. The symbolic distinctionof the compositions between the two phases and that between two saturation temperatures are done as shown
below.
total composition Z
composition at liquid phase X
composition at vapor phase Y
temperature at dew pointtemperature at bubble point
pressure at dew point
pressure at bubble point

:
:
:
:
:
:
:

composition of mixture as a whole
liquid composition at vapor-liquid equilibrium
vapor composition at vapor-liquid equilibrium
The lowest temperature of vapor for given pressure and Z
The highest temperature of liquid for given pressure and Z
The highest pressure of vapor for given temperature and Z
The lowest pressure of liquid for given temperature and Z

The NAME of FUNCTION and SUBROUTINE SUBPROGRAMS

495

1.6 The NAME of FUNCTION and SUBROUTINESUBPROGRAMS
NAMEs of FUNCTIONs and SUBROUTINEs are shown below and the full descripion of these SUBPROGRAMs is given in 1.7. Some of these SUBPROGRAMs have not been prepared in each equation shown in 2.
and after. These are listed there for each equation.

1.6.1 FUNCTIONREAL valued FUNCTION (conversion of temperature scale)
T68 = conversion from ITS–1990 to IPTS–1968
T90 = conversion from IPTS-1968 to ITS-1990
REAL valued FUNCTION (pure component)
FCM= fundamental constants of pure components
PSTM = vapor pressure of pure components
TSPM = saturation temperature of pure components
REAL valued FUNCTION (mixture)
AKG= mole fraction to mass fraction conversion
AKMOL = mass fraction to mole fraction conversion
INTEGER valued FUNCTIONIPHASE=

distinction between phases of mixture

CHARACTER valued FUNCTIONIDENTM = name of pure components and version number

1.6.2 SUBROUTINE
initialization
KPAMES/STNKAS=

See 1.1

pure component
SUBPST = saturation properies of pure components (temperature input)
SUBPUR = single phase properties of pure component
SUBTSP = saturation properties of pure components (pressure input)
mixture
SUBPB
SUBPD
SUBTB
SUBTD
SUBM
SUBMIXSUBXYSUBMXHSUBMXT

=
=
=
=
=
=
=
=
=

bubble point pressure and other properties of mixture (temperature and X input)
dew point pressure and other properties of mixture (temperature and Y input)
bubble point temperature and other properties of mixture (pressure and X input)
dew point temperature and other properties of mixture (pressure and Y input)
adiabatic and isobaric mixing of two streams
properties of mixture
properties of mixture at VLE
isobaric mixing of two mixtures with diﬀerent composition, enthalpy input
isobaric mixing of two mixtures with diﬀerent composition, temperature input

496

M-PROPATH: Binary Mixtures

1.7 Descriptions of FUNCTIONs and SUBROUTINEs
Shown in alphabetical order of NAMEs.
AKG
REAL FUNCTION AKG(Z) : mole fraction to mass fraction conversion
REAL Z: mole fraction [kmol/kmol]
REAL AKG : mass fraction[kg/kg]

AKMOL
REAL FUNCTION AKMOL(Z) : mass fraction to mole fraction conversion
REAL Z: mass fraction [kg/kg]
REAL AKMOL : mole fraction [kmol/kmol]

FCM
REAL FUNCTION FCM(I,A) : fundamental constants of pure components
INTEGERI : component
1 : ﬁrst component
2 : second componet
CHARACTER*1 A : kind of fundamental constants of pure components‘M’ : molar mass [kg/kmol]‘R’ : gas constant [J/(kg·K)]‘T’ : critical temperature [K], [◦C]
‘P’ : critical pressure [Pa], [bar]‘V’ : critical volume [m3 /kmol], [m3 /kg]
‘E’ : acentric factor [-]IDENTM
CHARACTER*40 FUNCTION IDENTM(I,A) : name of pure component and version number
INTEGERI : component
1 : ﬁrst component
2 : second component
CHARACTER*1 A : kind of characters returned‘C’ : molecular formula‘S’ : name of substance‘V’ : version number

IPHASEINTEGER FUNCTION IPHASE(T,P,Z) : distinction between phases of mixture
REAL T : temperature [K] , [◦C]REAL P : pressure [Pa] , [bar]
REAL Z : composition [kmol/kmol] , [kg/kg]
value of IPHASE
123: liquid phase: two phase: gas phase

Descriptions of FUNCTIONs and SUBROUTINEs
4
−1
−2

497

: super critical: Convergence failure: invalid ARGUMENT(s)KPAMESSUBROUTINE KPAMES(KPA,MESS)
See 1.1
PSTM
REAL FUNCTION PSTM(I,T) : saturation pressure of pure component
INTEGER I

REAL
REAL

: component
1 : ﬁrst component
2 : second componentT: temperature [K] , [◦C]
PSTM : saturation pressure [Pa], [bar]STNKASSUBROUTINE STNKAS(KSTAN,KAS)
See 1.1
SUBMIXSUBROUTINE SUBMIX(I,J,T,P,Z,V,H,S) : properties of mixture
INTEGER I : type of problem(input)
1 : inputs (T,P,Z) → outputs (V,H,S)
2 : inputs (P,Z,H) → outputs (T,V,S)
3 : inputs (P,Z,S) → outputs (T,V,H)
4 : inputs (P,Z,V) → outputs (T,H,S)
INTEGER J : error detection code
−1 : convergence failure−2 : invalid ARGUMENT(s)REAL
T : temperature [K] , [◦C]
REAL
P : pressure [Pa] , [bar]REAL
Z : total composition [kmol/kmol] , [kg/kg]
REAL
V : volume [m3/kmol] , [m3/kg]
REAL
H : enthalpy [J/kmol] , [J/kg]
REAL
S : entropy [J/(kmol·K)] , [J/(kg·K)]

SUBMXHSUBROUTINE SUBMXH(J,T,P,ZA,ZB,Z,V,HA,HB,H,S,W) : isobaric mixing of two mixtures with
diﬀerent compositions, enthalpy input
input
REAL
P : pressure [Pa] , [bar]REAL
ZA : total composition of A [kmol/kmol] , [kg/kg]
REAL
ZB : total composition of B [kmol/kmol] , [kg/kg]
REAL
HA : enthalpy of A [J/kmol] , [J/kg]
REAL
HB : enthalpy of B [J/kmol] , [J/kg]
REAL
W : Fraction of A in Mixing [kmol/kmol] , [kg/kg]
outputINTEGER J : error detection code
−1 : convergence failure−2 : invalid ARGUMENT(s)REAL
T : temperature after mixing [K] , [◦C]
REAL
Z : total composition after mixing [kmol/kmol] , [kg/kg]
REAL
V : volume after mixing [m3 /kmol] , [m3 /kg]

498

M-PROPATH: Binary Mixtures
REAL
REAL

H : enthalpy after mixing [J/kmol] , [J/kg]
S : entropy after mixing [J/(kmol·K)] , [J/(kg·K)]

SUBMXT
SUBROUTINE SUBMXT(J,T,P,ZA,ZB,Z,V,TA,TB,H,S,W) : isobaric mixing of two mixtures with
diﬀerent compositions, temperature input
input
REAL
P : pressure [Pa] , [bar]REAL
ZA : total composition of A [kmol/kmol] , [kg/kg]
REAL
ZB : total composition of B [kmol/kmol] , [kg/kg]
REAL
TA : temperature of A [K] , [◦ C]
REAL
TB : temperature of B [K] , [◦C]REAL
W : Fraction of A in Mixing [kmol/kmol] , [kg/kg]
outputINTEGER J : error detection code
−1 : convergence failure−2 : invalid ARGUMENT(s)REAL
T : temperature after mixing [K] , [◦C]
REAL
Z : total composition after mixing [kmol/kmol] , [kg/kg]
REAL
V : volume after mixing [m3 /kmol] , [m3 /kg]
REAL
H : enthalpy after mixing [J/kmol] , [J/kg]
REAL
S : entropy after mixing [J/(kmol·K)] , [J/(kg·K)]

SUBPB
SUBROUTINE SUBPB(J,T,P,X,V,H,S): bubble point pressure and other properties of mixture (temperature and X input)
input
REAL
T : temperature [K] , [◦ C]
REAL
X : composition [kmol/kmol] , [kg/kg]
outputINTEGER J : error detection code
−1 : convergence failure−2 : invalid ARGUMENT(s)REAL
P : bubble point pressure [Pa] , [bar]REAL
V : bubble point volume [m3 /kmol] , [m3 /kg]
REAL
H : bubble point enthalpy [J/kmol] , [J/kg]
REAL
S : bubble point entropy [J/(kmol·K)] , [J/(kg·K)]

SUBPD
SUBROUTINE SUBPD(J,T,P,Y,V,H,S): dew point pressure and other properties of mixture (temperature and Y input)
input
REAL
T : temperature [K] , [◦ C]
REAL
Y : composition [kmol/kmol] , [kg/kg]
outputINTEGER J : error detection code
−1 : convergence failure−2 : invalid ARGUMENT(s)REAL
P : dew point pressure [Pa] , [bar]REAL
V : dew point volume [m3 /kmol] , [m3 /kg]
REAL
H : dew point enthalpy [J/kmol] , [J/kg]
REAL
S : dew point entropy [J/(kmol·K)] , [J/(kg·K)]

SUBPST

Descriptions of FUNCTIONs and SUBROUTINEs
SUBROUTINE SUBPST(I,J,T,PS,VL,VV,HL,HV,SL,SV): saturation properties of pure component (temperature intput)
input
INTEGER I

REAL
T
outputINTEGER J

REAL
REAL
REAL
REAL
REAL
REAL
REAL

: component
1 : ﬁrst component
2 : second component: temperature [K] , [◦C]

: error detection code
−1 : convergence failure−2 : invalid ARGUMENT(s)PS : saturation pressure [Pa] , [bar]VL : liquid volume [m3 /kmol] , [m3 /kg]
VV : vapor volume [m3 /kmol] , [m3 /kg]
HL : liquid enthalpy [J/kmol] , [J/kg]
HV : vapor enthalpy [J/kmol] , [J/kg]
SL : liquid entropy [J/(kmol·K)] , [J/(kg·K)]
SV : vapor entropy [J/(kmol·K)] , [J/(kg·K)]

SUBPURSUBROUTINE SUBPUR(I,J,T,P,V,H,S) : single phase properties of pure component
input
INTEGER I : component
1 : ﬁrst component
2 : second component
REAL
T : temperature [K] , [◦ C]
REAL
P : pressure [Pa] , [bar]outputoutput are those of satureted liquid, when temperature-pressure is on saturation line
INTEGER J : error detection code
−1 : convergence failure−2 : invalid ARGUMENT(s)REAL
V : volume [m3 /kmol] , [m3 /kg]
REAL
H : enthalpy [J/kmol] , [J/kg]
REAL
S : entropy [J/(kmol·K)] , [J/(kg·K)]
SUBTB
SUBROUTINE SUBTB(J,T,P,X,V,H,S): bubble point temperature and other properties of mixture (pressure and X input)
input
REAL
P : pressure [Pa] , [bar]REAL
X : composition [kmol/kmol] , [kg/kg]
outputINTEGER J : error detection code
−1 : convergence failure−2 : invalid ARGUMENT(s)REAL
T : bubble point temperature [K] , [◦ C]
REAL
V : bubble point volume [m3 /kmol] , [m3 /kg]
REAL
H : bubble point enthalpy [J/kmol] , [J/kg]
REAL
S : bubble point entropy [J/(kmol·K)] , [J/(kg·K)]
SUBTD
SUBROUTINE SUBTD(J,T,P,Y,V,H,S): dew point temperature and other properties of mixture (pressure and Y input)

499

500

M-PROPATH: Binary Mixtures

input
REAL
P : pressure [Pa] , [bar]REAL
Y : composition [kmol/kmol] , [kg/kg]
outputINTEGER J : error detection code
−1 : convergence failure−2 : invalid ARGUMENT(s)REAL
T : dew point temperature[K] , [◦ C]
REAL
V : dew point volume [m3 /kmol] , [m3 /kg]
REAL
H : dew point enthalpy[J/kmol] , [J/kg]
REAL
S : dew point entropy [J/(kmol·K)] , [J/(kg·K)]

SUBTSPSUBROUTINE SUBTSP(I,J,TS,P,VL,VV,HL,HV,SL,SV): saturation properties of pure component (pressure input)
input
INTEGER I

REAL
P
outputINTEGER J

REAL
REAL
REAL
REAL
REAL
REAL
REAL

: component
1 : ﬁrst component
2 : second component: pressure [Pa] , [bar]: error detection code
−1 : convergence failure−2 : invalid ARGUMENT(s)TS : temperature [K] , [◦C]
VL : liquid volume [m3 /kmol] , [m3 /kg]
VV : vapor volume [m3 /kmol] , [m3 /kg]
HL : liquid enthalpy [J/kmol] , [J/kg]
HV : vapor enthalpy [J/kmol] , [J/kg]
SL : liquid entropy [J/(kmol·K)] , [J/(kg·K)]
SV : vapor entropy [J/(kmol·K)] , [J/(kg·K)]

SUBXY
SUBROUTINE SUBXY(J,T,P,X,Y,VL,VV,HL,HV,SL,SV) :properties of mixture at VLE
input
REAL
T
REAL
P
outputINTEGER J

REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL

: temperature [K] , [◦C]
: pressure [Pa] , [bar]: error detection code
−1 : convergence failure−2 : invalid ARGUMENT(s)X : composition of liquid X [kmol/kmol] , [kg/kg]
Y : composition of vapor Y [kmol/kmol] , [kg/kg]
VL : liquid volume [m3 /kmol] , [m3 /kg]
VV : vapor voluem [m3 /kmol] , [m3 /kg]
HL : liquid enthalpy [J/kmol] , [J/kg]
HV : vapor enthalpy [J/kmol] , [J/kg]
SL : liquid entropy [J/(kmol·K)] , [J/(kg·K)]
SV : vapor entropy [J/(kmol·K)] , [J/(kg·K)]

TSPM
REAL FUNCTION TSPM(I,P) saturation temperature of pure components
INTEGER I: component
1 : ﬁrst component
2 : second component

Descriptions of FUNCTIONs and SUBROUTINEs
REAL
REAL

P
: pressure of pure component [Pa] , [bar]TSPM : saturation temperature [K], [◦C]

501