C
C
C     LIST OF SUBROUTINES IN THIS FILE 
C
C     HC_VSLEQN : LIQUID VISCOSITY EQUATIONS 
C	HC_VSLPS  : CALCULATION OF PURE LIQUID VISCOSITY AT LOW TEMPERATURE
C				USING PRZEZDZIECKI & SRIDHAR METHODS 
C	HC_VSLLET : CALCULATION OF PURE LIQUID VISCOSITY AT HIGH TEMPERATURES
C				USING LETSOU & STIEL METHOD
C
C*******************************************************************
C
C KDB THEMOPHYSICAL PROPERTIES CALCULATION FORTRAN ROUTINE LIBRARY 
C
C [NAME   ]  HC_VSLEQN 
C
C [TYPE   ]  FORTRAN SUBROUTINE                              
C
C [PURPOSE]  LIQUID VISCOSITY CALCULATION USING INTERNAL CORRELATION EQUATION 
C
C [USAGE  ]  CALL HC_VSLEQN(ICN,T,VSL,IST)
C
C [ARGUMENTS]                                                                  
C     ICN        : COMPONENT NUMBER (1-50) TO CALCULATE LIQUID VISCOSITY (INTEGER, INPUT) 
C     T          : TEMPERATURE IN KELVIN (REAL*8, INPUT) 
C
C     VSG        : LIQUID VISCOSITY IN CENTI POISE (REAL*8, OUTPUT) 
C     IST        : STATUS OF CALCULATION (INTEGER, OUTPUT) 
C                = 0	    : NORMAL TERMINATION 
C                = 601   	: LIQUID VISCOSITY COEFFICIENT NOT AVAILABLE 
C                = 602    : OUT OF RANGE FOR THE APPLICATION  
C
C [COMMENTS]
C     
C [REQUIRED COMMON BLOCKS]
C     COMMON /HC_KVSL/ LIQUID VISCOSITY 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     4.REVISED BY Y.S.KIM, KOREA UNIVERSITY, 2001 
C*******************************************************************
      SUBROUTINE HC_VSLEQN(ICN,T,VSL,IST)
      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
	INTEGER IST,ICN  
      REAL*8  T,VSL
C --- COMMON BLOCK FOR GAS VISCOSITY COEFFICIENTS 
      COMMON/HC_KVSL/IEQ_VSL(50),VSL_A(50),VSL_B(50),VSL_C(50),
     1	VSL_D(50),VSL_E(50),VSL_F(50),VSL_G(50),VSL_T1(50),VSL_T2(50)
C --- INITIALIZATION 
      IST = 0
	VSG = 0.0
C --- CHECK IF EQUATION COEFF.S AVAILABLE 
	IF(IEQ_VSL(ICN).LE.0) IST = 601 
C --- CHECK IF THE RANGE OF APPLICATION 
	IF((T.LT.VSL_T1(ICN)).OR.(T.GT.VSL_T2(ICN)) ) IST = 602 
	IF(IST.NE.0) RETURN 
C --- LIQUID HEAT CAPAICITY CALCULATION 
      VSL = VSL_A(ICN)+VSL_B(ICN)/T+VSL_C(ICN)*T+VSL_D(ICN)*T*T 
	VSL = DEXP(VSL)
      RETURN
      END
