Compiler Directives: table

Each general directive name is preceded by the prefix cDEC$; for example, cDEC$ ALIAS. Each OpenMP* Fortran directive name is preceded by the prefix c$OMP; for example, c$OMP ATOMIC. The c in either can be a c, C, *, or ! in fixed-form source code; only ! in free-form source code.

General Directives
Name Description
ALIAS Specifies an alternate external name to be used when referring to external subprograms.
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 Specifies distribution for a DO loop.
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.
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.
INTEGER Selects default integer size.
IVDEP Assists the compiler's dependence analysis of iterative DO loops.
LOOP COUNT Specifies the loop count for a DO loop; this assists the optimizer.
MEMREF_CONTROL1 Lets you provide cache hints on prefetches, loads, and stores.
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.
NOPARALLEL Disables auto-parallelization for an immediately following DO loop.
NOOPTIMIZE Disables optimizations.
NOPREFETCH Disables a data prefetch from memory.
NOSTRICT (Default) Disables a previous STRICT directive.
NOSWP1 Disables software pipelining for a DO loop.
NOUNROLL Disables the unrolling of a DO loop.
NOVECTOR2 Disables vectorization of a DO loop.
OBJCOMMENT Specifies a library search path in an object file.
OPTIMIZE Enables optimizations.
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 starting addresses of derived-type items.
PARALLEL Enables auto-parallelization for an immediately following DO loop.
PREFETCH Enables a data prefetch from memory.
PSECT Modifies certain characteristics of a common block.
REAL Selects default real size.
STRICT Disables Intel® Visual Fortran features not in the language standard specified on the command line (Fortran 95 or Fortran 90).
SWP1 Enables software pipelining for a DO loop.
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.
VECTOR ALIGNED2 Specifies that all data is aligned in a DO loop.
VECTOR ALWAYS2 Enables vectorization of a DO loop.
VECTOR NONTEMPORAL2 Enables streaming storage.
VECTOR UNALIGNED2 Specifies that no data is aligned in a DO loop.
OpenMP Fortran Directives3
Name Description
ATOMIC Specifies that a specific memory location is to be updated dynamically.
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.
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.
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.
1 i64 only
2 i32, i64em
3 To use these directives, you must specify compiler option -openmp (Linux and Mac OS) or /Qopenmp (Windows).