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 CalcSingZoneClSetPoint(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 Cooling 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) :: ZoneLoadtoCoolSP ! required zone load to zone Cooling setpoint [W]
REAL(r64) :: ZoneMassFlow ! zone inlet mass flow rate [kg/s]
REAL(r64) :: CpAir ! inlet air specific Cool [J/kg-C]
INTEGER :: ZoneInletNode
INTEGER :: ZoneNode
INTEGER :: ZoneNum
REAL(r64) :: ZoneTemp
ZoneInletNode = SingZoneClSetPtMgr(SetPtMgrNum)%ZoneInletNodeNum
ZoneNum = SingZoneClSetPtMgr(SetPtMgrNum)%ControlZoneNum
ZoneNode = SingZoneClSetPtMgr(SetPtMgrNum)%ZoneNodeNum
ZoneMassFlow = Node(ZoneInletNode)%MassFlowRate
ZoneLoadtoCoolSP = ZoneSysEnergyDemand(ZoneNum)%OutputRequiredToCoolingSP
ZoneTemp = Node(ZoneNode)%Temp
!CR7654 IF (ZoneLoadtoCoolSP.LT.0.0) THEN
IF (ZoneMassFlow.LE.SmallMassFlow) THEN
SingZoneClSetPtMgr(SetPtMgrNum)%SetPt = SingZoneClSetPtMgr(SetPtMgrNum)%MinSetTemp
ELSE
CpAir = PsyCpAirFnWTdb(Node(ZoneInletNode)%HumRat,Node(ZoneInletNode)%Temp)
SingZoneClSetPtMgr(SetPtMgrNum)%SetPt = ZoneTemp + ZoneLoadtoCoolSP/(CpAir*ZoneMassFlow)
SingZoneClSetPtMgr(SetPtMgrNum)%SetPt = &
MAX(SingZoneClSetPtMgr(SetPtMgrNum)%SetPt, SingZoneClSetPtMgr(SetPtMgrNum)%MinSetTemp)
SingZoneClSetPtMgr(SetPtMgrNum)%SetPt = &
MIN(SingZoneClSetPtMgr(SetPtMgrNum)%SetPt, SingZoneClSetPtMgr(SetPtMgrNum)%MaxSetTemp)
END IF
!CR7654 ELSE
!CR7654 SingZoneClSetPtMgr(SetPtMgrNum)%SetPt = SingZoneClSetPtMgr(SetPtMgrNum)%MaxSetTemp
!CR7654 END IF
RETURN
END SUBROUTINE CalcSingZoneClSetPoint