Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | ProposedSection | |||
logical, | intent(inout) | :: | ErrorsFound |
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 AddSectionDef(ProposedSection,ErrorsFound)
! SUBROUTINE INFORMATION:
! AUTHOR Linda K. Lawrie
! DATE WRITTEN August 1997
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine adds a new section to SectionDefs.
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
! na
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
CHARACTER(len=*), INTENT(IN) :: ProposedSection ! Proposed Section to be added
LOGICAL, INTENT(INOUT) :: ErrorsFound ! set to true if errors found here
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
CHARACTER(len=MaxSectionNameLength) SqueezedSection ! Input Argument, Left-Justified and Uppercase
LOGICAL ErrFlag ! Local error flag. When True, Proposed Section is not added to global list
SqueezedSection=MakeUPPERCase(ADJUSTL(ProposedSection))
IF (LEN_TRIM(ADJUSTL(ProposedSection)) > MaxSectionNameLength) THEN
CALL ShowWarningError('IP: Section length exceeds maximum, will be truncated='//TRIM(ProposedSection),EchoInputFile)
CALL ShowContinueError('Will be processed as Section='//TRIM(SqueezedSection),EchoInputFile)
ErrorsFound=.true.
ENDIF
ErrFlag=.false.
IF (SqueezedSection /= Blank) THEN
IF (FindItemInList(SqueezedSection,SectionDef%Name,NumSectionDefs) > 0) THEN
CALL ShowSevereError('IP: Already a Section called '//TRIM(SqueezedSection)//'. This definition ignored.',EchoInputFile)
! Error Condition
ErrFlag=.true.
ErrorsFound=.true.
ENDIF
ELSE
CALL ShowSevereError('IP: Blank Sections not allowed. Review eplusout.audit file.',EchoInputFile)
ErrFlag=.true.
ErrorsFound=.true.
ENDIF
IF (.not. ErrFlag) THEN
NumSectionDefs=NumSectionDefs+1
SectionDef(NumSectionDefs)%Name=SqueezedSection
SectionDef(NumSectionDefs)%NumFound=0
ENDIF
RETURN
END SUBROUTINE AddSectionDef