| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | iSurf | |||
| integer, | intent(in) | :: | iState | 
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 AllocateCFSStateHourlyData(iSurf, iState)
  ! SUBROUTINE INFORMATION:
          !       AUTHOR         Simon Vidanovic
          !       DATE WRITTEN   May 2013
          !       MODIFIED       na
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS SUBROUTINE:
          ! Allocate hourly data arrays for complex fenestration state
          ! METHODOLOGY EMPLOYED:
          ! na
          ! REFERENCES:
          ! na
          ! USE STATEMENTS:
          ! na
  IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
          ! SUBROUTINE ARGUMENT DEFINITIONS:
          INTEGER, INTENT(IN) :: iSurf ! Surface number
          INTEGER, INTENT(IN) :: iState ! Complex fenestration state number
          ! SUBROUTINE PARAMETER DEFINITIONS:
          ! na
          ! INTERFACE BLOCK SPECIFICATIONS:
          ! na
          ! DERIVED TYPE DEFINITIONS:
          ! na
          ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
          INTEGER :: NLayers ! Number of complex fenestration layers
          INTEGER :: NBkSurf ! Number of back surfaces
          INTEGER :: KBkSurf ! Back surfaces counter
          NLayers = SurfaceWindow(iSurf)%ComplexFen%State(iState)%NLayers
          NBkSurf = ComplexWind(iSurf)%NBkSurf
          ALLOCATE(ComplexWind(iSurf)%Geom(iState)%SolBmGndWt(ComplexWind(iSurf)%Geom(iState)%NGnd, 24, NumOfTimeStepInHour))
          ALLOCATE(ComplexWind(iSurf)%Geom(iState)%SolBmIndex(24, NumOfTimeStepInHour))
          ALLOCATE(ComplexWind(iSurf)%Geom(iState)%ThetaBm(24, NumOfTimeStepInHour))
          ALLOCATE(ComplexWind(iSurf)%Geom(iState)%PhiBm(24, NumOfTimeStepInHour))
          ALLOCATE(SurfaceWindow(iSurf)%ComplexFen%State(iState)%WinDirHemiTrans(24, NumOfTimeStepInHour))
          ALLOCATE(SurfaceWindow(iSurf)%ComplexFen%State(iState)%WinDirSpecTrans(24, NumOfTimeStepInHour))
          ALLOCATE(SurfaceWindow(iSurf)%ComplexFen%State(iState)%WinBmGndTrans(24, NumOfTimeStepInHour))
          ALLOCATE(SurfaceWindow(iSurf)%ComplexFen%State(iState)%WinBmFtAbs(NLayers, 24, NumOfTimeStepInHour))
          ALLOCATE(SurfaceWindow(iSurf)%ComplexFen%State(iState)%WinBmGndAbs(NLayers ,24, NumOfTimeStepInHour))
          ALLOCATE(SurfaceWindow(iSurf)%ComplexFen%State(iState)%WinToSurfBmTrans (NBkSurf ,24 ,NumOfTimeStepInHour))
          ALLOCATE(SurfaceWindow(iSurf)%ComplexFen%State(iState)%BkSurf(NBkSurf))
          DO KBkSurf  = 1 , NBkSurf
            ALLOCATE(SurfaceWindow(iSurf)%ComplexFen%State(iState)%BkSurf(KBkSurf)%WinDHBkRefl(24, NumOfTimeStepInHour))
            ALLOCATE(SurfaceWindow(iSurf)%ComplexFen%State(iState)%BkSurf(KBkSurf)%WinDirBkAbs(NLayers , 24, NumOfTimeStepInHour))
          END DO
  RETURN
END SUBROUTINE AllocateCFSStateHourlyData