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 | |||
real(kind=r64), | intent(in) | :: | HumRatAfterEvap | |||
integer, | intent(in) | :: | InletNodeNum |
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 UpdateEvaporativeCondenserWaterUse(TESCoilNum, HumRatAfterEvap, InletNodeNum)
! SUBROUTINE INFORMATION:
! AUTHOR B. Griffith
! DATE WRITTEN June 2013
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! update and calculate water consumption for evaporatively cooled condensers
! METHODOLOGY EMPLOYED:
! <description>
! REFERENCES:
! na
! USE STATEMENTS:
USE DataWater, ONLY: WaterStorage
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: TESCoilNum
REAL(r64), INTENT(IN) :: HumRatAfterEvap
INTEGER, INTENT(IN) :: InletNodeNum
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: AvailWaterRate
REAL(r64) :: RhoWater
RhoWater = RhoH2O(Node(InletNodeNum)%Temp)
TESCoil(TESCoilNum)%EvapWaterConsumpRate = &
(HumRatAfterEvap - Node(InletNodeNum)%HumRat) * &
Node(InletNodeNum)%MassFlowRate/RhoWater * TESCoil(TESCoilNum)%CondenserRuntimeFraction
! Set the demand request for supply water from water storage tank (if needed)
IF (TESCoil(TESCoilNum)%EvapWaterSupplyMode == WaterSupplyFromTank) THEN
WaterStorage(TESCoil(TESCoilNum)%EvapWaterSupTankID)%VdotRequestDemand(TESCoil(TESCoilNum)%EvapWaterTankDemandARRID) &
= TESCoil(TESCoilNum)%EvapWaterConsumpRate
ENDIF
!check if should be starved by restricted flow from tank
IF (TESCoil(TESCoilNum)%EvapWaterSupplyMode == WaterSupplyFromTank) THEN
AvailWaterRate = &
WaterStorage(TESCoil(TESCoilNum)%EvapWaterSupTankID)%VdotAvailDemand(TESCoil(TESCoilNum)%EvapWaterTankDemandARRID)
IF (AvailWaterRate < TESCoil(TESCoilNum)%EvapWaterConsumpRate) THEN
TESCoil(TESCoilNum)%EvapWaterStarvMakupRate = TESCoil(TESCoilNum)%EvapWaterConsumpRate - AvailWaterRate
TESCoil(TESCoilNum)%EvapWaterConsumpRate = AvailWaterRate
ELSE
TESCoil(TESCoilNum)%EvapWaterStarvMakupRate = 0.d0
ENDIF
ENDIF
TESCoil(TESCoilNum)%EvapWaterConsump = TESCoil(TESCoilNum)%EvapWaterConsumpRate * TimeStepSys * SecInHour
TESCoil(TESCoilNum)%EvapWaterStarvMakup = TESCoil(TESCoilNum)%EvapWaterStarvMakupRate * TimeStepSys * SecInHour
TESCoil(TESCoilNum)%EvapCondPumpElecPower = TESCoil(TESCoilNum)%EvapCondPumpElecNomPower * &
TESCoil(TESCoilNum)%CondenserRuntimeFraction
TESCoil(TESCoilNum)%EvapCondPumpElecConsumption = TESCoil(TESCoilNum)%EvapCondPumpElecPower * TimeStepSys * SecInHour
RETURN
END SUBROUTINE UpdateEvaporativeCondenserWaterUse