SUBROUTINE TYPE76 (TIME,XIN,OUT,T,DTDT,PAR,INFO,ICNTRL,*) C*********************************************************************** C* Copyright ASHRAE. Toolkit for HVAC System Energy Calculations C*********************************************************************** C* SUBROUTINE: HCSIM C* C* LANGUAGE: FORTRAN 77 C* C* PURPOSE: Calculate the performance of a heating C* coil by modeling as a crossflow, both C* streams unmixed, heat exchanger. Results C* include outlet air temperature and C* humidity, outlet water temperature, C* sensible and total cooling capacities. C*********************************************************************** C* INPUT VARIABLES DESCRIPTION(UNITS) SAMPLE VALUES C* XIN(1) MLiq Liquid mass flow rate(kg/s) 1.6 C* XIN(2) TLiqEnt Entering water temperature(C) 62.2 C* XIN(3) MAir Dry air mass flow rate(kg/s) 2.887 C* XIN(4) TAirEnt Entering air dry bulb temperature(C) 15.60 C* XIN(5) WAirEnt Entering air humidity ratio(-) .008 C* C* OUTPUT VARIABLES C* OUT(1) TLiqLvg Leaving water temperature(C) 54.1365 C* OUT(2) TAirLvg Leaving air dry bulb temperature(C) 33.9318 C* OUT(3) WAirLvg Leaving air humidity ratio(-) .008 C* OUT(4) QTot Total heat transfer rate(W) -54005.8 C* OUT(5) QSen Sensible heat transfer rate(W) -54005.8 C* OUT(6) FWet Fraction of surface area wet(-) 0.0 C* OUT(7) ErrStat Error status indicator,0=ok,1=error(-) 0.0 C* C* PARAMETERS C* PAR(1) QTotRat Total heat transfer at rating(W) 44000.0 C* PAR(2) MLiqRat Liquid mass flow rate at rating(kg/s) 1.87 C* PAR(3) TLiqRat Entering water temperature at rating(C) 48.90 C* PAR(4) MAirRat Dry air mass flow rate at rating(kg/s) 6.8 C* PAR(5) TAirRat Entering air dry bulb temperature at rating(C) 15.6 C* PAR(6) WAirRat Entering air humidity ratio at rating(-) .007 C* C* PROPERTIES C* CpAir Specific heat of dry air (J/kg C) C* CpLiq Specific heat of liquid (J/kg C) C* CpVap Specific heat of water vapor (J/kg C) C*********************************************************************** C MAJOR RESTRICTIONS: Models coil using effectiveness Ntu model C as crossflow heat exchanger with both C streams unmixed C C DEVELOPER: Shauna Gabel C Michael J. Brandemuehl, PhD, PE C University of Colorado at Boulder C C DATE: January 1, 1992 C C INCLUDE FILES: hcsim.inc C prop.inc C SUBROUTINES CALLED: DRYCOIL C FUNCTIONS CALLED: None C C REVISION HISTORY: None C C REFERENCE: None C*********************************************************************** C INTERNAL VARIABLES: C P(UATot) Overall heat transfer coefficient (W/C) C capAir Air-side capacity rate (W/C) C capLiq Water-side capacity rate (W/C) C*********************************************************************** DOUBLE PRECISION XIN, OUT INTEGER Patm,CpAir,CpWat,CpLiq,CpVap,DViscAir, & DViscLiq,KAir,KLiq,RhoLiq,Hfg,RAir, & TKelMult,TAbsAdd,PaMult,PAbsAdd INTEGER INFO,IOPT,NI,NP,ND REAL Prop(16),PAR DIMENSION XIN(5),OUT(7),PAR(6),INFO(15) CHARACTER*3 YCHECK(5),OCHECK(7) PARAMETER (Patm = 1) PARAMETER (CpAir = 2) PARAMETER (CpWat = 3) PARAMETER (CpVap = 4) PARAMETER (CpLiq = 5) PARAMETER (DViscAir = 6) PARAMETER (DViscLiq = 7) PARAMETER (KAir = 8) PARAMETER (KLiq = 9) PARAMETER (RhoLiq = 10) PARAMETER (Hfg = 11) PARAMETER (RAir = 12) PARAMETER (TKelMult = 13) PARAMETER (TAbsAdd = 14) PARAMETER (PaMult = 15) PARAMETER (PAbsAdd = 16) PROP(PATM) = 101325.0 PROP(CPAIR) = 1006.0 PROP(CPWAT) = 4186.0 PROP(CPVAP) = 1805.0 PROP(CPLIQ) = 4186.0 PROP(DVISCAIR) = .0000182 PROP(DVISCLIQ) = .00144 PROP(KAIR) = .026 PROP(KLIQ) = .604 PROP(RHOLIQ) = 998.0 PROP(HFG) = 2501000.0 PROP(RAIR) = 287.055 PROP(TKELMULT) = 1.0 PROP(TABSADD) = 273.15 PROP(PAMULT) = 1.0 PROP(PABSADD) = 0.0 MLIQ = XIN(1) TLIQENT = XIN(2) MAIR = XIN(3) TAIRENT = XIN(4) WAIRENT = XIN(5) QTOTRAT = PAR(1) MLIQRAT = PAR(2) TLIQRAT = PAR(3) MAIRRAT = PAR(4) TAIRRAT = PAR(5) WAIRRAT = PAR(6) DATA configHX/3./ DATA YCHECK/'MF2','TE1','MF2','TE1','DM1'/ DATA OCHECK/'TE1','TE1','DM1','PW2','PW2','DM1','DM1'/ ErrStat = 0 IOPT = -1 NI = 5 !CORRECT NUMBER OF INPUTS NP = 6 !CORRECT NUMBER OF PARAMETERS ND = 0 !CORRECT NUMBER OF DERIVATIVES IF (INFO(7).EQ.-1) THEN CALL TYPECK(IOPT,INFO,NI,NP,ND) C CHECKS TO SEE IF USER'S INFO MATCHES CORRECT NUMBER CALL RCHECK(INFO,YCHECK,OCHECK) C CHECKS TO SEE IF INPUT AND OUTPUT UNITS MATCH ENDIF C2********************************************************************** C2 The code between these bars of asterisks is used to set internal C2 parameters and is independent of component input values. In an C2 hourly simulation, this block of code may be skipped after the C2 first call. C1*** Calculate overall heat transfer coefficient from fluid states C1*** and known total heat transfer capAir = MAirRat * (Prop(CpAir)+WAirRat*Prop(CpVap)) capLiq = MLiqRat * Prop(CpLiq) UATot = UAHX(capAir,TAirRat,capLiq,TLiqRat,QTotRat, & configHX,ErrStat) C2********************************************************************** C1*** Calculate the leaving conditions and performance CALL DRYCOIL (Prop,MLiq,TLiqEnt,MAir,TAirEnt,WAirEnt, & UATot,configHX, & TLiqLvg,TAirLvg,WAirLvg,QTot,ErrStat) QSen = QTot FWet = 0. 999 CONTINUE OUT(1) = TLIQLVG OUT(2) = TAIRLVG OUT(3) = WAIRLVG OUT(4) = QTOT OUT(5) = QSEN OUT(6) = FWET OUT(7) = ERRSTAT RETURN 1 END SUBROUTINE DRYCOIL (Prop,MLiq,TLiqEnt,MAir,TAirEnt,WAirEnt, & UA,ConfigHX, & TLiqLvg,TAirLvg,WAirLvg,Q, & ErrStat) C*********************************************************************** C* Copyright ASHRAE. Toolkit for HVAC System Energy Calculations C*********************************************************************** C* SUBROUTINE: DRYCOIL C* C* LANGUAGE: FORTRAN 77 C* C* PURPOSE: Calculate the performance of a sensible C* air-liquid heat exchanger. Calculated C* results include outlet air temperature C* and humidity, outlet water temperature, C* and heat transfer rate. C*********************************************************************** C* INPUT VARIABLES C* MLiq Liquid mass flow rate (kg/s) C* TLiqEnt Entering water temperature (C) C* MAir Dry air mass flow rate (kg/s) C* TAirEnt Entering air dry bulb temperature (C) C* WAirEnt Entering air humidity ratio (-) C* C* UA Overall heat transfer coefficient (W/C) C* ConfigHX Heat exchanger configuration (-) C* 1 - Counterflow C* 2 - Parallel flow C* 3 - Cross flow, both streams unmixed C* 4 - Cross flow, both streams mixed C* 5 - Cross flow, stream 1 unmixed C* 6 - Cross flow, stream 2 unmixed C* C* OUTPUT VARIABLES C* TLiqLvg Leaving water temperature (C) C* TAirLvg Leaving air dry bulb temperature (C) C* WAirLvg Leaving air humidity ratio (-) C* Q Heat transfer rate (W) C* ErrStat Error status indicator, 0 = ok, 1 = error (-) C* C* PROPERTIES C* CpAir Specific heat of air (J/kg C) C* CpVap Specific heat of water vapor (J/kg C) C* CpLiq Specific heat of liquid (J/kg C) C*********************************************************************** C MAJOR RESTRICTIONS: Models coil using effectiveness-Ntu model. C C DEVELOPER: Shauna Gabel C Michael J. Brandemuehl, PhD, PE C University of Colorado at Boulder C C DATE: January 1, 1992 C C INCLUDE FILES: prop.inc C SUBROUTINES CALLED: HEATEX C FUNCTIONS CALLED: None C C REVISION HISTORY: None C C REFERENCE: Kays, W.M. and A.L. London. 1964. C Compact Heat Exchangers, 2nd Edition, C New York: McGraw-Hill. C C Threlkeld, J.L. 1970. Thermal C Environmental Engineering, 2nd Edition, C Englewood Cliffs: Prentice-Hall, Inc. C pp. 254-270. C*********************************************************************** C INTERNAL VARIABLES: C capAir Air-side capacity rate (W/C) C capLiq Water-side capacity rate (W/C) C*********************************************************************** INTEGER Patm,CpAir,CpWat,CpLiq,CpVap,DViscAir, & DViscLiq,KAir,KLiq,RhoLiq,Hfg,RAir, & TKelMult,TAbsAdd,PaMult,PAbsAdd REAL Prop(16) PARAMETER (Patm = 1) PARAMETER (CpAir = 2) PARAMETER (CpWat = 3) PARAMETER (CpVap = 4) PARAMETER (CpLiq = 5) PARAMETER (DViscAir = 6) PARAMETER (DViscLiq = 7) PARAMETER (KAir = 8) PARAMETER (KLiq = 9) PARAMETER (RhoLiq = 10) PARAMETER (Hfg = 11) PARAMETER (RAir = 12) PARAMETER (TKelMult = 13) PARAMETER (TAbsAdd = 14) PARAMETER (PaMult = 15) PARAMETER (PAbsAdd = 16) REAL MAir,MLiq INTEGER Errstat Errstat = 0 C2*** Calculate air and water capacity rates capAir = MAir*(Prop(CpAir)+WAirEnt*Prop(CpVap)) capLiq = MLiq*Prop(CpLiq) C1*** Determine the air and water outlet conditions CALL HEATEX (capLiq,TLiqEnt,capAir,TAirEnt,UA,ConfigHX, & TLiqLvg,TAirLvg) C1*** Calculate the total and sensible heat transfer rate Q = capAir*(TAirEnt-TAirLvg) WAirLvg = WAirEnt RETURN END C*********************************************************************** C* FILE: prop.inc C* C* This file assigns a numbers to air and water property names to be C* used in the "Prop" array. C*********************************************************************** C DEVELOPER: Inger Andresen C Michael J. Brandemuehl, PhD, PE C C DATE: July 1, 1991 C C FILES REQUIRED: None C*********************************************************************** C INTERNAL VARIABLES: C Patm Atmospheric pressure (Pa) C CpAir Specific heat of dry air (J/kg C) C CpLiq Specific heat of liquid water (J/kg C) C CpVap Specific heat of saturated water vapor (J/kg C) C DViscAir Air dynamic viscosity (kg/m s) C DViscLiq Liquid dynamic viscosity (kg/m s) C KAir Air thermal conductivity (W/m C) C KLiq Liquid thermal conductivity (W/m C) C RhoLiq Liquid density (kg/m3) C Hfg Latent heat of vaporization of water (J/kg) C RAir Gas constant for air (J/kg C) C TKelMult Multiplying factor to convert user T to Kelvin C TAbsAdd Additive factor to convert user P to Kelvin C tKel = Prop(TKelMult)*T + Prop(TKelAdd) C PaMult Multiplying factor to convert user P to Pascals C PAbsAdd Additive factor to convert user P to Pascals C Pa = Prop(PaMult)*P + Prop(PaAdd) C*********************************************************************** C C INTEGER Patm,CpAir,CpWat,CpLiq,CpVap,DViscAir, C & DViscLiq,KAir,KLiq,RhoLiq,Hfg,RAir, C & TKelMult,TAbsAdd,PaMult,PAbsAdd C REAL Prop(16) C C PARAMETER (Patm = 1) C PARAMETER (CpAir = 2) C PARAMETER (CpWat = 3) C PARAMETER (CpVap = 4) C PARAMETER (CpLiq = 5) C PARAMETER (DViscAir = 6) C PARAMETER (DViscLiq = 7) C PARAMETER (KAir = 8) C PARAMETER (KLiq = 9) C PARAMETER (RhoLiq = 10) C PARAMETER (Hfg = 11) C PARAMETER (RAir = 12) C PARAMETER (TKelMult = 13) C PARAMETER (TAbsAdd = 14) C PARAMETER (PaMult = 15) C PARAMETER (PAbsAdd = 16) SUBROUTINE HEATEX (Cap1,In1,Cap2,In2,UA,ConfigHX,Out1,Out2) C*********************************************************************** C* Copyright ASHRAE. Toolkit for HVAC System Energy Calculations C*********************************************************************** C* SUBROUTINE: HEATEX C* C* LANGUAGE: FORTRAN 77 C* C* PURPOSE: Calculate the outlet states of a simple C* heat exchanger using the effectiveness-Ntu C* method of analysis. C*********************************************************************** C* INPUT VARIABLES C* Cap1 Capacity rate of stream 1 (W/C) C* In1 Inlet state of stream 1 (C) C* Cap2 Capacity rate of stream 2 (W/C) C* In2 Inlet state of stream 2 (C) C* UA Overall heat transfer coefficient (W/C) C* ConfigHX Heat exchanger configuration (-) C* 1 - Counterflow C* 2 - Parallel flow C* 3 - Cross flow, both streams unmixed C* 4 - Cross flow, both streams mixed C* 5 - Cross flow, stream 1 unmixed C* 6 - Cross flow, stream 2 unmixed C* C* OUTPUT VARIABLES C* Out1 Outlet state of stream 1 (C) C* Out2 Outlet state of stream 2 (C) C*********************************************************************** C MAJOR RESTRICTIONS: None C C DEVELOPER: Shauna Gabel C Michael J. Brandemuehl, PhD, PE C University of Colorado at Boulder C C DATE: January 1, 1992 C C INCLUDE FILES: None C SUBROUTINES CALLED: None C FUNCTIONS CALLED: None C C REVISION HISTORY: None C C REFERENCE: Kays, W.M. and A.L. London. 1964. C Compact Heat Exchangers, 2nd Ed., McGraw- C Hill: New York. REAL ntu,qMax,In1,In2,large DATA small/1.E-15/, large/1.E15/ C1*** Ntu and Cmin/Cmax (cRatio) calculations cMin = MIN(Cap1,Cap2) cMax = MAX(Cap1,Cap2) IF( cMax .EQ. 0.) THEN cRatio = 1. ELSE cRatio = cMin/cMax ENDIF IF( cMin .EQ. 0.) THEN ntu = large ELSE ntu = ua/cMin ENDIF C1*** Calculate effectiveness for special limiting cases mode = NINT(ConfigHX) IF(ntu .LE. 0) THEN effectiveness = 0. ELSE IF(cRatio .LT. small) THEN C2*** Cmin/Cmax = 0 and effectiveness is independent of configuration effectiveness = 1 - EXP(-ntu) C1*** Calculate effectiveness depending on heat exchanger configuration ELSE IF (mode .EQ. 1) THEN C2*** Counterflow IF (ABS(cRatio-1.) .LT. small) THEN effectiveness = ntu/(ntu+1.) ELSE e=EXP(-ntu*(1-cRatio)) effectiveness = (1-e)/(1-cRatio*e) ENDIF ELSE IF (mode .EQ. 2) THEN C2*** Parallel flow effectiveness = (1-EXP(-ntu*(1+cRatio)))/(1+cRatio) ELSE IF (mode .EQ. 3) THEN C2*** Cross flow, both streams unmixed eta = ntu**(-0.22) effectiveness = 1 - EXP((EXP(-ntu*cRatio*eta)-1)/(cRatio*eta)) ELSE IF (mode .EQ. 4) THEN C2*** Cross flow, both streams mixed effectiveness = ((1/(1-EXP(-ntu)))+ & (cRatio/(1-EXP(-ntu*cRatio)))-(1/(-ntu)))**(-1) ELSE C2*** One stream is mixed and one is unmixed. Determine whether the C2*** minimum or maximum capacity rate stream is mixed. IF ( (ABS(Cap1-cMin).LT.small .AND. mode.EQ.5) .OR. & (ABS(Cap2-cMin).LT.small .AND. mode.EQ.6) ) THEN C2*** Cross flow, stream with minimum capacity rate unmixed effectiveness = (1-EXP(-cRatio*(1-EXP(-ntu))))/cRatio ELSE C2*** Cross flow, stream with maximum capacity rate unmixed effectiveness = 1-EXP(-(1-EXP(-ntu*cRatio))/cRatio) ENDIF ENDIF C1*** Determine leaving conditions for the two streams qMax = MAX(cMin,small)*(In1-In2) Out1 = In1 - effectiveness*qMax/MAX(Cap1,small) Out2 = In2 + effectiveness*qMax/MAX(Cap2,small) RETURN END