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 DayltgInteriorTDDIllum
! SUBROUTINE INFORMATION:
! AUTHOR Linda Lawrie
! DATE WRITTEN October 2006
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Calculate the TDD Pipe illuminance values
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
! na
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: PipeNum ! TDD pipe object number
REAL(r64) :: TDDTransVisDiffNow ! TDD diffuse visible transmittance at the current hour
REAL(r64) :: TDDTransVisDiffPrev ! TDD diffuse visible transmittance at the previous hour
REAL(r64) :: TDDTransVisDiff(4) ! Weighted diffuse visible transmittance for each sky type
INTEGER :: ISky ! Sky type index
INTEGER :: ISky1, ISky2 ! Sky type index values for averaging two sky types
REAL(r64) :: SkyWeight ! Weighting factor used to average two different sky types
IF (SkyClearness > 3.0d0) THEN ! Sky is average of clear and clear turbid
SkyWeight = MIN(1.0d0,(SkyClearness-3.d0)/3.d0)
ISky1 = 1
ISky2 = 2
ELSE IF (SkyClearness > 1.2d0) THEN ! Sky is average of clear turbid and intermediate
SkyWeight = (SkyClearness - 1.2d0)/1.8d0
ISky1 = 2
ISky2 = 3
ELSE ! Sky is average of intermediate and overcast
SkyWeight = MIN(1.0d0, MAX(0.0d0, (SkyClearness-1.d0)/0.2d0, (SkyBrightness-0.05d0)/0.4d0))
ISky1 = 3
ISky2 = 4
END IF
! Calculate and report TDD visible transmittances
DO PipeNum = 1, NumOfTDDPipes
TDDPipe(PipeNum)%TransVisBeam = WeightNow * TDDTransVisBeam(PipeNum,HourOfDay) &
+ WeightPreviousHour * TDDTransVisBeam(PipeNum,PreviousHour)
DO ISky = 1,4
IF (TDDFluxInc(PipeNum,ISky,HourOfDay) > 0.0d0) THEN
TDDTransVisDiffNow = TDDFluxTrans(PipeNum,ISky,HourOfDay) / TDDFluxInc(PipeNum,ISky,HourOfDay)
ELSE
TDDTransVisDiffNow = 0.0d0
END IF
IF (TDDFluxInc(PipeNum,ISky,PreviousHour) > 0.0d0) THEN
TDDTransVisDiffPrev = TDDFluxTrans(PipeNum,ISky,PreviousHour) / TDDFluxInc(PipeNum,ISky,PreviousHour)
ELSE
TDDTransVisDiffPrev = 0.0d0
END IF
TDDTransVisDiff(ISky) = WeightNow * TDDTransVisDiffNow + WeightPreviousHour * TDDTransVisDiffPrev
END DO ! ISky
TDDPipe(PipeNum)%TransVisDiff = SkyWeight * TDDTransVisDiff(ISky1) + (1.0d0 - SkyWeight) * TDDTransVisDiff(ISky2)
END DO ! PipeNum
RETURN
END SUBROUTINE DayltgInteriorTDDIllum