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 

