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) | :: | DamperNum |
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 UpdateDualDuct(DamperNum)
! SUBROUTINE INFORMATION:
! AUTHOR Richard J. Liesen
! DATE WRITTEN February 2000
! MODIFIED Aug 2010 Clayton Miller - Added DualDuctVAVOutdoorAir
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine updates the dampers.
! METHODOLOGY EMPLOYED:
! There is method to this madness.
! REFERENCES:
! na
! USE STATEMENTS:
USE DataContaminantBalance, ONLY: Contaminant
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
Integer, Intent(IN) :: DamperNum
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
Integer :: OutletNode
Integer :: HotInletNode
Integer :: ColdInletNode
Integer :: OAInletNode !Outdoor Air Duct Inlet Node - for DualDuctOutdoorAir
Integer :: RAInletNode !Recirculated Air Duct Inlet Node - for DualDuctOutdoorAir
If (Damper(DamperNum)%DamperType == DualDuct_ConstantVolume .or. &
Damper(DamperNum)%DamperType == DualDuct_VariableVolume) Then
OutletNode = Damper(DamperNum)%OutletNodeNum
HotInletNode = Damper(DamperNum)%HotAirInletNodeNum
ColdInletNode = Damper(DamperNum)%ColdAirInletNodeNum
! Set the outlet air nodes of the Damper
Node(HotInletNode)%MassFlowRate = DamperHotAirInlet(DamperNum)%AirMassFlowRate
Node(ColdInletNode)%MassFlowRate = DamperColdAirInlet(DamperNum)%AirMassFlowRate
Node(OutletNode)%MassFlowRate = DamperOutlet(DamperNum)%AirMassFlowRate
Node(OutletNode)%MassFlowRateMaxAvail = DamperOutlet(DamperNum)%AirMassFlowRate
Node(OutletNode)%MassFlowRateMinAvail = DamperOutlet(DamperNum)%AirMassFlowRateMinAvail
Node(OutletNode)%Temp = DamperOutlet(DamperNum)%AirTemp
Node(OutletNode)%HumRat = DamperOutlet(DamperNum)%AirHumRat
Node(OutletNode)%Enthalpy = DamperOutlet(DamperNum)%AirEnthalpy
! Set the outlet nodes for properties that just pass through & not used
! FIX THIS LATER!!!!
Node(OutletNode)%Quality = Node(HotInletNode)%Quality
Node(OutletNode)%Press = Node(HotInletNode)%Press
ELSE IF (Damper(DamperNum)%DamperType == DualDuct_OutdoorAir) Then
OutletNode = Damper(DamperNum)%OutletNodeNum
OAInletNode = Damper(DamperNum)%OAInletNodeNum
IF ( Damper(DamperNum)%RecircIsUsed ) THEN
RAInletNode = Damper(DamperNum)%RecircAirInletNodeNum
Node(RAInletNode)%MassFlowRate = DamperRecircAirInlet(DamperNum)%AirMassFlowRate
ENDIF
! Set the outlet air nodes of the Damper
Node(OAInletNode)%MassFlowRate = DamperOAInlet(DamperNum)%AirMassFlowRate
Node(OutletNode)%MassFlowRate = DamperOutlet(DamperNum)%AirMassFlowRate
Node(OutletNode)%MassFlowRateMaxAvail = DamperOutlet(DamperNum)%AirMassFlowRate
Node(OutletNode)%MassFlowRateMinAvail = DamperOutlet(DamperNum)%AirMassFlowRateMinAvail
Node(OutletNode)%Temp = DamperOutlet(DamperNum)%AirTemp
Node(OutletNode)%HumRat = DamperOutlet(DamperNum)%AirHumRat
Node(OutletNode)%Enthalpy = DamperOutlet(DamperNum)%AirEnthalpy
! Set the outlet nodes for properties that just pass through & not used
! FIX THIS LATER!!!!
Node(OutletNode)%Quality = Node(OAInletNode)%Quality
Node(OutletNode)%Press = Node(OAInletNode)%Press
END IF
IF (Contaminant%CO2Simulation) Then
Node(OutletNode)%CO2 = MAX(Node(HotInletNode)%CO2,Node(ColdInletNode)%CO2)
End If
IF (Contaminant%GenericContamSimulation) Then
Node(OutletNode)%GenContam = MAX(Node(HotInletNode)%GenContam,Node(ColdInletNode)%GenContam)
End If
RETURN
END Subroutine UpdateDualDuct