Intel® Fortran provides OpenMP* Fortran compiler directives that comply with OpenMP Fortran Application Program Interface (API) specification Version 1.1 and most of Version 2.0.
To use these directives, you must specify compiler option -openmp (Linux and Mac OS X) or /Qopenmp (Windows).
This section discusses data scope attribute clauses, conditional compilation rules, nesting and binding rules, and the following directives:
Specifies that a specific memory location is to be updated dynamically.
Synchronizes all the threads in a team.
Restricts access for a block of code to only one thread at a time.
Specifies that the iterations of the immediately following DO loop must be executed in parallel.
Specifies synchronization points where the implementation must have a consistent view of memory.
Specifies a block of code to be executed by the master thread of the team.
Specifies a block of code to be executed sequentially.
Defines a parallel region.
Defines a parallel region that contains a single DO directive.
Defines a parallel region that contains SECTIONS directives.
Defines a parallel region that contains a single WORKSHARE directive.
Specifies a block of code to be divided among threads in a team (a worksharing area).
Specifies a block of code to be executed by only one thread in a team.
Defines a task region.
Specifies a wait on the completion of child tasks generated since the beginning of the current task.
Makes named common blocks private to a thread but global within the thread.
Divides the work of executing a block of statements or constructs into separate units.
The OpenMP parallel directives can be grouped into the categories shown in the following table:
Category |
Description |
---|---|
Parallel region |
Defines a parallel region: PARALLEL |
Task region |
Defines a task region: TASK |
Work-sharing |
Divide the execution of the enclosed block of code among the members of the team that encounter it: DO and SECTIONS |
Combined parallel work-sharing |
Shortcut for denoting a parallel region that contains only one work-sharing construct: PARALLEL DO and PARALLEL SECTIONS |
Synchronization |
Provide various aspects of synchronization; for example, access to a block of code, or execution order of statements within a block of code: ATOMIC, BARRIER, CRITICAL, FLUSH, MASTER, ORDERED, and TASKWAIT. |
Data Environment |
Control the data environment during the execution of parallel constructs: THREADPRIVATE |
Note that certain general directives and rules can affect DO loops. For more information, see Rules for General Directives that Affect DO Loops.
The OpenMP web site http://www.openmp.org/