WaterThermalTankData Derived Type

type, private :: WaterThermalTankData

type~~waterthermaltankdata~~InheritsGraph type~waterthermaltankdata WaterThermalTankData type~stratifiednodedata StratifiedNodeData type~stratifiednodedata->type~waterthermaltankdata Node type~waterheatersizingdata WaterHeaterSizingData type~waterheatersizingdata->type~waterthermaltankdata Sizing
Help


Name Type TypeNum IsChilledWaterTank EndUseSubcategoryName Init StandAlone Volume Mass TimeElapsed AmbientTempIndicator AmbientTempSchedule AmbientTempZone AmbientTempOutsideAirNode AmbientTemp AmbientZoneGain LossCoeff OffCycLossCoeff OffCycLossFracToZone OnCycLossCoeff OnCycLossFracToZone Mode SavedMode ControlType FuelType MaxCapacity MinCapacity Efficiency PLFCurve SetpointTempSchedule SetpointTemp DeadbandDeltaTemp TankTempLimit IgnitionDelay OffCycParaLoad OffCycParaFuelType OffCycParaFracToTank OnCycParaLoad OnCycParaFuelType OnCycParaFracToTank UseCurrentFlowLock UseInletNode UseInletTemp UseOutletNode UseOutletTemp UseMassFlowRate UseEffectiveness PlantUseMassFlowRateMax SavedUseOutletTemp UseDesignVolFlowRate UseBranchControlType UseSidePlantSizNum UseSideSeries UseSideAvailSchedNum UseSideLoadRequested UseSidePlantLoopNum UseSidePlantLoopSide UseSidePlantBranchNum UseSidePlantCompNum SourceCurrentFlowLock SourceInletNode SourceInletTemp SourceOutletNode SourceOutletTemp SourceMassFlowRate SourceEffectiveness PlantSourceMassFlowRateMax SavedSourceOutletTemp SourceDesignVolFlowRate SourceBranchControlType SourceSidePlantSizNum SourceSideSeries SourceSideAvailSchedNum SourceSidePlantLoopNum SourceSidePlantLoopSide SourceSidePlantBranchNum SourceSidePlantCompNum SourceSideControlMode SourceSideAltSetpointSchedNum SizingRecoveryTime MassFlowRateMax VolFlowRateMin MassFlowRateMin FlowRateSchedule UseInletTempSchedule TankTemp SavedTankTemp TankTempAvg Height Perimeter Shape HeaterHeight1 HeaterNode1 HeaterOn1 SavedHeaterOn1 HeaterHeight2 HeaterNode2 HeaterOn2 SavedHeaterOn2 AdditionalCond SetpointTemp2 SetpointTempSchedule2 DeadbandDeltaTemp2 MaxCapacity2 OffCycParaHeight OnCycParaHeight SkinLossCoeff SkinLossFracToZone OffCycFlueLossCoeff OffCycFlueLossFracToZone UseInletHeight UseOutletHeight SourceInletHeight SourceOutletHeight UseInletStratNode UseOutletStratNode SourceInletStratNode SourceOutletStratNode InletMode InversionMixingRate AdditionalLossCoeff Nodes Node VolFlowRate VolumeConsumed UnmetRate LossRate FlueLossRate UseRate TotalDemandRate SourceRate HeaterRate HeaterRate1 HeaterRate2 FuelRate FuelRate1 FuelRate2 VentRate OffCycParaFuelRate OffCycParaRateToTank OnCycParaFuelRate OnCycParaRateToTank NetHeatTransferRate CycleOnCount CycleOnCount1 CycleOnCount2 RuntimeFraction RuntimeFraction1 RuntimeFraction2 PartLoadRatio UnmetEnergy LossEnergy FlueLossEnergy UseEnergy TotalDemandEnergy SourceEnergy HeaterEnergy HeaterEnergy1 HeaterEnergy2 FuelEnergy FuelEnergy1 FuelEnergy2 VentEnergy OffCycParaFuelEnergy OffCycParaEnergyToTank OnCycParaFuelEnergy OnCycParaEnergyToTank NetHeatTransferEnergy FirstRecoveryDone FirstRecoveryFuel HeatPumpNum DesuperheaterNum ShowSetpointWarning MaxCycleErrorIndex Sizing

Source Code


Components

