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