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 | |||
integer, | intent(inout) | :: | NumZones | |||
character(len=*), | ALLOCATABLE, DIMENSION(:) | :: | ZoneNames | |||
integer, | intent(inout) | :: | NumZoneLists | |||
type(ZoneListData), | ALLOCATABLE, DIMENSION(:) | :: | ZoneListNames |
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 GetZoneAndZoneListNames(ErrorsFound,NumZones,ZoneNames,NumZoneLists,ZoneListNames)
! SUBROUTINE INFORMATION:
! AUTHOR Linda Lawrie
! DATE WRITTEN October 2010
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Get Zone and ZoneList Names so Sizing:Zone can use global ZoneList.
! This is not a full validation of these objects -- only enough to fill
! structures for the Sizing:Zone object.
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
USE InputProcessor, ONLY: GetNumObjectsFound, GetObjectItem, VerifyName, FindItemInList
USE DataIPShortCuts
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
LOGICAL, INTENT(INOUT) :: ErrorsFound
INTEGER, INTENT(INOUT) :: NumZones
CHARACTER(len=*), ALLOCATABLE, DIMENSION(:) :: ZoneNames
INTEGER, INTENT(INOUT) :: NumZoneLists
TYPE(ZoneListData), ALLOCATABLE, DIMENSION(:) :: ZoneListNames
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: Item
INTEGER :: Found
INTEGER :: Item1
INTEGER :: NumAlphas
INTEGER :: NumNumbers
INTEGER :: IOStatus
LOGICAL :: InErrFlag ! Preserve (no current use) the input status of ErrorsFound
InErrFlag=ErrorsFound
cCurrentModuleObject='Zone'
NumZones=GetNumObjectsFound(cCurrentModuleObject)
ALLOCATE(ZoneNames(NumZones))
DO Item=1,NumZones
CALL GetObjectItem(cCurrentModuleObject,Item,cAlphaArgs,NumAlphas,rNumericArgs,NumNumbers,IOStatus, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
! validation, but no error
Found=FindItemInList(cAlphaArgs(1),ZoneNames,Item-1)
IF (Found == 0) THEN
ZoneNames(Item)=cAlphaArgs(1)
ELSE
ZoneNames(Item)='xxxxx'
ENDIF
ENDDO
cCurrentModuleObject='ZoneList'
NumZoneLists=GetNumObjectsFound(cCurrentModuleObject)
ALLOCATE(ZoneListNames(NumZoneLists))
DO Item=1,NumZoneLists
CALL GetObjectItem(cCurrentModuleObject,Item,cAlphaArgs,NumAlphas,rNumericArgs,NumNumbers,IOStatus, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
! validation, but no error
Found=FindItemInList(cAlphaArgs(1),ZoneListNames%Name,Item-1)
IF (Found == 0) THEN
ZoneListNames(Item)%Name=cAlphaArgs(1)
ELSE
ZoneListNames(Item)%Name='xxxxx'
ENDIF
ALLOCATE(ZoneListNames(Item)%Zones(NumAlphas-1))
ZoneListNames(Item)%NumOfZones=NumAlphas-1
DO Item1=2,NumAlphas
Found=FindItemInList(cAlphaArgs(Item1),ZoneNames,NumZones)
ZoneListNames(Item)%Zones(Item1-1)=Found
ENDDO
ENDDO
RETURN
END SUBROUTINE GetZoneAndZoneListNames