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

ID 767251
Date 6/24/2024
Public

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

Document Table of Contents

TARGET PARALLEL LOOP

OpenMP* Fortran Compiler Directive: Specifies a shortcut for specifying a parallel loop inside a TARGET construct that contains no other statements than the parallel loop. This feature is only available for ifx.

Syntax

!$OMP TARGET PARALLEL LOOP [clause[[,] clause]... ]

   do-loop

[!$OMP END TARGET PARALLEL LOOP]

clause

Can be any of the clauses accepted by the TARGET or PARALLEL LOOP constructs with identical meanings and restrictions.

do-loop

Is a DO loop that may contain other nested DO loops. The DO loops must all be in canonical form. The DO loop iteration variable must be of type integer.

The loop can be a DO CONCURRENT loop, subject to the rules specified for variables referenced in a DO CONCURRENT loop associated with LOOP and PARALLEL constructs.

This combined directive is semantically equivalent to a TARGET directive followed immediately by a PARALLEL LOOP construct. The restrictions for TARGET and PARALLEL LOOP constructs apply to this combined construct.

If used, the END TARGET PARALLEL LOOP directive must appear immediately after the end of the loop. If you do not specify an END TARGET PARALLEL LOOP directive, an END TARGET PARALLEL LOOP directive is assumed at the end of the do-loop.

If do-loop is a DO CONCURRENT loop, a variable that has SHARED locality in the DO CONCURRENT loop is treated as if it appears in a MAP clause with map-type TOFROM.