| 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