OpenMP* Fortran Compiler Directives

Intel® Fortran supports OpenMP* Fortran compiler directives that comply with OpenMP Fortran Application Program Interface (API) specification 5.0 Version TR4, and some of the directives of the OpenMP Version 5.1 specification.

To use these directives, you must specify compiler option -qopenmp (Linux* and macOS*) or /Qopenmp (Windows*).

OpenMP directives are specially formatted Fortran comment lines embedded in the source file which provide the compiler with hints and suggestions for parallelization, optimization, vectorization, and offloading code to accelerator hardware. The compiler uses the information specified in the directives with compiler heuristic algorithms to generate more efficient code. At times, these heuristics may choose to ignore or override the information provided by a directive. If the directive is ignored by the compiler, no diagnostic message is issued.

Options that use OpenMP* are available for both Intel® microprocessors and non-Intel microprocessors, but these options may perform additional optimizations on Intel® microprocessors than they perform on non-Intel microprocessors. The list of major, user-visible OpenMP constructs and features that may perform differently on Intel® microprocessors vs. non-Intel microprocessors includes: locks (internal and user visible), the SINGLE construct, barriers (explicit and implicit), parallel loop scheduling, reductions, memory allocation, thread affinity, and binding.

This section discusses clauses used in multiple OpenMP* Fortran directives, conditional compilation rules, nesting and binding rules, and the following directives:

The OpenMP parallel directives can be grouped into the categories. For more information about the categories for these directives, see OpenMP* Directives Summary.

Product and Performance Information

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.

Notice revision #20201201

See Also