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 | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | VariableName | |||
| integer, | intent(in) | :: | StackNum | 
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.
FUNCTION FindEMSVariable(VariableName, StackNum) RESULT(VariableNum)
          ! FUNCTION INFORMATION:
          !       AUTHOR         Peter Graham Ellis
          !       DATE WRITTEN   June 2006
          !       MODIFIED       na
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS FUNCTION:
          !
          ! METHODOLOGY EMPLOYED:
          !
          ! USE STATEMENTS:
  USE InputProcessor, ONLY: MakeUpperCase
  IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
          ! FUNCTION ARGUMENT DEFINITIONS:
  CHARACTER(len=*), INTENT(IN)   :: VariableName ! variable name in Erl
  INTEGER, INTENT(IN)            :: StackNum
  INTEGER                        :: VariableNum
          ! FUNCTION LOCAL VARIABLE DECLARATIONS:
  LOGICAL                        :: Found
  CHARACTER(len=MaxNameLength)   :: UppercaseName
  INTEGER                        :: TrendVarNum
          ! FLOW:
  Found = .FALSE.
  UppercaseName = MakeUpperCase(VariableName)
  ! check in ErlVariables
  DO VariableNum = 1, NumErlVariables
    IF (ErlVariable(VariableNum)%Name == UppercaseName) THEN
      IF ((ErlVariable(VariableNum)%StackNum == StackNum) .OR. (ErlVariable(VariableNum)%StackNum == 0)) THEN
        Found = .TRUE.
        EXIT
      END IF
    END IF
  END DO
  !check in Trend variables
  DO TrendVarNum = 1, NumErlTrendVariables
    IF (TrendVariable(TrendVarNum)%Name == UppercaseName) THEN
      VariableNum = TrendVariable(TrendVarNum)%ErlVariablePointer
      IF ((ErlVariable(VariableNum)%StackNum == StackNum) .OR. (ErlVariable(VariableNum)%StackNum == 0)) THEN
        Found = .TRUE.
        EXIT
      END IF
    ENDIF
  ENDDO
  IF (.NOT. Found) VariableNum = 0
  RETURN
END FUNCTION FindEMSVariable