Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r64), | intent(in) | :: | RHO_BT0 | |||
real(kind=r64), | intent(in) | :: | TAU_BT0 | |||
real(kind=r64), | intent(in) | :: | TAU_BB0 | |||
real(kind=r64), | intent(out) | :: | RHO_DD | |||
real(kind=r64), | intent(out) | :: | TAU_DD |
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 RB_DIFF(RHO_BT0, TAU_BT0, TAU_BB0, RHO_DD, TAU_DD)
! SUBROUTINE INFORMATION:
! AUTHOR John L. Wright and Nathan Kotey, University of Waterloo,
! Mechanical Engineering, Advanced Glazing System Laboratory
! DATE WRITTEN Unknown
! MODIFIED na
!
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Calculates roller blind diffuse-diffuse solar optical properties by integrating
! the corresponding properties over the hemisphere
!
! METHODOLOGY EMPLOYED:
! na
!
! REFERENCES:
! na
! USE STATEMENTS:
! na
!
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
REAL(r64), INTENT(IN) :: RHO_BT0 ! normal incidence beam-total reflectance
REAL(r64), INTENT(IN) :: TAU_BT0 ! normal incidence beam-total transmittance
! TAUFF_BT0 = TAUFF_BB0 + TAUFF_BD0
REAL(r64), INTENT(IN) :: TAU_BB0 ! normal incidence beam-beam transmittance
REAL(r64), INTENT(OUT) :: RHO_DD ! returned: diffuse-diffuse reflectance
REAL(r64), INTENT(OUT) :: TAU_DD ! returned: diffuse-diffuse transmittance
! SUBROUTINE PARAMETER DEFINITIONS:
CHARACTER(len=*), PARAMETER :: RoutineName='RB_DIFF: '
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
!
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: P( hipDIM)
REAL(r64) :: SumRefAndTran ! sum of the reflectance and transmittance
! Flow
RHO_DD = RHO_BT0
P( hipRHO_BT0) = RHO_BT0
P( hipTAU_BT0) = TAU_BT0
P( hipTAU_BB0) = TAU_BB0
TAU_DD = HEMINT( RB_F, 0, P)
IF (RHO_DD + TAU_DD > 1.0d0) THEN
SumRefAndTran = RHO_DD + TAU_DD
CALL ShowWarningMessage(RoutineName//'Roller blind diffuse-diffuse properties are inconsistent')
CALL ShowContinueError('...The diffuse-diffuse reflectance = '//TRIM(TrimSigDigits(RHO_DD,4)))
CALL ShowContinueError('...The diffuse-diffuse tansmittance = '//TRIM(TrimSigDigits(TAU_DD,4)))
CALL ShowContinueError('...Sum of diffuse reflectance and tansmittance = '//TRIM(TrimSigDigits(SumRefAndTran,4)))
CALL ShowContinueError('...This sum cannot be > 1.0. Transmittance will be reset to 1 minus reflectance')
TAU_DD = 1.0d0 - RHO_DD
END IF
RETURN
END SUBROUTINE RB_DIFF