Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=MaxNameLength), | public | :: | Name | = | ' ' | ||
real(kind=r64), | public | :: | RefElecPowerOutput | = | 0.0d0 | ||
real(kind=r64), | public | :: | MinElecPowerOutput | = | 0.0d0 | ||
real(kind=r64), | public | :: | MaxElecPowerOutput | = | 0.0d0 | ||
real(kind=r64), | public | :: | RefThermalPowerOutput | = | 0.0d0 | ||
real(kind=r64), | public | :: | MinThermalPowerOutput | = | 0.0d0 | ||
real(kind=r64), | public | :: | MaxThermalPowerOutput | = | 0.0d0 | ||
real(kind=r64), | public | :: | RefElecEfficiencyLHV | = | 0.0d0 | ||
real(kind=r64), | public | :: | RefCombustAirInletTemp | = | 0.0d0 | ||
real(kind=r64), | public | :: | RefCombustAirInletHumRat | = | 0.0d0 | ||
real(kind=r64), | public | :: | RefElevation | = | 0.0d0 | ||
integer, | public | :: | ElecPowFTempElevCurveNum | = | 0 | ||
integer, | public | :: | ElecEffFTempCurveNum | = | 0 | ||
integer, | public | :: | ElecEffFPLRCurveNum | = | 0 | ||
real(kind=r64), | public | :: | FuelHigherHeatingValue | = | 0.0d0 | ||
real(kind=r64), | public | :: | FuelLowerHeatingValue | = | 0.0d0 | ||
real(kind=r64), | public | :: | StandbyPower | = | 0.0d0 | ||
real(kind=r64), | public | :: | AncillaryPower | = | 0.0d0 | ||
integer, | public | :: | AncillaryPowerFuelCurveNum | = | 0 | ||
integer, | public | :: | HeatRecInletNodeNum | = | 0 | ||
integer, | public | :: | HeatRecOutletNodeNum | = | 0 | ||
real(kind=r64), | public | :: | RefThermalEffLHV | = | 0.0d0 | ||
real(kind=r64), | public | :: | RefInletWaterTemp | = | 0.0d0 | ||
logical, | public | :: | InternalFlowControl | = | .FALSE. | ||
logical, | public | :: | PlantFlowControl | = | .TRUE. | ||
real(kind=r64), | public | :: | RefHeatRecVolFlowRate | = | 0.0d0 | ||
integer, | public | :: | HeatRecFlowFTempPowCurveNum | = | 0 | ||
integer, | public | :: | ThermEffFTempElevCurveNum | = | 0 | ||
integer, | public | :: | HeatRecRateFPLRCurveNum | = | 0 | ||
integer, | public | :: | HeatRecRateFTempCurveNum | = | 0 | ||
integer, | public | :: | HeatRecRateFWaterFlowCurveNum | = | 0 | ||
real(kind=r64), | public | :: | HeatRecMinVolFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatRecMaxVolFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatRecMaxWaterTemp | = | 0.0d0 | ||
integer, | public | :: | CombustionAirInletNodeNum | = | 0 | ||
integer, | public | :: | CombustionAirOutletNodeNum | = | 0 | ||
logical, | public | :: | ExhAirCalcsActive | = | .FALSE. | ||
real(kind=r64), | public | :: | RefExhaustAirMassFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | ExhaustAirMassFlowRate | = | 0.0d0 | ||
integer, | public | :: | ExhFlowFTempCurveNum | = | 0 | ||
integer, | public | :: | ExhFlowFPLRCurveNum | = | 0 | ||
real(kind=r64), | public | :: | NomExhAirOutletTemp | = | 0.0d0 | ||
integer, | public | :: | ExhAirTempFTempCurveNum | = | 0 | ||
integer, | public | :: | ExhAirTempFPLRCurveNum | = | 0 | ||
real(kind=r64), | public | :: | ExhaustAirTemperature | = | 0.0d0 | ||
real(kind=r64), | public | :: | ExhaustAirHumRat | = | 0.0d0 | ||
integer, | public | :: | CompType_Num | = | iGeneratorMicroturbine | ||
real(kind=r64), | public | :: | RefCombustAirInletDensity | = | 0.0d0 | ||
real(kind=r64), | public | :: | MinPartLoadRat | = | 0.0d0 | ||
real(kind=r64), | public | :: | MaxPartLoadRat | = | 0.0d0 | ||
real(kind=r64), | public | :: | FuelEnergyUseRateHHV | = | 0.0d0 | ||
real(kind=r64), | public | :: | FuelEnergyUseRateLHV | = | 0.0d0 | ||
real(kind=r64), | public | :: | QHeatRecovered | = | 0.0d0 | ||
real(kind=r64), | public | :: | ExhaustEnergyRec | = | 0.0d0 | ||
real(kind=r64), | public | :: | DesignHeatRecMassFlowRate | = | 0.0d0 | ||
logical, | public | :: | HeatRecActive | = | .FALSE. | ||
real(kind=r64), | public | :: | HeatRecInletTemp | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatRecOutletTemp | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatRecMinMassFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatRecMaxMassFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatRecMdot | = | 0.0d0 | ||
integer, | public | :: | HRLoopNum | = | 0 | ||
integer, | public | :: | HRLoopSideNum | = | 0 | ||
integer, | public | :: | HRBranchNum | = | 0 | ||
integer, | public | :: | HRCompNum | = | 0 | ||
real(kind=r64), | public | :: | FuelMdot | = | 0.0d0 | ||
real(kind=r64), | public | :: | ElecPowerGenerated | = | 0.0d0 | ||
real(kind=r64), | public | :: | StandbyPowerRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | AncillaryPowerRate | = | 0.0d0 | ||
integer, | public | :: | PowerFTempElevErrorIndex | = | 0 | ||
integer, | public | :: | EffFTempErrorIndex | = | 0 | ||
integer, | public | :: | EffFPLRErrorIndex | = | 0 | ||
integer, | public | :: | ExhFlowFTempErrorIndex | = | 0 | ||
integer, | public | :: | ExhFlowFPLRErrorIndex | = | 0 | ||
integer, | public | :: | ExhTempFTempErrorIndex | = | 0 | ||
integer, | public | :: | ExhTempFPLRErrorIndex | = | 0 | ||
integer, | public | :: | HRMinFlowErrorIndex | = | 0 | ||
integer, | public | :: | HRMaxFlowErrorIndex | = | 0 | ||
integer, | public | :: | ExhTempLTInletTempIndex | = | 0 | ||
integer, | public | :: | ExhHRLTInletHRIndex | = | 0 | ||
integer, | public | :: | AnciPowerIterErrorIndex | = | 0 | ||
integer, | public | :: | AnciPowerFMdotFuelErrorIndex | = | 0 | ||
integer, | public | :: | HeatRecRateFPLRErrorIndex | = | 0 | ||
integer, | public | :: | HeatRecRateFTempErrorIndex | = | 0 | ||
integer, | public | :: | HeatRecRateFFlowErrorIndex | = | 0 | ||
integer, | public | :: | ThermEffFTempElevErrorIndex | = | 0 |
TYPE MTGeneratorSpecs
! User inputs
CHARACTER(len=MaxNameLength) :: Name = ' ' ! User identifier (name)
REAL(r64) :: RefElecPowerOutput = 0.0d0 ! Reference Electrical Power Output from generator (W)
REAL(r64) :: MinElecPowerOutput = 0.0d0 ! Minimum Electrical Power Output (W)
REAL(r64) :: MaxElecPowerOutput = 0.0d0 ! Maximum Electrical Power Output (W)
REAL(r64) :: RefThermalPowerOutput = 0.0d0 ! Reference Electrical Power Output from generator (W)
REAL(r64) :: MinThermalPowerOutput = 0.0d0 ! Minimum Electrical Power Output (W)
REAL(r64) :: MaxThermalPowerOutput = 0.0d0 ! Maximum Electrical Power Output (W)
REAL(r64) :: RefElecEfficiencyLHV = 0.0d0 ! Reference Electrical Efficiency based on fuel LHV
REAL(r64) :: RefCombustAirInletTemp = 0.0d0 ! Reference Combustion Air Inlet Temperature (C)
REAL(r64) :: RefCombustAirInletHumRat = 0.0d0 ! Reference Combustion Air Inlet Humidity Ratio (kg/kg)
REAL(r64) :: RefElevation = 0.0d0 ! Reference Elevation (m)
INTEGER :: ElecPowFTempElevCurveNum = 0 ! Curve index for Electrical Power as a function of temp and elev.
INTEGER :: ElecEffFTempCurveNum = 0 ! Curve index for Electrical Efficiency function of temp
INTEGER :: ElecEffFPLRCurveNum = 0 ! Curve index for Electrical Efficiency as a function of PLR
REAL(r64) :: FuelHigherHeatingValue = 0.0d0 ! Higher Heating Value for Fuel (kJ/kg)
REAL(r64) :: FuelLowerHeatingValue = 0.0d0 ! Lower Heating Value for Fuel (kJ/kg)
REAL(r64) :: StandbyPower = 0.0d0 ! Standby Power entered by user (W)
REAL(r64) :: AncillaryPower = 0.0d0 ! Ancillary Power entered by user (W)
INTEGER :: AncillaryPowerFuelCurveNum = 0 ! Index to ancillary power modifer curve (function of fuel input)
INTEGER :: HeatRecInletNodeNum = 0 ! Heat Recovery Water Inlet Node number
INTEGER :: HeatRecOutletNodeNum = 0 ! Heat Recovery Water Outlet Node number
REAL(r64) :: RefThermalEffLHV = 0.0d0 ! Reference Thermal Efficiency (LHV Basis)
REAL(r64) :: RefInletWaterTemp = 0.0d0 ! Reference Inlet Water Temperature for heat recovery (C)
LOGICAL :: InternalFlowControl = .FALSE. ! A9, \field Heat Recovery Water Flow Operating Mode
LOGICAL :: PlantFlowControl = .TRUE. ! Default = Plant Control
REAL(r64) :: RefHeatRecVolFlowRate = 0.0d0 ! Reference Heat Recovery Water Flow Rate (m3/s)
INTEGER :: HeatRecFlowFTempPowCurveNum = 0 ! Curve index for Heat Recovery Water Flow Rate function of temp & power
INTEGER :: ThermEffFTempElevCurveNum = 0 ! Curve index for Thermal Efficiency function of temp & elevation
INTEGER :: HeatRecRateFPLRCurveNum = 0 ! Curve index for Heat Recovery Rate function of part-load ratio
INTEGER :: HeatRecRateFTempCurveNum = 0 ! Curve index for Heat Recovery Rate function of inlet water temp
INTEGER :: HeatRecRateFWaterFlowCurveNum = 0 ! Curve index for Heat Recovery Rate function of water flow rate
REAL(r64) :: HeatRecMinVolFlowRate = 0.0d0 ! Minimum Heat Recovery Water volume Flow Rate (m3/s)
REAL(r64) :: HeatRecMaxVolFlowRate = 0.0d0 ! Maximum Heat Recovery Water volume Flow Rate (m3/s)
REAL(r64) :: HeatRecMaxWaterTemp = 0.0d0 ! Maximum Heat Recovery Water Temperature (C)
INTEGER :: CombustionAirInletNodeNum = 0 ! Combustion Air Inlet Node number
INTEGER :: CombustionAirOutletNodeNum = 0 ! Combustion Air Outlet (Exhaust) Node number
LOGICAL :: ExhAirCalcsActive = .FALSE. ! Flag to enable exhaust air calculations
REAL(r64) :: RefExhaustAirMassFlowRate = 0.0d0 ! Reference Exhaust Air Mass Flow Rate (kg/s)
REAL(r64) :: ExhaustAirMassFlowRate = 0.0d0 ! Actual Exhaust Air Mass Flow Rate (kg/s)
INTEGER :: ExhFlowFTempCurveNum = 0 ! Curve index for Exhaust Air Flow Rate function of inlet air temp
INTEGER :: ExhFlowFPLRCurveNum = 0 ! Curve index for Exhaust Air Flow Rate function of part-load ratio
REAL(r64) :: NomExhAirOutletTemp = 0.0d0 ! Nominal Exhaust Air Outlet Temperature (C)
INTEGER :: ExhAirTempFTempCurveNum = 0 ! Curve index for Exhaust Air Temperature function of inlet air temp
INTEGER :: ExhAirTempFPLRCurveNum = 0 ! Curve index for Exhaust Air Temperature function of part-load ratio
REAL(r64) :: ExhaustAirTemperature = 0.0d0 ! Combustion exhaust air temperature (C)
REAL(r64) :: ExhaustAirHumRat = 0.0d0 ! Combustion exhaust air humidity ratio (kg/kg)
! Other required variables/calculated values
INTEGER :: CompType_Num = iGeneratorMicroturbine
REAL(r64) :: RefCombustAirInletDensity = 0.0d0 ! Reference combustion air inlet density (kg/m3)
REAL(r64) :: MinPartLoadRat = 0.0d0 ! Min allowed operating frac full load
REAL(r64) :: MaxPartLoadRat = 0.0d0 ! Max allowed operating frac full load
REAL(r64) :: FuelEnergyUseRateHHV = 0.0d0 ! Rate of Fuel Energy required to run microturbine, HHV basis (W)
REAL(r64) :: FuelEnergyUseRateLHV = 0.0d0 ! Rate of Fuel Energy required to run microturbine, LHV basis (W)
REAL(r64) :: QHeatRecovered = 0.0d0 ! Recovered exhaust energy rate to heat water (W)
REAL(r64) :: ExhaustEnergyRec = 0.0d0 ! Recovered exhaust energy to heat water (J)
REAL(r64) :: DesignHeatRecMassFlowRate = 0.0d0 ! Design Water mass flow rate through heat recovery loop (kg/s)
LOGICAL :: HeatRecActive = .FALSE. ! TRUE when heat recovery water inlet and outlet nodes are defined
REAL(r64) :: HeatRecInletTemp = 0.0d0 ! Inlet Temperature of the heat recovery fluid (C)
REAL(r64) :: HeatRecOutletTemp = 0.0d0 ! Outlet Temperature of the heat recovery fluid (C)
REAL(r64) :: HeatRecMinMassFlowRate = 0.0d0 ! Minimum heat recovery water mass flow rate (kg/s)
REAL(r64) :: HeatRecMaxMassFlowRate = 0.0d0 ! Maximum heat recovery water mass flow rate (kg/s)
REAL(r64) :: HeatRecMdot = 0.0d0 ! Heat Recovery Loop Mass flow rate (kg/s)
INTEGER :: HRLoopNum = 0 ! cooling water plant loop index number, for heat recovery
INTEGER :: HRLoopSideNum = 0 ! cooling water plant loop side index, for heat recovery
INTEGER :: HRBranchNum = 0 ! cooling water plant loop branch index, for heat recovery
INTEGER :: HRCompNum = 0 ! cooling water plant loop component index, for heat recovery
REAL(r64) :: FuelMdot = 0.0d0 ! Fuel Amount used (kg/s)
REAL(r64) :: ElecPowerGenerated = 0.0d0 ! Electric power generated (W)
REAL(r64) :: StandbyPowerRate = 0.0d0 ! Standby power rate this time step (W)
REAL(r64) :: AncillaryPowerRate = 0.0d0 ! Ancillary power rate this time step (W)
! Warning message variables
INTEGER :: PowerFTempElevErrorIndex = 0 ! Index to power as a function of temp/elevation warning message
! INTEGER :: PowerFTempElevErrorCount = 0 ! Counter for power as a function of temp/elevation warning messages
INTEGER :: EffFTempErrorIndex = 0 ! Index to efficiency as a function of temperature warning message
! INTEGER :: EffFTempErrorCount = 0 ! Counter for efficiency as a function of temperature warning messages
INTEGER :: EffFPLRErrorIndex = 0 ! Index to efficiency as a function of PLR warning message
! INTEGER :: EffFPLRErrorCount = 0 ! Counter for efficiency as a function of PLR warning messages
INTEGER :: ExhFlowFTempErrorIndex = 0 ! Index to exhaust flow as a function of temp warning message
! INTEGER :: ExhFlowFTempErrorCount = 0 ! Counter for exhaust flow as a function of temp warning messages
INTEGER :: ExhFlowFPLRErrorIndex = 0 ! Index to exhaust flow as a function of PLR warning message
! INTEGER :: ExhFlowFPLRErrorCount = 0 ! Counter for exhaust flow as a function of PLR warning messages
INTEGER :: ExhTempFTempErrorIndex = 0 ! Index to exhaust temp as a function of temp warning message
! INTEGER :: ExhTempFTempErrorCount = 0 ! Counter for exhaust temp as a function of temp warning messages
INTEGER :: ExhTempFPLRErrorIndex = 0 ! Index to exhaust temp as a function of PLR warning message
! INTEGER :: ExhTempFPLRErrorCount = 0 ! Counter for exhaust temp as a function of PLR warning messages
INTEGER :: HRMinFlowErrorIndex = 0 ! Index to reclaim water flow rate warning message
! INTEGER :: HRMinFlowErrorCount = 0 ! Counter for reclaim water flow rate warning messages
INTEGER :: HRMaxFlowErrorIndex = 0 ! Index to reclaim water flow rate warning message
! INTEGER :: HRMaxFlowErrorCount = 0 ! Counter for reclaim water flow rate warning messages
INTEGER :: ExhTempLTInletTempIndex = 0 ! Index to exhaust temp < combustion inlet air temp warning messages
! INTEGER :: ExhTempLTInletTempCount = 0 ! Counter for exhaust temp < combustion inlet air temp warning messages
INTEGER :: ExhHRLTInletHRIndex = 0 ! Index to exhaust hum rat < combustion inlet air hum rat warning messages
! INTEGER :: ExhHRLTInletHRCount = 0 ! Counter for exhaust hum rat < combustion inlet air hum rat warn messages
INTEGER :: AnciPowerIterErrorIndex = 0 ! Index to Ancillary Power iteration loop warning messages
! INTEGER :: AnciPowerIterErrorCount = 0 ! Count for Ancillary Power iteration loop warning messages
INTEGER :: AnciPowerFMdotFuelErrorIndex = 0 ! Index to Ancillary Power as a function of fuel input warning messages
! INTEGER :: AnciPowerFMdotFuelErrorCount = 0 ! Count for Ancillary Power as a function of fuel input warning messages
INTEGER :: HeatRecRateFPLRErrorIndex = 0 ! Index to heat recovery rate as a function of PLR warning messages
! INTEGER :: HeatRecRateFPLRErrorCount = 0 ! Count for heat recovery rate as a function of PLR warning messages
INTEGER :: HeatRecRateFTempErrorIndex = 0 ! Index to heat recovery rate as a function of temp warning messages
! INTEGER :: HeatRecRateFTempErrorCount = 0 ! Count for heat recovery rate as a function of temp warning messages
INTEGER :: HeatRecRateFFlowErrorIndex = 0 ! Index to heat recovery rate as a function of flow warning messages
! INTEGER :: HeatRecRateFFlowErrorCount = 0 ! Count for heat recovery rate as a function of flow warning messages
INTEGER :: ThermEffFTempElevErrorIndex = 0 ! Index to thermal efficiency as a function of temp/elevation warnings
! INTEGER :: ThermEffFTempElevErrorCount = 0 ! Count for thermal efficiency as a function of temp/elevation warnings
END TYPE MTGeneratorSpecs