TYPE VRFCondenserEquipment
CHARACTER(len=MaxNameLength) :: Name =' ' ! Name of the VRF Terminal Unit
INTEGER :: VRFSystemTypeNum =0 ! integer equivalent of system type
INTEGER :: VRFPlantTypeOfNum =0 ! integer equivalent of index to DataPlant type
INTEGER :: SourceLoopNum =0 ! plant data for water-coole only
INTEGER :: SourceLoopSideNum =0 ! plant data for water-coole only
INTEGER :: SourceBranchNum =0 ! plant data for water-coole only
INTEGER :: SourceCompNum =0 ! plant data for water-coole only
REAL(r64) :: WaterCondenserDesignMassFlow =0.0d0 ! plant data for water-coole only
REAL(r64) :: WaterCondenserMassFlow =0.0d0 ! Water condenser flow rate (kg/s)
REAL(r64) :: QCondenser =0.0d0 ! Water condenser heat rejection/absorption (W)
REAL(r64) :: QCondEnergy =0.0d0 ! Water condenser heat rejection/aborption energy (J)
REAL(r64) :: CondenserSideOutletTemp =0.0d0 ! Water condenser outlet temp (C)
INTEGER :: SchedPtr =-1 ! Pointer to the correct schedule
REAL(r64) :: CoolingCapacity =0.0d0 ! Nominal VRF heat pump cooling capacity (W)
REAL(r64) :: TotalCoolingCapacity =0.0d0 ! Nominal VRF heat pump cooling capacity (W)
REAL(r64) :: CoolingCombinationRatio =1.d0 ! Ratio or terminal unit cooling capacity to VRF condenser capacity
REAL(r64) :: VRFCondPLR =0.0d0 ! Condenser part-load ratio wrt total capacity
REAL(r64) :: VRFCondRTF =0.0d0 ! Condenser runtime fraction
REAL(r64) :: VRFCondCyclingRatio =0.0d0 ! Condenser cycling ratio below MinPLR
REAL(r64) :: CondenserInletTemp =0.0d0 ! Condenser entering air temperature (C)
REAL(r64) :: CoolingCOP =0.0d0 ! Nominal VRF heat pump cooling COP (W/W)
REAL(r64) :: OperatingCoolingCOP =0.0d0 ! Operating VRF heat pump cooling COP (W/W)
REAL(r64) :: RatedCoolingPower =0.0d0 ! Rated cooling power = Rated Cooling Capacity / Rated COP (W)
REAL(r64) :: HeatingCapacity =0.0d0 ! Nominal VRF heat pump heating capacity (W)
REAL(r64) :: HeatingCapacitySizeRatio =1.d0 ! Ratio of heating to cooling when autosizing
LOGICAL :: LockHeatingCapacity =.FALSE. ! used in sizing to size VRF heat cap to VRF cool cap
REAL(r64) :: TotalHeatingCapacity =0.0d0 ! Nominal VRF heat pump heating capacity (W)
REAL(r64) :: HeatingCombinationRatio =1.d0 ! Ratio or terminal unit heating capacity to VRF condenser capacity
REAL(r64) :: HeatingCOP =0.0d0 ! Nominal VRF heat pump heating COP
REAL(r64) :: OperatingHeatingCOP =0.0d0 ! Operating VRF heat pump heating COP
REAL(r64) :: RatedHeatingPower =0.0d0 ! Rated heating power = Rated Heating Capacity / Rated COP (W)
REAL(r64) :: MinOATCooling =0.0d0 ! Minimum outdoor air dry-bulb temp in cooling mode (C)
REAL(r64) :: MaxOATCooling =0.0d0 ! Maximum outdoor air dry-bulb temp in cooling mode (C)
REAL(r64) :: MinOATHeating =0.0d0 ! Minimum outdoor air dry-bulb temp in heating mode (C)
REAL(r64) :: MaxOATHeating =0.0d0 ! Maximum outdoor air dry-bulb temp in heating mode (C)
INTEGER :: CoolCapFT =0 ! index to cooling capacity function of temperature curve
INTEGER :: CoolEIRFT =0 ! index to cooling EIR function of temperature curve
INTEGER :: HeatCapFT =0 ! index to heating capacity function of temperature curve
INTEGER :: HeatEIRFT =0 ! index to heating EIR function of temperature curve
INTEGER :: CoolBoundaryCurvePtr =0 ! index to cooling capacity boundary curve
INTEGER :: HeatBoundaryCurvePtr =0 ! index to cooling capacity boundary curve
INTEGER :: EIRCoolBoundaryCurvePtr =0 ! index to cooling EIR boundary curve
INTEGER :: CoolEIRFPLR1 =0 ! index to cooling EIR function of PLR curve < 1
INTEGER :: CoolEIRFPLR2 =0 ! index to cooling EIR function of PLR curve >= 1
INTEGER :: CoolCapFTHi =0 ! index to cooling capacity function of temperature curve
INTEGER :: CoolEIRFTHi =0 ! index to cooling EIR function of temperature curve
INTEGER :: HeatCapFTHi =0 ! index to heating capacity function of temperature curve
INTEGER :: HeatEIRFTHi =0 ! index to heating EIR function of temperature curve
INTEGER :: EIRHeatBoundaryCurvePtr =0 ! index to heating EIR boundary curve
INTEGER :: HeatEIRFPLR1 =0 ! index to heating EIR function of PLR curve < 1
INTEGER :: HeatEIRFPLR2 =0 ! index to heating EIR function of PLR curve >= 1
INTEGER :: CoolPLFFPLR =0 ! index to cooling PLF function of PLR curve
INTEGER :: HeatPLFFPLR =0 ! index to heating PLF function of PLR curve
INTEGER :: HeatingPerformanceOATType =0 ! Temperature type for heating performance curves
REAL(r64) :: MinPLR =0.0d0 ! minimum PLR before cycling occurs
INTEGER :: MasterZonePtr =0 ! index to master thermostat zone
INTEGER :: MasterZoneTUIndex =0 ! index to TU in master thermostat zone
INTEGER :: ThermostatPriority =0 ! VRF priority control (1=LoadPriority, 2=ZonePriority, etc)
INTEGER :: SchedPriorityPtr =0 ! VRF priority control schedule pointer
INTEGER :: ZoneTUListPtr =0 ! index to zone terminal unit list
LOGICAL :: HeatRecoveryUsed =.FALSE. ! .TRUE. = heat recovery used
REAL(r64) :: VertPipeLngth =0.0d0 ! vertical piping length (m)
INTEGER :: PCFLengthCoolPtr =0 ! piping correction factor for length in cooling mode curve index
INTEGER :: PCFLengthCoolPtrType =0 ! PCF for length curve type
REAL(r64) :: PCFHeightCool =0.0d0 ! piping correction factor for height in cooling mode
REAL(r64) :: EquivPipeLngthCool =0.0d0 ! equivalent piping length for cooling
REAL(r64) :: PipingCorrectionCooling =1.d0 ! piping correction factor for cooling
INTEGER :: PCFLengthHeatPtr =0 ! piping correction factor for length in heating mode curve index
INTEGER :: PCFLengthHeatPtrType =0 ! PCF for length curve type
REAL(r64) :: PCFHeightHeat =0.0d0 ! piping correction factor for height in heating mode
REAL(r64) :: EquivPipeLngthHeat =0.0d0 ! equivalent piping length for heating
REAL(r64) :: PipingCorrectionHeating =1.d0 ! piping correction factor for heating
REAL(r64) :: CCHeaterPower =0.0d0 ! crankcase heater power per compressor (W)
REAL(r64) :: CompressorSizeRatio =0.0d0 ! ratio of min compressor size to total capacity
INTEGER :: NumCompressors =0 ! number of compressors in VRF condenser
REAL(r64) :: MaxOATCCHeater =0.0d0 ! maximum outdoor air dry-bulb temp for crankcase heater operation (C)
INTEGER :: DefrostEIRPtr =0 ! index to defrost EIR curve
REAL(r64) :: DefrostFraction =0.0d0 ! defrost time period fraction (hr)
INTEGER :: DefrostStrategy =0 ! Type of defrost (reversecycle or resistive)
INTEGER :: DefrostControl =0 ! type of defrost control (timed or ondemand)
REAL(r64) :: DefrostCapacity =0.0d0 ! capacity of resistive defrost heating element (W)
REAL(r64) :: DefrostPower =0.0d0 ! power used during defrost (W)
REAL(r64) :: DefrostConsumption =0.0d0 ! energy used during defrost (J)
REAL(r64) :: MaxOATDefrost =0.0d0 ! maximum outdoor air dry-bulb temp for defrost operation (C)
INTEGER :: CondenserType =0 ! condenser type, evap- or air-cooled
INTEGER :: CondenserNodeNum =0 ! condenser inlet node number
LOGICAL :: SkipCondenserNodeNumCheck =.FALSE. ! used to check for duplicate node names
INTEGER :: CondenserOutletNodeNum =0 ! condenser outlet node number
REAL(r64) :: WaterCondVolFlowRate =0.0d0 ! water condenser volume flow rate (m3/s)
REAL(r64) :: EvapCondEffectiveness =0.0d0 ! evaporative condenser effectiveness
REAL(r64) :: EvapCondAirVolFlowRate =0.0d0 ! air volume flow rate through condenser (m3/s)
REAL(r64) :: EvapCondPumpPower =0.0d0 ! evaporative condenser water pump power (W)
INTEGER :: CoolCombRatioPTR = 0 ! index to cooling combination ratio curve pointer
INTEGER :: HeatCombRatioPTR = 0 ! index to heating combination ratio curve pointer
INTEGER :: OperatingMode = 0 ! VRF Condenser operating mode, 0=off, 1=cooling, 2=heating, 3=HR
REAL(r64) :: ElecPower =0.0d0 ! VRF Condenser power (W)
REAL(r64) :: ElecCoolingPower =0.0d0 ! VRF Condenser power in cooling mode (W)
REAL(r64) :: ElecHeatingPower =0.0d0 ! VRF Condenser power in heating mode (W)
REAL(r64) :: CoolElecConsumption =0.0d0 ! VRF Condenser cooling energy (J)
REAL(r64) :: HeatElecConsumption =0.0d0 ! VRF Condenser heating energy (J)
REAL(r64) :: CrankCaseHeaterPower =0.0d0 ! VRF Condenser crankcase heater power (W)
REAL(r64) :: CrankCaseHeaterElecConsumption =0.0d0 ! VRF Condenser crankcase heater energy (J)
REAL(r64) :: EvapCondPumpElecPower =0.0d0 ! VRF Condenser evaporatively cooled condenser pump power (W)
REAL(r64) :: EvapCondPumpElecConsumption=0.0d0 ! VRF Condenser evaporatively cooled condenser pump elec consumption (J)
REAL(R64) :: EvapWaterConsumpRate =0.0d0 ! VRF Condenser evaporatively cooled condenser water consumption (m3/s)
INTEGER :: HRMaxTempLimitIndex =0 ! Warning message recurring error index
INTEGER :: CoolingMaxTempLimitIndex =0 ! Warning message recurring error index
INTEGER :: HeatingMaxTempLimitIndex =0 ! Warning message recurring error index
INTEGER :: FuelType =0 ! Fuel type
REAL(r64) :: SUMultiplier =0.0d0 ! exponential timer for mode changes
REAL(r64) :: TUCoolingLoad =0.0d0 ! total TU cooling load for each VRF system
REAL(r64) :: TUHeatingLoad =0.0d0 ! total TU heating load for each VRF system
LOGICAL :: SwitchedMode = .FALSE. ! used to derate capacity/power when system changes operating mode
! begin variables used for heat recovery mode
REAL(r64) :: OperatingCOP =0.0d0 ! Operating VRF heat pump COP (total TU capacity/total power)
REAL(r64) :: MinOATHeatRecovery =0.0d0 ! Minimum outdoor air temperature for heat recovery operation (C)
REAL(r64) :: MaxOATHeatRecovery =0.0d0 ! Maximum outdoor air temperature for heat recovery operation (C)
INTEGER :: HRCAPFTCool =0 ! Index to cool capacity as a function of temperature curve for heat recovery
REAL(r64) :: HRCAPFTCoolConst =0.9d0 ! constant used if curve is blank
INTEGER :: HRCAPFTCoolType =0 ! Curve type for HRCAPFTCool
REAL(r64) :: HRInitialCoolCapFrac =0.5d0 ! Fractional cooling degradation at the start of heat recovery from cooling mode
REAL(r64) :: HRCoolCapTC =0.15d0 ! Time constant used to recover from intial degratation in cooling heat recovery
INTEGER :: HREIRFTCool =0 ! Index to cool EIR as a function of temperature curve for heat recovery
REAL(r64) :: HREIRFTCoolConst =1.1d0 ! constant used if curve is blank
INTEGER :: HREIRFTCoolType =0 ! Curve type for HREIRFTCool
REAL(r64) :: HRInitialCoolEIRFrac =1.d0 ! Fractional EIR degradation at the start of heat recovery from cooling mode
REAL(r64) :: HRCoolEIRTC =0.d0 ! Time constant used to recover from intial degratation in cooling heat recovery
INTEGER :: HRCAPFTHeat =0 ! Index to heat capacity as a function of temperature curve for heat recovery
REAL(r64) :: HRCAPFTHeatConst =1.1d0 ! constant used if curve is blank
INTEGER :: HRCAPFTHeatType =0 ! Curve type for HRCAPFTHeat
REAL(r64) :: HRInitialHeatCapFrac =1.d0 ! Fractional heating degradation at the start of heat recovery from heating mode
REAL(r64) :: HRHeatCapTC =0.d0 ! Time constant used to recover from intial degratation in heating heat recovery
INTEGER :: HREIRFTHeat =0 ! Index to heat EIR as a function of temperature curve for heat recovery
REAL(r64) :: HREIRFTHeatConst =1.1d0 ! constant used if curve is blank
INTEGER :: HREIRFTHeatType =0 ! Curve type for HREIRFTHeat
REAL(r64) :: HRInitialHeatEIRFrac =1.d0 ! Fractional EIR degradation at the start of heat recovery from heating mode
REAL(r64) :: HRHeatEIRTC =0.d0 ! Time constant used to recover from intial degratation in heating heat recovery
LOGICAL :: HRCoolingActive =.FALSE. ! heat recovery mode active in cooling mode
LOGICAL :: HRHeatingActive =.FALSE. ! heat recovery mode active in heating mode
LOGICAL :: ModeChange =.FALSE. ! tracks changes in operating mode
LOGICAL :: HRModeChange =.FALSE. ! tracks changes in heat recovery operating mode
REAL(r64) :: HRTimer =0.d0 ! timer used to model changes in system performance as mode changes
REAL(r64) :: HRTime =0.d0 ! length of time system has been in same mode (hr)
INTEGER :: EIRFTempCoolErrorIndex =0 ! warning message index for recurring warnings
INTEGER :: EIRFTempHeatErrorIndex =0 ! warning message index for recurring warnings
INTEGER :: DefrostHeatErrorIndex =0 ! warning message index for recurring warnings
! end variables used for heat recovery mode
! begin variables for Water System interactions
INTEGER ::EvapWaterSupplyMode = WaterSupplyFromMains ! where does water come from
CHARACTER(len=MaxNameLength) :: EvapWaterSupplyName = ' ' ! name of water source e.g. water storage tank
INTEGER ::EvapWaterSupTankID = 0 !
INTEGER ::EvapWaterTankDemandARRID = 0 !
CHARACTER(len=MaxNameLength) :: CondensateCollectName = ' ' ! name of water source e.g. water storage tank
INTEGER ::CondensateTankID = 0 !
INTEGER ::CondensateTankSupplyARRID = 0 !
REAL(r64) :: CondensateVdot = 0.0d0 ! rate of water condensation from air stream [m3/s]
REAL(r64) :: CondensateVol = 0.0d0 ! amount of water condensed from air stream [m3]
!end variables for water system interactions
! begin variables for Basin Heater interactions
REAL(r64) :: BasinHeaterPowerFTempDiff = 0.d0 ! Basin heater capacity per degree C below setpoint (W/C)
REAL(r64) :: BasinHeaterSetPointTemp = 0.d0 ! setpoint temperature for basin heater operation (C)
REAL(r64) :: BasinHeaterPower = 0.d0 ! Basin heater power (W)
REAL(r64) :: BasinHeaterConsumption = 0.d0 ! Basin heater energy consumption (J)
INTEGER :: BasinHeaterSchedulePtr = 0 ! Pointer to basin heater schedule
!end variables for Basin Heater interactions
Logical :: EMSOverrideHPOperatingMode = .FALSE.
REAL(r64) :: EMSValueForHPOperatingMode = 0.d0 !
INTEGER :: HPOperatingModeErrorIndex = 0
END TYPE VRFCondenserEquipment