Intel® Fortran Compiler 16.0 User and Reference Guide
OpenMP* Fortran Compiler Directive: Specifies that named variables, common blocks, functions, and subroutines are mapped to a device. This directive only applies to Intel® MIC Architecture.
!$OMP DECLARE TARGET [(list)]
list |
Is a list of one or more variables, functions, subroutines, or common blocks. If you specify more than one list item, they must be separated by commas. A common block name must appear between slashes (/ /); you cannot specify a blank common block. The specified list items can be used inside a target region that executes on the device. If the list item is a function or subroutine, it must not be a generic name, procedure pointer, or entry name. A device-specific version of the routine is created that can be called from a target region. If the list item is a variable:
You cannot specify the following variables in the DECLARE TARGET directive:
If the list item is a common block:
|
If you specify list, this directive can only appear in a specification part of a subroutine, function, program, or module.
If you do not specify list, the directive must appear in the specification part of the relevant subroutine, function, or interface block.
If a DECLARE TARGET directive is specified in an interface block for a procedure, it must match a DECLARE TARGET directive in the definition of the procedure.
If a procedure is declared in a procedure declaration statement, any DECLARE TARGET directive containing the procedure name must appear in the same specification part.
The following additional rules apply to variables and common blocks:
The DECLARE TARGET directive must appear in the declaration section of a scoping unit in which the common block or variable is declared.
If a variable or common block is declared with the BIND attribute, the corresponding C entities must also be specified in a DECLARE TARGET directive in the C program.