Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ZoneNum |
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.
REAL(r64) FUNCTION SumHATsurf(ZoneNum)
! FUNCTION INFORMATION:
! AUTHOR Peter Graham Ellis
! DATE WRITTEN July 2003
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS FUNCTION:
! This function calculates the zone sum of Hc*Area*Tsurf. It replaces the old SUMHAT.
! The SumHATsurf code below is also in the CalcZoneSums subroutine in ZoneTempPredictorCorrector
! and should be updated accordingly.
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
USE DataSurfaces
USE DataHeatBalance
USE DataHeatBalSurface
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! FUNCTION ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: ZoneNum ! Zone number
! FUNCTION LOCAL VARIABLE DECLARATIONS:
INTEGER :: SurfNum ! Surface number
REAL(r64) :: Area ! Effective surface area
! FLOW:
SumHATsurf = 0.0d0
DO SurfNum = Zone(ZoneNum)%SurfaceFirst,Zone(ZoneNum)%SurfaceLast
IF (.NOT. Surface(SurfNum)%HeatTransSurf) CYCLE ! Skip non-heat transfer surfaces
Area = Surface(SurfNum)%Area
IF (Surface(SurfNum)%Class == SurfaceClass_Window) THEN
IF (SurfaceWindow(SurfNum)%ShadingFlag == IntShadeOn .OR. SurfaceWindow(SurfNum)%ShadingFlag == IntBlindOn) THEN
! The area is the shade or blind are = sum of the glazing area and the divider area (which is zero if no divider)
Area = Area + SurfaceWindow(SurfNum)%DividerArea
END IF
IF (SurfaceWindow(SurfNum)%FrameArea > 0.0d0) THEN
! Window frame contribution
SumHATsurf = SumHATsurf + HConvIn(SurfNum) * SurfaceWindow(SurfNum)%FrameArea &
* (1.0d0 + SurfaceWindow(SurfNum)%ProjCorrFrIn) * SurfaceWindow(SurfNum)%FrameTempSurfIn
END IF
IF (SurfaceWindow(SurfNum)%DividerArea > 0.0d0 .AND. SurfaceWindow(SurfNum)%ShadingFlag /= IntShadeOn &
.AND. SurfaceWindow(SurfNum)%ShadingFlag /= IntBlindOn) THEN
! Window divider contribution (only from shade or blind for window with divider and interior shade or blind)
SumHATsurf = SumHATsurf + HConvIn(SurfNum) * SurfaceWindow(SurfNum)%DividerArea &
* (1.0d0 + 2.0d0 * SurfaceWindow(SurfNum)%ProjCorrDivIn) * SurfaceWindow(SurfNum)%DividerTempSurfIn
END IF
END IF
SumHATsurf = SumHATsurf + HConvIn(SurfNum) * Area * TempSurfInTmp(SurfNum)
END DO
RETURN
END FUNCTION SumHATsurf