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) | :: | AspRat | |||
real(kind=r64), | intent(in) | :: | Tilt | |||
real(kind=r64), | intent(in) | :: | tso | |||
real(kind=r64), | intent(in) | :: | tsi | |||
real(kind=r64), | intent(in) | :: | Gr | |||
real(kind=r64), | intent(out) | :: | gNu |
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.
SUBROUTINE PassiveGapNusseltNumber(AspRat,Tilt ,Tso,Tsi, Gr, gNu)
! SUBROUTINE INFORMATION:
! AUTHOR Adapted by B. Griffith from Fred Winkelmann's from NusseltNumber in WindowManager.f90
! DATE WRITTEN September 2001
! MODIFIED B. Griffith November 2004 (same models but slightly different for general use)
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Finds the Nusselt number for air-filled gaps between isothermal solid layers.
! METHODOLOGY EMPLOYED:
! Based on methodology in Chapter 5 of the July 18, 2001 draft of ISO 15099,
! "Thermal Performance of Windows, Doors and Shading Devices--Detailed Calculations."
! The equation numbers below correspond to those in the standard.
! REFERENCES:
! Window5 source code; ISO 15099
! USE STATEMENTS:
USE DataPrecisionGlobals
USE DataGlobals, Only: DegToRadians
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
REAL(r64), INTENT(IN) :: AspRat ! Aspect Ratio of Gap height to gap width
REAL(r64), INTENT(IN) :: Tilt ! Tilt of gap, degrees
REAL(r64), INTENT(IN) :: tso ! Temperature of gap surface closest to outside (K)
REAL(r64), INTENT(IN) :: tsi ! Temperature of gap surface closest to zone (K)
REAL(r64), INTENT(IN) :: Gr ! Gap gas Grashof number
REAL(r64), INTENT(OUT) :: gNu ! Gap gas Nusselt number
! SUBROUTINE PARAMETER DEFINITIONS:
REAL(r64), PARAMETER :: Pr = 0.71d0 ! Prandtl number for air
! INTERFACE BLOCK SPECIFICATIONS
! DERIVED TYPE DEFINITIONS
! SUBROUTINE LOCAL VARIABLE DECLARATIONS
REAL(r64) :: Ra ! Rayleigh number
REAL(r64) :: gnu901,gnu902,gnu90,gnu601 ! Nusselt number temporary variables for
REAL(r64) :: gnu602,gnu60,gnu601a,gnua,gnub ! different tilt and Ra ranges
REAL(r64) :: cra,a,b,g,ang ! Temporary variables
REAL(r64) :: tiltr
tiltr = Tilt * DegToRadians
Ra = Gr * Pr
if (ra > 2.0d6) THen
! write(*,*)' error, outside range of Rayleigh number'
endif
if(ra <= 1.0d4) Then
gnu901 = 1.d0 + 1.7596678d-10 * ra**2.2984755d0 ! eq. 51
endif
if(ra > 1.0d4 .and. ra <= 5.0d4) gnu901 = 0.028154d0 * ra**0.4134d0 ! eq. 50
if(ra > 5.0d4) gnu901 = 0.0673838d0 * ra**(1.0d0/3.0d0) ! eq. 49
gnu902 = 0.242d0 * (ra/AspRat)**.272d0 ! eq. 52
gnu90 = MAX(gnu901,gnu902)
if(tso > tsi)then ! window heated from above
gnu = 1.0d0 + (gnu90-1.0d0)*sin(tiltr) ! eq. 53
else ! window heated from below
if (Tilt >= 60.0d0) then
g = 0.5d0 * (1.0d0+(ra/3160.d0)**20.6d0)**(-0.1d0) ! eq. 47
gnu601a = 1.0d0 + (0.0936d0*(ra**0.314d0)/(1.0d0+g))**7 ! eq. 45
gnu601 = gnu601a**0.142857d0
! For any aspect ratio
gnu602 = (0.104d0+0.175d0/AspRat) * ra**0.283d0 ! eq. 46
gnu60 = MAX(gnu601,gnu602)
! linear interpolation for layers inclined at angles between 60 and 90 deg
gnu = ((90.0d0-Tilt)*gnu60 + (Tilt-60.0d0)*gnu90)/30.0d0
endif
if (Tilt < 60.0d0) then ! eq. 42
cra = ra*cos(tiltr)
a = 1.0d0 - 1708.0d0/cra
b = (cra/5830.0d0)**0.33333d0-1.0d0
gnua = (abs(a)+a)/2.0d0
gnub = (abs(b)+b)/2.0d0
ang = 1708.0d0 * (sin(1.8d0*tiltr))**1.6d0
gnu = 1.0d0 + 1.44d0*gnua*(1.0d0-ang/cra) + gnub
endif
endif
RETURN
END SUBROUTINE PassiveGapNusseltNumber