TypeVisibility AttributesNameInitial
character(len=MaxNameLength), public :: Name =''
character(len=MaxNameLength), public :: Type =''
integer, public :: TypeNum =0
logical, public :: IsChilledWaterTank =.FALSE.
character(len=MaxNameLength), public :: EndUseSubcategoryName =''
logical, public :: Init =.TRUE.
logical, public :: StandAlone =.FALSE.
real(kind=r64), public :: Volume =0.0d0
real(kind=r64), public :: Mass =0.0d0
real(kind=r64), public :: TimeElapsed =0.0d0
integer, public :: AmbientTempIndicator =0
integer, public :: AmbientTempSchedule =0
integer, public :: AmbientTempZone =0
integer, public :: AmbientTempOutsideAirNode =0
real(kind=r64), public :: AmbientTemp =0.0d0
real(kind=r64), public :: AmbientZoneGain =0.0d0
real(kind=r64), public :: LossCoeff =0.0d0
real(kind=r64), public :: OffCycLossCoeff =0.0d0
real(kind=r64), public :: OffCycLossFracToZone =0.0d0
real(kind=r64), public :: OnCycLossCoeff =0.0d0
real(kind=r64), public :: OnCycLossFracToZone =0.0d0
integer, public :: Mode =0
integer, public :: SavedMode =0
integer, public :: ControlType =1
character(len=MaxNameLength), public :: FuelType =''
real(kind=r64), public :: MaxCapacity =0.0d0
real(kind=r64), public :: MinCapacity =0.0d0
real(kind=r64), public :: Efficiency =0.0d0
integer, public :: PLFCurve =0
integer, public :: SetpointTempSchedule =0
real(kind=r64), public :: SetpointTemp =0.0d0
real(kind=r64), public :: DeadbandDeltaTemp =0.0d0
real(kind=r64), public :: TankTempLimit =0.0d0
real(kind=r64), public :: IgnitionDelay =0.0d0
real(kind=r64), public :: OffCycParaLoad =0.0d0
character(len=MaxNameLength), public :: OffCycParaFuelType =''
real(kind=r64), public :: OffCycParaFracToTank =0.0d0
real(kind=r64), public :: OnCycParaLoad =0.0d0
character(len=MaxNameLength), public :: OnCycParaFuelType =''
real(kind=r64), public :: OnCycParaFracToTank =0.0d0
integer, public :: UseCurrentFlowLock =0
integer, public :: UseInletNode =0
real(kind=r64), public :: UseInletTemp =0.0d0
integer, public :: UseOutletNode =0
real(kind=r64), public :: UseOutletTemp =0.0d0
real(kind=r64), public :: UseMassFlowRate =0.0d0
real(kind=r64), public :: UseEffectiveness =0.0d0
real(kind=r64), public :: PlantUseMassFlowRateMax =0.0d0
real(kind=r64), public :: SavedUseOutletTemp =0.0d0
real(kind=r64), public :: UseDesignVolFlowRate =0.0d0
integer, public :: UseBranchControlType =2
integer, public :: UseSidePlantSizNum =0
logical, public :: UseSideSeries =.TRUE.
integer, public :: UseSideAvailSchedNum =0
real(kind=r64), public :: UseSideLoadRequested =0.0D0
integer, public :: UseSidePlantLoopNum =0
integer, public :: UseSidePlantLoopSide =0
integer, public :: UseSidePlantBranchNum =0
integer, public :: UseSidePlantCompNum =0
integer, public :: SourceCurrentFlowLock =0
integer, public :: SourceInletNode =0
real(kind=r64), public :: SourceInletTemp =0.0d0
integer, public :: SourceOutletNode =0
real(kind=r64), public :: SourceOutletTemp =0.0d0
real(kind=r64), public :: SourceMassFlowRate =0.0d0
real(kind=r64), public :: SourceEffectiveness =0.0d0
real(kind=r64), public :: PlantSourceMassFlowRateMax =0.0d0
real(kind=r64), public :: SavedSourceOutletTemp =0.0d0
real(kind=r64), public :: SourceDesignVolFlowRate =0.0d0
integer, public :: SourceBranchControlType =2
integer, public :: SourceSidePlantSizNum =0
logical, public :: SourceSideSeries =.TRUE.
integer, public :: SourceSideAvailSchedNum =0
integer, public :: SourceSidePlantLoopNum =0
integer, public :: SourceSidePlantLoopSide =0
integer, public :: SourceSidePlantBranchNum =0
integer, public :: SourceSidePlantCompNum =0
integer, public :: SourceSideControlMode =0
integer, public :: SourceSideAltSetpointSchedNum =0
real(kind=r64), public :: SizingRecoveryTime =0.0d0
real(kind=r64), public :: MassFlowRateMax =0.0d0
real(kind=r64), public :: VolFlowRateMin =0.d0
real(kind=r64), public :: MassFlowRateMin =0.0d0
integer, public :: FlowRateSchedule =0
integer, public :: UseInletTempSchedule =0
real(kind=r64), public :: TankTemp =0.0d0
real(kind=r64), public :: SavedTankTemp =0.0d0
real(kind=r64), public :: TankTempAvg =0.0d0
real(kind=r64), public :: Height =0.0d0
real(kind=r64), public :: Perimeter =0.0d0
integer, public :: Shape =0
real(kind=r64), public :: HeaterHeight1 =0.0d0
integer, public :: HeaterNode1 =0
logical, public :: HeaterOn1 =.FALSE.
logical, public :: SavedHeaterOn1 =.FALSE.
real(kind=r64), public :: HeaterHeight2 =0.0d0
integer, public :: HeaterNode2 =0
logical, public :: HeaterOn2 =.FALSE.
logical, public :: SavedHeaterOn2 =.FALSE.
real(kind=r64), public :: AdditionalCond =0.0d0
real(kind=r64), public :: SetpointTemp2 =0.0d0
integer, public :: SetpointTempSchedule2 =0
real(kind=r64), public :: DeadbandDeltaTemp2 =0.0d0
real(kind=r64), public :: MaxCapacity2 =0.0d0
real(kind=r64), public :: OffCycParaHeight =0.0d0
real(kind=r64), public :: OnCycParaHeight =0.0d0
real(kind=r64), public :: SkinLossCoeff =0.0d0
real(kind=r64), public :: SkinLossFracToZone =0.0d0
real(kind=r64), public :: OffCycFlueLossCoeff =0.0d0
real(kind=r64), public :: OffCycFlueLossFracToZone =0.0d0
real(kind=r64), public :: UseInletHeight =0.0d0
real(kind=r64), public :: UseOutletHeight =0.0d0
real(kind=r64), public :: SourceInletHeight =0.0d0
real(kind=r64), public :: SourceOutletHeight =0.0d0
integer, public :: UseInletStratNode =0
integer, public :: UseOutletStratNode =0
integer, public :: SourceInletStratNode =0
integer, public :: SourceOutletStratNode =0
integer, public :: InletMode =1
real(kind=r64), public :: InversionMixingRate =0.0d0
real(kind=r64), public, DIMENSION(:), ALLOCATABLE:: AdditionalLossCoeff
integer, public :: Nodes =0
type(StratifiedNodeData), public, DIMENSION(:), ALLOCATABLE:: Node
real(kind=r64), public :: VolFlowRate =0.0d0
real(kind=r64), public :: VolumeConsumed =0.0d0
real(kind=r64), public :: UnmetRate =0.0d0
real(kind=r64), public :: LossRate =0.0d0
real(kind=r64), public :: FlueLossRate =0.0d0
real(kind=r64), public :: UseRate =0.0d0
real(kind=r64), public :: TotalDemandRate =0.0d0
real(kind=r64), public :: SourceRate =0.0d0
real(kind=r64), public :: HeaterRate =0.0d0
real(kind=r64), public :: HeaterRate1 =0.0d0
real(kind=r64), public :: HeaterRate2 =0.0d0
real(kind=r64), public :: FuelRate =0.0d0
real(kind=r64), public :: FuelRate1 =0.0d0
real(kind=r64), public :: FuelRate2 =0.0d0
real(kind=r64), public :: VentRate =0.0d0
real(kind=r64), public :: OffCycParaFuelRate =0.0d0
real(kind=r64), public :: OffCycParaRateToTank =0.0d0
real(kind=r64), public :: OnCycParaFuelRate =0.0d0
real(kind=r64), public :: OnCycParaRateToTank =0.0d0
real(kind=r64), public :: NetHeatTransferRate =0.0d0
integer, public :: CycleOnCount =0
integer, public :: CycleOnCount1 =0
integer, public :: CycleOnCount2 =0
real(kind=r64), public :: RuntimeFraction =0.0d0
real(kind=r64), public :: RuntimeFraction1 =0.0d0
real(kind=r64), public :: RuntimeFraction2 =0.0d0
real(kind=r64), public :: PartLoadRatio =0.0d0
real(kind=r64), public :: UnmetEnergy =0.0d0
real(kind=r64), public :: LossEnergy =0.0d0
real(kind=r64), public :: FlueLossEnergy =0.0d0
real(kind=r64), public :: UseEnergy =0.0d0
real(kind=r64), public :: TotalDemandEnergy =0.0d0
real(kind=r64), public :: SourceEnergy =0.0d0
real(kind=r64), public :: HeaterEnergy =0.0d0
real(kind=r64), public :: HeaterEnergy1 =0.0d0
real(kind=r64), public :: HeaterEnergy2 =0.0d0
real(kind=r64), public :: FuelEnergy =0.0d0
real(kind=r64), public :: FuelEnergy1 =0.0d0
real(kind=r64), public :: FuelEnergy2 =0.0d0
real(kind=r64), public :: VentEnergy =0.0d0
real(kind=r64), public :: OffCycParaFuelEnergy =0.0d0
real(kind=r64), public :: OffCycParaEnergyToTank =0.0d0
real(kind=r64), public :: OnCycParaFuelEnergy =0.0d0
real(kind=r64), public :: OnCycParaEnergyToTank =0.0d0
real(kind=r64), public :: NetHeatTransferEnergy =0.0d0
logical, public :: FirstRecoveryDone =.FALSE.
real(kind=r64), public :: FirstRecoveryFuel =0.0d0
integer, public :: HeatPumpNum =0
integer, public :: DesuperheaterNum =0
logical, public :: ShowSetpointWarning =.TRUE.
integer, public :: MaxCycleErrorIndex =0
type(WaterHeaterSizingData), public :: Sizing

