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

ID 767251
Date 6/24/2024
Public
Document Table of Contents

Categories for OpenMP* Fortran Directives

OpenMP* Fortran directives can be categorized as shown in the following tables.

Parallelism

OpenMP* Fortran Directive

Use this directive to form a team of threads and execute those threads in parallel.

PARALLEL

Use these directives for deferring execution.

Tasking

OpenMP* Fortran Directives

Use these directives for deferring execution.

TASK

TASKLOOP

Worksharing

OpenMP* Fortran Directives

Use these directives to share work among a team of threads.

DO Directive

LOOP Directive (ifx)

SECTIONS

SCOPE (ifx)

SINGLE

WORKSHARE

Synchronization

OpenMP* Fortran Directives

Use these directives to synchronize between threads.

ATOMIC

BARRIER

CRITICAL Directive

FLUSH Directive

MASKED (ifx)

MASTER (deprecated, see MASKED)

ORDERED

TASKGROUP

TASKWAIT

TASKYIELD

Data Environment

OpenMP* Fortran Directives

Use these directives to affect the data environment.

DECLARE MAPPER (ifx)

DEPOBJ (ifx)

GROUPPRIVATE(ifx)

PREFETCH DATA language extension (ifx)

THREADPRIVATE

Offload Target Control

OpenMP* Fortran Directives

Use these directives to control execution on one or more offload targets.

DECLARE TARGET (ifx)

DECLARE VARIANT (ifx)

DISPATCH (ifx)

DISTRIBUTE

INTEROP (ifx)

REQUIRES (ifx)

TARGET Directive (ifx)

TARGET DATA (ifx)

TARGET ENTER DATA (ifx)

TARGET EXIT DATA (ifx)

TARGET UPDATE (ifx)

TEAMS (ifx)

Vectorization

OpenMP* Fortran Directives

Use these directives to control execution on vector hardware.

DECLARE SIMD

SCAN

SIMD Directive (OpenMP*)

Loop Transformation

OpenMP* Fortran Directives

Use these directives to transform or restructure loops.

TILE (ifx)

UNROLL (ifx)

Cancellation

OpenMP* Fortran Directives

Use these constructs to cancel an innermost enclosing region or to check if cancellation is in effect.

CANCEL

CANCELLATION POINT

Memory Space Allocation

OpenMP* Fortran Directives

Use these declarative directives to allocate memory space.

ALLOCATE (ifx)

ALLOCATORS (ifx)

User-Defined Reduction

OpenMP* Fortran Directive

Use this directive to declare a user-defined reduction operation.

DECLARE REDUCTION

Utility and Informational

OpenMP* Fortran Directives

Use these directives to get utility or informational data.

Utility directives: These directives provide information that aids code readability, and may facilitate interactions with the implementation. Utility directives are informational unless an action time (AT) clause in an ERROR directive specifies EXECUTION; this makes the directive executable.

Informational directives: These directives provide implementation information about properties of the code, which may aid in optimization.

ASSUMES (ifx)

ERROR (ifx)

NOTHING (ifx)

Metadirectives

OpenMP* Fortran Directive

Use this directive to conditionally select another directive.

METADIRECTIVE (ifx)

Combined and Composites

OpenMP* Fortran Directives

Combined directives: These are shortcuts for multiple directives in sequence. This kind of construct is a shortcut for specifying one construct immediately nested inside another construct. A combined construct is semantically identical to that of explicitly specifying the first construct containing one instance of the second construct and no other statements.

Composite construct: These constructs are composed of two constructs but they do not have identical semantics to specifying one of the constructs immediately nested inside the other. This kind of construct either adds semantics not included in the constructs from which it is composed or the nesting of the one construct inside the other is not conforming.

DISTRIBUTE PARALLEL DO1

DISTRIBUTE PARALLEL DO SIMD1

DISTRIBUTE SIMD1

DO SIMD1

MASKED TASKLOOP (ifx)

MASKED TASKLOOP SIMD (ifx)

MASTER TASKLOOP (ifx)

MASTER TASKLOOP SIMD (ifx)

PARALLEL DO

PARALLEL DO SIMD

PARALLEL LOOP (ifx)

PARALLEL MASKED (ifx)

PARALLEL MASKED TASKLOOP (ifx)

PARALLEL MASKED TASKLOOP SIMD (ifx)

PARALLEL MASTER (ifx)

PARALLEL MASTER TASKLOOP (ifx)

PARALLEL MASTER TASKLOOP SIMD (ifx)

PARALLEL SECTIONS

PARALLEL WORKSHARE

TARGET PARALLEL

TARGET PARALLEL DO

TARGET PARALLEL DO SIMD

TARGET PARALLEL LOOP (ifx)

TARGET SIMD

TARGET TEAMS

TARGET TEAMS DISTRIBUTE

TARGET TEAMS DISTRIBUTE PARALLEL DO

TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD

TARGET TEAMS DISTRIBUTE SIMD

TARGET TEAMS LOOP (ifx)

TASKLOOP SIMD 1

TEAMS DISTRIBUTE

TEAMS DISTRIBUTE PARALLEL DO

TEAMS DISTRIBUTE PARALLEL DO SIMD

TEAMS DISTRIBUTE SIMD

TEAMS LOOP (ifx)

1 This is a composite construct.