TYPE FurnaceEquipConditions
CHARACTER(len=MaxNameLength) :: Name =' ' ! Name of the Furnace
INTEGER :: FurnaceType_Num =0 ! Numeric Equivalent for Furnace Type
INTEGER :: FurnaceIndex =0 ! Index to furnace
INTEGER :: SchedPtr =0 ! Index to furnace operating schedule
INTEGER :: FanSchedPtr =0 ! Index to fan operating mode schedule
INTEGER :: FanAvailSchedPtr =0 ! Index to fan availability schedule
INTEGER :: ControlZoneNum =0 ! Index to controlled zone
INTEGER :: ZoneSequenceCoolingNum =0 ! Index to cooling sequence/priority for this zone
INTEGER :: ZoneSequenceHeatingNum =0 ! Index to heating sequence/priority for this zone
INTEGER :: CoolingCoilType_Num =0 ! Numeric Equivalent for Cooling Coil Type
INTEGER :: CoolingCoilIndex =0 ! Index to cooling coil
INTEGER :: ActualDXCoilIndexforHXAssisted =0 ! Index to DX cooling coil when HX assisted
LOGICAL :: CoolingCoilUpstream =.TRUE. ! Indicates if cooling coil is upstream of heating coil
INTEGER :: HeatingCoilType_Num =0 ! Numeric Equivalent for Heating Coil Type
INTEGER :: HeatingCoilIndex =0 ! Index to heating coil
INTEGER :: ReheatingCoilType_Num =0 ! Numeric Equivalent for Reheat Coil Type
INTEGER :: ReheatingCoilIndex =0 ! Index to reheat coil
CHARACTER(len=MaxNameLength) :: HeatingCoilName =' ' ! name of heating coil
CHARACTER(len=MaxNameLength) :: HeatingCoilType =' ' ! type of heating coil
INTEGER :: CoilControlNode =0 ! control node for hot water and steam heating coils
INTEGER :: HWCoilAirInletNode =0 ! air inlet node number of HW coil for PTAC, PTHP, HeatCool, HeatOnly
INTEGER :: HWCoilAirOutletNode =0 ! air outlet node number of HW coil for PTAC, PTHP, HeatCool, HeatOnly
INTEGER :: SuppCoilAirInletNode =0 ! air inlet node number of HW coil for HeatCool Reheat Coil
INTEGER :: SuppCoilAirOutletNode =0 ! air outlet node number of HW coil for HeatCool Reheat Coil
INTEGER :: SuppHeatCoilType_Num =0 ! Numeric Equivalent for Supplemental Heat Coil Type
INTEGER :: SuppHeatCoilIndex =0 ! Index to supplemental heater
INTEGER :: SuppCoilControlNode =0 ! control node for steam and hot water heating coil
CHARACTER(len=MaxNameLength) :: SuppHeatCoilName=' ' ! name of supplemental heating coil
CHARACTER(len=MaxNameLength) :: SuppHeatCoilType=' ' ! type of supplemental heating coil
INTEGER :: FanType_Num =0 ! Integer equivalent of fan type (1=OnOff, 2 = ConstVolume)
INTEGER :: FanIndex =0 ! Index to fan object
INTEGER :: FurnaceInletNodeNum =0 ! Furnace inlet node number
INTEGER :: FurnaceOutletNodeNum =0 ! Furnace inlet node number
INTEGER :: OpMode =0 ! operation mode: 1 = cycling fan, cycling coils
! 2 = continuous fan, cycling coils
INTEGER :: LastMode =0 ! last mode of operation, coolingmode or heatingmode
INTEGER :: AirFlowControl =0 ! fan control mode, UseCompressorOnFlow or UseCompressorOffFlow
INTEGER :: FanPlace =0 ! fan placement; 1=blow through, 2=draw through
INTEGER :: NodeNumofControlledZone =0 ! Node number of controlled zone air node
INTEGER :: WatertoAirHPType =0 !Type of water to air heat pump model used
REAL(r64) :: CoolingConvergenceTolerance =0.0d0 ! Convergence tolerance for cooling,
! ratio (CoolingCoilLoad - FurnaceCoolingOutput)/CoolingCoilLoad
REAL(r64) :: HeatingConvergenceTolerance =0.0d0 ! Convergence tolerance for heating,
! ratio (HeatingCoilLoad - HeatPumpheatingOutput)/HeatingCoilLoad
REAL(r64) :: DesignHeatingCapacity =0.0d0 ! Nominal Capacity of Heating Coil [W]
REAL(r64) :: DesignCoolingCapacity =0.0d0 ! Nominal Capacity of Cooling Coil [W]
REAL(r64) :: CoolingCoilSensDemand =0.0d0 ! Sensible demand on Cooling Coil [W]
REAL(r64) :: HeatingCoilSensDemand =0.0d0 ! Sensible demand on Heating Coil [W]
REAL(r64) :: CoolingCoilLatentDemand =0.0d0 ! Latent demand on Cooling Coil [W]
REAL(r64) :: DesignSuppHeatingCapacity =0.0d0 ! Nominal Capacity of Supplemental Heating Coil [W]
REAL(r64) :: DesignFanVolFlowRate =0.0d0 ! Vol Flow through the Furnace being Simulated [m**3/Sec]
LOGICAL :: DesignFanVolFlowRateEMSOverrideOn=.FALSE. ! if true, then EMS is calling to override autosize fan flow
REAL(r64) :: DesignFanVolFlowRateEMSOverrideValue=0.d0 ! EMS value for override of fan flow rate autosize [m3/s]
REAL(r64) :: DesignMassFlowRate =0.0d0 ! Design mass flow rate through furnace [kg/s]
REAL(r64) :: MaxCoolAirVolFlow =0.0d0 ! supply air volumetric flow rate during cooling operation [m3/s]
LOGICAL :: MaxCoolAirVolFlowEMSOverrideOn =.FALSE. !if true, EMS is calling to override autosize flow during cooling
REAL(r64) :: MaxCoolAirVolFlowEMSOverrideValue=0.d0 ! EMS value for override of flow during cooling [m3/s]
REAL(r64) :: MaxHeatAirVolFlow =0.0d0 ! supply air volumetric flow rate during cooling operation [m3/s]
LOGICAL :: MaxHeatAirVolFlowEMSOverrideOn =.FALSE. ! if true, EMS is calling to override autosize flow during heating
REAL(r64) :: MaxHeatAirVolFlowEMSOverrideValue=0.d0 ! EMS value for override of flow during heating operation [m3/s]
REAL(r64) :: MaxNoCoolHeatAirVolFlow =0.0d0 ! supply air volumetric flow rate when no cooling or heating [m3/s]
LOGICAL :: MaxNoCoolHeatAirVolFlowEMSOverrideOn = .FALSE. ! if true, EMS is calling to override autosize no heatcool rate
REAL(r64) :: MaxNoCoolHeatAirVolFlowEMSOverrideValue=0.d0 ! EMS value for override of flow during no heat cool [m3/s]
REAL(r64) :: MaxCoolAirMassFlow =0.0d0 ! supply air mass flow rate during cooling operation [kg/s]
REAL(r64) :: MaxHeatAirMassFlow =0.0d0 ! supply air mass flow rate during heating operation [kg/s]
REAL(r64) :: MaxNoCoolHeatAirMassFlow =0.0d0 ! supply air mass flow rate when no cooling or heating [kg/s]
REAL(r64) :: MaxHeatCoilFluidFlow =0.0d0 ! water or steam mass flow rate for heating coil [kg/s]
REAL(r64) :: MaxSuppCoilFluidFlow =0.0d0 ! water or steam mass flow rate for supplemental heating coil [kg/s]
REAL(r64) :: ControlZoneMassFlowFrac =0.0d0 ! Fraction of furnace flow to control zone
REAL(r64) :: DesignMaxOutletTemp =9999.0d0 ! Maximum supply air temperature from furnace heater [C]
REAL(r64) :: MdotFurnace =0.0d0 ! Mass flow rate through furnace [kg/s]
REAL(r64) :: FanPartLoadRatio =0.0d0 ! Part load ratio of furnace fan (mdot actual/mdot design)
REAL(r64) :: CompPartLoadRatio =0.0d0 ! Part load ratio of furnace compressor (load / steady-state output)
REAL(r64) :: WSHPRuntimeFrac =0.0d0 ! Runtime fraction of water source heat pump
REAL(r64) :: CoolPartLoadRatio =0.0d0 ! Cooling part load ratio
REAL(r64) :: HeatPartLoadRatio =0.0d0 ! Heating part load ratio
REAL(r64) :: MinOATCompressor =0.0d0 ! Minimum outdoor operating temperature for heat pump compressor
REAL(r64) :: MaxOATSuppHeat =0.0d0 ! Maximum outdoor dry-bulb temperature for
INTEGER :: CondenserNodeNum =0 ! Node number of outdoor condenser/compressor
REAL(r64) :: MaxONOFFCyclesperHour =0.0d0 ! Maximum ON/OFF Cycling Rate [cycles/hr]
REAL(r64) :: HPTimeConstant =0.0d0 ! Heat Pump Time Constant [s]
REAL(r64) :: OnCyclePowerFraction =0.0d0 ! Fraction of on-cycle power use [~]
! supplemental heating coil operation
REAL(r64) :: FanDelayTime =0.0d0 ! Fan delay time, time delay for the HP's fan to
! shut off after compressor cycle off [s]
Logical :: Humidistat =.FALSE. ! Humidistat control (heatcool units only and not heatpump)
Logical :: InitHeatPump =.FALSE. ! Heat pump initialization flag (for error reporting)
Integer :: DehumidControlType_Num =0 ! 0 = None, 1=MultiMode, 2=CoolReheat
Integer :: LatentMaxIterIndex =0 ! Index to recurring warning message
Integer :: LatentRegulaFalsiFailedIndex =0 ! Index to recurring warning message
Integer :: LatentRegulaFalsiFailedIndex2 =0 ! Index to recurring warning message
Integer :: SensibleMaxIterIndex =0 ! Index to recurring warning message
Integer :: SensibleRegulaFalsiFailedIndex =0 ! Index to recurring warning message
Integer :: WSHPHeatMaxIterIndex =0 ! Index to recurring warning message
Integer :: WSHPHeatRegulaFalsiFailedIndex =0 ! Index to recurring warning message
Integer :: DXHeatingMaxIterIndex =0 ! Index to recurring warning message
Integer :: DXHeatingRegulaFalsiFailedIndex =0 ! Index to recurring warning messages
Integer :: HeatingMaxIterIndex =0 ! Index to recurring warning message
Integer :: HeatingMaxIterIndex2 =0 ! Index to recurring warning message
Integer :: HeatingRegulaFalsiFailedIndex =0 ! Index to recurring warning messages
REAL(r64) :: ActualFanVolFlowRate =0.0d0 ! Volumetric flow rate from fan object
REAL(r64) :: HeatingSpeedRatio =1.0d0 ! Fan speed ratio in heating mode
REAL(r64) :: CoolingSpeedRatio =1.0d0 ! Fan speed ratio in cooling mode
REAL(r64) :: NoHeatCoolSpeedRatio =1.0d0 ! Fan speed ratio when no cooling or heating
INTEGER :: ZoneInletNode =0 ! Zone inlet node number in the controlled zone
REAL(r64) :: SenLoadLoss =0.0d0 ! Air distribution system sensible loss
REAL(r64) :: LatLoadLoss =0.0d0 ! Air distribution system latent loss
REAL(r64) :: SensibleLoadMet =0.0d0 ! System sensible load
REAL(r64) :: LatentLoadMet =0.0d0 ! System latent load
REAL(r64) :: DehumidInducedHeatingDemandRate =0.0d0 ! Additional heating demand on supplemental heater
! when heat pumps operate on dehumidification mode
INTEGER :: CoilOutletNode = 0 ! outlet node for hot water and steam heating coil
INTEGER :: LoopNum = 0 ! plant loop index for water and steam heating coil
INTEGER :: LoopSide = 0 ! plant loop side index for water and steam heating coil
INTEGER :: BranchNum = 0 ! plant loop branch index for water and steam heating coil
INTEGER :: CompNum = 0 ! plant loop component index for water and steam heating coil
INTEGER :: SuppCoilOutletNode = 0 ! outlet node for hot water and steam supplemental heating coil
INTEGER :: LoopNumSupp = 0 ! plant loop index for water and steam supplemental heating coil
INTEGER :: LoopSideSupp = 0 ! plant loop side index for water and steam supplemental heating coil
INTEGER :: BranchNumSupp = 0 ! plant loop branch index for water and steam supplemental heating coil
INTEGER :: CompNumSupp = 0 ! plant loop component index for water and steam supplemental heating coil
Integer :: HotWaterCoilMaxIterIndex = 0 ! Index to recurring warning message
Integer :: HotWaterCoilMaxIterIndex2 = 0 ! Index to recurring warning message
LOGICAL :: EMSOverrideSensZoneLoadRequest = .FALSE. ! if true, then EMS is calling to override zone load
REAL(r64) :: EMSSensibleZoneLoadValue = 0.0D0 ! Value EMS is directing to use
LOGICAL :: EMSOverrideMoistZoneLoadRequest = .FALSE. ! if true, then EMS is calling to override zone load
REAL(r64) :: EMSMoistureZoneLoadValue = 0.0D0 ! Value EMS is directing to use
! starting added varibles for variable speed water source heat pump, Bo Shen, ORNL, March 2012
INTEGER :: HeatCoolMode = 0 ! System operating mode (0 = floating, 1 = cooling, 2 = heating)
INTEGER :: NumOfSpeedCooling =0 ! The number of speeds for cooling
INTEGER :: NumOfSpeedHeating =0 ! The number of speeds for heating
REAL(r64):: IdleSpeedRatio = 0.0d0 !idle air fan ratio
REAL(r64):: IdleVolumeAirRate = 0.0d0 ! idle air flow rate
REAL(r64):: IdleMassFlowRate = 0.0d0 ! idle air flow rate
REAL(r64):: FanVolFlow = 0.0d0 ! fan volumetric flow rate
LOGICAL :: CheckFanFlow = .TRUE. ! Supply airflow check
REAL(r64):: HeatVolumeFlowRate(MaxSpedLevels) = 0.0d0 ! Supply air volume flow rate during heating operation
REAL(r64):: HeatMassFlowRate(MaxSpedLevels) = 0.0d0 ! Supply air mass flow rate during heating operation
REAL(r64):: CoolVolumeFlowRate(MaxSpedLevels) = 0.0d0 ! Supply air volume flow rate during cooling operation
REAL(r64):: CoolMassFlowRate(MaxSpedLevels) = 0.0d0 ! Supply air mass flow rate during cooling operation
REAL(r64):: MSHeatingSpeedRatio(MaxSpedLevels) = 0.0d0 ! Fan speed ratio in heating mode
REAL(r64):: MSCoolingSpeedRatio(MaxSpedLevels) = 0.0d0 ! Fan speed ratio in cooling mode
INTEGER :: CompSpeedNum=0
REAL(r64) :: CompSpeedRatio=0.0d0
INTEGER :: ErrIndexCyc=0
INTEGER :: ErrIndexVar=0
! end of the additional variables for variable speed water source heat pump
INTEGER :: WaterCyclingMode = 0 ! Heat Pump Coil water flow mode; See definitions in DataHVACGlobals,
! 1=water cycling, 2=water constant, 3=water constant on demand (old mode)
END TYPE FurnaceEquipConditions