Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | inReportName | |||
character(len=*), | intent(in) | :: | inReportAbrev | |||
character(len=*), | intent(in) | :: | inReportNamewithSpaces |
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 newPreDefReport(inReportName,inReportAbrev,inReportNamewithSpaces)
! SUBROUTINE INFORMATION:
! AUTHOR Jason Glazer
! DATE WRITTEN August 2006
! MODIFIED
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Creates a new index for the next predefined report
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
CHARACTER(len=*),INTENT(IN) :: inReportName
CHARACTER(len=*),INTENT(IN) :: inReportAbrev
CHARACTER(len=*),INTENT(IN) :: inReportNamewithSpaces
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
IF (.NOT. ALLOCATED(ReportName)) THEN
ALLOCATE(ReportName(sizeIncrement))
sizeReportName = sizeIncrement
numReportName = 1
ELSE
numReportName = numReportName + 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 (numReportName .GT. sizeReportName) THEN
ALLOCATE(reportNameCopy(sizeReportName))
reportNameCopy = reportName
DEALLOCATE(reportName)
ALLOCATE(reportName(sizeReportName + sizeIncrement))
reportName(1:sizeReportName) = reportNameCopy
DEALLOCATE(reportNameCopy)
sizeReportName = sizeReportName + sizeIncrement
END IF
END IF
! initialize new record
reportName(numReportName)%name = inReportName
reportName(numReportName)%abrev = inReportAbrev
reportName(numReportName)%namewithspaces = inReportNamewithSpaces
reportName(numReportName)%show = .FALSE.
newPreDefReport = numReportName
END FUNCTION newPreDefReport