Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 CheckUsedConstructions(ErrorsFound)
! SUBROUTINE INFORMATION:
! AUTHOR Linda Lawrie
! DATE WRITTEN August 2011
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Counts or details unused constructions.
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
USE General, ONLY: RoundSigDigits
USE InputProcessor, ONLY: GetNumObjectsFound,GetObjectItem
USE DataIPShortCuts
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
LOGICAL, INTENT(INOUT) :: ErrorsFound
! SUBROUTINE PARAMETER DEFINITIONS:
INTEGER,PARAMETER :: NumConstrObjects=5
CHARACTER(len=*), PARAMETER, DIMENSION(NumConstrObjects) :: ConstrObjects= &
(/'Pipe:Indoor ', &
'Pipe:Outdoor ', &
'Pipe:Underground ', &
'GroundHeatExchanger:Surface', &
'DaylightingDevice:Tubular '/)
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: Unused
INTEGER :: Loop
INTEGER :: NumObjects
INTEGER :: NumAlphas
INTEGER :: NumNumbers
INTEGER :: Status
INTEGER :: CNum
INTEGER :: ONum
LOGICAL :: InErrFlag ! Preserve (no current use) the input status of ErrorsFound
InErrFlag=ErrorsFound
! Needs to account for Pipe:HeatTransfer/indoor, etc constructions.
DO ONum=1,NumConstrObjects
NumObjects=GetNumObjectsFound(ConstrObjects(ONum))
DO Loop=1,NumObjects
CALL GetObjectItem(ConstrObjects(ONum),Loop,cAlphaArgs,NumAlphas,rNumericArgs,NumNumbers,Status)
IF (ONum /= 5) THEN
CNum=FindItemInList(cAlphaArgs(2),Construct%Name,TotConstructs)
ELSE
CNum=FindItemInList(cAlphaArgs(4),Construct%Name,TotConstructs)
ENDIF
IF (CNum == 0) CYCLE
Construct(CNum)%IsUsed=.true.
ENDDO
ENDDO
Unused=TotConstructs-Count(Construct%IsUsed)
IF (Unused > 0) THEN
IF (.not. DisplayExtraWarnings) THEN
CALL ShowWarningError('CheckUsedConstructions: There are '//trim(RoundSigDigits(Unused))// &
' nominally unused constructions in input.')
CALL ShowContinueError('For explicit details on each unused construction, use Output:Diagnostics,DisplayExtraWarnings;')
ELSE
CALL ShowWarningError('CheckUsedConstructions: There are '//trim(RoundSigDigits(Unused))// &
' nominally unused constructions in input.')
CALL ShowContinueError('Each Unused construction is shown.')
DO Loop=1,TotConstructs
IF (Construct(Loop)%IsUsed) CYCLE
CALL ShowMessage('Construction='//trim(Construct(Loop)%Name))
ENDDO
ENDIF
ENDIF
RETURN
END SUBROUTINE CheckUsedConstructions