Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | TESCoilNum | |||
integer, | intent(in) | :: | FanOpMode | |||
real(kind=r64), | intent(in) | :: | PartLoadRatio |
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 CalcTESCoilCoolingOnlyMode(TESCoilNum, FanOpMode, PartLoadRatio)
! SUBROUTINE INFORMATION:
! AUTHOR Brent Griffith
! DATE WRITTEN April 2013
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! <description>
! METHODOLOGY EMPLOYED:
! <description>
! REFERENCES:
! na
! USE STATEMENTS:
USE CurveManager, ONLY: CurveValue
USE DataHVACGlobals, ONLY: TimeStepSys
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER , INTENT (IN) :: TESCoilNum
INTEGER , INTENT (IN) :: FanOpMode
REAL(r64) , INTENT (IN) :: PartLoadRatio
! SUBROUTINE PARAMETER DEFINITIONS:
INTEGER, PARAMETER :: MaxIter = 30
REAL(r64), PARAMETER :: RelaxationFactor = 0.4d0
REAL(r64), PARAMETER :: Tolerance = 0.1d0
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: CondInletTemp ! Condenser inlet temperature (C). Outdoor dry-bulb temp for air-cooled condenser.
! Outdoor Wetbulb +(1 - effectiveness)*(outdoor drybulb - outdoor wetbulb) for evap condenser.
REAL(r64) :: CondInletHumrat ! Condenser inlet humidity ratio (kg/kg). Zero for air-cooled condenser.
! For evap condenser, its the humidity ratio of the air leaving the evap cooling pads.
REAL(r64) :: CondAirMassFlow ! Condenser air mass flow rate [kg/s]
REAL(r64) :: CondInletEnthalpy ! condenser inlet enthalpy [J/kg]
REAL(r64) :: CondAirSidePressure ! Outdoor barometric pressure at condenser (Pa)
REAL(r64) :: QdotCond ! condenser total heat rejection rate [W]
REAL(r64) :: CondOutletEnthalpy !condesner outlet enthalpy [J/kg]
REAL(r64) :: OutdoorDryBulb ! outdoor air dry bulb local variable [C]
REAL(r64) :: OutdoorHumRat ! outdoor air humidity ratio local [kg/kg]
REAL(r64) :: OutdoorWetBulb ! outdoor air wetbulb local [C]
REAL(r64) :: EvapAirMassFlow ! local for evaporator air mass flow [kg/s]
REAL(r64) :: EvapInletDryBulb ! evaporator inlet air drybulb [C]
REAL(r64) :: EvapInletHumRat ! evaporator inlet air humidity ratio [kg/kg]
REAL(r64) :: EvapInletWetBulb ! evaporator inlet air wetbulb [C]
REAL(r64) :: EvapInletEnthalpy ! evaporator inlet air enthalpy [J/kg]
REAL(r64) :: AirMassFlowRatio ! evaporator inlet air mass flow divided by design mass flow [ ]
REAL(r64) :: TotCapTempModFac ! total coolin capacity modification factor due to temps []
REAL(r64) :: TotCapFlowModFac !Total cooling capacity modification factor due to flow []
REAL(r64) :: TotCap ! total cooling capacity
REAL(r64) :: SHRTempFac ! sensible heat ratio modification factor due to temps []
REAL(r64) :: SHRFlowFac ! sensible heat ratio modification factor due to flow []
REAL(r64) :: SHR ! sensible heat ratio
REAL(r64) :: PLF ! part load factor
REAL(r64) :: RuntimeFraction ! compressor running time divided by full time of timestep.
REAL(r64) :: FullLoadOutAirEnth ! evaporator outlet full load enthalpy [J/kg]
REAL(r64) :: hTinwout ! Enthalpy at inlet dry-bulb and outlet humidity ratio [J/kg]
REAL(r64) :: FullLoadOutAirHumRat ! evaporator outlet humidity ratio at full load
REAL(r64) :: FullLoadOutAirTemp !evaporator outlet air temperature at full load [C]
REAL(r64) :: EvapOutletAirEnthalpy ! evaporator outlet air enthalpy [J/kg]
REAL(r64) :: EvapOutletAirHumRat !evaporator outlet air humidity ratio [kg/kg]
REAL(r64) :: EvapOutletAirTemp !evaporator outlet dryblub [C]
REAL(r64) :: EIRTempModFac ! energy input ratio modification factor due to temperatures []
REAL(r64) :: EIRFlowModFac !energy input ratio modification factor due to flow []
REAL(r64) :: EIR ! energy input ratio
REAL(r64) :: ElecCoolingPower ! compressor electric power
REAL(r64) :: MinAirHumRat ! minimum air humidity ratio
REAL(r64) :: PartLoadOutAirEnth ! local leaving enthalpy at part load
REAL(r64) :: PartLoadDryCoilOutAirTemp ! local leaving drybulb if coil were dry
LOGICAL :: CoilMightBeDry
INTEGER :: Counter
LOGICAL :: Converged
REAL(r64) :: DryCoilTestEvapInletHumRat
REAL(r64) :: DryCoilTestEvapInletWetBulb
REAL(r64) :: hADP
REAL(r64) :: tADP
REAL(r64) :: wADP
REAL(r64) :: hTinwADP
REAL(r64) :: SHRadp
REAL(r64) :: werror
! first deal with condenser
IF (TESCoil(TESCoilNum)%CondenserType == AirCooled) THEN
CondAirSidePressure = Node(TESCoil(TESCoilNum)%CondAirInletNodeNum)%Press
IF(CondAirSidePressure == DefaultNodeValues%Press)THEN
CondInletTemp = OutDryBulbTemp
CondInletHumrat = OutHumRat
CondAirSidePressure = OutBaroPress
ELSE
CondInletTemp = Node(TESCoil(TESCoilNum)%CondAirInletNodeNum)%Temp
CondInletHumrat = Node(TESCoil(TESCoilNum)%CondAirInletNodeNum)%HumRat
ENDIF
CondAirMassFlow = TESCoil(TESCoilNum)%CondenserAirMassFlow
ELSEIF (TESCoil(TESCoilNum)%CondenserType == EvapCooled) THEN
CondAirSidePressure = Node(TESCoil(TESCoilNum)%CondAirInletNodeNum)%Press
IF(CondAirSidePressure == DefaultNodeValues%Press)THEN
OutdoorDryBulb = OutDryBulbTemp
OutdoorHumRat = OutHumRat
CondAirSidePressure = OutBaroPress
OutdoorWetBulb = OutWetBulbTemp
ELSE
OutdoorDryBulb = Node(TESCoil(TESCoilNum)%CondAirInletNodeNum)%Temp
OutdoorHumRat = Node(TESCoil(TESCoilNum)%CondAirInletNodeNum)%HumRat
OutdoorWetBulb = PsyTwbFnTdbWPb(OutdoorDryBulb, OutdoorHumRat, CondAirSidePressure, 'CalcTESCoilCoolingOnlyMode')
ENDIF
CondAirMassFlow = TESCoil(TESCoilNum)%CondenserAirMassFlow
! direct evap cool model
CondInletTemp = OutdoorWetBulb + (OutdoorDryBulb-OutdoorWetBulb)*(1.0d0 - TESCoil(TESCoilNum)%EvapCondEffect)
CondInletHumrat = PsyWFnTdbTwbPb(CondInletTemp,OutdoorWetBulb,CondAirSidePressure, 'CalcTESCoilCoolingOnlyMode')
ENDIF
EvapAirMassFlow = Node(TESCoil(TESCoilNum)%EvapAirInletNodeNum)%MassFlowRate
EvapInletDryBulb = Node(TESCoil(TESCoilNum)%EvapAirInletNodeNum)%Temp
EvapInletHumRat = Node(TESCoil(TESCoilNum)%EvapAirInletNodeNum)%HumRat
EvapInletWetBulb = PsyTwbFnTdbWPb(EvapInletDryBulb, EvapInletHumRat, OutBaroPress, 'CalcTESCoilCoolingOnlyMode')
EvapInletEnthalpy = Node(TESCoil(TESCoilNum)%EvapAirInletNodeNum)%Enthalpy
CoilMightBeDry = .FALSE.
IF ((EvapAirMassFlow > SmallMassFlow) .AND. (PartLoadRatio > 0.d0)) THEN ! coil is running
AirMassFlowRatio = EvapAirMassFlow / TESCoil(TESCoilNum)%RatedEvapAirMassFlowRate
TotCapTempModFac = CurveValue(TESCoil(TESCoilNum)%CoolingOnlyCapFTempCurve, EvapInletWetBulb, CondInletTemp)
TotCapTempModFac = MAX(0.d0, TotCapTempModFac) ! could warn if negative, DXcoil does
TotCapFlowModFac = CurveValue(TESCoil(TESCoilNum)%CoolingOnlyCapFFlowCurve, AirMassFlowRatio)
TotCapFlowModFac = MAX(0.d0, TotCapFlowModFac) ! could warn if negative, DXcoil does
TotCap = TESCoil(TESCoilNum)%CoolingOnlyRatedTotCap * TotCapTempModFac * TotCapFlowModFac
! now see if coil might be running dry
PartLoadOutAirEnth = EvapInletEnthalpy - (TotCap * PartLoadRatio) / EvapAirMassFlow
PartLoadDryCoilOutAirTemp = PsyTdbFnHW(PartLoadOutAirEnth, EvapInletHumRat,'CalcTESCoilCoolingOnlyMode')
IF (PartLoadDryCoilOutAirTemp > PsyTsatFnHPb(PartLoadOutAirEnth,OutBaroPress, 'CalcTESCoilCoolingOnlyMode')) THEN
CoilMightBeDry = .TRUE.
! find wADP, humidity ratio at apparatus dewpoint and inlet hum rat that would have dry coil
DryCoilTestEvapInletHumRat = EvapInletHumRat
DryCoilTestEvapInletWetBulb = EvapInletWetBulb
counter = 0
Converged = .FALSE.
DO While (.NOT. Converged)
TotCapTempModFac = CurveValue(TESCoil(TESCoilNum)%CoolingOnlyCapFTempCurve, DryCoilTestEvapInletWetBulb, CondInletTemp)
TotCapTempModFac = MAX(0.d0, TotCapTempModFac) ! could warn if negative, DXcoil does
TotCapFlowModFac = CurveValue(TESCoil(TESCoilNum)%CoolingOnlyCapFFlowCurve, AirMassFlowRatio)
TotCapFlowModFac = MAX(0.d0, TotCapFlowModFac) ! could warn if negative, DXcoil does
TotCap = TESCoil(TESCoilNum)%CoolingOnlyRatedTotCap * TotCapTempModFac * TotCapFlowModFac
! coil bypass factor = 0.0
hADP = EvapInletEnthalpy - (TotCap / EvapAirMassFlow)
tADP = PsyTsatFnHPb(hADP, OutBaroPress, 'CalcTESCoilCoolingOnlyMode')
wADP = MIN(EvapInletHumRat, PsyWfnTdbH(tADP, hADP, 'CalcTESCoilCoolingOnlyMode') )
hTinwADP = PsyHFnTdbW(EvapInletDryBulb, wADP, 'CalcTESCoilCoolingOnlyMode')
IF ((EvapInletEnthalpy - hADP) > 1.d-10) THEN
SHRadp = MIN((hTinwADP-hADP)/(EvapInletEnthalpy-hADP),1.d0)
ELSE
SHRadp = 1.d0
ENDIF
IF ((wADP > DryCoilTestEvapInletHumRat) .or. (Counter .ge. 1 .and. Counter .lt. MaxIter)) THEN
IF (DryCoilTestEvapInletHumRat <= 0.d0) DryCoilTestEvapInletHumRat = 0.00001d0
werror = (DryCoilTestEvapInletHumRat - wADP)/DryCoilTestEvapInletHumRat
DryCoilTestEvapInletHumRat = RelaxationFactor*wADP + (1.d0 - RelaxationFactor)*DryCoilTestEvapInletHumRat
DryCoilTestEvapInletWetBulb = PsyTwbFnTdbWPb(EvapInletDryBulb , DryCoilTestEvapInletHumRat, OutBaroPress, &
'CalcTESCoilCoolingOnlyMode')
Counter = Counter + 1
IF (ABS(werror) <= Tolerance) THEN
Converged = .TRUE.
ELSE
Converged = .FALSE.
ENDIF
ELSE
Converged = .TRUE.
ENDIF
ENDDO
ENDIF
SHRTempFac = CurveValue(TESCoil(TESCoilNum)%CoolingOnlySHRFTempCurve, EvapInletWetBulb, EvapInletDryBulb)
SHRFlowFac = CurveValue(TESCoil(TESCoilNum)%CoolingOnlySHRFFlowCurve, AirMassFlowRatio)
SHR = TESCoil(TESCoilNum)%CoolingOnlyRatedSHR * SHRTempFac * SHRFlowFac
SHR = MIN(SHR, 1.d0) ! warn maybe
SHR = MAX(SHR, 0.d0) ! warn maybe
IF ( CoilMightBeDry) THEN
IF ((EvapInletHumRat < DryCoilTestEvapInletHumRat) .AND. (SHRadp > SHR)) THEN ! coil is dry for sure
SHR = 1.0d0
ELSEIF (SHRadp > SHR) THEN
SHR = SHRadp
ENDIF
ENDIF
PLF = CurveValue(TESCoil(TESCoilNum)%CoolingOnlyPLFFPLRCurve, PartLoadRatio)
IF (PLF >= PartLoadRatio .and. PLF > 0.d0 ) THEN
RuntimeFraction = PartLoadRatio / PLF
ELSE
RuntimeFraction = 1.d0 ! warn maybe
ENDIF
! Calculate full load output conditions
FullLoadOutAirEnth = EvapInletEnthalpy - TotCap / EvapAirMassFlow
hTinwout = EvapInletEnthalpy - (1.0d0-SHR)* (TotCap / EvapAirMassFlow)
!The following will often throw psych warnings for neg w, suppress warnings because error condition is handled in next IF
FullLoadOutAirHumRat = PsyWFnTdbH(EvapInletDryBulb,hTinwout, 'CalcTESCoilCoolingOnlyMode', SuppressWarnings = .TRUE.)
FullLoadOutAirTemp = PsyTdbFnHW(FullLoadOutAirEnth,FullLoadOutAirHumRat, 'CalcTESCoilCoolingOnlyMode')
! Check for saturation error and modify temperature at constant enthalpy
IF(FullLoadOutAirTemp .LT. PsyTsatFnHPb(FullLoadOutAirEnth,OutBaroPress, 'CalcTESCoilCoolingOnlyMode')) THEN
FullLoadOutAirTemp = PsyTsatFnHPb(FullLoadOutAirEnth,OutBaroPress, 'CalcTESCoilCoolingOnlyMode')
FullLoadOutAirHumRat = PsyWFnTdbH(FullLoadOutAirTemp,FullLoadOutAirEnth, 'CalcTESCoilCoolingOnlyMode')
ENDIF
! Continuous fan, cycling compressor
EvapOutletAirEnthalpy = ((PartLoadRatio)*FullLoadOutAirEnth + &
(1.d0-(PartLoadRatio ))*EvapInletEnthalpy)
EvapOutletAirHumRat = ((PartLoadRatio)*FullLoadOutAirHumRat + &
(1.d0-(PartLoadRatio ))*EvapInletHumRat)
EvapOutletAirTemp = PsyTdbFnHW(EvapOutletAirEnthalpy,EvapOutletAirHumRat)
IF(EvapOutletAirTemp .LT. PsyTsatFnHPb(EvapOutletAirEnthalpy,OutBaroPress, 'CalcTESCoilCoolingOnlyMode')) THEN
EvapOutletAirTemp = PsyTsatFnHPb(EvapOutletAirEnthalpy,OutBaroPress, 'CalcTESCoilCoolingOnlyMode')
EvapOutletAirHumRat = PsyWFnTdbH(EvapOutletAirTemp,EvapOutletAirEnthalpy, 'CalcTESCoilCoolingOnlyMode')
ENDIF
! Calculate electricity consumed. First, get EIR modifying factors for off-rated conditions
EIRTempModFac = CurveValue(TESCoil(TESCoilNum)%CoolingOnlyEIRFTempCurve, EvapInletWetBulb, CondInletTemp)
EIRTempModFac = MAX(EIRTempModFac, 0.d0)
EIRFlowModFac = CurveValue(TESCoil(TESCoilNum)%CoolingOnlyEIRFFlowCurve, AirMassFlowRatio)
EIRFlowModFac = MAX(EIRFlowModFac, 0.d0)
EIR = EIRTempModFac * EIRFlowModFac / TESCoil(TESCoilNum)%CoolingOnlyRatedCOP
ElecCoolingPower = TotCap * EIR * RuntimeFraction
Node(TESCoil(TESCoilNum)%EvapAirOutletNodeNum )%Temp = EvapOutletAirTemp
Node(TESCoil(TESCoilNum)%EvapAirOutletNodeNum )%HumRat = EvapOutletAirHumRat
Node(TESCoil(TESCoilNum)%EvapAirOutletNodeNum )%Enthalpy = EvapOutletAirEnthalpy
Node(TESCoil(TESCoilNum)%EvapAirOutletNodeNum )%MassFlowRate = EvapAirMassFlow
! determine condenser leaving conditions
QdotCond = TotCap* RuntimeFraction + ElecCoolingPower
Node(TESCoil(TESCoilNum)%CondAirInletNodeNum )%MassFlowRate = TESCoil(TESCoilNum)%CondenserAirMassFlow
Node(TESCoil(TESCoilNum)%CondAirOutletNodeNum )%MassFlowRate = TESCoil(TESCoilNum)%CondenserAirMassFlow
CondInletEnthalpy = PsyHFnTdbW(CondInletTemp, CondInletHumRat , 'CalcTESCoilCoolingOnlyMode')
CondOutletEnthalpy = CondInletEnthalpy + QdotCond / TESCoil(TESCoilNum)%CondenserAirMassFlow
Node(TESCoil(TESCoilNum)%CondAirOutletNodeNum )%Temp = PsyTdbFnHW( CondOutletEnthalpy, CondInletHumrat, &
'CalcTESCoilCoolingOnlyMode')
Node(TESCoil(TESCoilNum)%CondAirOutletNodeNum )%HumRat = CondInletHumrat
Node(TESCoil(TESCoilNum)%CondAirOutletNodeNum )%Enthalpy = CondOutletEnthalpy
TESCoil(TESCoilNum)%ElecCoolingPower = ElecCoolingPower + TESCoil(TESCoilNum)%AncillaryControlsPower
TESCoil(TESCoilNum)%ElecCoolingEnergy = TESCoil(TESCoilNum)%ElecCoolingPower * TimeStepSys *SecInHour
TESCoil(TESCoilNum)%RuntimeFraction = RuntimeFraction
TESCoil(TESCoilNum)%CondenserRuntimeFraction = RuntimeFraction
TESCoil(TESCoilNum)%EvapTotCoolingRate = TotCap* RuntimeFraction ! double check this
TESCoil(TESCoilNum)%EvapTotCoolingEnergy = TotCap* RuntimeFraction * TimeStepSys *SecInHour
MinAirHumRat = MIN( Node(TESCoil(TESCoilNum)%EvapAirOutletNodeNum )%HumRat, &
Node(TESCoil(TESCoilNum)%EvapAirInletNodeNum)%HumRat )
TESCoil(TESCoilNum)%EvapSensCoolingRate = EvapAirMassFlow *&
(PsyHFnTdbW(EvapInletDryBulb , MinAirHumRat, 'CalcTESCoilCoolingOnlyMode') - &
PsyHFnTdbW(EvapOutletAirTemp, MinAirHumRat, 'CalcTESCoilCoolingOnlyMode') )
IF (TESCoil(TESCoilNum)%EvapSensCoolingRate > TESCoil(TESCoilNum)%EvapTotCoolingRate) THEN
TESCoil(TESCoilNum)%EvapSensCoolingRate = TESCoil(TESCoilNum)%EvapTotCoolingRate
ENDIF
TESCoil(TESCoilNum)%EvapSensCoolingEnergy= TESCoil(TESCoilNum)%EvapSensCoolingRate * TimeStepSys *SecInHour
TESCoil(TESCoilNum)%EvapLatCoolingRate = TESCoil(TESCoilNum)%EvapTotCoolingRate &
- TESCoil(TESCoilNum)%EvapSensCoolingRate
TESCoil(TESCoilNum)%EvapLatCoolingEnergy = TESCoil(TESCoilNum)%EvapLatCoolingRate * TimeStepSys *SecInHour
ELSE !coil is off; just pass through conditions
TESCoil(TESCoilNum)%ElecCoolingPower = TESCoil(TESCoilNum)%AncillaryControlsPower
TESCoil(TESCoilNum)%ElecCoolingEnergy = TESCoil(TESCoilNum)%ElecCoolingPower * TimeStepSys *SecInHour
TESCoil(TESCoilNum)%RuntimeFraction = 0.d0
TESCoil(TESCoilNum)%CondenserRuntimeFraction = 0.d0
Node(TESCoil(TESCoilNum)%EvapAirOutletNodeNum )%Temp = Node(TESCoil(TESCoilNum)%EvapAirInletNodeNum)%Temp
Node(TESCoil(TESCoilNum)%EvapAirOutletNodeNum )%HumRat = Node(TESCoil(TESCoilNum)%EvapAirInletNodeNum)%HumRat
Node(TESCoil(TESCoilNum)%EvapAirOutletNodeNum )%MassFlowRate = Node(TESCoil(TESCoilNum)%EvapAirInletNodeNum)%MassFlowRate
Node(TESCoil(TESCoilNum)%EvapAirOutletNodeNum)%Enthalpy = &
PsyHFnTdbW(Node(TESCoil(TESCoilNum)%EvapAirOutletNodeNum )%Temp, &
Node(TESCoil(TESCoilNum)%EvapAirOutletNodeNum )%HumRat, &
'CalcTESCoilCoolingOnlyMode')
Node(TESCoil(TESCoilNum)%CondAirOutletNodeNum )%Temp = Node(TESCoil(TESCoilNum)%CondAirInletNodeNum)%Temp
Node(TESCoil(TESCoilNum)%CondAirOutletNodeNum )%HumRat = Node(TESCoil(TESCoilNum)%CondAirInletNodeNum)%HumRat
Node(TESCoil(TESCoilNum)%CondAirInletNodeNum )%MassFlowRate = 0.d0
Node(TESCoil(TESCoilNum)%CondAirOutletNodeNum )%MassFlowRate = Node(TESCoil(TESCoilNum)%CondAirInletNodeNum)%MassFlowRate
Node(TESCoil(TESCoilNum)%CondAirOutletNodeNum )%Enthalpy = &
PsyHFnTdbW(Node(TESCoil(TESCoilNum)%CondAirOutletNodeNum )%Temp, &
Node(TESCoil(TESCoilNum)%CondAirOutletNodeNum )%HumRat, &
'CalcTESCoilCoolingOnlyMode')
TESCoil(TESCoilNum)%EvapTotCoolingRate = 0.d0
TESCoil(TESCoilNum)%EvapTotCoolingEnergy = 0.d0
TESCoil(TESCoilNum)%EvapSensCoolingRate = 0.d0
TESCoil(TESCoilNum)%EvapSensCoolingEnergy= 0.d0
TESCoil(TESCoilNum)%EvapLatCoolingRate = 0.d0
TESCoil(TESCoilNum)%EvapLatCoolingEnergy = 0.d0
ENDIF
TESCoil(TESCoilNum)%QdotTES = 0.d0
TESCoil(TESCoilNum)%Q_TES = 0.d0
CALL UpdateTEStorage(TESCoilNum)
TESCoil(TESCoilNum)%CondInletTemp = CondInletTemp
CALL UpdateColdWeatherProtection(TESCoilNum)
IF (TESCoil(TESCoilNum)%CondenserType == EvapCooled) THEN
CALL UpdateEvaporativeCondenserBasinHeater(TESCoilNum)
CALL UpdateEvaporativeCondenserWaterUse(TESCoilNum, CondInletHumrat, TESCoil(TESCoilNum)%CondAirInletNodeNum )
ENDIF
RETURN
END SUBROUTINE CalcTESCoilCoolingOnlyMode