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) | :: | 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 UpdateEvapCooler(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 DataWater
  USE DataContaminantBalance, ONLY: Contaminant
  IMPLICIT NONE    ! Enforce explicit typing of all variables in this routine
          ! SUBROUTINE ARGUMENT DEFINITIONS:
  Integer, Intent(IN) :: EvapCoolNum
          ! SUBROUTINE PARAMETER DEFINITIONS:
          ! na
          ! INTERFACE BLOCK SPECIFICATIONS
          ! na
          ! DERIVED TYPE DEFINITIONS
          ! na
          ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
  Integer             :: OutletNode
  Integer             :: InletNode
  REAL(r64)           :: AvailWaterRate = 0.0d0
   OutletNode = EvapCond(EvapCoolNum)%OutletNode
   InletNode  = EvapCond(EvapCoolNum)%InletNode
   ! Set the outlet air nodes of the EvapCooler
   Node(OutletNode)%MassFlowRate  = EvapCond(EvapCoolNum)%OutletMassFlowRate
   Node(OutletNode)%MassFlowRateMaxAvail  = EvapCond(EvapCoolNum)%OutletMassFlowRateMaxAvail
   Node(OutletNode)%MassFlowRateMinAvail  = EvapCond(EvapCoolNum)%OutletMassFlowRateMinAvail
   Node(OutletNode)%Temp          = EvapCond(EvapCoolNum)%OutletTemp
   Node(OutletNode)%HumRat        = EvapCond(EvapCoolNum)%OutletHumRat
   Node(OutletNode)%Enthalpy      = EvapCond(EvapCoolNum)%OutletEnthalpy
   Node(OutletNode)%Press         = EvapCond(EvapCoolNum)%OutletPressure
   ! Set the outlet nodes for properties that just pass through & not used
   Node(OutletNode)%Quality         = Node(InletNode)%Quality
    ! Set the demand request for supply water from water storage tank (if needed)
    If (EvapCond(EvapCoolNum)%EvapWaterSupplyMode == WaterSupplyFromTank) Then
      WaterStorage(EvapCond(EvapCoolNum)%EvapWaterSupTankID)%VdotRequestDemand(EvapCond(EvapCoolNum)%EvapWaterTankDemandARRID) &
       = EvapCond(EvapCoolNum)%EvapWaterConsumpRate
    endif
   !check if should be starved by restricted flow from tank
    IF (EvapCond(EvapCoolNum)%EvapWaterSupplyMode == WaterSupplyFromTank) THEN
      AvailWaterRate = &
      WaterStorage(EvapCond(EvapCoolNum)%EvapWaterSupTankID)%VdotAvailDemand(EvapCond(EvapCoolNum)%EvapWaterTankDemandARRID)
      IF (AvailWaterRate < EvapCond(EvapCoolNum)%EvapWaterConsumpRate) THEN
        EvapCond(EvapCoolNum)%EvapWaterStarvMakupRate = EvapCond(EvapCoolNum)%EvapWaterConsumpRate - AvailWaterRate
        EvapCond(EvapCoolNum)%EvapWaterConsumpRate = AvailWaterRate
      ELSE
        EvapCond(EvapCoolNum)%EvapWaterStarvMakupRate = 0.d0
      ENDIF
    ENDIF
  IF (Contaminant%CO2Simulation) Then
    Node(OutletNode)%CO2 = Node(InletNode)%CO2
  End If
  IF (Contaminant%GenericContamSimulation) Then
    Node(OutletNode)%GenContam = Node(InletNode)%GenContam
  End If
  RETURN
END Subroutine UpdateEvapCooler