Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(CFSLAYER), | intent(inout) | :: | L |
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 FinalizeCFSLAYER(L)
!
! 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:
! Sets equivalent layer properties of a construction.
!
!
! METHODOLOGY EMPLOYED:
! na
!
! REFERENCES:
! na
!
! USE STATEMENTS:
! na
!
IMPLICIT NONE
! SUBROUTINE ARGUMENT DEFINITIONS:
TYPE( CFSLAYER), INTENT( INOUT) :: L ! layer, input: LTYPE, LWP_MAT, SWP_MAT
! geometry (per LTYPE)
! output: LWP_EL, SWP_EL
!
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
!
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
LOGICAL :: LOK
LOGICAL :: DOK
LOGICAL :: BOK
LOGICAL :: CFSLAYERFlag
! Flow
LOK = .FALSE.
DOK = .FALSE.
BOK = .FALSE.
IF (IsVBLayer( L)) THEN
LOK = VB_LWP( L, L%LWP_EL)
DOK = VB_SWP( L, L%SWP_EL) ! SW diffuse
BOK = VB_SWP( L, L%SWP_EL, 0.0d0) ! SW properties w/ profile ang = 0
ELSE
L%PHI_DEG = 0.0d0 ! phi, C, CNTRL are VB only
L%C = 0.0d0
L%CNTRL = lscNONE
IF (L%LTYPE == ltyDRAPE) THEN
LOK = PD_LWP( L, L%LWP_EL)
DOK = PD_SWP( L, L%SWP_EL) ! SW diffuse
BOK = PD_SWP( L, L%SWP_EL, 0.0d0, 0.0d0) ! SW properties w/ profile angs = 0
ELSE IF (L%LTYPE == ltyINSCRN) THEN
LOK = IS_LWP( L, L%LWP_EL) ! LW
DOK = IS_SWP( L, L%SWP_EL) ! SW diffuse
BOK = IS_SWP( L, L%SWP_EL, 0.0d0) ! SW beam w/ theta = 0
ELSE
L%S = 0.0d0 ! geometry mbrs unused
L%W = 0.0d0
IF (L%LTYPE == ltyROLLB) THEN
LOK = RB_LWP( L, L%LWP_EL) ! LW
DOK = RB_SWP( L, L%SWP_EL) ! SW diffuse
BOK = RB_SWP( L, L%SWP_EL, 0.0d0) ! SW beam w/ theta = 0
!ELSE IF (ISGZSLayer( L)) THEN
! spectral glazing. Set layer xxx_MAT from GZS file data
! BOK = GZSLayerInit( L) .EQ. 0
! L%SWP_EL = L%SWP_MAT
! L%LWP_EL = L%LWP_MAT
! LOK = .TRUE.
! DOK = .TRUE.
ELSE
! glazing
L%SWP_EL = L%SWP_MAT
L%LWP_EL = L%LWP_MAT
LOK = .TRUE.
DOK = .TRUE.
BOK = .TRUE.
END IF
END IF
END IF
CFSLAYERFlag = LOK .AND. DOK .AND. BOK
RETURN
END SUBROUTINE FinalizeCFSLAYER