Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r64) | :: | PropertyValue(10) |
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 DiffuseAverage(PropertyValue)
! FUNCTION INFORMATION:
! AUTHOR Fred Winkelmann
! DATE WRITTEN November 1999
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS FUNCTION:
! Calculate value of property, such as transmittance, for hemispherical
! diffuse radiation from property values at angles of incidence from
! 0 to 90 degrees in 10 degree increments.
! METHODOLOGY EMPLOYED:
! By Simpson's rule, evaluates the integral from 0 to 90 deg of
! 2*PropertyValue(phi)*cos(phi)*sin(phi)*dphi (which is same as
! PropertyValue(phi)*sin(2*phi)*dphi)
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
REAL(r64) :: PropertyValue(10) ! Property value at angles of incidence
! 0,10,20,...,80,90 degress
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
REAL(r64), PARAMETER :: DPhiR = 10.d0*DegToRadians ! Half of 10-deg incidence angle increment (radians)
INTEGER :: IPhi ! Incidence angle counter
! FLOW
DiffuseAverage = 0.0d0
DO IPhi = 1,9
DiffuseAverage = DiffuseAverage + 0.5d0*DPhiR* &
(PropertyValue(IPhi)*SIN(2.d0*(IPhi-1)*DPhiR) + PropertyValue(IPhi+1)*SIN(2.d0*IPhi*DPhiR))
END DO
IF (DiffuseAverage < 0.0d0) DiffuseAverage=0.0d0
RETURN
END FUNCTION DiffuseAverage