Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(CFSLAYER), | intent(in) | :: | L | |||
type(CFSSWP), | intent(inout) | :: | LSWP | |||
real(kind=r64), | intent(in), | optional | :: | THETA |
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 RB_SWP(L, LSWP, THETA)
!
! FUNCTION INFORMATION:
! AUTHOR ASHRAE 1311-RP
!
! DATE WRITTEN unknown
! MODIFIED na
!
! RE-ENGINEERED na
! PURPOSE OF THIS FUNCTION:
! Modifies roller blind shortwave properties. If not roller blind layer
! returns False.
!
!
! METHODOLOGY EMPLOYED:
! na
!
! REFERENCES:
! na
!
! USE STATEMENTS:
! na
!
IMPLICIT NONE
! FUNCTION ARGUMENT DEFINITIONS:
TYPE( CFSLAYER), INTENT(IN) :: L ! RB layer
TYPE( CFSSWP), INTENT(INOUT) :: LSWP ! returned: equivalent layer properties set
! sets ONLY RHOSFDD, RHOSBDD, TAUS_DD
REAL(r64), OPTIONAL, INTENT (IN) :: THETA ! incident angle, 0 <= theta <= PI/2
! if missing, derive diffuse properties
!
! FUNCTION PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! FUNCTION LOCAL VARIABLE DECLARATIONS:
LOGICAL :: DODIFFUSE
REAL(r64) :: RHOBF_BT0
REAL(r64) :: RHOFF_BT0
REAL(r64) :: TAUBF_BT0
REAL(r64) :: TAUFF_BT0
REAL(r64) :: TAUX
! Flow
RB_SWP = .FALSE.
IF (L%LTYPE /= ltyROLLB) RETURN
DODIFFUSE = .NOT. PRESENT( THETA)
! normal beam-total properties of fabric
RHOFF_BT0 = L%SWP_MAT%RHOSFBB + L%SWP_MAT%RHOSFBD ! front rho
RHOBF_BT0 = L%SWP_MAT%RHOSBBB + L%SWP_MAT%RHOSBBD ! back rho
TAUFF_BT0 = L%SWP_MAT%TAUSFBB + L%SWP_MAT%TAUSFBD ! front tau
TAUBF_BT0 = L%SWP_MAT%TAUSBBB + L%SWP_MAT%TAUSBBD ! back tau
IF (DODIFFUSE) THEN
! front
CALL RB_DIFF( RHOFF_BT0, TAUFF_BT0, L%SWP_MAT%TAUSFBB, &
LSWP%RHOSFDD, LSWP%TAUS_DD)
! back
CALL RB_DIFF( RHOBF_BT0, TAUBF_BT0, L%SWP_MAT%TAUSBBB, &
LSWP%RHOSBDD, TAUX)
ELSE
CALL RB_BEAM( THETA, RHOFF_BT0, TAUFF_BT0, L%SWP_MAT%TAUSFBB, &
LSWP%RHOSFBD, LSWP%TAUSFBB, LSWP%TAUSFBD)
CALL RB_BEAM( THETA, RHOBF_BT0, TAUBF_BT0, L%SWP_MAT%TAUSBBB, &
LSWP%RHOSBBD, LSWP%TAUSBBB, LSWP%TAUSBBD)
END IF
RB_SWP = .TRUE.
RETURN
END FUNCTION RB_SWP