Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r64), | intent(in) | :: | ETR | |||
real(kind=r64), | intent(in) | :: | CosZen | |||
real(kind=r64), | intent(in) | :: | TauB | |||
real(kind=r64), | intent(in) | :: | TauD | |||
real(kind=r64), | intent(out) | :: | IDirN | |||
real(kind=r64), | intent(out) | :: | IDifH | |||
real(kind=r64), | intent(out) | :: | IGlbH |
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.
SUBROUTINE ASHRAETauModel( ETR, CosZen, TauB, TauD, IDirN, IDifH, IGlbH)
! SUBROUTINE INFORMATION:
! AUTHOR C Barnaby
! DATE WRITTEN Nov 2010
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Calculate clear-sky direct and diffuse irradiance using ASHRAE "tau" model
! METHODOLOGY EMPLOYED:
! Eqns (17-18), ASHRAE HOF 2009, p. 14.9
! REFERENCES:
! ASHRAE HOF 2009 Chapter 14
! USE STATEMENTS:
! na
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
REAL(r64), INTENT( IN) :: ETR ! extraterrestrial normal irradiance, W/m2
REAL(r64), INTENT( IN) :: CosZen ! COS( solar zenith angle), 0 - 1
REAL(r64), INTENT( IN) :: TauB ! beam tau factor
REAL(r64), INTENT( IN) :: TauD ! dif tau factor
REAL(r64), INTENT(OUT) :: IDirN ! returned: direct (beam) irradiance on normal surface, W/m2
REAL(r64), INTENT(OUT) :: IDifH ! returned: diffuse irradiance on horiz surface, W/m2
REAL(r64), INTENT(OUT) :: IGlbH ! returned: global irradiance on horiz surface, W/m2
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
REAL(r64) AB, AD ! air mass exponents
REAL(r64) M ! air mass
IF (CosZen < SunIsUpValue .OR. TauB <= 0.0d0 .OR. TauD <= 0.0d0) THEN
IDirN = 0.0d0
IDifH = 0.0d0
IGlbH = 0.0d0
ELSE
AB = 1.219d0 - 0.043d0*TauB - 0.151d0*TauD - 0.204d0*TauB*TauD
AD = 0.202d0 + 0.852d0*TauB - 0.007d0*Taud - 0.357d0*TauB*TauD
M = AirMass( CosZen)
IDirN = ETR * EXP( -TauB * M**AB)
IDifH = ETR * EXP( -TauD * M**AD)
IGlbH = IDirN * CosZen + IDifH
END IF
END SUBROUTINE ASHRAETauModel