Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(CFSLAYER), | intent(in) | :: | L | |||
type(CFSLWP), | intent(inout) | :: | LLWP |
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.
LOGICAL FUNCTION VB_LWP(L, LLWP)
!
! FUNCTION INFORMATION:
! AUTHOR ASHRAE 1311-RP
!
! DATE WRITTEN unknown
! MODIFIED na
!
! RE-ENGINEERED na
! PURPOSE OF THIS FUNCTION:
! Return venetian blind longwave properties from slat properties and geometry.
! If not VB layer returns False.
!
!
! METHODOLOGY EMPLOYED:
! na
!
! REFERENCES:
! na
!
! USE STATEMENTS:
! na
!
IMPLICIT NONE
! FUNCTION ARGUMENT DEFINITIONS:
TYPE( CFSLAYER), INTENT(IN) :: L ! VB layer
TYPE( CFSLWP), INTENT(INOUT) :: LLWP ! returned: equivalent layer long wave properties
!
! FUNCTION PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
!
! FUNCTION LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: RHODFS_SLAT
REAL(r64) :: RHOUFS_SLAT
REAL(r64) :: RHOLF
REAL(r64) :: RHOLB
REAL(r64) :: TAULX
! Flow
VB_LWP = .FALSE.
IF (.NOT.IsVBLayer( L)) RETURN
! slat reflectances
RHODFS_SLAT = 1. - L%LWP_MAT%EPSLB - L%LWP_MAT%TAUL ! downward surface
RHOUFS_SLAT = 1. - L%LWP_MAT%EPSLF - L%LWP_MAT%TAUL ! upward surface
! TODO: are there cases where 2 calls not needed (RHODFS_SLAT == RHOUFS_SLAT??)
CALL VB_DIFF( L%S, L%W, DegToRadians*L%PHI_DEG, RHODFS_SLAT, RHOUFS_SLAT, L%LWP_MAT%TAUL, &
RHOLF, LLWP%TAUL)
LLWP%EPSLF = 1. - RHOLF - LLWP%TAUL
CALL VB_DIFF( L%S, L%W, -DegToRadians*L%PHI_DEG, RHODFS_SLAT, RHOUFS_SLAT, L%LWP_MAT%TAUL, &
RHOLB, TAULX)
LLWP%EPSLB = 1. - RHOLB - LLWP%TAUL
VB_LWP = .TRUE.
RETURN
END FUNCTION VB_LWP