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) | :: | SetPtMgrNum |
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 CalcSingZoneHtSetPoint(SetPtMgrNum)
! SUBROUTINE INFORMATION:
! AUTHOR M. J. Witte based on CalcSingZoneRhSetPoint by Fred Buhl,
! Work supported by ASHRAE research project 1254-RP
! DATE WRITTEN November 2004
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! From the heating load of the control zone, calculate the supply air setpoint
! needed to meet that zone load (based on CalcSingZoneRhSetPoint)
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
USE DataZoneEnergyDemands, ONLY: ZoneSysEnergyDemand
USE DataHVACGlobals, ONLY: SmallMassFlow, SmallLoad
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT (IN) :: SetPtMgrNum ! number of the current setpoint manager being simulated
! SUBROUTINE PARAMETER DEFINITIONS:
! INTERFACE BLOCK SPECIFICATIONS
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: ZoneLoadtoHeatSP ! required zone load to zone heating setpoint [W]
REAL(r64) :: ZoneMassFlow ! zone inlet mass flow rate [kg/s]
REAL(r64) :: CpAir ! inlet air specific heat [J/kg-C]
INTEGER :: ZoneInletNode
INTEGER :: ZoneNode
INTEGER :: ZoneNum
REAL(r64) :: ZoneTemp
ZoneInletNode = SingZoneHtSetPtMgr(SetPtMgrNum)%ZoneInletNodeNum
ZoneNum = SingZoneHtSetPtMgr(SetPtMgrNum)%ControlZoneNum
ZoneNode = SingZoneHtSetPtMgr(SetPtMgrNum)%ZoneNodeNum
ZoneMassFlow = Node(ZoneInletNode)%MassFlowRate
ZoneLoadtoHeatSP = ZoneSysEnergyDemand(ZoneNum)%OutputRequiredToHeatingSP
ZoneTemp = Node(ZoneNode)%Temp
!CR7654 IF (ZoneLoadtoHeatSP.GT.0.0) THEN
IF (ZoneMassFlow.LE.SmallMassFlow) THEN
SingZoneHtSetPtMgr(SetPtMgrNum)%SetPt = SingZoneHtSetPtMgr(SetPtMgrNum)%MaxSetTemp
ELSE
CpAir = PsyCpAirFnWTdb(Node(ZoneInletNode)%HumRat,Node(ZoneInletNode)%Temp)
SingZoneHtSetPtMgr(SetPtMgrNum)%SetPt = ZoneTemp + ZoneLoadtoHeatSP/(CpAir*ZoneMassFlow)
SingZoneHtSetPtMgr(SetPtMgrNum)%SetPt = &
MAX(SingZoneHtSetPtMgr(SetPtMgrNum)%SetPt, SingZoneHtSetPtMgr(SetPtMgrNum)%MinSetTemp)
SingZoneHtSetPtMgr(SetPtMgrNum)%SetPt = &
MIN(SingZoneHtSetPtMgr(SetPtMgrNum)%SetPt, SingZoneHtSetPtMgr(SetPtMgrNum)%MaxSetTemp)
END IF
!CR7654 ELSE
!CR7654 SingZoneHtSetPtMgr(SetPtMgrNum)%SetPt = SingZoneHtSetPtMgr(SetPtMgrNum)%MinSetTemp
!CR7654 END IF
RETURN
END SUBROUTINE CalcSingZoneHtSetPoint