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

ID 767251
Date 3/22/2024
Public
Document Table of Contents

qopenmp-threadprivate, Qopenmp-threadprivate

Lets you specify an OpenMP* threadprivate implementation.

Syntax

Linux:

-qopenmp-threadprivate=type

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 runtime library may not be compatible with object files created using OpenMP runtime 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.

IDE Equivalent

None

Alternate Options

None

See Also