インテル® Fortran コンパイラー XE 13.1 ユーザー・リファレンス・ガイド

Compiler Directives

The following tables list available compiler directives.

Some directives may perform differently on Intel® microprocessors than on non-Intel microprocessors.

Each general directive name is preceded by the prefix cDEC$ (or cDIR$); for example, cDEC$ ALIAS (or cDIR$ ALIAS).

Each OpenMP* Fortran directive name is preceded by the prefix c$OMP; for example, c$OMP ATOMIC.

Each OFFLOAD directive name is preceded by the prefix cDIR$; for example, cDIR$ OFFLOAD_TRANSFER. These directives only apply to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).

The c in the prefixes can be a c, C, *, or ! in fixed-form source code; it can only be a ! in free-form source code.

General Directives

Name

Description

ALIAS

Specifies an alternate external name to be used when referring to an external subprogram.

ASSUME_ALIGNED

Specifies that an entity in memory is aligned.

ATTRIBUTES

Applies attributes to variables and procedures.

DECLARE

Generates warning messages for undeclared variables.

DEFINE

Creates a variable whose existence can be tested during conditional compilation.

DISTRIBUTE POINT

Suggests a location at which a DO loop may be split.

ELSE

Marks the beginning of an alternative conditional-compilation block to an IF directive construct.

ELSEIF

Marks the beginning of an alternative conditional-compilation block to an IF directive construct.

ENDIF

Marks the end of a conditional-compilation block.

FIXEDFORMLINESIZE

Sets fixed-form line length. This directive has no effect on freeform code.

FORCEINLINE

Specifies that a routine should be inlined whenever the compiler can do so.

FREEFORM

Uses freeform format for source code.

IDENT

Specifies an identifier for an object module.

IF

Marks the beginning of a conditional-compilation block.

IF DEFINED

Marks the beginning of a conditional-compilation block.

INLINE

Specifies that the routines can be inlined.

INTEGER

Selects default integer size.

IVDEP

Assists the compiler's dependence analysis of iterative DO loops.

LOOP COUNT

Specifies the typical trip loop count for a DO loop; this assists the optimizer.

MESSAGE

Sends a character string to the standard output device.

NODECLARE

(Default) Turns off warning messages for undeclared variables.

NOFREEFORM

(Default) Uses standard FORTRAN 77 code formatting column rules.

NOFUSION

Prevents a loop from fusing with adjacent loops.

NOINLINE

Specifies that a routine should not be inlined.

NOPARALLEL

Disables auto-parallelization for an immediately following DO loop.

NOOPTIMIZE

Disables optimizations for the program unit.

NOPREFETCH1

Disables a data prefetch from memory.

NOSTRICT

(Default) Disables a previous STRICT directive.

NOUNROLL

Disables the unrolling of a DO loop.

NOUNROLL_AND_JAM

Disables loop unrolling and jamming.

NOVECTOR

Disables vectorization of a DO loop.

OBJCOMMENT

Specifies a library search path in an object file.

OPTIMIZE

Enables optimizations for the program unit.

OPTIONS

Controls whether fields in records and data items in common blocks are naturally aligned or packed on arbitrary byte boundaries.

PACK

Specifies the memory alignment of derived-type items.

PARALLEL

Helps auto-parallelization by assisting the compiler's dependence analysis of an immediately following DO loop.

PREFETCH1

Hints to the compiler to prefetch data from memory.

PSECT

Modifies certain characteristics of a common block.

REAL

Selects default real size.

SIMD

Requires and controls SIMD vectorization of loops.

STRICT

Disables Intel® Fortran features not in the language standard specified on the command line.

UNDEFINE

Removes a symbolic variable name created with the DEFINE directive.

UNROLL

Tells the compiler's optimizer how many times to unroll a DO loop.

UNROLL_AND_JAM

Enables loop unrolling and jamming.

VECTOR

Overrides default heuristics for vectorization of DO loops.

1i64em_mic only

To use the following directives, you must specify compiler option -openmp (Linux* OS and OS X*) or /Qopenmp (Windows* OS).

For more information on compiler option -openmp (Linux* OS and OS X*) and /Qopenmp (Windows* OS), refer to the option description in the Compiler Options reference.

OpenMP* Fortran Directives

Name

Description

ATOMIC

Specifies that a specific memory location is to be updated atomically.

BARRIER

Synchronizes all the threads in a team.

CRITICAL

Restricts access for a block of code to only one thread at a time.

DO

Specifies that the iterations of the immediately following DO loop must be executed in parallel.

FLUSH

Specifies synchronization points where the implementation must have a consistent view of memory.

MASTER

Specifies a block of code to be executed by the master thread of the team.

ORDERED

Specifies a block of code to be executed sequentially.

PARALLEL

Defines a parallel region.

PARALLEL DO

Defines a parallel region that contains a single DO directive.

PARALLEL SECTIONS

Defines a parallel region that contains SECTIONS directives.

PARALLEL WORKSHARE

Defines a parallel region that contains a single WORKSHARE directive.

SECTION

Appears within a SECTIONS directive construct to indicate a block (section) of code. It is optional for the first block of code within the SECTIONS directive construct.

SECTIONS

Specifies a block of code to be divided among threads in a team (a worksharing area).

SINGLE

Specifies a block of code to be executed by only one thread in a team.

TASK

Defines a task region.

TASKWAIT

Specifies a wait on the completion of child tasks generated since the beginning of the current task.

TASKYIELD

Specifies that the current task can be suspended in favor of execution of a different task.

THREADPRIVATE

Makes named common blocks private to a thread but global within the thread.

WORKSHARE

Divides the work of executing a block of statements or constructs into separate units.

OFFLOAD Directives

Name

Description

OFFLOAD

Causes the statement following the directive to execute on the target.

OFFLOAD BEGIN and END OFFLOAD

Cause a group of statements to be executed on the target.

OFFLOAD_TRANSFER

Initiates asynchronous data transfer, or initiates and completes synchronous data transfer.

OFFLOAD_WAIT

Specifies a wait for a previously initiated asynchronous activity.

Optimization Notice

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804

関連情報


このヘルプトピックについてのフィードバックを送信