| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | subTableIndex | |||
| character(len=*), | intent(in) | :: | columnHeading | 
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.
INTEGER FUNCTION newPreDefColumn(subTableIndex,columnHeading)
          ! SUBROUTINE INFORMATION:
          !       AUTHOR         Jason Glazer
          !       DATE WRITTEN   August 2006
          !       MODIFIED
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS SUBROUTINE:
          !   Assigns the index variables for all predefined reports
          ! METHODOLOGY EMPLOYED:
          !   Simple assignments to public variables.
          ! REFERENCES:
          ! na
          ! USE STATEMENTS:
IMPLICIT NONE    ! Enforce explicit typing of all variables in this routine
          ! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER,INTENT(IN)                       :: subTableIndex
CHARACTER(len=*),INTENT(IN)  :: columnHeading
          ! SUBROUTINE PARAMETER DEFINITIONS:
          ! na
          ! INTERFACE BLOCK SPECIFICATIONS:
          ! na
          ! DERIVED TYPE DEFINITIONS:
          ! na
          ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
IF (.NOT. ALLOCATED(columnTag)) THEN
  ALLOCATE(columnTag(sizeIncrement))
  sizeColumnTag = sizeIncrement
  numColumnTag = 1
ELSE
  numColumnTag = numColumnTag + 1
  ! if larger then current size then make a temporary array of the same
  ! type and put stuff into it while reallocating the main array
  IF (numColumnTag .GT. sizeColumnTag) THEN
    ALLOCATE(columnTagCopy(sizeColumnTag))
    columnTagCopy = columnTag
    DEALLOCATE(columnTag)
    ALLOCATE(columnTag(sizeColumnTag + sizeIncrement))
    columnTag(1:sizeColumnTag) = columnTagCopy
    DEALLOCATE(columnTagCopy)
    sizeColumnTag = sizeColumnTag + sizeIncrement
  END IF
END IF
! initialize new record)
columnTag(numColumnTag)%heading = columnHeading
columnTag(numColumnTag)%indexSubTable = subTableIndex
newPreDefColumn = numColumnTag
END FUNCTION newPreDefColumn