# TARGET PARALLEL DO

OpenMP* Fortran Compiler Directive: Provides an abbreviated way to specify a TARGET directive containing a PARALLEL DO directive and no other statements.

## Syntax

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

do-loop

[!$OMP END TARGET PARALLEL DO]

clause | Can be any of the clauses accepted by the TARGET or PARALLEL DO directives, except for the COPYIN clause.
do-loop | Is a DO iteration (a DO loop). It cannot be a DO WHILE or a DO loop without loop control. The DO loop iteration variable must be of type integer. You cannot branch out of a DO loop associated with a DO directive.

If the END TARGET PARALLEL DO directive is not specified, the TARGET PARALLEL DO is assumed at the end of do-loop. If used, the END TARGET PARALLEL DO directive must appear immediately after the end of do-loop.

The semantics are identical to explicitly specifying a TARGET directive immediately followed by a PARALLEL DO directive.

The restrictions for the TARGET and PARALLEL DO constructs apply to this directive except for the following:

- If any IF clause in the directive includes a directive-name-modifier then all IF clauses in the directive must include a directive-name-modifier.

- At most one IF clause with no directive-name-modifier can appear on the directive.

- At most one IF clause with the PARALLEL directive-name-modifier can appear on the directive.

- At most one IF clause with the TARGET directive-name-modifier can appear on the directive.

Parent topic: T to Z

## See Also

OpenMP Fortran Compiler Directives
Syntax Rules for Compiler Directives
IF Clause
TARGET Directive
PARALLEL DO