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.
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 SetStormWindowControl
! SUBROUTINE INFORMATION:
! AUTHOR Fred Winkelmann
! DATE WRITTEN Jan 2004
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Sets the storm window flag for each window, which is:
! -1: if storm window is not applicable (this will always be the value for interior
! windows since storm windows can only be applied to exterior windows
! 0: if the window has a storm window but it is off
! 1: if the window has a storm window and it is on
! A "storm window" is a single layer of exterior glass separated from the main window by air gap.
! Whether the storm window is in place is determined by the following values, which
! which are specified in the Storm Window object for the window:
! -Month that Storm Window Is Put On
! -Day of Month that Storm Window Is Put On
! -Month that Storm Window Is Taken Off
! -Day of Month that Storm Window Is Taken Off
! REFERENCES:na
! USE STATEMENTS:
USE General, ONLY: BetweenDates
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE PARAMETER DEFINITIONS:na
! INTERFACE BLOCK SPECIFICATIONS:na
! DERIVED TYPE DEFINITIONS:na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: SurfNum ! Surface number
INTEGER :: StormWinNum ! Number of storm window object
INTEGER :: StormWinFlag ! Storm window flag; this routine sets the following values:
! 0: if the storm window is off this time step
! 1: if the storm window is on this time step
INTEGER :: DateOff ! Date Off for calculation
StormWinChangeThisDay = .false.
DO StormWinNum = 1,TotStormWin
SurfNum = StormWindow(StormWinNum)%BaseWindowNum
SurfaceWindow(SurfNum)%StormWinFlagPrevDay = SurfaceWindow(SurfNum)%StormWinFlag
DateOff=StormWindow(StormWinNum)%DateOff-1
! Note: Dateon = Dateoff is not allowed and will have produced an error in getinput.
IF (DateOff == 0) DateOff=366
IF (BetweenDates(DayOfYear_Schedule,StormWindow(StormWinNum)%DateOn,DateOff)) THEN
StormWinFlag=1
ELSE
StormWinFlag=0
ENDIF
SurfaceWindow(SurfNum)%StormWinFlag = StormWinFlag
IF(BeginSimFlag) SurfaceWindow(SurfNum)%StormWinFlagPrevDay = StormWinFlag
IF(SurfaceWindow(SurfNum)%StormWinFlag /= SurfaceWindow(SurfNum)%StormWinFlagPrevDay) StormWinChangeThisDay = .true.
END DO
RETURN
END SUBROUTINE SetStormWindowControl