C*******************************************************************
C
C KDB THEMOPHYSICAL PROPERTIES CALCULATION FORTRAN ROUTINE LIBRARY 
C
C [NAME   ]  HC_VSLPS 
C
C [TYPE   ]  FORTRAN SUBROUTINE                              
C
C [PURPOSE]  CALCULATION OF PURE LIQUID VISCOSITY AT LOW TEMPERATURE
C			 USING PRZEZDZIECKI & SRIDHAR METHODS
C
C [USAGE  ]  CALL HC_VSLPS(IDN,T,VISC,IST)
C
C [ARGUMENTS]                                                                  
C     IDN        : COMPONENT NUMBER (1-50) TO CALCULATE LIQUID VISCOSITY
C				 (INTEGER, INPUT) 
C     T          : TEMPERATURE IN KELVIN (REAL*8, INPUT) 
C				 RANGE : T/Tc < 0.55  
C
C     VISC       : LIQUID VISCOSITY IN CENTI POISE (REAL*8, OUTPUT) 
C     IST        : STATUS OF CALCULATION (INTEGER, OUTPUT) 
C			0  : NORMAL OUTPUT OBTAINED                      
C	       611 : CRITICAL TEMPERATURE DATA NOT AVAILABLE
C		   612 : CRITICAL PRESSURE DATA NOT AVAILABLE	
C		   613 : ACENTRIC FACTOR DATA NOT AVAILABLE	
C		   614 : CRITICAL VOLUME DATA NOT AVAILABLE	
C		   615 : FREEZING POINT DATA NOT AVAILABLE
C		   616 : MOLECULAR WEIGHT DATA NOT AVAILABLE
C            617 : ALCOHOLS CANNOT BE APPLIED TO PRZSRH METHOD 
C		   618 : NOT APPLICABLE TEMPERATURE RANGE	
C
C [COMMENTS]
C     
C [REQUIRED COMMON BLOCKS]
C     COMMON /HC_NAME/
C	COMMON /HC_PROP/
C                                                                   
C [REQUIRED SUBROUTINES OR FUNCTIONS] 
C	SUBROUTINE RACKETT(N,T,X,VOL,IST)
C
C [REFERENCE]
C     Prezdziecki et al., AIChE J., 31, 333 (1985)  
C	
C [REVISION INFORMATION]
C     1.PROGRMAMMED BY J.W.KANG, KOREA UNIVERSITY, 1996
C     4.REVISED BY Y.S.KIM, KOREA UNIVERSITY, 2002 
C*******************************************************************
       SUBROUTINE HC_VSLPS(IDN,T,METH,VISC,IST)
       IMPLICIT DOUBLE PRECISION (A-H,O-Z)
       REAL*8   VISC, X(50),TREF(50)
       INTEGER  IDN	
       CHARACTER*50 CNAME
       CHARACTER*20 FORMULA 
       COMMON/HC_NAME/ICMP(50),CNAME(50),FORMULA(50),ICLASS(50) 
       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 --------------------------C
       IST = 0
       I   = IDN
	 VISC = 0
C---------------- SCAN IF INSUFFICIENT DATA AVAILABLE --------------C
       IF(TC(I).LE.0.) THEN
		IST = 611
		RETURN
	 ENDIF
	 IF(PC(I).LE.0.) THEN
		IST = 612
		RETURN
	 ENDIF
	 IF(VC(I).LE.0.) THEN
		IST = 613
		RETURN
	 ENDIF
	 IF(ACCF(I).LE.0.) THEN
         IST = 614
         RETURN
       ENDIF
       IF(TF(I).LE.0.D0) THEN
         IST = 615
         RETURN
       ENDIF
	 IF(WT(I).LE.0.D0) THEN
		IST=616
		RETURN
	 ENDIF
       IF(ICLASS(I).GE.11.AND.ICLASS(I).LE.14) THEN
         IST = 617
	RETURN
       ENDIF
C--------------------- CHECKING TEMPERATURE RANGE ------------------C
       TR  = T/TC(I)
       TR2 = TR*TR
       TR3 = TR2*TR
       IF(TR.LT.0.55D0.OR.TR.GT.0.77D0) THEN
         IST = 618
         RETURN
       ENDIF
C------------ APPLY GUNN & YAMADA METHOD TO CALC. VOLUME -----------C
	 IF (METH.EQ.1) THEN
		TREF(I)=298.15D0
	    VOL = VOLP(I)
	 ELSE
		TREF(I) = TF(I)+100.D0
		X(1) = 1.
		CALL RACKETT(1,TREF(I),X,VOL,IST)
	 ENDIF

       TRF = TF(I)/TC(I)
       TRF2= TRF*TRF
       TRF3= TRF2*TRF
       TRR = TREF(I)/TC(I)
       TRR2= TRR*TRR
       TRR3= TRR2*TRR
       H1  = 0.33593D0-(0.33953D0*TR)+(1.51941D0*TR2)-(2.02512D0*TR3)
     1       +(1.11422D0*TR2*TR2)
       H2  = 0.29607D0-0.09045D0*TR-(0.04842D0*TR2)
       FT  = H1*(1.D0-ACCF(I)*H2)
       H3  = 0.33593D0-(0.33953D0*TRF)+(1.51941D0*TRF2)-(2.02512D0*
     1       TRF3)+(1.11422D0*TRF2*TRF2)
       H4  = 0.29607D0-0.09045D0*TRF-(0.04842D0*TRF2)
       FFT = H3*(1.D0-ACCF(I)*H4)
       H5  = 0.33593D0-(0.33953D0*TRR)+(1.51941D0*TRR2)-(2.02512D0*
     1       TRR3)+(1.11422D0*TRR2*TRR2)
       H6  = 0.29607D0-0.09045D0*TRR-(0.04842D0*TRR2)
       FRT = H5*(1.D0-ACCF(I)*H6)
       VM  = (FFT/FRT)*VOL
       V   = (FT/FRT)*VOL
