Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=MaxNameLength), | public | :: | Name | = | ' ' | ||
character(len=MaxNameLength), | public | :: | TowerType | = | ' ' | ||
integer, | public | :: | TowerType_Num | = | 0 | ||
integer, | public | :: | PerformanceInputMethod_Num | = | 0 | ||
character(len=MaxNameLength), | public | :: | ModelCoeffObjectName | = | ' ' | ||
logical, | public | :: | Available | = | .TRUE. | ||
logical, | public | :: | ON | = | .TRUE. | ||
real(kind=r64), | public | :: | DesignWaterFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | DesignWaterFlowPerUnitNomCap | = | 0.0d0 | ||
real(kind=r64), | public | :: | DesWaterMassFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | DesWaterMassFlowRatePerCell | = | 0.0d0 | ||
real(kind=r64), | public | :: | HighSpeedAirFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | DesignAirFlowPerUnitNomCap | = | 0.0D0 | ||
logical, | public | :: | DefaultedDesignAirFlowScalingFactor | = | .FALSE. | ||
real(kind=r64), | public | :: | HighSpeedFanPower | = | 0.0d0 | ||
real(kind=r64), | public | :: | DesignFanPowerPerUnitNomCap | = | 0.0d0 | ||
logical, | public | :: | UAvaluesCompleted | = | .FALSE. | ||
real(kind=r64), | public | :: | HighSpeedTowerUA | = | 0.0d0 | ||
real(kind=r64), | public | :: | LowSpeedAirFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | LowSpeedAirFlowRateSizingFactor | = | 0.0d0 | ||
real(kind=r64), | public | :: | LowSpeedFanPower | = | 0.0d0 | ||
real(kind=r64), | public | :: | LowSpeedFanPowerSizingFactor | = | 0.0d0 | ||
real(kind=r64), | public | :: | LowSpeedTowerUA | = | 0.0d0 | ||
real(kind=r64), | public | :: | LowSpeedTowerUASizingFactor | = | 0.0d0 | ||
real(kind=r64), | public | :: | FreeConvAirFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | FreeConvAirFlowRateSizingFactor | = | 0.0d0 | ||
real(kind=r64), | public | :: | FreeConvTowerUA | = | 0.0d0 | ||
real(kind=r64), | public | :: | FreeConvTowerUASizingFactor | = | 0.0d0 | ||
real(kind=r64), | public | :: | DesignInletWB | = | 0.0d0 | ||
real(kind=r64), | public | :: | DesignApproach | = | 0.0d0 | ||
real(kind=r64), | public | :: | DesignRange | = | 0.0d0 | ||
real(kind=r64), | public | :: | MinimumVSAirFlowFrac | = | 0.0d0 | ||
real(kind=r64), | public | :: | CalibratedWaterFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | BasinHeaterPowerFTempDiff | = | 0.0d0 | ||
real(kind=r64), | public | :: | BasinHeaterSetPointTemp | = | 0.0d0 | ||
real(kind=r64), | public | :: | MakeupWaterDrift | = | 0.0d0 | ||
real(kind=r64), | public | :: | FreeConvectionCapacityFraction | = | 0.0d0 | ||
real(kind=r64), | public | :: | TowerMassFlowRateMultiplier | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatRejectCapNomCapSizingRatio | = | 1.25d0 | ||
real(kind=r64), | public | :: | TowerNominalCapacity | = | 0.0d0 | ||
real(kind=r64), | public | :: | TowerLowSpeedNomCap | = | 0.0d0 | ||
real(kind=r64), | public | :: | TowerLowSpeedNomCapSizingFactor | = | 0.0d0 | ||
real(kind=r64), | public | :: | TowerFreeConvNomCap | = | 0.0d0 | ||
real(kind=r64), | public | :: | TowerFreeConvNomCapSizingFactor | = | 0.0d0 | ||
real(kind=r64), | public | :: | SizFac | = | 0.0d0 | ||
integer, | public | :: | WaterInletNodeNum | = | 0 | ||
integer, | public | :: | WaterOutletNodeNum | = | 0 | ||
integer, | public | :: | OutdoorAirInletNodeNum | = | 0 | ||
integer, | public | :: | TowerModelType | = | 0 | ||
integer, | public | :: | VSTower | = | 0 | ||
integer, | public | :: | FanPowerfAirFlowCurve | = | 0 | ||
integer, | public | :: | BlowDownSchedulePtr | = | 0 | ||
integer, | public | :: | BasinHeaterSchedulePtr | = | 0 | ||
integer, | public | :: | HighMassFlowErrorCount | = | 0 | ||
integer, | public | :: | HighMassFlowErrorIndex | = | 0 | ||
integer, | public | :: | OutletWaterTempErrorCount | = | 0 | ||
integer, | public | :: | OutletWaterTempErrorIndex | = | 0 | ||
integer, | public | :: | SmallWaterMassFlowErrorCount | = | 0 | ||
integer, | public | :: | SmallWaterMassFlowErrorIndex | = | 0 | ||
integer, | public | :: | WMFRLessThanMinAvailErrCount | = | 0 | ||
integer, | public | :: | WMFRLessThanMinAvailErrIndex | = | 0 | ||
integer, | public | :: | WMFRGreaterThanMaxAvailErrCount | = | 0 | ||
integer, | public | :: | WMFRGreaterThanMaxAvailErrIndex | = | 0 | ||
integer, | public | :: | CoolingTowerAFRRFailedCount | = | 0 | ||
integer, | public | :: | CoolingTowerAFRRFailedIndex | = | 0 | ||
integer, | public | :: | SpeedSelected | = | 0 | ||
integer, | public | :: | CapacityControl | = | 0 | ||
real(kind=r64), | public | :: | BypassFraction | = | 0.0d0 | ||
integer, | public | :: | NumCell | = | 0 | ||
character(len=15), | public | :: | CellCtrl | = | ' ' | ||
integer, | public | :: | CellCtrl_Num | = | 0 | ||
integer, | public | :: | NumCellON | = | 0 | ||
real(kind=r64), | public | :: | MinFracFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | MaxFracFlowRate | = | 0.0d0 | ||
integer, | public | :: | EvapLossMode | = | EvapLossByMoistTheory | ||
real(kind=r64), | public | :: | UserEvapLossFactor | = | 0.0d0 | ||
real(kind=r64), | public | :: | DriftLossFraction | = | 0.0d0 | ||
integer, | public | :: | BlowdownMode | = | BlowdownByConcentration | ||
real(kind=r64), | public | :: | ConcentrationRatio | = | 0.0d0 | ||
integer, | public | :: | SchedIDBlowdown | = | 0 | ||
logical, | public | :: | SuppliedByWaterSystem | = | .false. | ||
integer, | public | :: | WaterTankID | = | 0 | ||
integer, | public | :: | WaterTankDemandARRID | = | 0 | ||
integer, | public | :: | LoopNum | = | 0 | ||
integer, | public | :: | LoopSideNum | = | 0 | ||
integer, | public | :: | BranchNum | = | 0 | ||
integer, | public | :: | CompNum | = | 0 | ||
integer, | public | :: | UAModFuncAirFlowRatioCurvePtr | = | 0 | ||
integer, | public | :: | UAModFuncWetbulbDiffCurvePtr | = | 0 | ||
integer, | public | :: | UAModFuncWaterFlowRatioCurvePtr | = | 0 | ||
logical, | public | :: | SetpointIsOnOutlet | = | .FALSE. | ||
integer, | public | :: | VSMerkelAFRErrorIter | = | 0 | ||
integer, | public | :: | VSMerkelAFRErrorFail | = | 0 |
TYPE Towerspecs
CHARACTER(len=MaxNameLength) :: Name = ' ' ! User identifier
CHARACTER(len=MaxNameLength) :: TowerType = ' ' ! Type of cooling tower
INTEGER :: TowerType_Num = 0
INTEGER :: PerformanceInputMethod_Num = 0 ! Method of entering tower performance: UA and Design Water
! Flow Rate, or Nominal Capacity
CHARACTER(len=MaxNameLength):: ModelCoeffObjectName = ' ' ! Cooling Tower:Variable Speed Model Coefficient Object name
LOGICAL :: Available = .TRUE. ! need an array of logicals--load identifiers of available equipment
LOGICAL :: ON = .TRUE. ! Simulate the machine at it's operating part load ratio
REAL(r64) :: DesignWaterFlowRate = 0.0d0 ! Design water flow rate through the tower [m3/s]
REAL(r64) :: DesignWaterFlowPerUnitNomCap = 0.0d0 ! scalable sizing factor for water flow per capacity [m3/s/W]
REAL(r64) :: DesWaterMassFlowRate = 0.0d0 ! Design water flow rate through the entire tower [kg/s]
REAL(r64) :: DesWaterMassFlowRatePerCell = 0.0d0 ! Design water flow rate per cell [Kg/s]
REAL(r64) :: HighSpeedAirFlowRate = 0.0d0 ! Air flow rate through tower at high speed [m3/s]
REAL(r64) :: DesignAirFlowPerUnitNomCap = 0.0D0 ! scalable sizing factor for air flow per capacity [m3/s/W]
LOGICAL :: DefaultedDesignAirFlowScalingFactor = .FALSE. ! true if user left input field blank for DesignAirFlowPerUnitNomCap
REAL(r64) :: HighSpeedFanPower = 0.0d0 ! Fan power at high fan speed [W]
REAL(r64) :: DesignFanPowerPerUnitNomCap = 0.0d0 ! scalable sizing factor for fan power per capacity [W/W]
LOGICAL :: UAvaluesCompleted = .FALSE.
REAL(r64) :: HighSpeedTowerUA = 0.0d0 ! UA of tower at high fan speed [W/C]
REAL(r64) :: LowSpeedAirFlowRate = 0.0d0 ! Air flow rate through tower at low speed [m3/s]
REAL(r64) :: LowSpeedAirFlowRateSizingFactor = 0.0d0 ! sizing factor for low speed flow rate [ ]
REAL(r64) :: LowSpeedFanPower = 0.0d0 ! Fan power at low fan speed [W]
REAL(r64) :: LowSpeedFanPowerSizingFactor = 0.0d0 ! sizing factor for low speed fan power []
REAL(r64) :: LowSpeedTowerUA = 0.0d0 ! UA of tower at low fan speed [W/C]
REAL(r64) :: LowSpeedTowerUASizingFactor = 0.0d0 ! sizing factor for UA at low fan speed []
REAL(r64) :: FreeConvAirFlowRate = 0.0d0 ! Air flow rate through tower with fan off [m3/s]
REAL(r64) :: FreeConvAirFlowRateSizingFactor = 0.0d0 ! sizing factor for air flow at free conv []
REAL(r64) :: FreeConvTowerUA = 0.0d0 ! UA of tower with fan off [W/C]
REAL(r64) :: FreeConvTowerUASizingFactor = 0.0d0 ! sizing factor for UA at fre convection []
REAL(r64) :: DesignInletWB = 0.0d0 ! Design inlet air wet-bulb temperature (C)
REAL(r64) :: DesignApproach = 0.0d0 ! Design approach (outlet water temp minus inlet air wet-bulb temp (C)
REAL(r64) :: DesignRange = 0.0d0 ! Design range temperature (inlet water temp minus outlet water temp (C)
REAL(r64) :: MinimumVSAirFlowFrac = 0.0d0 ! Min air flow ratio (used for VS tower only, point where free conv occurs)
REAL(r64) :: CalibratedWaterFlowRate = 0.0d0 ! Water flow ratio required for model calibration
REAL(r64) :: BasinHeaterPowerFTempDiff = 0.0d0 ! Basin heater capacity per degree C below setpoint (W/C)
REAL(r64) :: BasinHeaterSetPointTemp = 0.0d0 ! setpoint temperature for basin heater operation (C)
REAL(r64) :: MakeupWaterDrift = 0.0d0 ! Makeup water flow rate fraction due to drift
REAL(r64) :: FreeConvectionCapacityFraction = 0.0d0 ! Percentage of tower capacity in free convection regime
REAL(r64) :: TowerMassFlowRateMultiplier = 0.0d0 ! Maximum tower flow rate is this multiplier times design flow rate
REAL(r64) :: HeatRejectCapNomCapSizingRatio = 1.25d0 ! ratio of actual cap to nominal capacity []
REAL(r64) :: TowerNominalCapacity = 0.0d0 ! Nominal capacity of the tower [W] with entering water at 35C (95F),
! leaving water at 29.44C (85F), entering air at 25.56C (78F) wet-bulb
! temp and 35C (95F) dry-bulb temp, and water flow
! rate of 5.382E-8 m3/s per watt (3 gpm/ton)
REAL(r64) :: TowerLowSpeedNomCap = 0.0d0 ! Nominal capacity of the tower [W] with entering water at 35C (95F),
! leaving water at 29.44C (85F), entering air at 25.56C (78F) wet-bulb
! temp and 35C (95F) dry-bulb temp, and water flow
! rate of 5.382E-8 m3/s per nominal capacity watt (3 gpm/ton)
REAL(r64) :: TowerLowSpeedNomCapSizingFactor = 0.0d0 ! sizing factor for low speed capacity []
REAL(r64) :: TowerFreeConvNomCap = 0.0d0 ! Nominal capacity of the tower [W] with entering water at 35C (95F),
! leaving water at 29.44C (85F), entering air at 25.56C (78F) wet-bulb
! temp and 35C (95F) dry-bulb temp, and water flow
! rate of 5.382E-8 m3/s per nominal capacity watt (3 gpm/ton)
REAL(r64) :: TowerFreeConvNomCapSizingFactor = 0.0d0 ! sizing factor for free conv capacity []
REAL(r64) :: SizFac = 0.0d0 ! sizing factor
INTEGER :: WaterInletNodeNum = 0 ! Node number on the water inlet side of the tower
INTEGER :: WaterOutletNodeNum = 0 ! Node number on the water outlet side of the tower
INTEGER :: OutdoorAirInletNodeNum = 0 ! Node number of outdoor air inlet for the tower
INTEGER :: TowerModelType = 0 ! Type of empirical model (1=CoolTools)
INTEGER :: VSTower = 0 ! Index to a variable speed tower (otherwise = 0)
INTEGER :: FanPowerfAirFlowCurve = 0 ! Index to fan power correlation curve for VS Towers
INTEGER :: BlowDownSchedulePtr = 0 ! Pointer to blow down schedule
INTEGER :: BasinHeaterSchedulePtr = 0 ! Pointer to basin heater schedule
INTEGER :: HighMassFlowErrorCount = 0 ! Counter when mass flow rate is > Design*TowerMassFlowRateMultiplier
INTEGER :: HighMassFlowErrorIndex = 0 ! Index for high mass flow recurring error message
INTEGER :: OutletWaterTempErrorCount = 0 ! Counter when outlet water temperature is < minimum allowed temperature
INTEGER :: OutletWaterTempErrorIndex = 0 ! Index for outlet water temperature recurring error message
INTEGER :: SmallWaterMassFlowErrorCount = 0 ! Counter when water mass flow rate is very small
INTEGER :: SmallWaterMassFlowErrorIndex = 0 ! Index for very small water mass flow rate recurring error message
INTEGER :: WMFRLessThanMinAvailErrCount = 0 ! Counter when water mass flow rate is less than minimum available
INTEGER :: WMFRLessThanMinAvailErrIndex = 0 ! Index for water mass flow rate less than minavail recurring message
INTEGER :: WMFRGreaterThanMaxAvailErrCount = 0 ! Counter when water mass flow rate is greater than minimum available
INTEGER :: WMFRGreaterThanMaxAvailErrIndex = 0 ! Index for water mass flow rate > minavail recurring message
INTEGER :: CoolingTowerAFRRFailedCount = 0 ! Counter for air flow rate ratio out of bounds error
INTEGER :: CoolingTowerAFRRFailedIndex = 0 ! Index for air flow rate ratio out of bounds error
INTEGER :: SpeedSelected = 0 ! speed of the two-speed fan selected (0:ON;1:LOW;2:HIGH)
!fluid bypass
INTEGER :: CapacityControl = 0 ! Type of capacity control for single speed cooling tower:
! 0 - FanCycling, 1 - FluidBypass
REAL(r64) :: BypassFraction = 0.0d0 ! Fraction of fluid bypass as a ratio of total fluid flow
! through the tower sump
!multi cell tower
INTEGER :: NumCell = 0 ! Number of cells in the cooling tower
CHARACTER(len=15) :: CellCtrl = ' ' ! Cell control type : either MaxCell or MinCell
INTEGER :: CellCtrl_Num = 0
INTEGER :: NumCellON = 0 ! number of cells working
REAL(r64) :: MinFracFlowRate = 0.0d0 ! Minimal fraction of design flow/cell allowable
REAL(r64) :: MaxFracFlowRate = 0.0d0 ! Maximal ratio of design flow/cell allowable
!begin water system interactions
INTEGER :: EvapLossMode = EvapLossByMoistTheory ! sets how tower water evaporation is modeled
REAL(r64) :: UserEvapLossFactor = 0.0d0 ! simple model [%/Delt C]
REAL(r64) :: DriftLossFraction = 0.0d0
INTEGER :: BlowdownMode = BlowdownByConcentration ! sets how tower water blowdown is modeled
REAL(r64) :: ConcentrationRatio = 0.0d0 ! ratio of solids in blowdown vs make up water
INTEGER :: SchedIDBlowdown = 0 ! index "pointer" to schedule of blowdown in [m3/s]
Logical :: SuppliedByWaterSystem = .false.
INTEGER :: WaterTankID = 0 ! index "pointer" to WaterStorage structure
INTEGER :: WaterTankDemandARRID = 0 ! index "pointer" to demand array inside WaterStorage structure
!end water system variables
!loop topology variables
INTEGER :: LoopNum = 0
INTEGER :: LoopSideNum = 0
INTEGER :: BranchNum = 0
INTEGER :: CompNum = 0
!Merkel VS model curves
INTEGER :: UAModFuncAirFlowRatioCurvePtr = 0 ! curve index for UA modifier as a function of air flow ratio
INTEGER :: UAModFuncWetbulbDiffCurvePtr = 0 ! curve index for UA modifier as a function of local wetbulb
INTEGER :: UAModFuncWaterFlowRatioCurvePtr = 0 ! curve index for UA modifier as a function of water flow ratio
LOGICAL :: SetpointIsOnOutlet = .FALSE. ! if true look to outlet node of tower, if flase look to overall loop setpoint
INTEGER :: VSMerkelAFRErrorIter = 0 ! error counter for regula falsi failed with max iterations, vs merkel model
INTEGER :: VSMerkelAFRErrorFail = 0 ! error counter for regula falsi failed with limits exceeded, vs merkel model
END TYPE Towerspecs