Source Code

TYPE WaterThermalTankData
  CHARACTER(len=MaxNameLength) :: Name = ''                     ! Name of water heater
  CHARACTER(len=MaxNameLength) :: Type = ''                     ! Type of water heater (MIXED or STRATIFIED)
  INTEGER                      :: TypeNum = 0                   ! integer parameter for water heater(if part of an HPWH,then=HPWH)
  LOGICAL                      :: IsChilledWaterTank = .FALSE.  ! logical flag, true if for chilled water, false if for hot water
  CHARACTER(len=MaxNameLength) :: EndUseSubcategoryName = ''    ! User-defined end-use subcategory name
  LOGICAL                      :: Init = .TRUE.                 ! Flag for initialization:  TRUE means do the init
  LOGICAL                      :: StandAlone = .FALSE.          ! Flag for operation with no plant connections (no source or use)
  REAL(r64)                    :: Volume = 0.0d0                  ! Tank volume (m3)
  REAL(r64)                    :: Mass = 0.0d0                    ! Total mass of fluid in the tank (kg)

  REAL(r64)                    :: TimeElapsed = 0.0d0             ! Fraction of the current hour that has elapsed (h)
                                                                ! Saved in order to identify the beginning of a new system time

  INTEGER                      :: AmbientTempIndicator = 0      ! Indicator for ambient tank losses (SCHEDULE, ZONE, EXTERIOR)
  INTEGER                      :: AmbientTempSchedule = 0       ! Schedule index pointer
  INTEGER                      :: AmbientTempZone = 0           ! Number of ambient zone around tank
  INTEGER                      :: AmbientTempOutsideAirNode = 0 ! Number of outside air node
  REAL(r64)                    :: AmbientTemp = 0.0d0             ! Ambient temperature around tank (C)
  REAL(r64)                    :: AmbientZoneGain = 0.0d0         ! Internal gain to zone from tank losses (W)
  REAL(r64)                    :: LossCoeff = 0.0d0               ! Overall tank heat loss coefficient, UA (W/K)
  REAL(r64)                    :: OffCycLossCoeff = 0.0d0         ! Off-cycle overall tank heat loss coefficient, UA (W/K)
  REAL(r64)                    :: OffCycLossFracToZone = 0.0d0    ! Fraction of off-cycle losses added to zone
  REAL(r64)                    :: OnCycLossCoeff = 0.0d0          ! On-cycle overall tank heat loss coefficient, UA (W/K)
  REAL(r64)                    :: OnCycLossFracToZone = 0.0d0     ! Fraction of on-cycle losses added to zone

  INTEGER                      :: Mode = 0                      ! Indicator for current operating mode
  INTEGER                      :: SavedMode = 0                 ! Mode indicator saved from previous time step
  INTEGER                      :: ControlType = 1               ! Indicator for control type
  CHARACTER(len=MaxNameLength) :: FuelType = ''                 ! Fuel type
  REAL(r64)                    :: MaxCapacity = 0.0d0             ! Maximum capacity of auxiliary heater 1 (W)
  REAL(r64)                    :: MinCapacity = 0.0d0             ! Minimum capacity of auxiliary heater 1 (W)
  REAL(r64)                    :: Efficiency = 0.0d0              ! Thermal efficiency of auxiliary heater 1 ()
  INTEGER                      :: PLFCurve = 0                  ! Part load factor curve as a function of part load ratio
  INTEGER                      :: SetpointTempSchedule = 0      ! Schedule index pointer
  REAL(r64)                    :: SetpointTemp = 0.0d0            ! Setpoint temperature of auxiliary heater 1 (C)
  REAL(r64)                    :: DeadbandDeltaTemp = 0.0d0       ! Deadband temperature difference of auxiliary heater 1 (deltaC)
  REAL(r64)                    :: TankTempLimit = 0.0d0           ! Maximum tank temperature limit before venting (C)
  REAL(r64)                    :: IgnitionDelay = 0.0d0           ! Time delay before heater is allowed to turn on (s)

  REAL(r64)                    :: OffCycParaLoad = 0.0d0          ! Rate for off-cycle parasitic load (W)
  CHARACTER(len=MaxNameLength) :: OffCycParaFuelType = ''       ! Fuel type for off-cycle parasitic load
  REAL(r64)                    :: OffCycParaFracToTank = 0.0d0    ! Fraction of off-cycle parasitic energy ending up in tank (W)

  REAL(r64)                    :: OnCycParaLoad = 0.0d0           ! Rate for on-cycle parasitic load (W)
  CHARACTER(len=MaxNameLength) :: OnCycParaFuelType = ''        ! Fuel type for on-cycle parasitic load
  REAL(r64)                    :: OnCycParaFracToTank = 0.0d0     ! Fraction of on-cycle parasitic energy ending up in tank (W)

  INTEGER                      :: UseCurrentFlowLock = 0        ! current flow lock setting on use side

  INTEGER                      :: UseInletNode = 0              ! Inlet node on the use side; colder water returning to a hottank
  REAL(r64)                    :: UseInletTemp = 0.0d0            ! Use side inlet temperature (C)
  INTEGER                      :: UseOutletNode = 0             ! Outlet node on the use side; hot tank water
  REAL(r64)                    :: UseOutletTemp = 0.0d0           ! Use side outlet temperature (C)
  REAL(r64)                    :: UseMassFlowRate = 0.0d0         ! Mass flow rate on the use side (kg/s)
  REAL(r64)                    :: UseEffectiveness = 0.0d0        ! Heat transfer effectiveness on use side ()
  REAL(r64)                    :: PlantUseMassFlowRateMax = 0.0d0 ! Plant demand-side max flow request on use side (kg/s)
  REAL(r64)                    :: SavedUseOutletTemp = 0.0d0      ! Use side outlet temp saved for demand-side flow control (C)
  REAL(r64)                    :: UseDesignVolFlowRate = 0.0d0    ! Use side plant volume flow rate (input data, autosizable) m3/s
  INTEGER                      :: UseBranchControlType = 2      ! Use side plant branch control type e.g active, passive, bypass
  INTEGER                      :: UseSidePlantSizNum = 0        ! index in plant sizing that the use side is on
  LOGICAL                      :: UseSideSeries = .TRUE.
  INTEGER                      :: UseSideAvailSchedNum = 0      ! use side availability schedule
  REAL(r64)                    :: UseSideLoadRequested = 0.0D0  ! hold MyLoad request from plant management.
  INTEGER                      :: UseSidePlantLoopNum = 0       ! if not zero, then this use side is on plant loop #
  INTEGER                      :: UseSidePlantLoopSide = 0      ! use side is on loop side index
  INTEGER                      :: UseSidePlantBranchNum = 0     ! use side branch num in plant topology
  INTEGER                      :: UseSidePlantCompNum  = 0      ! use side component num in plant topology

  INTEGER                      :: SourceCurrentFlowLock = 0     ! current flow lock setting on source side
  INTEGER                      :: SourceInletNode = 0           ! Inlet node for the source side; hot water from supply
  REAL(r64)                    :: SourceInletTemp = 0.0d0         ! Source side inlet temperature (C)
  INTEGER                      :: SourceOutletNode = 0          ! Outlet node for the source side; colder tank water
  REAL(r64)                    :: SourceOutletTemp = 0.0d0        ! Source side outlet temperature (C)
  REAL(r64)                    :: SourceMassFlowRate = 0.0d0      ! Mass flow rate on the source side (kg/s)
  REAL(r64)                    :: SourceEffectiveness = 0.0d0     ! Heat transfer effectiveness on source side ()
  REAL(r64)                    :: PlantSourceMassFlowRateMax = 0.0d0 ! Plant demand-side max flow request on source side (kg/s)
  REAL(r64)                    :: SavedSourceOutletTemp = 0.0d0   ! Source side outlet temp saved for demand-side flow control (C)
  REAL(r64)                    :: SourceDesignVolFlowRate = 0.0d0 ! Source side plant volume flow rate (input , autosizable) m3/s
  INTEGER                      :: SourceBranchControlType = 2   ! source side plant branch control type e.g active, passive, bypass
  INTEGER                      :: SourceSidePlantSizNum = 0     ! index in plant sizing that the source side is on
  LOGICAL                      :: SourceSideSeries = .TRUE.
  INTEGER                      :: SourceSideAvailSchedNum = 0   ! source side availability schedule.
  INTEGER                      :: SourceSidePlantLoopNum = 0    ! if not zero, then this use side is on plant loop #
  INTEGER                      :: SourceSidePlantLoopSide = 0    ! loop side that Source side is one eg. supply or demand
  INTEGER                      :: SourceSidePlantBranchNum = 0   ! Source side branch num in plant topology
  INTEGER                      :: SourceSidePlantCompNum  = 0    ! Source side component num in plant topology
  INTEGER                      :: SourceSideControlMode = 0      ! flag for how source side flow is controlled 
  INTEGER                      :: SourceSideAltSetpointSchedNum = 0 ! schedule of alternate temperature setpoint values 

  REAL(r64)                    :: SizingRecoveryTime = 0.0d0      ! sizing parameter for autosizing indirect water heaters (hr)

  REAL(r64)                    :: MassFlowRateMax = 0.0d0         ! Maximum flow rate for scheduled DHW (kg/s)
  REAL(r64)                    :: VolFlowRateMin  = 0.d0        ! Minimum flow rate for heater ignition (kg/s)
  REAL(r64)                    :: MassFlowRateMin = 0.0d0         ! Minimum mass flow rate for heater ignition (kg/s)
  INTEGER                      :: FlowRateSchedule = 0          ! Schedule index pointer
  INTEGER                      :: UseInletTempSchedule = 0      ! Cold water supply temperature schedule index pointer

  REAL(r64)                    :: TankTemp = 0.0d0                ! Temperature of tank fluid (average, if stratified) (C)
  REAL(r64)                    :: SavedTankTemp = 0.0d0           ! Tank temp that is carried from time step to time step (C)
  REAL(r64)                    :: TankTempAvg = 0.0d0             ! Average tank temperature over the time step (C)

  ! Stratified variables (in addition to the above)
  REAL(r64)                    :: Height = 0.0d0                  ! Height of tank (m)
  REAL(r64)                    :: Perimeter = 0.0d0               ! Perimeter of tank (m), only used for OTHER shape
  INTEGER                      :: Shape = 0                     ! Tank shape:  VERTICAL CYLINDER, HORIZONTAL CYLINDER, or OTHER

  REAL(r64)                    :: HeaterHeight1 = 0.0d0
  INTEGER                      :: HeaterNode1 = 0
  LOGICAL                      :: HeaterOn1 = .FALSE.
  LOGICAL                      :: SavedHeaterOn1 = .FALSE.

  REAL(r64)                    :: HeaterHeight2 = 0.0d0
  INTEGER                      :: HeaterNode2 = 0
  LOGICAL                      :: HeaterOn2 = .FALSE.
  LOGICAL                      :: SavedHeaterOn2 = .FALSE.

  REAL(r64)                    :: AdditionalCond = 0.0d0           ! Additional destratification conductivity (W/m K)

  REAL(r64)                    :: SetpointTemp2 = 0.0d0            ! Setpoint temperature of auxiliary heater 2 (C)
  INTEGER                      :: SetpointTempSchedule2 = 0
  REAL(r64)                    :: DeadbandDeltaTemp2 = 0.0d0
  REAL(r64)                    :: MaxCapacity2 = 0.0d0

  REAL(r64)                    :: OffCycParaHeight = 0.0d0
  REAL(r64)                    :: OnCycParaHeight = 0.0d0

  REAL(r64)                    :: SkinLossCoeff = 0.0d0
  REAL(r64)                    :: SkinLossFracToZone = 0.0d0
  REAL(r64)                    :: OffCycFlueLossCoeff = 0.0d0
  REAL(r64)                    :: OffCycFlueLossFracToZone = 0.0d0

  REAL(r64)                    :: UseInletHeight = 0.0d0          ! Height of use side inlet (m)
  REAL(r64)                    :: UseOutletHeight = 0.0d0         ! Height of use side outlet (m)
  REAL(r64)                    :: SourceInletHeight = 0.0d0       ! Height of source side inlet (m)
  REAL(r64)                    :: SourceOutletHeight = 0.0d0      ! Height of source side outlet (m)

  INTEGER                      :: UseInletStratNode = 0         ! Use-side inlet node number
  INTEGER                      :: UseOutletStratNode = 0        ! Use-side outlet node number
  INTEGER                      :: SourceInletStratNode = 0      ! Source-side inlet node number
  INTEGER                      :: SourceOutletStratNode = 0     ! Source-side outlet node number

  INTEGER                      :: InletMode = 1                 ! Inlet position mode:  1 = FIXED; 2 = SEEKING

  REAL(r64)                    :: InversionMixingRate = 0.0d0

  REAL(r64), DIMENSION(:), ALLOCATABLE :: AdditionalLossCoeff        ! Loss coefficient added to the skin loss coefficient (W/m2-K)

  INTEGER                      :: Nodes = 0                     ! Number of nodes
  TYPE(StratifiedNodeData), DIMENSION(:), ALLOCATABLE :: Node   ! Array of node data

  ! Report variables
  REAL(r64)                    :: VolFlowRate = 0.0d0             ! Scheduled DHW demand (m3/s)
  REAL(r64)                    :: VolumeConsumed = 0.0d0          ! Volume of DHW consumed (m3)

  REAL(r64)                    :: UnmetRate = 0.0d0               ! Energy demand to heat tank water to setpoint (W)
  REAL(r64)                    :: LossRate = 0.0d0                ! Energy demand to support heat losses due to ambient temp (W)
  REAL(r64)                    :: FlueLossRate = 0.0d0            ! Heat loss rate to flue (W)
  REAL(r64)                    :: UseRate = 0.0d0                 ! Energy demand to heat the Use Side water to tank temp (W)
  REAL(r64)                    :: TotalDemandRate = 0.0d0         ! Total demand rate (sum of all above rates) (W)
  REAL(r64)                    :: SourceRate = 0.0d0              ! Energy supplied by the source side to help heat the tank (W)
  REAL(r64)                    :: HeaterRate = 0.0d0              ! The energy the water heater burner puts into the water (W)
  REAL(r64)                    :: HeaterRate1 = 0.0d0             ! The energy heater 1 puts into the water (W)
  REAL(r64)                    :: HeaterRate2 = 0.0d0             ! The energy heater 2 puts into the water (W)
  REAL(r64)                    :: FuelRate = 0.0d0                ! The fuel consumption rate for the water heater burner (W)
  REAL(r64)                    :: FuelRate1 = 0.0d0               ! The fuel consumption rate for heater 1 (W)
  REAL(r64)                    :: FuelRate2 = 0.0d0               ! The fuel consumption rate for heater 2 (W)
  REAL(r64)                    :: VentRate = 0.0d0                ! Heat recovery energy lost due to setpoint temp (W)
  REAL(r64)                    :: OffCycParaFuelRate = 0.0d0      ! Fuel consumption rate for off-cycle parasitic load (W)
  REAL(r64)                    :: OffCycParaRateToTank = 0.0d0    ! Heat rate to tank for off-cycle parasitic load (W)
  REAL(r64)                    :: OnCycParaFuelRate = 0.0d0       ! Fuel consumption rate for on-cycle parasitic load (W)
  REAL(r64)                    :: OnCycParaRateToTank = 0.0d0     ! Heat rate to tank for on-cycle parasitic load (W)
  REAL(r64)                    :: NetHeatTransferRate = 0.0d0     ! Net heat transfer rate to/from tank (W)

  INTEGER                      :: CycleOnCount = 0              ! Number of times heater cycles on in the current time step
  INTEGER                      :: CycleOnCount1 = 0             ! Number of times heater 1 cycles on in the current time step
  INTEGER                      :: CycleOnCount2 = 0             ! Number of times heater 2 cycles on in the current time step
  REAL(r64)                    :: RuntimeFraction = 0.0d0      ! Runtime fraction, fraction of timestep that any  heater is running
  REAL(r64)                    :: RuntimeFraction1 = 0.0d0        ! Runtime fraction, fraction of timestep that heater 1 is running
  REAL(r64)                    :: RuntimeFraction2 = 0.0d0        ! Runtime fraction, fraction of timestep that heater 2 is running
  REAL(r64)                    :: PartLoadRatio = 0.0d0           ! Part load ratio, fraction of maximum heater capacity

  REAL(r64)                    :: UnmetEnergy = 0.0d0             ! Energy to heat tank water to setpoint (J)
  REAL(r64)                    :: LossEnergy = 0.0d0              ! Energy to support heat losses due to ambient temp (J)
  REAL(r64)                    :: FlueLossEnergy = 0.0d0          ! Energy to support heat losses to the flue (J)
  REAL(r64)                    :: UseEnergy = 0.0d0               ! Energy to heat the use side water to tank temp (J)
  REAL(r64)                    :: TotalDemandEnergy = 0.0d0       ! Total energy demand (sum of all above energies) (J)
  REAL(r64)                    :: SourceEnergy = 0.0d0            ! Energy supplied by the source side to help heat the tank (J)
  REAL(r64)                    :: HeaterEnergy = 0.0d0            ! The energy the water heater burner puts into the water (J)
  REAL(r64)                    :: HeaterEnergy1 = 0.0d0           ! The energy heater 1 puts into the water (J)
  REAL(r64)                    :: HeaterEnergy2 = 0.0d0           ! The energy heater 2 puts into the water (J)
  REAL(r64)                    :: FuelEnergy = 0.0d0              ! The fuel consumption energy for the water heater burner (J)
  REAL(r64)                    :: FuelEnergy1 = 0.0d0             ! The fuel consumption energy for heater 1 (J)
  REAL(r64)                    :: FuelEnergy2 = 0.0d0             ! The fuel consumption energy for heater 2 (J)
  REAL(r64)                    :: VentEnergy = 0.0d0              ! Heat recovery energy lost due to setpoint temp (J)
  REAL(r64)                    :: OffCycParaFuelEnergy = 0.0d0    ! Fuel consumption energy for off-cycle parasitic load (J)
  REAL(r64)                    :: OffCycParaEnergyToTank = 0.0d0  ! Energy to tank for off-cycle parasitic load (J)
  REAL(r64)                    :: OnCycParaFuelEnergy = 0.0d0     ! Fuel consumption energy for on-cycle parasitic load (J)
  REAL(r64)                    :: OnCycParaEnergyToTank = 0.0d0   ! Energy to tank for on-cycle parasitic load (J)
  REAL(r64)                    :: NetHeatTransferEnergy = 0.0d0   ! Net heat transfer energy to/from tank (J)

  LOGICAL                      :: FirstRecoveryDone = .FALSE.   ! Flag to indicate when first recovery to the setpoint is done
  REAL(r64)                    :: FirstRecoveryFuel = 0.0d0       ! Fuel energy needed for first recovery to the setpoint (J)
  INTEGER                      :: HeatPumpNum = 0               ! Index to heat pump water heater
  INTEGER                      :: DesuperheaterNum = 0          ! Index to desuperheating coil
  LOGICAL                      :: ShowSetpointWarning = .TRUE.  ! Warn when set point is greater than max tank temp limit
  INTEGER                      :: MaxCycleErrorIndex = 0        ! recurring error index
  Type(WaterHeaterSizingData)  :: Sizing                        ! ancillary data for autosizing
