Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=MaxNameLength), | public | :: | Name | = | '' | ||
character(len=MaxNameLength), | public | :: | BCType | = | ' ' | ||
character(len=MaxNameLength), | public | :: | BCName | = | ' ' | ||
character(len=MaxNameLength), | public | :: | OSCMName | = | ' ' | ||
integer, | public | :: | VentCavIndex | = | 0 | ||
integer, | public | :: | ICSType_Num | = | 0 | ||
integer, | public | :: | TypeNum | ||||
integer, | public | :: | WLoopNum | = | 0 | ||
integer, | public | :: | WLoopSideNum | = | 0 | ||
integer, | public | :: | WLoopBranchNum | = | 0 | ||
integer, | public | :: | WLoopCompNum | = | 0 | ||
logical, | public | :: | Init | = | .TRUE. | ||
logical, | public | :: | InitSizing | = | .TRUE. | ||
integer, | public | :: | Parameters | = | 0 | ||
integer, | public | :: | Surface | = | 0 | ||
integer, | public | :: | InletNode | = | 0 | ||
real(kind=r64), | public | :: | InletTemp | = | 0.0d0 | ||
integer, | public | :: | OutletNode | = | 0 | ||
real(kind=r64), | public | :: | OutletTemp | = | 0.0d0 | ||
real(kind=r64), | public | :: | MassFlowRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | MassFlowRateMax | = | 0.0d0 | ||
real(kind=r64), | public | :: | VolFlowRateMax | = | 0.0d0 | ||
integer, | public | :: | ErrIndex | = | 0 | ||
integer, | public | :: | IterErrIndex | = | 0 | ||
real(kind=r64), | public | :: | IncidentAngleModifier | = | 0.0d0 | ||
real(kind=r64), | public | :: | Efficiency | = | 0.0d0 | ||
real(kind=r64), | public | :: | Power | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatGain | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatLoss | = | 0.0d0 | ||
real(kind=r64), | public | :: | Energy | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatEnergy | = | 0.0d0 | ||
real(kind=r64), | public | :: | StoredHeatRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | StoredHeatEnergy | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatGainRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatGainEnergy | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatLossRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | HeatLossEnergy | = | 0.0d0 | ||
real(kind=r64), | public | :: | SkinHeatLossRate | = | 0.0d0 | ||
real(kind=r64), | public | :: | CollHeatLossEnergy | = | 0.0d0 | ||
real(kind=r64), | public | :: | TauAlpha | = | 0.0d0 | ||
real(kind=r64), | public | :: | UTopLoss | = | 0.0d0 | ||
real(kind=r64), | public | :: | TempOfWater | = | 0.0d0 | ||
real(kind=r64), | public | :: | TempOfAbsPlate | = | 0.0d0 | ||
real(kind=r64), | public | :: | TempOfInnerCover | = | 0.0d0 | ||
real(kind=r64), | public | :: | TempOfOuterCover | = | 0.0d0 | ||
real(kind=r64), | public | :: | TauAlphaNormal | = | 0.0d0 | ||
real(kind=r64), | public | :: | TauAlphaSkyDiffuse | = | 0.0d0 | ||
real(kind=r64), | public | :: | TauAlphaGndDiffuse | = | 0.0d0 | ||
real(kind=r64), | public | :: | TauAlphaBeam | = | 0.0d0 | ||
real(kind=r64), | public | :: | CoversAbsSkyDiffuse(2) | = | 0.0d0 | ||
real(kind=r64), | public | :: | CoversAbsGndDiffuse(2) | = | 0.0d0 | ||
real(kind=r64), | public | :: | CoverAbs(2) | = | 0.0d0 | ||
real(kind=r64), | public | :: | TimeElapsed | = | 0.0d0 | ||
real(kind=r64), | public | :: | UbLoss | = | 0.0d0 | ||
real(kind=r64), | public | :: | UsLoss | = | 0.0d0 | ||
real(kind=r64), | public | :: | AreaRatio | = | 0.0d0 | ||
real(kind=r64), | public | :: | RefSkyDiffInnerCover | = | 0.0d0 | ||
real(kind=r64), | public | :: | RefGrnDiffInnerCover | = | 0.0d0 | ||
real(kind=r64), | public | :: | RefDiffInnerCover | = | 0.0d0 | ||
real(kind=r64), | public | :: | SavedTempOfWater | = | 0.0d0 | ||
real(kind=r64), | public | :: | SavedTempOfAbsPlate | = | 0.0d0 | ||
real(kind=r64), | public | :: | SavedTempOfInnerCover | = | 0.0d0 | ||
real(kind=r64), | public | :: | SavedTempOfOuterCover | = | 0.0d0 | ||
real(kind=r64), | public | :: | SavedTempCollectorOSCM | = | 0.0d0 | ||
real(kind=r64), | public | :: | Length | = | 1.0d0 | ||
real(kind=r64), | public | :: | TiltR2V | = | 0.0d0 | ||
real(kind=r64), | public | :: | Tilt | = | 0.0d0 | ||
real(kind=r64), | public | :: | CosTilt | = | 0.0d0 | ||
real(kind=r64), | public | :: | SinTilt | = | 0.0d0 | ||
real(kind=r64), | public | :: | SideArea | = | 0.0d0 | ||
real(kind=r64), | public | :: | Area | = | 0.0d0 | ||
real(kind=r64), | public | :: | Volume | = | 0.0d0 | ||
logical, | public | :: | OSCM_ON | = | .FALSE. | ||
logical, | public | :: | InitICS | = | .FALSE. |
TYPE , PUBLIC :: CollectorData
CHARACTER(len=MaxNameLength) :: Name = '' ! Name of solar collector
CHARACTER(len=MaxNameLength) :: BCType = ' ' ! Boundary condition Type
CHARACTER(len=MaxNameLength) :: BCName = ' ' ! Boundary condition Name
CHARACTER(len=MaxNameLength) :: OSCMName = ' ' ! OtherSideConditionsModel
INTEGER :: VentCavIndex = 0 ! index of ventilated cavity object
INTEGER :: ICSType_Num = 0 ! ICS collector type number
INTEGER :: TypeNum ! Plant Side Connection: 'TypeOf_Num' assigned in DataPlant !DSU
INTEGER :: WLoopNum = 0 ! Water plant loop index number !DSU
INTEGER :: WLoopSideNum = 0 ! Water plant loop side index !DSU
INTEGER :: WLoopBranchNum = 0 ! Water plant loop branch index !DSU
INTEGER :: WLoopCompNum = 0 ! Water plant loop component index !DSU
LOGICAL :: Init = .TRUE. ! Flag for initialization: TRUE means do the init
LOGICAL :: InitSizing = .TRUE. ! Flag for initialization of plant sizing
INTEGER :: Parameters = 0 ! Parameters object number
INTEGER :: Surface = 0 ! Surface object number
INTEGER :: InletNode = 0 ! Inlet node
REAL(r64) :: InletTemp = 0.0d0 ! Inlet temperature from plant (C)
INTEGER :: OutletNode = 0 ! Outlet node
REAL(r64) :: OutletTemp = 0.0d0 ! Outlet temperature or stagnation temperature in the collector (C)
REAL(r64) :: MassFlowRate = 0.0d0 ! Mass flow rate through the collector (kg/s)
REAL(r64) :: MassFlowRateMax = 0.0d0 ! Maximum mass flow rate through the collector (kg/s)
REAL(r64) :: VolFlowRateMax = 0.0d0 ! Maximum volumetric flow rate through the collector (m3/s)
INTEGER :: ErrIndex = 0 ! Error index for recurring error
INTEGER :: IterErrIndex = 0 ! Error index for recurring error (iteration - did not converge)
! Report variables
REAL(r64) :: IncidentAngleModifier = 0.0d0 ! Net incident angle modifier
REAL(r64) :: Efficiency = 0.0d0 ! Thermal efficiency of solar energy conversion
REAL(r64) :: Power = 0.0d0 ! Heat gain or loss to collector fluid (W)
REAL(r64) :: HeatGain = 0.0d0 ! Heat gain to collector fluid (W)
REAL(r64) :: HeatLoss = 0.0d0 ! Heat loss from collector fluid (W)
REAL(r64) :: Energy = 0.0d0 ! Energy gained (or lost) to collector fluid (J)
! Report variables
REAL(r64) :: HeatRate = 0.0d0 ! Collector useful Heat gain rate [W]
REAL(r64) :: HeatEnergy = 0.0d0 ! Collector useful Heat gain energy [J]
REAL(r64) :: StoredHeatRate = 0.0d0 ! net heat gain or loss rate of the collector fluid [W]
REAL(r64) :: StoredHeatEnergy = 0.0d0 ! net heat gain or loss energy of the collector fluid [J]
REAL(r64) :: HeatGainRate = 0.0d0 ! Collector useful Heat gain rate [W]
REAL(r64) :: HeatGainEnergy = 0.0d0 ! Collector useful Heat gain energy (J)
REAL(r64) :: HeatLossRate = 0.0d0 ! collector useful heat loss rate [W]
REAL(r64) :: HeatLossEnergy = 0.0d0 ! Collector useful Heat loss energy [J]
REAL(r64) :: SkinHeatLossRate = 0.0d0 ! collector skin heat loss rate [W]
REAL(r64) :: CollHeatLossEnergy = 0.0d0 ! collector skin heat loss energy[J]
REAL(r64) :: TauAlpha = 0.0d0 ! Transmittance-absorptance product total radiation
REAL(r64) :: UTopLoss = 0.0d0 ! Over all top loss coefficient [W/m2.C]
REAL(r64) :: TempOfWater = 0.0d0 ! average temperature of the collector water [C]
REAL(r64) :: TempOfAbsPlate = 0.0d0 ! average temperature of the abs plate [C]
REAL(r64) :: TempOfInnerCover = 0.0d0 ! temperature of the collector inner cover [C]
REAL(r64) :: TempOfOuterCover = 0.0d0 ! temperature of the collector inner cover [C]
! Data from elsewhere and calculated
REAL(r64) :: TauAlphaNormal = 0.0d0 ! Transmittance-absorptance product normal radiation
REAL(r64) :: TauAlphaSkyDiffuse = 0.0d0 ! Transmittance-absorptance product sky diffuse radiation
REAL(r64) :: TauAlphaGndDiffuse = 0.0d0 ! Transmittance-absorptance product grn diffuse radiation
REAL(r64) :: TauAlphaBeam = 0.0d0 ! Transmittance-absorptance product beam radiation
REAL(r64) :: CoversAbsSkyDiffuse(2)= 0.0d0 ! sky diffuse solar absorptance of cover
REAL(r64) :: CoversAbsGndDiffuse(2)= 0.0d0 ! ground diffuse solar absorptance of cover
REAL(r64) :: CoverAbs(2) = 0.0d0 ! solar rad weighted covers absorptance
REAL(r64) :: TimeElapsed = 0.0d0 ! Fraction of the current hour that has elapsed (h)
! Saved in order to identify the beginning of a new system time
REAL(r64) :: UbLoss = 0.0d0 ! Over all bottom loss coefficient [W/m2C]
REAL(r64) :: UsLoss = 0.0d0 ! Over all side loss coefficient [W/m2C]
REAL(r64) :: AreaRatio = 0.0d0 ! Side area to collector area ratio [-]
REAL(r64) :: RefSkyDiffInnerCover = 0.0d0 ! Sky diffuse refl of inner cover (cover 1)
REAL(r64) :: RefGrnDiffInnerCover = 0.0d0 ! ground diffuse refl of inner cover (cover 1)
REAL(r64) :: RefDiffInnerCover = 0.0d0 ! diffuse reflectance of the inner cover (cover 1) from bottom
REAL(r64) :: SavedTempOfWater = 0.0d0 ! water temp carried from time step to time step [C]
REAL(r64) :: SavedTempOfAbsPlate = 0.0d0 ! abs plate temp carried from time step to time step [C]
REAL(r64) :: SavedTempOfInnerCover = 0.0d0 ! inner cover temp carried from time step to time step [C]
REAL(r64) :: SavedTempOfOuterCover = 0.0d0 ! outer cover temp carried from time step to time step [C]
REAL(r64) :: SavedTempCollectorOSCM= 0.0d0 ! Temperature of collector back from OSCM at previous time step [C]
REAL(r64) :: Length = 1.0d0 ! characteristic length of the abs plate
REAL(r64) :: TiltR2V = 0.0d0 ! collector tilt angle from the vertical [degree]
REAL(r64) :: Tilt = 0.0d0 ! collector tilt angle from the horizontal [degree]
REAL(r64) :: CosTilt = 0.0d0 ! cosine of colector tilt angle [-]
REAL(r64) :: SinTilt = 0.0d0 ! sine of 1.8 times colector tilt angle [-]
REAL(r64) :: SideArea = 0.0d0 ! weighted collector side area (m2)
REAL(r64) :: Area = 0.0d0 ! collector area (m2)
REAL(r64) :: Volume = 0.0d0 ! collector net volume (m3)
LOGICAL :: OSCM_ON = .FALSE. ! Boundary condition is OSCM
LOGICAL :: InitICS = .FALSE. ! used to initialize ICS variables only
END TYPE CollectorData