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) | :: | VRFTUNum | |||
real(kind=r64), | intent(in) | :: | PartLoadRatio | |||
real(kind=r64), | intent(inout) | :: | OnOffAirFlowRatio |
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 SetAverageAirFlow(VRFTUNum,PartLoadRatio,OnOffAirFlowRatio)
! SUBROUTINE INFORMATION:
! AUTHOR Richard Raustad
! DATE WRITTEN August 2010
! MODIFIED July 2012, Chandan Sharma - FSEC: Added zone sys avail managers
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Set the average air mass flow rates using the part load fraction of the heat pump for this time step
! Set OnOffAirFlowRatio to be used by DX coils
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
USE ScheduleManager, ONLY: GetCurrentScheduleValue
USE DataZoneEquipment, ONLY: VRFTerminalUnit_Num
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT (IN) :: VRFTUNum ! Unit index
REAL(r64), INTENT (IN) :: PartLoadRatio ! unit part load ratio
REAL(r64), INTENT (INOUT) :: OnOffAirFlowRatio ! ratio of compressor ON airflow to average airflow over timestep
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: InletNode ! inlet node number
INTEGER :: OutsideAirNode ! outside air node number
INTEGER :: AirRelNode ! relief air node number
REAL(r64) :: AverageUnitMassFlow ! average supply air mass flow rate over time step
REAL(r64) :: AverageOAMassFlow ! average outdoor air mass flow rate over time step
InletNode = VRFTU(VRFTUNum)%VRFTUInletNodeNum
OutsideAirNode = VRFTU(VRFTUNum)%VRFTUOAMixerOANodeNum
AirRelNode = VRFTU(VRFTUNum)%VRFTUOAMixerRelNodeNum
IF(VRFTU(VRFTUNum)%OpMode .EQ. CycFanCycCoil)THEN
AverageUnitMassFlow = (PartLoadRatio * CompOnMassFlow) + ((1-PartLoadRatio) * CompOffMassFlow)
AverageOAMassFlow = (PartLoadRatio * OACompOnMassFlow) + ((1-PartLoadRatio) * OACompOffMassFlow)
ELSE
AverageUnitMassFlow = CompOnMassFlow
AverageOAMassFlow = OACompOnMassFlow
END IF
IF(CompOffFlowRatio .GT. 0.d0)THEN
FanSpeedRatio = (PartLoadRatio * CompOnFlowRatio) + ((1-PartLoadRatio) * CompOffFlowRatio)
ELSE
FanSpeedRatio = CompOnFlowRatio
END IF
! if the terminal unit and fan are scheduled on then set flow rate
IF ( GetCurrentScheduleValue(VRFTU(VRFTUNum)%SchedPtr) .GT. 0.d0 .AND. &
(GetCurrentScheduleValue(VRFTU(VRFTUNum)%FanAvailSchedPtr) .GT. 0.d0 .OR. &
ZoneCompTurnFansOn) .AND. .NOT. ZoneCompTurnFansOff)THEN
Node(InletNode)%MassFlowRate = AverageUnitMassFlow
Node(InletNode)%MassFlowRateMaxAvail = AverageUnitMassFlow
IF(OutsideAirNode .GT. 0)THEN
Node(OutsideAirNode)%MassFlowRate = AverageOAMassFlow
Node(OutsideAirNode)%MassFlowRateMaxAvail = AverageOAMassFlow
Node(AirRelNode)%MassFlowRate = AverageOAMassFlow
Node(AirRelNode)%MassFlowRateMaxAvail = AverageOAMassFlow
END IF
IF (AverageUnitMassFlow .GT. 0.d0) THEN
OnOffAirFlowRatio = CompOnMassFlow / AverageUnitMassFlow
ELSE
OnOffAirFlowRatio = 0.d0
END IF
ELSE ! terminal unit and/or fan is off
Node(InletNode)%MassFlowRate = 0.d0
IF(OutsideAirNode .GT. 0)THEN
Node(OutsideAirNode)%MassFlowRate = 0.d0
Node(AirRelNode)%MassFlowRate = 0.d0
END IF
OnOffAirFlowRatio = 0.d0
END IF
RETURN
END SUBROUTINE SetAverageAirFlow