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