Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | EvapCoolNum |
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
SUBROUTINE CalcWetIndirectEvapCooler(EvapCoolNum)
! SUBROUTINE INFORMATION:
! AUTHOR Richard J. Liesen
! DATE WRITTEN October 2000
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine needs a description.
! METHODOLOGY EMPLOYED:
! Needs description, as appropriate.
! REFERENCES:
! na
! USE STATEMENTS:
! Use DataEnvironment, ONLY: OutDryBulbTemp, OutWetBulbTemp, OutHumRat, OutBaroPress
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
Integer :: EvapCoolNum
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
!REAL(r64) Variables
REAL(r64) :: StageEff ! Stage Efficiency of the Heat Exchanger
REAL(r64) :: TEDB ! Entering Dry Bulb Temperature
REAL(r64) :: TEWB ! Entering Wet Bulb Temperature
REAL(r64) :: QHX ! Q Across Sec HX in Watts or J/sec
REAL(r64) :: RhoWater
REAL(r64) :: RhoAir ! Density of the primary side air
REAL(r64) :: CFMAir
REAL(r64) :: CFMSec
REAL(r64) :: TWBSec ! wet bulb of secondary air
! If the Evaporative Cooler is operating there should be some mass flow rate
! Also the evap cooler has to be scheduled to be available
IF((EvapCond(EvapCoolNum)%InletMassFlowRate .GT. 0.0d0) .and. &
(GetCurrentScheduleValue(EvapCond(EvapCoolNum)%SchedPtr) .gt. 0.0d0)) THEN
!******************************************************************************
! THIS SUBROUTINE WILL CACULATE THE TEMPERATURE OF THE LEAVING AIR DRY BULB
! FOR A WET COIL EVAPORATIVE COOLER
!******************************************************************************
! INDIRECT STAGE EFFICIENCY FOR WET COIL INDIRECT EVAP COOLERS
CFMAir = EvapCond(EvapCoolNum)%VolFlowRate !Volume Flow Rate Primary Side
CFMSec = EvapCond(EvapCoolNum)%IndirectVolFlowRate !Volume Flolw Rate Secondary Side
StageEff = EvapCond(EvapCoolNum)%WetCoilMaxEfficiency - &
MIN(EvapCond(EvapCoolNum)%WetCoilFlowRatio*CFMAIR/CFMSEC, &
EvapCond(EvapCoolNum)%WetCoilMaxEfficiency)
IF(StageEff.GE.1.0d0) StageEff=1.0d0
! This is a rough approximation of the Total Indirect Stage Efficiency. I think that
! this would mainly be used for evap sizing purposes.
EvapCond(EvapCoolNum)%StageEff = StageEff
!***************************************************************************
! TEMP LEAVING DRY BULB IS CALCULATED FROM A SIMPLE WET BULB APPROACH
! MODEL GIVEN THE INDIRECT STAGE EFFICIENCY.
! DRY BULB TEMP APPROACHES THE WET BULB TEMP ACROSS THE INDIRECT STAGE.
!***************************************************************************
! CALCULATE THE TLDB
TEWB = EvapCond(EvapCoolNum)%InletWetBulbTemp
TEDB = EvapCond(EvapCoolNum)%InletTemp
TWBSec = PsyTwbFnTdbWPb(EvapCond(EvapCoolNum)%SecInletTemp &
,EvapCond(EvapCoolNum)%SecInletHumRat &
,EvapCond(EvapCoolNum)%SecInletPressure )
EvapCond(EvapCoolNum)%OutletTemp = TEDB - StageEff*(TEDB-TWBSec)
!***************************************************************************
! CALCULATE THE WET BULB TEMP in the primary system air using PSYCH ROUTINES
! There is a constant humidity ratio across the primary side but a reduction in the dry bulb temp
EvapCond(EvapCoolNum)%OuletWetBulbTemp = PsyTwbFnTdbWPb(EvapCond(EvapCoolNum)%OutletTemp, &
EvapCond(EvapCoolNum)%InletHumRat,OutBaroPress)
!***************************************************************************
! CALCULATE other outlet properties using PSYCH ROUTINES
EvapCond(EvapCoolNum)%OutletHumRat = EvapCond(EvapCoolNum)%InletHumRat
EvapCond(EvapCoolNum)%OutletEnthalpy = PsyHFnTdbW(EvapCond(EvapCoolNum)%OutletTemp, &
EvapCond(EvapCoolNum)%OutletHumRat)
!***************************************************************************
! POWER OF THE SECONDARY AIR FAN
IF (EvapCond(EvapCoolNum)%IndirectFanEff > 0.0D0) THEN
EvapCond(EvapCoolNum)%EvapCoolerPower=EvapCond(EvapCoolNum)%EvapCoolerPower + &
EvapCond(EvapCoolNum)%IndirectFanDeltaPress* &
EvapCond(EvapCoolNum)%IndirectVolFlowRate/ &
EvapCond(EvapCoolNum)%IndirectFanEff
ENDIF
! ENERGY CONSUMED BY THE RECIRCULATING PUMP
! ENERGY CONSUMED BY THE RECIRCULATING PUMP
!Add the pump energy to the total Evap Cooler energy comsumption
EvapCond(EvapCoolNum)%EvapCoolerPower = EvapCond(EvapCoolNum)%EvapCoolerPower + &
EvapCond(EvapCoolNum)%IndirectRecircPumpPower
!******************
! WATER CONSUMPTION IN LITERS OF WATER FOR Wet InDIRECT
! H2O [m3/sec] = (QHx [J/s])/(2,500,000 [J/kg H2O] * RhoWater [kg H2O/m3 H2O])
!******************
!***** FIRST calculate the heat exchange on the primary air side**********
RhoAir = PsyRhoAirFnPbTdbW(OutBaroPress,EvapCond(EvapCoolNum)%InletTemp,EvapCond(EvapCoolNum)%InletHumRat)
QHX = CFMAir*RhoAir*(EvapCond(EvapCoolNum)%InletEnthalpy - EvapCond(EvapCoolNum)%OutletEnthalpy)
RhoWater = RhoH2O(EvapCond(EvapCoolNum)%SecInletTemp)
EvapCond(EvapCoolNum)%EvapWaterConsumpRate = (QHx/StageEff)/(2500000.0d0 * RhoWater)
! A numerical check to keep from having very tiny negative water consumption values being reported
If(EvapCond(EvapCoolNum)%EvapWaterConsumpRate < 0.0d0) EvapCond(EvapCoolNum)%EvapWaterConsumpRate = 0.0d0
Else
! The evap cooler is not running and does not change conditions from inlet to outlet
EvapCond(EvapCoolNum)%OutletTemp = EvapCond(EvapCoolNum)%InletTemp
EvapCond(EvapCoolNum)%OuletWetBulbTemp = EvapCond(EvapCoolNum)%InletWetBulbTemp
EvapCond(EvapCoolNum)%OutletHumRat = EvapCond(EvapCoolNum)%InletHumRat
EvapCond(EvapCoolNum)%OutletEnthalpy = EvapCond(EvapCoolNum)%InletEnthalpy
EvapCond(EvapCoolNum)%EvapCoolerEnergy = 0.0d0
EvapCond(EvapCoolNum)%EvapWaterConsumpRate = 0.0d0
End IF
! all of the mass flowrates are not changed across the evap cooler
EvapCond(EvapCoolNum)%OutletMassFlowRate = EvapCond(EvapCoolNum)%InletMassFlowRate
EvapCond(EvapCoolNum)%OutletMassFlowRateMaxAvail = EvapCond(EvapCoolNum)%InletMassFlowRateMaxAvail
EvapCond(EvapCoolNum)%OutletMassFlowRateMinAvail = EvapCond(EvapCoolNum)%InletMassFlowRateMinAvail
! the pressure is not changed across the evap cooler
EvapCond(EvapCoolNum)%OutletPressure = EvapCond(EvapCoolNum)%InletPressure
RETURN
END SUBROUTINE CalcWetIndirectEvapCooler