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) or /Qopenmp (Windows). For information on how to use these directives, see your Optimizing Applications guide.
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.
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:
Categories of OpenMP Fortran Parallel Directives
Category | Description |
---|---|
Parallel region | Defines a parallel region: PARALLEL |
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, and ORDERED. |
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.
See Also