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