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.
SUBROUTINE UpdateComplexWindows
          ! SUBROUTINE INFORMATION:
          !       AUTHOR         Joe Klems
          !       DATE WRITTEN   August 2011
          !       MODIFIED       B. Griffith, Nov. 2012 revised for detailed timestep integration mode
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS SUBROUTINE:
          ! Performs the shading-dependent initialization of the Complex Fenestration data;
          ! On first call, calls the one-time initializition
          ! METHODOLOGY EMPLOYED:
          ! <description>
          ! REFERENCES:
          ! na
          ! USE STATEMENTS:
  USE DataGlobals, ONLY: KickoffSizing, KickoffSimulation
  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:
  ! LOGICAL,SAVE    ::  Once  =.TRUE.  !Flag for insuring things happen once
  INTEGER    ::  NumStates    ! Number of states for a given complex fen
  INTEGER     ::  ISurf    !Index for sorting thru Surface array
  INTEGER    ::  IConst    !Index for accessing Construct array
  INTEGER    ::  IState    !Index identifying the window state for a particular window
  INTEGER    ::  IWind    !Index identifying a window in the WindowList
!
!
! !One-time initialization
!  IF (Once) THEN
!    ONCE = .FALSE.
!    CALL InitBSDFWindows
!    CALL CalcStaticProperties
!  ENDIF
  IF (NumComplexWind == 0) RETURN
  IF (KickoffSizing .or. KickoffSimulation) RETURN
   !Shading-dependent initialization; performed once for each shading period
   ! Initialize the geometric quantities
  DO IWind = 1 , NumComplexWind
    ISurf = WindowList( IWind )%SurfNo
    NumStates = ComplexWind( ISurf )%NumStates
    DO  IState = 1 , NumStates
      CALL CFSShadeAndBeamInitialization(ISurf, IState, ComplexWind(ISurf), &
        ComplexWind(ISurf)%Geom(IState), SurfaceWindow(ISurf)%ComplexFen%State(IState))
    END DO    !State loop
  END DO    !window loop
  RETURN
END SUBROUTINE UpdateComplexWindows