END TYPE WaterThermalTankData

ActuatorUsedType AiflowNetworkReportProp AirChillerSetData AirConnectionStruct AirflowNetworkCompProp AirflowNetworkExchangeProp AirflowNetworkLinkageProp AirflowNetworkLinkReportData AirflowNetworkLinkSimuData AirflowNetworkNodeProp AirflowNetworkNodeReportData AirflowNetworkNodeSimuData AirflowNetworkReportVars AirflowNetworkSimuProp AirIn AirLoopBranchData AirLoopCompData AirLoopControlData AirLoopFlowData AirLoopMixerData AirLoopOutsideAirConnectData AirLoopSplitterData AirLoopStatsType AirLooptoZoneData AirLoopZoneEquipConnectData AirModelData AirNodeData AirPatternInfobyZoneStruct AirReportVars AirTerminalMixerData AngleFactorData BalancedDesDehumPerfData BaseboardParams BaseboardParams BaseCell BaseChillerSpecs BasementZoneInfo BaseReportVars BaseThermalPropertySet BasisElemDescr BasisStruct BatteryDichargeDataStruct BBHeatData BinObjVarIDType BinResultsType BinStatisticsType BLASTAbsorberSpecs BoilerSpecs BoilerSpecs BoundingBoxVertStruct BranchData BranchData BranchListData BSDFBkSurfDescr BSDFDaylghtGeomDescr BSDFDaylghtPosition BSDFGeomDescr BSDFLayerAbsorpStruct BSDFRefPoints BSDFRefPointsGeomDescr BSDFStateDescr BSDFWindowDescript BSDFWindowGeomDescr BSDFWindowInputStruct cached_psat_t cached_twb_t CartesianCell CartesianPipeCellInformation CaseAndWalkInListDef CaseRAFractionData CaseWIZoneReportData CashFlowType CBVAVData CECInverterLookUpTableData CFSFILLGAS CFSGAP CFSLAYER CFSLWP CFSSWP CFSTY CGSHPNodeData ChargeBlockType ChargeSimpleType ChillerheaterSpecs CHReportVars CoefficientProps CoilCreditData CoilType CollectorData ColumnTagType CommonPipeData CompData CompDesWaterFlowData ComponentData ComponentData ComponentListData ComponentNameData ComponentProps ComponentSetPtData CompressorListDef CompSizeTableEntryType ComputationType ConnectAirSysComp ConnectAirSysSubComp ConnectAirSysSubSubComp ConnectedLoopData ConnectionPoint ConnectorData ConnectZoneComp ConnectZoneSubComp ConnectZoneSubSubComp ConstantFlowRadiantSystemData ConstCOPChillerSpecs ConstCOPReportVars ConstGradPattern ConstructionData ConstructionDataFD ContaminantData ControllerListProps ControllerPropsType ControllerStatsType ControlList ControlsType ConvectionCoefficient CoolBeamData CoolTowerParams CostAdjustmentStruct CostLineItemStruct CTGeneratorSpecs CurSimConditionsInfo CVData CVDVParameters CVFlow DamperDesignParams DamperFlowConditions DataPeriodData DataSetPointManager DaylightSavingPeriodData DayScheduleData DayWeatherVariables DCtoACInverterStruct DefineASHRAEAdaptiveOptimumStartCoeffs DefineColdestSetPointManager DefineCondEntSetPointManager DefineDiffTSysAvailManager DefineFollowOATempSetPointManager DefineFollowSysNodeTempSetPointManager DefineGroundTempSetPointManager DefineHiLoSysAvailManager DefineHybridVentSysAvailManager DefineIdealCondEntSetPointManager DefineLinearModelNode DefineMixedAirSetPointManager DefineNightCycSysAvailManager DefineNightVentSysAvailManager DefineOAPretreatSetPointManager DefineOptStartSysAvailManager DefineOutsideAirSetPointManager DefinePriAirSysAvailMgrs DefinePrimaryAirSystem DefineSchedDualSetPointManager DefineSchedOffSysAvailManager DefineSchedOnSysAvailManager DefineSchedSysAvailManager DefineScheduledSetPointManager DefineSurfaceSettings DefineSZCoolingSetPointManager DefineSZHeatingSetPointManager DefineSZMaxHumSetPointManager DefineSZMinHumSetPointManager DefineSZOneStageCoolinggSetPointManager DefineSZOneStageHeatingSetPointManager DefineSZReheatSetPointManager DefineWarmestSetPointManager DefineZoneCompAvailMgrs DefineZoneData DefMultiZoneAverageCoolingSetPointManager DefMultiZoneAverageHeatingSetPointManager DefMultiZoneAverageMaxHumSetPointManager DefMultiZoneAverageMinHumSetPointManager DefMultiZoneMaxHumSetPointManager DefMultiZoneMinHumSetPointManager DefRABFlowSetPointManager DefWarmestSetPtManagerTempFlow DemandManagerData DemandManagerListData DesDayWeathData DesiccantDehumidifierData DesignDayData DesignSpecMSHPData DetailedIceStorageData DirectAirProps DirectionNeighbor_Dictionary DirectionReal_Dictionary DisSysCompCoilProp DisSysCompCPDProp DisSysCompCVFProp DisSysCompDamperProp DisSysCompDetFanProp DisSysCompDuctProp DisSysCompELRProp DisSysCompHXProp DisSysCompLeakProp DisSysCompTermUnitProp DisSysLinkageProp DisSysNodeProp DistributionStructure DomainRectangle dTriangle DuctData DVData DXCoilData DXCoolingConditions DXHeatPumpSystemStruct EarthTubeData EarthTubeZoneReportVars EconVarType ElecBaseboardParams ElecStorageDataStruct ElectricChillerSpecs ElectricEIRChillerSpecs ElectricPowerLoadCenter ElectricRadiantSystemData ElectricReportVars ElectricTransformer EMSActuatorAvailableType EMSProgramCallManagementType EndUseCategoryType Energy EngineDrivenChillerSpecs EngineDrivenReportVars EnvironmentData EqNodeConnectionDef EquipConfiguration EquipList EquipListCompData EquipListPtrData EquipmentData EquipMeterData EquipOpList ErlExpressionType ErlStackType ErlValueType ErlVariableType EvapConditions EvapFluidCoolerInletConds EvapFluidCoolerspecs ExhaustAbsorberSpecs ExtendedFluidProperties ExteriorEquipmentUsage ExteriorLightUsage ExtVentedCavityStruct Face FanCoilData FanEquipConditions FarfieldInfo FaultProperties FCAirSupplyDataStruct FCAuxilHeatDataStruct FCDataStruct FCElecStorageDataStruct FCExhaustHXDataStruct FCInverterDataStruct FCPowerModuleStruct FCReportDataStruct FCStackCoolerDataStruct FCWaterSupplyDataStruct FenestrationSolarAbsorbed FileSectionsDefinition FluidCellInformation FluidCoolerInletConds FluidCoolerspecs FluidPropsGlycolData FluidPropsGlycolErrors FluidPropsGlycolRawData FluidPropsRefrigerantData FluidPropsRefrigErrors FrameDividerProperties FuelTypeProps FullDomainStructureInfo FurnaceEquipConditions GapDeflectionState GapSupportPillar GasAbsorberSpecs GasPropertyDataStruct GasTurbineReportVars GenData GeneratorDynamicsManagerStruct GeneratorFuelSupplyDataStruct GenericComponentZoneIntGainStruct GlheSpecs GlobalInternalGainMiscObject GridRegion GroundwaterWellDataStruct GshpSpecs GshpSpecs GshpSpecs GTChillerSpecs HalfLoopData HcInsideFaceUserCurveStruct HcOutsideFaceUserCurveStruct HeatExchangerStruct HeatExchCond HeatingCoilEquipConditions HeatPumpWaterHeaterData HeatReclaimDXCoilData HeatReclaimRefrigCondenserData HeatReclaimRefrigeratedRackData HighTempRadiantSystemData HumidifierData HVACAirLoopIterationConvergenceStruct HVACNodeConvergLogStruct HVACZoneInletConvergenceStruct HWBaseboardParams HXAssistedCoilParameters HydronicRadiantSystemData ICEngineGeneratorSpecs IceStorageMapping IceStorageSpecs IllumMapData IndirectAbsorberSpecs IndUnitData InfiltrationData InsideFaceAdaptiveConvAlgoStruct InstructionType IntegerVariables IntegerVariableType InternalVarsAvailableType InternalVarsUsedType IntWinAdjZoneExtWinStruct IrrigationDataStruct LightsData LineDefinition LocalPipeData Location LoopPipeData LoopSidePumpInformation LoopSideReportVars m_FlowControlValidator MapCalcData MarkedNodeData MaterialDataFD MaterialProperties MatrixDataStruct MeshExtents MeshPartition MeshPartitions MeshProperties MeterArrayType MeterData MeterType MicroCHPDataStruct MicroCHPParamsNonNormalized MicroCHPReportDataStruct MissingData MissingDataCounts MixerConditions MixerData MixerData MixingData MoistureInfo monetaryUnitType MonthlyColumnsType MonthlyFieldSetInputType MonthlyInputType MonthlyTablesType MoreNodeData MSHeatPumpData MSHeatPumpReportData MTGeneratorSpecs MultizoneCompDetOpeningProp MultizoneCompExhaustFanProp MultizoneCompHorOpeningProp MultizoneCompSimpleOpeningProp MultizoneCPArrayProp MultizoneCPValueProp MultizoneExternalNodeProp MultizoneSurfaceCrackProp MultizoneSurfaceCrackStdCndns MultizoneSurfaceELAProp MultizoneSurfaceProp MultizoneZoneProp NamedMonthlyType NeighborInformation NightVentPerfData NodeConnectionDef NodeData NodeListDef NonrecurringCostType OAControllerData OAControllerProps OAEquipList OAMixerProps OARequirementsData OAUnitData ObjectsDefinition OperationData OperatorType OpSchemePtrData OptStartDataType OSCData OSCMData OutputReportingVariables OutputTableBinnedType OutputVarSensorType OutsideAirSysProps OutsideEnergySourceSpecs OutsideFaceAdpativeConvAlgoStruct PackagedTESCoolingCoilStruct ParametersData ParentListData PeopleData PerfCurveTableDataStruct PerfomanceCurveData PipeCircuitInfo PipeData PipeHeatTransferReport PipeHTData PipeSegmentInfo PlaneEq PlantAvailMgrData PlantCallingOrderInfoStruct PlantConnection PlantConnectionStruct PlantConnectionStruct PlantConvergencePoint PlantIterationConvergenceStruct PlantLocation PlantLocatorStruct PlantLoopData PlantPressureCurveData PlantProfileData PlantSizingData Point Point3DInteger Point3DReal PointF PointType PollutionProps Polyhedron PondGroundHeatExchangerData PondGroundHeatExchangerReport PowIndUnitData PTUnitData PumpSpecs PumpVFDControlData PVArrayStruct PVReportVariables PVTCollectorStruct PVTReportStruct QualifyType RadialCellInformation RadialSizing RadSysTypeData RainfallCollectorDataStruct RangeCheckDef RangeDataCounts RatchetType RealVariables RealVariableType RectangleF RecurringCostsType RecurringErrorData ReformulatedEIRChillerSpecs RefrigCaseCreditData RefrigCaseData RefrigCompressorData RefrigCondenserData RefrigGasCoolerData RefrigRackData RefrigSystemData ReportBranchData ReportCompData ReportEIRVars ReportingInformation ReportLoopData reportNameType ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReportVars ReqReportVariables ReturnAir RoofGeoCharactisticsStruct RootFinderDataType RunPeriodData RuntimeReportVarType ScheduleData ScheduleTypeData ScreenTransData SecondaryLoopData SecretObjects SectionsDefinition ShadingVertexData ShadowingCombinations ShadowRelateType ShelfData SimplePVParamsStruct SimplePVTModelStruct SimpleWatertoAirHPConditions SimulationControl SimulationOrder SiteRainFallDataStruct SlabListData SNLModuleParamsStuct SNLPVCalcStruct SNLPVInputStruct SolReflRecSurfData SolutionTrackerType SpecialDayData SpectralDataProperties SplitterConditions SplitterData SplitterData StackType StandAloneERVData SteamBaseboardParams SteamCoilEquipConditions StorageTankDataStruct StormWindowData StratifiedNodeData subcell SubcomponentData SubcoolerData SubEquipmentData SubSubcomponentData SubSubEquipmentData SubTableType SummarizeLoads SupplyAir SurfaceAssocNestedStruct SurfaceData SurfaceDataFD SurfaceErrorTracking SurfaceGroundHeatExchangerData SurfaceGroundHeatExchangerQTF SurfaceGroundHeatExchngrReport SurfaceListData SurfaceScreenProperties SurfaceSolarIncident SurfaceWindowCalc SurfMapPattern SysAvailManagerList SysDesignParams SysFlowConditions SystemSizingData SystemSizingInputData TableDataStruct TableEntryType TableLookupData TariffType TCGlazingsType TDDPipeData TemperaturePatternStruct TemperValveData TempGridRegionData TempLoopData TempVsHeightPattern TerminalUnitListData TermUnitSizingData ThermalChimneyData ThermalComfortDataType ThermalComfortInASH55Type ThermalComfortSetpointType ThermChimReportVars ThermChimZnReportVars TimeSteps timings TOCEntriesType TokenType TowerInletConds Towerspecs TransferLoadListDef TransRefrigSystemData TrendVariableType TriQuadraticCurveDataStruct TRNSYSPVCalcStruct TRNSYSPVModuleParamsStruct TStatObject TwoVertGradInterpolPattern TypicalExtremeData UFEData UFIData UnitarySystemData UnitConvType UnitHeaterData UnitVentilatorData UseAdjustmentType UsePriceEscalationType UserAirTerminalComponentStruct UserCoilComponentStruct UserPlantComponentStruct UserZoneHVACForcedAirComponentStruct UTSCDataStruct VariableSpeedCoilData VariableTypeForDDOutput vector Vector_2d VentilatedSlabData VentilationData VentilationMechanicalProps VRFCondenserEquipment VRFTerminalUnitEquipment VSTowerData WalkInData WarehouseCoilData WarmupConvergence WaterCoilEquipConditions WaterConnectionsType WaterEquipmentType WaterHeaterDesuperheaterData WaterHeaterSizingData WaterSourceSpecs WaterThermalTankData WatertoAirHPEquipConditions WaterUseTankConnectionStruct WeatherProperties WeekScheduleData WholeBuildingElectricPowerSummary WindACData WindowBlindProperties WindowComplexShade WindowIndex WindowShadingControlData WindowStateIndex WindowThermalModelParams WindTurbineParams WrapperComponentSpecs WrapperReportVars WrapperSpecs ZoneAirBalanceData ZoneAirDistributionData ZoneAirEquip ZoneCatEUseData ZoneComfortControls ZoneComfortControlsFangerData ZoneComfortFangerControlType ZoneCompTypeData ZoneContamGenericDataBLDiff ZoneContamGenericDataConstant ZoneContamGenericDataCutoff ZoneContamGenericDataDecay ZoneContamGenericDataDRS ZoneContamGenericDataDVS ZoneContamGenericDataPDriven ZoneContControls ZoneData ZoneDaylightCalc ZoneDehumidifierData ZoneEqSizingData ZoneEquipData ZoneEvapCoolerUnitStruct ZoneGroupData ZoneHumidityControls ZoneInternalGainsStruct ZoneListData ZoneListData ZonePreDefRepType ZonePurchasedAir ZoneReportVars ZoneReturnPlenumConditions ZoneSatgedControls ZoneSimData ZoneSizingData ZoneSizingInputData ZoneSupplyPlenumConditions ZoneSystemContaminantDemandData ZoneSystemDemandData ZoneSystemMoistureDemand ZoneTempControls ZoneTempControlType ZoneViewFactorInformation