TYPE, PUBLIC :: HydronicRadiantSystemData
! Input data
CHARACTER(len=MaxNameLength) :: Name = ' ' ! name of hydronic radiant system
CHARACTER(len=MaxNameLength) :: SchedName = ' ' ! availability schedule
INTEGER :: SchedPtr = 0 ! index to schedule
CHARACTER(len=MaxNameLength) :: ZoneName = ' ' ! Name of zone the system is serving
INTEGER :: ZonePtr = 0 ! Point to this zone in the Zone derived type
CHARACTER(len=MaxNameLength) :: SurfListName = ' ' ! Name of surface/surface list that is the radiant system
INTEGER :: NumOfSurfaces = 0 ! Number of surfaces included in this radiant system (coordinated control)
INTEGER, ALLOCATABLE, DIMENSION(:) :: SurfacePtr ! Pointer to the surface(s) in the Surface derived type
CHARACTER(len=MaxNameLength), ALLOCATABLE, DIMENSION(:) :: SurfaceName ! Name of surfaces that are the radiant system (can be one or more)
REAL(r64), ALLOCATABLE, DIMENSION(:) :: SurfaceFlowFrac ! Fraction of flow/pipe length for a particular surface
REAL(r64), ALLOCATABLE, DIMENSION(:) :: NumCircuits ! Number of fluid circuits in the surface
REAL(r64) :: TotalSurfaceArea = 0.0d0 ! Total surface area for all surfaces that are part of this radiant system
REAL(r64) :: TubeDiameter = 0.0d0 ! tube diameter for embedded tubing
REAL(r64) :: TubeLength = 0.0d0 ! tube length embedded in radiant surface
INTEGER :: ControlType = 0 ! Control type for the system (MAT, MRT, Op temp, ODB, OWB)
LOGICAL :: HeatingSystem = .false. ! .TRUE. when the system is able to heat (parameters are valid)
REAL(r64) :: WaterVolFlowMaxHeat=0.0d0 ! maximum water flow rate for heating, m3/s
REAL(r64) :: WaterFlowMaxHeat = 0.0d0 ! maximum water flow rate for heating, kg/s
INTEGER :: HotWaterInNode = 0 ! hot water inlet node
INTEGER :: HotWaterOutNode = 0 ! hot water outlet node
REAL(r64) :: HotThrottlRange = 0.0d0 ! Throttling range for heating [C]
CHARACTER(len=MaxNameLength) :: HotSetptSched = ' ' ! Schedule name for the zone setpoint temperature
INTEGER :: HotSetptSchedPtr = 0 ! Schedule index for the zone setpoint temperature
INTEGER :: HWLoopNum = 0
INTEGER :: HWLoopSide = 0
INTEGER :: HWBranchNum = 0
INTEGER :: HWCompNum = 0
REAL(r64) :: WaterVolFlowMaxCool=0.0d0 ! maximum water flow rate for cooling, m3/s
REAL(r64) :: WaterFlowMaxCool = 0.0d0 ! maximum water flow rate for cooling, kg/s
LOGICAL :: CoolingSystem =.false. ! .TRUE. when the system is able to cool (parameters are valid)
INTEGER :: ColdWaterInNode = 0 ! cold water inlet node
INTEGER :: ColdWaterOutNode = 0 ! cold water outlet node
REAL(r64) :: ColdThrottlRange = 0.0d0 ! Throttling range for cooling [C]
CHARACTER(len=MaxNameLength) :: ColdSetptSched = ' ' ! Schedule name for the zone setpoint temperature
INTEGER :: ColdSetptSchedPtr = 0 ! Schedule index for the zone setpoint temperature
INTEGER :: CWLoopNum = 0
INTEGER :: CWLoopSide = 0
INTEGER :: CWBranchNum = 0
INTEGER :: CWCompNum = 0
INTEGER :: GlycolIndex = 0 ! Index to Glycol (Water) Properties
INTEGER :: CondErrIndex = 0 ! Error index for recurring warning messages
INTEGER :: CondCtrlType = 1 ! Condensation control type (initialize to simple off)
REAL(r64) :: CondDewPtDeltaT = 1.0d0 ! Diff between surface temperature and dew point for cond. shut-off
REAL(r64) :: CondCausedTimeOff = 0.0d0 ! Amount of time condensation did or could have turned system off
LOGICAL :: CondCausedShutDown = .FALSE. ! .TRUE. when condensation predicted at surface
INTEGER :: NumCircCalcMethod = 0 ! Calculation method for number of circuits per surface; 1=1 per surface, 2=use cicuit length
REAL(r64) :: CircLength = 0.0d0 ! Circuit length {m}
! Other parameters
LOGICAL :: EMSOverrideOnWaterMdot = .FALSE.
REAL(r64) :: EMSWaterMdotOverrideValue = 0.0D0
! Report data
REAL(r64) :: WaterInletTemp = 0.0d0 ! water inlet temperature
REAL(r64) :: WaterOutletTemp = 0.0d0 ! water outlet temperature
REAL(r64) :: WaterMassFlowRate = 0.0d0 ! water mass flow rate
REAL(r64) :: HeatPower = 0.0d0 ! heating sent to panel in Watts
REAL(r64) :: HeatEnergy = 0.0d0 ! heating sent to panel in Joules
REAL(r64) :: CoolPower = 0.0d0 ! cooling sent to panel in Watts
REAL(r64) :: CoolEnergy = 0.0d0 ! cooling sent to panel in Joules
INTEGER :: OutRangeHiErrorCount = 0 ! recurring errors for crazy results too high fluid temperature
INTEGER :: OutRangeLoErrorCount = 0 ! recurring errors for crazy results too low fluid temperature
END TYPE HydronicRadiantSystemData