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 FM_DIFF(RHO_BT0, TAU_BT0, TAU_BB0, RHO_DD, TAU_DD)
!
! 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:
! Calculates drape fabric diffuse-diffuse solar optical properties by integrating
! the corresponding beam 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 ! fabric beam-total reflectance at normal incidence
REAL(r64), INTENT(IN):: TAU_BT0 ! fabric beam-total transmittance at normal incidence
! (TAU_BT0 = TAU_BB0 + TAU_BD0)
REAL(r64), INTENT(IN):: TAU_BB0 ! forward facing fabric beam-beam transmittance at normal incidence
REAL(r64), INTENT(OUT):: RHO_DD ! returned: fabric diffuse-diffuse reflectance
REAL(r64), INTENT(OUT):: TAU_DD ! returned: fabric diffuse-diffuse transmittance
!
! SUBROUTINE PARAMETER DEFINITIONS:
CHARACTER(len=*), PARAMETER :: RoutineName='FM_DIFF: '
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: TAU_BD0
REAL(r64) :: P( hipDIM)
REAL(r64) :: SumRefAndTran
! flow
TAU_BD0 = TAU_BT0 - TAU_BB0
P( hipRHO_BT0) = RHO_BT0
P( hipTAU_BT0) = TAU_BT0
P( hipTAU_BB0) = TAU_BB0
RHO_DD = HEMINT( FM_F, hipRHO, P)
TAU_DD = HEMINT( FM_F, hipTAU, P)
IF (RHO_DD + TAU_DD > 1.0d0) THEN
SumRefAndTran = RHO_DD + TAU_DD
CALL ShowWarningMessage(RoutineName//'Calculated drape fabric 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 FM_DIFF