Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(CFSLAYER), | intent(in) | :: | L | |||
real(kind=r64), | intent(in) | :: | THETA | |||
real(kind=r64), | intent(in) | :: | OMEGA_V | |||
real(kind=r64), | intent(in) | :: | OMEGA_H | |||
type(CFSSWP), | intent(out) | :: | LSWP_ON |
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 ASHWAT_OffNormalProperties(L, THETA, OMEGA_V, OMEGA_H, LSWP_ON)
!
! SUBROUTINE INFORMATION:
! AUTHOR JOHN L. WRIGHT, University of Waterloo, Mechanical Engineering
! Advanced Glazing System Laboratory
! DATE WRITTEN unknown
! MODIFIED na
!
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Returns off-normal properties (total solar, beam-beam and beam diffuse) given
! direct-normal, total solar, beam-beam and beam diffuse properties of layers
!
! METHODOLOGY EMPLOYED:
! na
!
!
! REFERENCES:
! na
!
! USE STATEMENTS:
! na
!
!
IMPLICIT NONE
! SUBROUTINE ARGUMENT DEFINITIONS:
TYPE( CFSLAYER), INTENT( IN) :: L ! layer for which to derive off-normal properties
! Used: LTYPE, SWP_EL, geometry
! Note: not altered (return is in LSWP_ON)
REAL(r64), INTENT( IN) :: THETA ! solar beam angle of incidence, from normal, radians
! 0 <= THETA <= PI/2
REAL(r64), INTENT( IN) :: OMEGA_V ! solar beam vertical profile angle, +=above horizontal, radians
! = solar elevation angle for a vertical wall with
! wall-solar azimuth angle equal to zero
REAL(r64), INTENT( IN) :: OMEGA_H ! solar beam horizontal profile angle, +=clockwise when viewed
! from above (radians)
! = wall-solar azimuth angle for a vertical wall
! Used for PD and vertical VB
TYPE (CFSSWP), INTENT( OUT) :: LSWP_ON ! returned: off-normal properties
!
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
LOGICAL :: OKAY
! Flow
LSWP_ON = L%SWP_EL ! init to normal properties
! calls below modify in place
IF (IsGlazeLayerX( L)) THEN
! specular glazing
! HBX note: ltyGZS here iff modelOption F=x; spectral cases elsewhere
CALL Specular_SWP( LSWP_ON, THETA)
ELSE IF (L%LTYPE == ltyVBHOR) THEN
OKAY = VB_SWP( L, LSWP_ON, OMEGA_V)
ELSE IF (L%LTYPE == ltyVBVER) THEN
OKAY = VB_SWP( L, LSWP_ON, OMEGA_H)
ELSE IF (L%LTYPE == ltyDRAPE) THEN
OKAY = PD_SWP( L, LSWP_ON, OMEGA_V, OMEGA_H)
ELSE IF (L%LTYPE == ltyROLLB) THEN
OKAY = RB_SWP( L, LSWP_ON, THETA)
ELSE IF (L%LTYPE == ltyINSCRN) THEN
OKAY = IS_SWP( L, LSWP_ON, THETA)
ELSE IF (L%LTYPE == ltyNONE .OR. L%LTYPE == ltyROOM) THEN
! none or room: do nothing
ELSE
! placeholder for add'l non-specular layers
ENDIF
RETURN
END SUBROUTINE ASHWAT_OffNormalProperties