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) | :: | RadSysNum | 
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 CalcHighTempRadiantSystem(RadSysNum)
          ! SUBROUTINE INFORMATION:
          !       AUTHOR         Rick Strand
          !       DATE WRITTEN   February 2001
          !       MODIFIED       na
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS SUBROUTINE:
          ! This subroutine does all of the stuff that is necessary to simulate
          ! a high temperature radiant heating system.
          ! METHODOLOGY EMPLOYED:
          ! Follows the methods used by many other pieces of zone equipment except
          ! that we are controlling the input to the heater element.  Note that
          ! cooling is not allowed for such a system.  Controls are very basic at
          ! this point using just a linear interpolation between being off at
          ! one end of the throttling range, fully on at the other end, and varying
          ! linearly in between.
          ! REFERENCES:
          ! Other EnergyPlus modules
          ! Building Systems Laboratory, BLAST User's Guide/Reference.
          ! Fanger, P.O. "Analysis and Applications in Environmental Engineering",
          !   Danish Technical Press, 1970.
          ! Maloney, Dan. 1987. "Development of a radiant heater model and the
          !   incorporation of thermal comfort considerations into the BLAST
          !   energy analysis program", M.S. thesis, University of Illinois at
          !   Urbana-Champaign (Dept. of Mechanical and Industrial Engineering).
          ! USE STATEMENTS:
  USE DataHeatBalance,   ONLY : MRT
  USE DataHeatBalFanSys, ONLY : MAT
  USE DataHVACGlobals,   ONLY : SmallLoad
  USE DataZoneEnergyDemands
  USE ScheduleManager,   ONLY : GetCurrentScheduleValue
  IMPLICIT NONE    ! Enforce explicit typing of all variables in this routine
          ! SUBROUTINE ARGUMENT DEFINITIONS:
  INTEGER, INTENT(IN)  :: RadSysNum           ! name of the low temperature radiant system
          ! SUBROUTINE PARAMETER DEFINITIONS:
          ! na
          ! INTERFACE BLOCK SPECIFICATIONS
          ! na
          ! DERIVED TYPE DEFINITIONS
          ! na
          ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
  REAL(r64)    :: HeatFrac       ! fraction of maximum energy input to radiant system [dimensionless]
  REAL(r64)    :: OffTemp        ! Temperature above which the radiant system should be completely off [C]
  REAL(r64)    :: OpTemp         ! Operative temperature [C]
!  REAL(r64)    :: QZnReq         ! heating or cooling needed by zone [Watts]
  REAL(r64)    :: SetPtTemp      ! Setpoint temperature [C]
  INTEGER :: ZoneNum        ! number of zone being served
          ! FLOW:
          ! initialize local variables
  ZoneNum  = HighTempRadSys(RadSysNum)%ZonePtr
  HeatFrac = 0.0d0
  IF (GetCurrentScheduleValue(HighTempRadSys(RadSysNum)%SchedPtr) <= 0) THEN
          ! Unit is off or has no load upon it; set the flow rates to zero and then
          ! simulate the components with the no flow conditions
    QHTRadSource(RadSysNum) = 0.0D0
  ELSE    ! Unit might be on-->this section is intended to control the output of the
          ! high temperature radiant heater (temperature controlled)
          ! Determine the current setpoint temperature and the temperature at which the unit should be completely off
    SetptTemp = GetCurrentScheduleValue(HighTempRadSys(RadSysNum)%SetptSchedPtr)
    OffTemp   = SetptTemp + 0.5d0*HighTempRadSys(RadSysNum)%ThrottlRange
    OpTemp    = (MAT(ZoneNum) + MRT(ZoneNum))/2.0d0 ! Approximate the "operative" temperature
          ! Determine the fraction of maximum power to the unit (limiting the fraction range from zero to unity)
    SELECT CASE (HighTempRadSys(RadSysNum)%ControlType)
      CASE (MATControl)
        HeatFrac = (OffTemp - MAT(ZoneNum))/HighTempRadSys(RadSysNum)%ThrottlRange
      CASE (MRTControl)
        HeatFrac = (OffTemp - MRT(ZoneNum))/HighTempRadSys(RadSysNum)%ThrottlRange
      CASE (OperativeControl)
        OpTemp   = 0.5d0*(MAT(ZoneNum)+MRT(ZoneNum))
        HeatFrac = (OffTemp - OpTemp)/HighTempRadSys(RadSysNum)%ThrottlRange
    END SELECT
    IF (HeatFrac < 0.0d0) HeatFrac = 0.0d0
    IF (HeatFrac > 1.0d0) HeatFrac = 1.0d0
          ! Set the heat source for the high temperature electric radiant system
    QHTRadSource(RadSysNum) = HeatFrac*HighTempRadSys(RadSysNum)%MaxPowerCapac
  END IF
  RETURN
END SUBROUTINE CalcHighTempRadiantSystem