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

ID 767251
Date 11/07/2023
Public

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

Document Table of Contents

ORDER Clause

Parallel Directive Clause: Specifies an order of execution for iterations of loops associated with a loop directive. This feature is only available for ifx.

Syntax

ORDER ([order-modifier:] CONCURRENT)

order-modifier

Is either REPRODUCIBLE or UNCONSTRAINED.

The ORDER clause provides an execution order schedule for iterations of loops associated with the loop construct the ORDER clause appears in. CONCURRENT indicates that the iterations of the loop may execute in any order, including concurrently.

The order-modifier affects the scheduling of loop iterations. If order-modifier is present and is REPRODUCIBLE, or if order-modifier is not specified, the construct has a reproducible schedule. If order-modifier is UNCONSTRAINED, the scheduling of loop iterations is not reproducible.

Inside a region that corresponds to a construct specifying the ORDER clause, the only constructs that are permitted are LOOP, SIMD, PARALLEL, or a combined construct whose first construct is PARALLEL. The region cannot contain calls to OpenMP* runtime API procedures, and it cannot contain calls to procedures that contain OpenMP directives.

When a program references a THREADPRIVATE variable from within a region associated with a construct specifying ORDER, the behavior is undefined.