Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | PipeNum |
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.
REAL(r64) FUNCTION CalcTDDTransSolIso(PipeNum)
! SUBROUTINE INFORMATION:
! AUTHOR Peter Graham Ellis
! DATE WRITTEN July 2003
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Calculates the transmittance of sky isotropic radiation for use with the anisotropic sky transmittance.
! This value is also used for all ground reflected solar radiation (which is isotropic).
! METHODOLOGY EMPLOYED:
! The transmittance is calculated and stored once at initialization because the value is a constant.
! The routine numerically integrates over the entire sky. All radiation is isotropic, but incident
! angle varies over the hemisphere.
!
! Trans = Flux Transmitted / Flux Incident
!
! Not sure if shading and tilt is adequately accounted for by DifShdgRatioIsoSky later on or not...
! REFERENCES:
! See AnisoSkyViewFactors in SolarShading.f90.
! USE STATEMENTS: na
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! FUNCTION ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: PipeNum ! TDD pipe object number
! FUNCTION PARAMETER DEFINITIONS:
INTEGER, PARAMETER :: NPH = 1000 ! Number of altitude integration points
! FUNCTION LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: FluxInc ! Incident solar flux
REAL(r64) :: FluxTrans ! Transmitted solar flux
REAL(r64) :: trans ! Total beam solar transmittance of TDD
INTEGER :: N ! Loop counter
REAL(r64) :: PH ! Altitude angle of sky element
REAL(r64) :: dPH ! Altitude angle increment
REAL(r64) :: COSI ! Cosine of incident angle
REAL(r64) :: SINI ! Sine of incident angle
REAL(r64) :: P ! Angular distribution function
! FLOW:
FluxInc = 0.0d0
FluxTrans = 0.0d0
! Integrate from 0 to Pi/2 altitude
dPH = 90.0d0 * DegToRadians / NPH
PH = 0.5d0 * dPH
DO N = 1, NPH
COSI = COS(PiOvr2 - PH)
SINI = SIN(PiOvr2 - PH)
P = COSI ! Angular distribution function: P = COS(Incident Angle) for diffuse isotropic
! Calculate total TDD transmittance for given angle
trans = TransTDD(PipeNum, COSI, SolarBeam)
FluxInc = FluxInc + P * SINI * dPH
FluxTrans = FluxTrans + trans * P * SINI * dPH
PH = PH + dPH ! Increment the altitude angle
END DO ! N
CalcTDDTransSolIso = FluxTrans / FluxInc
RETURN
END FUNCTION CalcTDDTransSolIso