| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | varNum | |||
| type(ErlValueType), | intent(in) | :: | initialValue | |||
| logical, | intent(in) | :: | setToNull | 
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 ExternalInterfaceInitializeErlVariable(varNum, initialValue, setToNull)
          ! SUBROUTINE INFORMATION:
          !       AUTHOR         Michael Wetter
          !       DATE WRITTEN   February 2010
          !       MODIFIED       na
          !       RE-ENGINEERED  na
          ! PURPOSE OF THIS SUBROUTINE:
          ! This subroutine sets flags for ExternalInterface variables
          ! METHODOLOGY EMPLOYED:
          !
          ! USE STATEMENTS:
  IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
          ! SUBROUTINE ARGUMENT DEFINITIONS:
  INTEGER, INTENT(IN)     :: varNum  ! The variable index to be written during run time
  TYPE(ErlValueType), INTENT(IN) :: initialValue ! The initial value
  LOGICAL, INTENT(IN)     :: setToNull ! Flag, if true, value will be initialized to Null
          ! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
  ! Set initial value
  IF (setToNull) THEN
     ErlVariable(varNum)%Value%Type = ValueNull
  ELSE
     ErlVariable(varNum)%Value = initialValue
  ENDIF
  ! Set variables to read-only as we don't want that other programs write to them
  ErlVariable(varNum)%ReadOnly = .true.
  ! Set flag that it is used by the ExternalInterface. This is needed to make sure that the ExternalInterface
  ! interface writes only to ExternalInterface variables, and not to other ErlVariable
  ErlVariable(varNum)%SetByExternalInterface = .true.
  RETURN
END SUBROUTINE ExternalInterfaceInitializeErlVariable