Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=MaxNameLength), | public | :: | Name | = | ' ' | ||
integer, | public | :: | EffMode | = | 0 | ||
integer, | public | :: | EffCurveID | = | 0 | ||
real(kind=r64), | public | :: | NomEff | = | 0.0d0 | ||
real(kind=r64), | public | :: | NomPel | = | 0.0d0 | ||
integer, | public | :: | NumCycles | = | 0 | ||
real(kind=r64), | public | :: | CyclingDegradRat | = | 0.0d0 | ||
real(kind=r64), | public | :: | NumRunHours | = | 0.0d0 | ||
real(kind=r64), | public | :: | OperateDegradRat | = | 0.0d0 | ||
real(kind=r64), | public | :: | ThreshRunHours | = | 0.0d0 | ||
real(kind=r64), | public | :: | UpTranLimit | = | 0.0d0 | ||
real(kind=r64), | public | :: | DownTranLimit | = | 0.0d0 | ||
real(kind=r64), | public | :: | StartUpTime | = | 0.0d0 | ||
real(kind=r64), | public | :: | StartUpFuel | = | 0.0d0 | ||
real(kind=r64), | public | :: | StartUpElectConsum | = | 0.0d0 | ||
real(kind=r64), | public | :: | StartUpElectProd | = | 0.0d0 | ||
real(kind=r64), | public | :: | ShutDownTime | = | 0.0d0 | ||
real(kind=r64), | public | :: | ShutDownFuel | = | 0.0d0 | ||
real(kind=r64), | public | :: | ShutDownElectConsum | = | 0.0d0 | ||
real(kind=r64), | public | :: | ANC0 | = | 0.0d0 | ||
real(kind=r64), | public | :: | ANC1 | = | 0.0d0 | ||
integer, | public | :: | SkinLossMode | = | 0 | ||
character(len=MaxNameLength), | public | :: | ZoneName | = | ' ' | ||
integer, | public | :: | ZoneID | = | 0 | ||
real(kind=r64), | public | :: | RadiativeFract | = | 0.0d0 | ||
real(kind=r64), | public | :: | QdotSkin | = | 0.0d0 | ||
real(kind=r64), | public | :: | UAskin | = | 0.0d0 | ||
integer, | public | :: | SkinLossCurveID | = | 0 | ||
integer, | public | :: | WaterSupplyCurveID | = | 0 | ||
real(kind=r64), | public | :: | NdotDilutionAir | = | 0.0d0 | ||
real(kind=r64), | public | :: | StackHeatLossToDilution | = | 0.0d0 | ||
character(len=MaxNameLength), | public | :: | DilutionInletNodeName | = | ' ' | ||
integer, | public | :: | DilutionInletNode | = | 0 | ||
character(len=MaxNameLength), | public | :: | DilutionExhaustNodeName | = | ' ' | ||
integer, | public | :: | DilutionExhaustNode | = | 0 | ||
real(kind=r64), | public | :: | PelMin | = | 0.0d0 | ||
real(kind=r64), | public | :: | PelMax | = | 0.0d0 | ||
real(kind=r64), | public | :: | Pel | = | 0.0d0 | ||
real(kind=r64), | public | :: | PelLastTimeStep | = | 0.0d0 | ||
real(kind=r64), | public | :: | Eel | = | 0.0d0 | ||
real(kind=r64), | public | :: | QdotStackCool | = | 0.0d0 | ||
real(kind=r64), | public | :: | FractionalDayofLastStartUp | = | 0.0d0 | ||
real(kind=r64), | public | :: | FractionalDayofLastShutDown | = | 0.0d0 | ||
logical, | public | :: | HasBeenOn | = | .true. | ||
logical, | public | :: | DuringShutDown | = | .false. | ||
logical, | public | :: | DuringStartUp | = | .false. | ||
real(kind=r64), | public | :: | NdotFuel | = | 0.0d0 | ||
real(kind=r64), | public | :: | TotFuelInEnthalphy | = | 0.0d0 | ||
real(kind=r64), | public | :: | NdotProdGas | = | 0.0d0 | ||
real(kind=r64), | public, | DIMENSION(14) | :: | ConstitMolalFract | = | 0.0d0 | |
integer, | public, | DIMENSION(14) | :: | GasLibID | = | 0 | |
real(kind=r64), | public | :: | TprodGasLeavingFCPM | = | 0.0d0 | ||
real(kind=r64), | public | :: | NdotAir | = | 0.0d0 | ||
real(kind=r64), | public | :: | TotAirInEnthalphy | = | 0.0d0 | ||
real(kind=r64), | public | :: | NdotLiqwater | = | 0.0d0 | ||
real(kind=r64), | public | :: | TwaterInlet | = | 0.0d0 | ||
real(kind=r64), | public | :: | WaterInEnthalpy | = | 0.0d0 | ||
real(kind=r64), | public | :: | DilutionAirInEnthalpy | = | 0.0d0 | ||
real(kind=r64), | public | :: | DilutionAirOutEnthalpy | = | 0.0d0 | ||
real(kind=r64), | public | :: | PelancillariesAC | = | 0.0d0 | ||
real(kind=r64), | public | :: | TotProdGasEnthalphy | = | 0.0d0 | ||
real(kind=r64), | public | :: | WaterOutEnthalpy | = | 0.0d0 | ||
integer, | public | :: | SeqSubstitIter | = | 0 | ||
integer, | public | :: | RegulaFalsiIter | = | 0 |
TYPE FCPowerModuleStruct
! user input data
CHARACTER(len=MaxNameLength) :: Name = ' ' !name of this PowerModule data
INTEGER :: EffMode = 0 ! mode for efficiency curves
INTEGER :: EffCurveID = 0 ! pointer to curve for efficiency
REAL(r64) :: NomEff = 0.0d0 ! nominal efficiency
REAL(r64) :: NomPel = 0.0d0 ! nominal power rate at rating point
INTEGER :: NumCycles = 0 ! number of start stop cycles
REAL(r64) :: CyclingDegradRat = 0.0d0 ! rate of degradation from cycles
REAL(r64) :: NumRunHours = 0.0d0 ! number of hours of operation
REAL(r64) :: OperateDegradRat = 0.0d0 ! rate of degradation from run time (per hour)
REAL(r64) :: ThreshRunHours = 0.0d0 ! number of hours before degradation starts
REAL(r64) :: UpTranLimit = 0.0d0 !power up transient limit
REAL(r64) :: DownTranLimit = 0.0d0 !power down tran limit
REAL(r64) :: StartUpTime = 0.0d0 !time for start up [hours]
REAL(r64) :: StartUpFuel = 0.0d0 !fuel use during start up
REAL(r64) :: StartUpElectConsum = 0.0d0 !electricity used during start up
REAL(r64) :: StartUpElectProd = 0.0d0 !electricity produced during start up
REAL(r64) :: ShutDownTime = 0.0d0 ! time to shut down [hours]
REAL(r64) :: ShutDownFuel = 0.0d0 ! fuel consumed during shut down
REAL(r64) :: ShutDownElectConsum = 0.0d0 !Elect consumed during shut down
REAL(r64) :: ANC0 = 0.0d0 ! Ancilliary Loads constant term
REAL(r64) :: ANC1 = 0.0d0 ! Ancilliary Loads linear term
INTEGER :: SkinLossMode = 0 ! how are skin losses determined
CHARACTER(len=MaxNameLength) :: ZoneName = ' ' !
Integer :: ZoneID = 0 ! "pointer" to zone with component in it
REAL(r64) :: RadiativeFract = 0.0d0 !
REAL(r64) :: QdotSkin = 0.0d0 !
REAL(r64) :: UAskin = 0.0d0 !
Integer :: SkinLossCurveID = 0 !
INTEGER :: WaterSupplyCurveID = 0 ! pointer to curve for water use in reforming
REAL(r64) :: NdotDilutionAir = 0.0d0 ! user defined constant flow of dilution air (kmol/sec)
REAL(r64) :: StackHeatLossToDilution = 0.0d0 ! (watts)
CHARACTER(len=MaxNameLength) :: DilutionInletNodeName = ' ' !dilution -> AirHR ?? added air heat recovery path
INTEGER :: DilutionInletNode = 0 ! pointer to node for inlet
CHARACTER(len=MaxNameLength) :: DilutionExhaustNodeName = ' '
INTEGER :: DilutionExhaustNode = 0 ! pointer to node getting exhaust
REAL(r64) :: PelMin = 0.0d0 ! minimum operating point for FCPM electrical power Pel
REAL(r64) :: PelMax = 0.0d0 ! maximum operating point for FCPM electrical power Pel
!Calculated values and input from elsewhere
REAL(r64) :: Pel = 0.0d0 !current DC electrical power produced
REAL(r64) :: PelLastTimeStep = 0.0d0
REAL(r64) :: Eel = 0.0d0 ! power module efficiency
REAL(r64) :: QdotStackCool = 0.0d0 ! Heat removed by stack cooler
REAL(r64) :: FractionalDayofLastStartUp = 0.0d0 !fractional days into simulation
REAL(r64) :: FractionalDayofLastShutDown = 0.0d0 !fractional Days into simulations
LOGICAL :: HasBeenOn =.true.
LOGICAL :: DuringShutDown = .false.
LOGICAL :: DuringStartUp = .false.
REAL(r64) :: NdotFuel = 0.0d0 ! molar fuel use rate. (kmol/sec)
REAL(r64) :: TotFuelInEnthalphy = 0.0d0 ! Enthalpy of fuel coming into FCPM (watts)
REAL(r64) :: NdotProdGas = 0.0d0 !(kmol/sec)
REAL(r64), DIMENSION(14) :: ConstitMolalFract = 0.0d0
INTEGER, DIMENSION(14) :: GasLibID = 0 ! lookup ID in Gas Phase ThermoChemistry Structure Array
REAL(r64) :: TprodGasLeavingFCPM = 0.0d0
REAL(r64) :: NdotAir = 0.0d0 ! molar air use rate (kmol/sec)
REAL(r64) :: TotAirInEnthalphy = 0.0d0 ! Enthalpy of air coming nto FCPM energy balance (watts)
REAL(r64) :: NdotLiqwater= 0.0d0 ! molar water use rate (kmol/sec)
REAL(r64) :: TwaterInlet = 0.0d0 !
REAL(r64) :: WaterInEnthalpy = 0.0d0 ! Enthalpy of liquid water used for reforming (watts)
REAL(r64) :: DilutionAirInEnthalpy = 0.0d0 ! Enthalpy of Dilution air coming into FCPM (watts)
REAL(r64) :: DilutionAirOutEnthalpy = 0.0d0 !
REAL(r64) :: PelancillariesAC = 0.0d0 !ancillary power (watts)
REAL(r64) :: TotProdGasEnthalphy = 0.0d0 !Enthalphy of product gases leaving FCPM (watts)
REAL(r64) :: WaterOutEnthalpy = 0.0d0 ! enthalpy of vapor from water used for reforming
INTEGER :: SeqSubstitIter = 0 !
INTEGER :: RegulaFalsiIter = 0 !
END TYPE FCPowerModuleStruct