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 AllocateModuleArrays
          ! SUBROUTINE INFORMATION:
          !       AUTHOR         Rick Strand
          !       DATE WRITTEN   February 1998
          !       MODIFIED       na
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS SUBROUTINE:
          ! This subroutine allocates all of the arrays at the module level which
          ! require allocation.
          ! METHODOLOGY EMPLOYED:
          ! Allocation is dependent on the user input file.
          ! REFERENCES:
          ! na
          ! USE STATEMENTS:
          ! na
  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:
          ! na
          ! FLOW:
  ALLOCATE (ShadeV(TotSurfaces))
  ShadeV%NVert=0
  ! Individual components (XV,YV,ZV) allocated in routine ProcessSurfaceVertices
  ALLOCATE (X0(TotSurfaces))
  X0=0.0d0
  ALLOCATE (Y0(TotSurfaces))
  Y0=0.0d0
  ALLOCATE (Z0(TotSurfaces))
  Z0=0.0d0
  ALLOCATE (CBZone(NumOfZones))
  CBZone=0.0d0
  ALLOCATE (DSZone(NumOfZones))
  DSZone=0.0d0
  ALLOCATE (DGZone(NumOfZones))
  DGZone=0.0d0
  ALLOCATE (DBZone(NumOfZones))
  DBZone=0.0d0
  ALLOCATE (DBZoneSSG(NumOfZones))
  DBZoneSSG = 0.0d0
  ALLOCATE (QSDifSol(NumOfZones))
  QSDifSol=0.0d0
  ALLOCATE (AISurf(TotSurfaces))
  AISurf=0.0d0
  ALLOCATE (AOSurf(TotSurfaces))
  AOSurf=0.0d0
  ALLOCATE (BmToBmReflFacObs(TotSurfaces))
  BmToBmReflFacObs=0.0d0
  ALLOCATE (BmToDiffReflFacObs(TotSurfaces))
  BmToDiffReflFacObs=0.0d0
  ALLOCATE (BmToDiffReflFacGnd(TotSurfaces))
  BmToDiffReflFacGnd=0.0d0
  ALLOCATE (AWinSurf(TotSurfaces,CFSMAXNL+1))
  AWinSurf=0.0d0
  ALLOCATE (AWinCFOverlap(TotSurfaces,MaxSolidWinLayers))
  AWinCFOverlap=0.0d0
  RETURN
END SUBROUTINE AllocateModuleArrays