Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r64), | intent(in) | :: | TAbsorber | |||
real(kind=r64), | intent(in) | :: | TWater | |||
real(kind=r64), | intent(in) | :: | Lc | |||
real(kind=r64), | intent(in) | :: | TiltR2V |
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
FUNCTION CalcConvCoeffAbsPlateAndWater(TAbsorber,TWater,Lc,TiltR2V) RESULT (hConvA2W)
! FUNCTION INFORMATION:
! AUTHOR Bereket Nigusse, FSEC/UCF
! DATE WRITTEN February 2012
! MODIFIED
! RE-ENGINEERED
! PURPOSE OF THIS FUNCTION:
! Calculates the free converction coefficient between the absorber plate and water.
!
! METHODOLOGY EMPLOYED:
! The convection coefficient calculation were based on the Fujii and Imura emperical correlations
!
! REFERENCES:
! T.Fujii, and H.Imura,Natural convection heat transfer from aplate with arbitrary inclination.
! International Journal of Heat and Mass Transfer: 15(4), (1972), 755-764.
!
! USE STATEMENTS:
USE DataGlobals, ONLY: DegToRadians, StefanBoltzmann, KelvinConv
USE FluidProperties, ONLY: CheckFluidPropertyName, FindGlycol, GetSpecificHeatGlycol, &
GetConductivityGlycol,GetViscosityGlycol,GetDensityGlycol
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
REAL(r64), INTENT(IN) :: TAbsorber ! temperature of absorber plate [C]
REAL(r64), INTENT(IN) :: TWater ! temperature of water [C]
REAL(r64), INTENT(IN) :: TiltR2V ! collector tilt angle relative to the vertical [degree]
REAL(r64), INTENT(IN) :: Lc ! characteristic length [m]
! FUNCTION PARAMETER DEFINITIONS:
REAL(r64), PARAMETER :: gravity = 9.806d0 ! gravitational constant [m/s^2]
CHARACTER(len=*), PARAMETER :: CalledFrom='SolarCollectors:CalcConvCoeffAbsPlateAndWater'
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! FUNCTION LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: DensOfWater ! density of water [kg/m3]
REAL(r64) :: CondOfWater ! thermal conductivity of water [W/mK]
REAL(r64) :: VolExpWater ! volumetric expansion of water, [1/K]
REAL(r64) :: VisOfWater ! dynamic viscosity of water [Ns/m2]
REAL(r64) :: WaterSpecHeat ! specific heat of water
REAL(r64) :: PrOfWater ! Prantle number of water
! REAL(r64) :: RaNumCosTilt ! Rayleigh number of air times cosine of collector tilt []
REAL(r64) :: CosTilt ! cosine of collector tilt angle []
REAL(r64) :: DeltaT ! temperature difference between absober plate and water
REAL(r64) :: TReference ! reference temperature for fluid properties [c]
REAL(r64) :: RaNum ! Rayleigh number
REAL(r64) :: GrNum ! Grashof number
! REAL(r64) :: GrcPr ! critical Grashof number
REAL(r64) :: NuL ! Nusselt number
REAL(r64) :: hConvA2W ! convection coefficient, [W/m2K]
INTEGER :: WaterIndex ! fluid type index
! Flow
DeltaT = Abs(TAbsorber-TWater)
TReference = TAbsorber-0.25d0*(TAbsorber-TWater)
! record fluid prop index for water
WaterIndex=FindGlycol('WATER')
! find properties of water - always assume water
WaterSpecHeat = GetSpecificHeatGlycol('WATER',MAX(TReference,0.d0), WaterIndex,CalledFrom)
CondOfWater = GetConductivityGlycol('WATER',MAX(TReference,0.d0), WaterIndex,CalledFrom)
VisOfWater = GetViscosityGlycol('WATER',MAX(TReference,0.d0), WaterIndex,CalledFrom)
DensOfWater = GetDensityGlycol('WATER',MAX(TReference,0.d0), WaterIndex,CalledFrom)
PrOfWater = VisOfWater*WaterSpecHeat/CondOfWater
! Requires a different reference temperature for volumetric expansion coefficient
TReference = TWater-0.25d0*(TWater-TAbsorber)
VolExpWater = -(GetDensityGlycol('WATER',MAX(TReference,10.d0) + 5.d0, WaterIndex,CalledFrom) - &
GetDensityGlycol('WATER',MAX(TReference,10.d0) - 5.d0, WaterIndex,CalledFrom)) / &
(10.0d0*DensOfWater)
GrNum = gravity*VolExpWater*DensOfWater*DensOfWater*PrOfWater*DeltaT*(Lc**3)/(VisOfWater**2)
CosTilt = cos(TiltR2V * DegToRadians)
IF(TAbsorber .GT. TWater)THEN
! hot absorber plate facing down
IF ( abs(TiltR2V - 90.0d0) < 1.0d0) THEN
! It is a horizontal surface
RaNum = GrNum * PrOfWater
IF (RaNum .LE. 1708.0d0) THEN
NuL = 1.0d0
ELSE
NuL = 0.58d0 * (RaNum)**0.20d0
ENDIF
ELSE
RaNum = GrNum * PrOfWater * CosTilt
IF (RaNum .LE. 1708.0d0) THEN
NuL = 1.0d0
ELSE
NuL = 0.56d0 * (RaNum)**0.25d0
ENDIF
ENDIF
ELSE
! cold plate facing down or hot plate facing up
RaNum = GrNum * PrOfWater
IF (RaNum .GT. 5.0d8) THEN
NuL = 0.13d0 * (RaNum)**(1.d0/3.d0)
ELSE
NuL = 0.16d0 * (RaNum)**(1.d0/3.d0)
IF (RaNum .LE. 1708.d0) NuL = 1.0d0
ENDIF
ENDIF
hConvA2W = NuL * CondOfWater / Lc
RETURN
END FUNCTION CalcConvCoeffAbsPlateAndWater