Intel® Fortran Compiler Classic and Intel® Fortran Compiler Developer Guide and Reference

ID 767251
Date 9/08/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

qopenmp-threadprivate, Qopenmp-threadprivate

Lets you specify an OpenMP* threadprivate implementation.

Syntax

Linux:

-qopenmp-threadprivate=type

macOS:

None

Windows:

/Qopenmp-threadprivate:type

Arguments

type

Specifies the type of threadprivate implementation. Possible values are:

legacy

Tells the compiler to use the legacy OpenMP* threadprivate implementation used in the previous releases of the Intel® compiler. This setting does not provide compatibility with the implementation used by other compilers.

compat

Tells the compiler to use the compatibility OpenMP* threadprivate implementation based on applying the thread-local attribute to each threadprivate variable. This setting provides compatibility with the implementation provided by the Microsoft* and GNU* compilers.

Default

ifort: -qopenmp-threadprivate=legacy
or /Qopenmp-threadprivate:legacy

The compiler uses the legacy OpenMP* threadprivate implementation used in the previous releases of the Intel compiler.

ifx: -qopenmp-threadprivate=compat
or /Qopenmp-threadprivate:compat

The compiler uses the compatibility OpenMP* threadprivate implementation.

Description

This option lets you specify an OpenMP* threadprivate implementation.

The threadprivate implementation of the legacy OpenMP run-time library may not be compatible with object files created using OpenMP run-time libraries supported in other compilers.

To use this option, you must also specify one of the following compiler options:

  • Linux* systems: -qopenmp or -qopenmp-stubs

  • Windows* systems: /Qopenmp or /Qopenmp-stubs

The value specified for this option is independent of the value used for the [q or Q]openmp-lib option.

NOTE:

On Windows* systems, if you specify option /Qopenmp-threadprivate:compat, the compiler does not generate threadsafe code for common blocks in an !$OMP THREADPRIVATE directive unless at least one element in the common block is explicitly initialized.

NOTE:

On macOS systems, legacy is the only type of threadprivate supported. Option -qopenmp-threadprivate is not recognized by the compiler.

IDE Equivalent
None
Alternate Options

None

See Also