C C C LIST OF SUBROUTINES IN THIS FILE C C HC_PVPEQN : VAPOR PRESSURE EQUATIONS C HC_PVPAW : AMBROSE-WALTON VAPOR PRESSURE ESTIMATION C HC_PVPRD : RIEDEL VAPOR PRESSURE ESTIMATION C C C******************************************************************* C C KDB THEMOPHYSICAL PROPERTIES CALCULATION FORTRAN ROUTINE LIBRARY C C [NAME ] HC_PVPEQN C C [TYPE ] FORTRAN SUBROUTINE C C [PURPOSE] VAPOR PRESSURE CALCULATION USING INTERNAL CORRELATION EQUATION C C [USAGE ] CALL HC_PVPEQN(ICN,T,PVP,IST) C C [ARGUMENTS] C ICN : COMPONENT NUMBER (1-50) TO CALCULATE VAPOR PRESSURE (INTEGER, INPUT) C T : TEMPERATURE IN KELVIN (REAL*8, INPUT) C C PVP : VAPOR PRESSURE IN KILOPASCAL (REAL*8, OUTPUT) C IST : STATUS OF CALCULATION (INTEGER, OUTPUT) C = 0 : NORMAL TERMINATION C = 101 : VAPOR PRESSURE COEFFICIENT NOT AVAILABLE C = 102 : OUT OF RANGE FOR THE APPLICATION C C [COMMENTS] C C [REQUIRED COMMON BLOCKS] C COMMON /HC_KPVP/ VAPOR PRESSURE COEFFICIENTS C C [REQUIRED SUBROUTINES OR FUNCTIONS] C NONE C C [REFERENCE] C NONE C C [REVISION INFORMATION] C 1.PROGRMAMMED BY J.W.KANG, KOREA UNIVERSITY, 1996 C 2.REVISED BY J.W.KANG, KOREA UNIVERSITY, 2000 C 3.REVISED BY J.W.KANG, KOREA UNIVERSITY, 2001 C******************************************************************* SUBROUTINE HC_PVPEQN(ICN,T,PVP,IST) IMPLICIT DOUBLE PRECISION (A-H,O-Z) INTEGER IST,ICN REAL*8 T,PVP COMMON/HC_KPVP/IEQ_PVP(50),PVP_A(50),PVP_B(50),PVP_C(50), 1 PVP_D(50),PVP_E(50),PVP_F(50),PVP_G(50),PVP_T1(50),PVP_T2(50) C --- INITIALIZATION IST = 0 PVP = 0.0 C --- CHECK IF EQUATION COEFF.S AVAILABLE IF(IEQ_PVP(ICN).LE.0) IST = 101 C --- CHECK IF THE RANGE OF APPLICATION IF((T.LT.PVP_T1(ICN)).OR.(T.GT.PVP_T2(ICN)) ) IST = 102 IF(IST.NE.0) RETURN C --- VAPOR PRESSURE CALCULATION PVP = PVP_A(ICN)*DLOG(T) + PVP_B(ICN)/ T + PVP_C(ICN) 1 + PVP_D(ICN)*T*T PVP=DEXP(PVP) RETURN END C******************************************************************* C C KDB THEMOPHYSICAL PROPERTIES CALCULATION FORTRAN ROUTINE LIBRARY C C [NAME ] HC_PVPAW C C [TYPE ] FORTRAN SUBROUTINE C C [PURPOSE] VAPOR PRESSURE ESTIMATION USING AMBROSE-WALTON METHOD C C [USAGE ] CALL HC_PVPAW(ICN,T,PVP,IST) C C [ARGUMENTS] C ICN : COMPONENT NUMBER (1-50) TO CALCULATE VAPOR PRESSURE (INTEGER, INPUT) C T : TEMPERATURE IN KELVIN (REAL*8, INPUT) C C PVP : VAPOR PRESSURE IN KILOPASCAL (REAL*8, OUTPUT) C IST : STATUS OF CALCULATION (INTEGER, OUTPUT) C = 0 : NORMAL TERMINATION C = 111 : CRITICAL TEMPERATURE DATA NOT AVAILABLE C = 112 : CRITICAL PRESSURE DATA NOT AVAILABLE C = 113 : ACCENTRIC FACTOR DATA NOT AVAILABLE C = 114 : GIVEN T EXCEEDS CRITICAL TEMPERATURE C C [COMMENTS] C C [REQUIRED COMMON BLOCKS] C COMMON /HC_PROP/ COMPONENT BASIC PROPERTIES C C C [REQUIRED SUBROUTINES OR FUNCTIONS] C NONE C C [REFERENCE] C 1. D.AMBROSE AND J.WALTON, PURE & APPL.CHEM.,61,1395 (1989) C C [REVISION INFORMATION] C 1.PROGRMAMMED BY J.W.KANG, KOREA UNIVERSITY, 1996 C 2.REVISED BY J.W.KANG, KOREA UNIVERSITY, 2000 C 3.REVISED BY J.W.KANG, KOREA UNIVERSITY, 2001 C******************************************************************* SUBROUTINE HC_PVPAW(ICN,T,PVP,IST) IMPLICIT DOUBLE PRECISION (A-H,O-Z) INTEGER IST,ICN REAL*8 T,PVP COMMON/HC_PROP/WT(50),TB(50),TF(50),TC(50),PC(50),VC(50),ZC(50) 1 ,ACCF(50),WSRK(50),VEST(50),ZRA(50),SOLP(50),VOLP(50) 2 ,QI(50),RI(50),DM(50) C --- INITIALIZATION IST = 0 PVP = 0.0 C --- CHECK IF ALL THE AVAILABALE DATA EXISTS IF(T.GT.TC(ICN)) IST = 114 IF(TC(ICN).LE.0.) IST = 111 IF(PC(ICN).LE.0.) IST = 112 IF(ACCF(ICN).LE.0.) IST = 113 IF(IST.NE.0) RETURN C --- VAPOR PRESSURE CALCULATION TAU = 1.D0 - T/TC(ICN) TR = T/TC(ICN) F0 = (-5.97616*TAU + 1.29874*TAU**1.5 - 0.60394*TAU**2.5 1 - 1.06841*TAU**5 ) /TR F1 = (-5.03365*TAU + 1.11505*TAU**1.5 - 5.41217*TAU**2.5 1 -7.46628*TAU**5) /TR F2 = (-0.64771*TAU + 2.41539*TAU**1.5 - 4.26979*TAU**2.5 1 -3.25259*TAU**5) / TR PVP = F0 + ACCF(ICN)*F1 + ACCF(ICN)*ACCF(ICN)*F2 PVP = PC(ICN)*DEXP(PVP) RETURN END C******************************************************************* C C KDB THEMOPHYSICAL PROPERTIES CALCULATION FORTRAN ROUTINE LIBRARY C C [NAME ] HC_PVPERD C C [TYPE ] FORTRAN SUBROUTINE C C [PURPOSE] VAPOR PRESSURE ESTIMATION USING RIEDEL METHOD C C [USAGE ] CALL HC_PVPRD(ICN,T,PVP,IST) C C [ARGUMENTS] C ICN : COMPONENT NUMBER (1-50) TO CALCULATE VAPOR PRESSURE (INTEGER, INPUT) C T : TEMPERATURE IN KELVIN (REAL*8, INPUT) C C PVP : VAPOR PRESSURE IN KILOPASCAL (REAL*8, OUTPUT) C IST : STATUS OF CALCULATION (INTEGER, OUTPUT) C = 0 : NORMAL TERMINATION C = 121 : CRITICAL TEMPERATURE DATA NOT AVAILABLE C = 122 : CRITICAL PRESSURE DATA NOT AVAILABLE C = 123 : BOILING POINT DATA NOT AVAILABLE C = 124 : GIVEN T EXCEEDS CRITICAL TEMPERATURE C C [COMMENTS] C C [REQUIRED COMMON BLOCKS] C COMMON /HC_NAME/ COMPONENT NAME AND FORMULA C SPECIFY THE CLASS OF COMPONENT FOR ALCOHOLS OR ACIDS C ICLAS(ICN) = 11-14 FOR ALCOHOLS C = 15-19 FOR ACIDS C C COMMON /HC_PROP/ COMPONENT BASIC PROPERTIES C C [REQUIRED SUBROUTINES OR FUNCTIONS] C NONE C C [REFERENCE] C 1. L.RIEDEL, CHEM.ING.TECH., 26,679 (1954) C 2. A.VETERE, IND.ENG.CHEM.RES.,30,2487 (1991) C C [REVISION INFORMATION] C 1.PROGRMAMMED BY J.W.KANG, KOREA UNIVERSITY, 1996 C 2.REVISED BY J.W.KANG, KOREA UNIVERSITY, 2000 C 3.REVISED BY J.W.KANG, KOREA UNIVERSITY, 2001 C******************************************************************* SUBROUTINE HC_PVPRD(ICN,T,PVP,IST) IMPLICIT DOUBLE PRECISION (A-H,O-Z) INTEGER IST,ICN REAL*8 T,PVP COMMON/HC_PROP/WT(50),TB(50),TF(50),TC(50),PC(50),VC(50),ZC(50) 1 ,ACCF(50),WSRK(50),VEST(50),ZRA(50),SOLP(50),VOLP(50) 2 ,QI(50),RI(50),DM(50) COMMON/HC_NAME/ICMP(50),CNAME(50),FORMULA(50),ICLASS(50) C --- INITIALIZATION IST = 0 PVP = 0.0 C --- CHECK IF ALL THE AVAILABALE DATA EXISTS IF(T.GE.TC(ICN)) IST = 124 IF(TC(ICN).LE.0.) IST = 121 IF(PC(ICN).LE.0.) IST = 122 IF(TB(ICN).LE.0.) IST = 123 IF(IST.NE.0) RETURN C --- VAPOR PRESSURE CALCULATION TBR = TB(ICN)/TC(ICN) TR = T/TC(ICN) PHIB = -35.D0 + 36.D0/TBR + 42.D0*DLOG(TBR) - TBR**6 PH = TBR*DLOG(PC(ICN)/101.325D0)/(1.D0-TBR) C --- ALCOHOLS IF (ICLASS(ICN).GE.11.AND.ICLASS(ICN).LE.14) THEN PK = -0.120 + 0.025*PH C --- ACIDS ELSE IF (ICLASS(ICN).GE.15.AND.ICLASS(ICN).LE.19) THEN PK = 0.373 - 0.030*PH C --- OTHER COMPONENTS ELSE PK = 0.0838 ENDIF ALPA = (3.758D0*PK*PHIB + DLOG(PC(ICN)/101.325)) / 1 (PK*PHIB - DLOG(TBR)) QQ = PK*(3.758-ALPA) AA = -35.D0*QQ BB = -36.D0*QQ CC = 42.0*QQ + ALPA DD = -QQ PVP = AA - BB/TR + CC*DLOG(TR) + DD*TR**6 PVP = PC(ICN)*DEXP(PVP) RETURN END C******************************************************************* C END OF FILE