C------------------- CALCULATE LIQUID VISCOSITY --------------------C
       E   = -1.12D0+VC(I)*1.D3/(12.94D0+(0.1D0*WT(I))-(0.23D-2*PC(I))
     1       +(0.0424D0*TF(I))-(11.58D0*TRF))
       VO  = 0.0085D0*ACCF(I)*TC(I)-2.02D0+(VM/(0.342D0*TRF+0.894D0))
       VISC= VO/(E*(V-VO))
       RETURN
       END

C*******************************************************************
C
C KDB THEMOPHYSICAL PROPERTIES CALCULATION FORTRAN ROUTINE LIBRARY 
C
C [NAME   ]  HC_VSLLET 
C
C [TYPE   ]  FORTRAN SUBROUTINE                              
C
C [PURPOSE]  CALCULATION OF PURE LIQUID VISCOSITY	AT HIGH TEMPERATURES
C			 USING LETSOU & STIEL METHOD
C
C [USAGE  ]  CALL HC_VSLLET(IDN,T,VISC,IST)
C
C [ARGUMENTS]                                                                  
C     IDN        : COMPONENT NUMBER (1-50) TO CALCULATE LIQUID VISCOSITY
C				 (INTEGER, INPUT) 
C     T          : TEMPERATURE IN KELVIN (REAL*8, INPUT) 
C					APPLICABLE ABOVE A REDUCED TEMPERATURE OF ABOUT 0.76
C
C     VISC       : LIQUID VISCOSITY IN CENTI POISE (REAL*8, OUTPUT) 
C     IST        : STATUS OF CALCULATION (INTEGER, OUTPUT) 
C			0  : NORMAL OUTPUT OBTAINED                      
C	       621 : CRITICAL TEMPERATURE DATA NOT AVAILABLE
C		   622 : CRITICAL PRESSURE DATA NOT AVAILABLE	
C		   623 : ACENTRIC FACTOR DATA NOT AVAILABLE	
C		   624 : MOLECULAR WEIGHT DATA NOT AVAILABLE
C		   625 : NOT APPLICABLE TEMPERATURE RANGE
C [COMMENTS]
C     
C [REQUIRED COMMON BLOCKS]
C	COMMON /HC_PROP/
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     4.REVISED BY Y.S.KIM, KOREA UNIVERSITY, 2002 
C*******************************************************************
       SUBROUTINE HC_VSLLETSOU(IDN,T,VISC,IST)
       IMPLICIT DOUBLE PRECISION (A-H,O-Z)
       REAL*8   VISC 
       INTEGER  IDN	
       CHARACTER*50 CNAME
       CHARACTER*20 FORMULA 
       COMMON/HC_NAME/ICMP(50),CNAME(50),FORMULA(50),ICLASS(50) 
       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 --------------------------C
       IST = 0
       I   = IDN
	 VISC = 0
C---------------- SCAN IF INSUFFICIENT DATA AVAILABLE --------------C
       IF(TC(I).LE.0.) THEN
		IST = 621
		RETURN
	 ENDIF
	 IF(PC(I).LE.0.) THEN
		IST = 622
		RETURN
	 ENDIF
	 IF(ACCF(I).LE.0.) THEN
         IST = 623
         RETURN
       ENDIF
	 IF(WT(I).LE.0.D0) THEN
		IST= 624
		RETURN
	 ENDIF
C-------------------- CHECKING TEMPERATURE RANGE -------------------C
       TR = T/TC(I)
       IF(TR.LT.0.76D0.OR.TR.GT.0.98D0) THEN
         IST = 625
         RETURN
       ENDIF
C--------------------- LETSOU AND STIEL METHOD ---------------------C
       ES=0.176D0*((TC(I)/((WT(I)**3.D0)*((PC(I)*1.D-2)**4.D0)))
     1      **(1.D0/6.D0))
       VEE1=(2.648D0-3.725D0*TR+1.309D0*TR*TR)*1.D-3
       VEE2=(7.425D0-13.39D0*TR+5.933D0*TR*TR)*1.D-3
       VISC=(VEE1+ACCF(I)*VEE2)/ES
       RETURN
       END


C*******************************************************************
C     END OF FILE 

