Intel® Fortran Compiler 16.0 User and Reference Guide

PARALLEL DO SIMD

OpenMP* Fortran Compiler Directive: Specifies a loop that can be executed concurrently using SIMD instructions. It provides a shortcut for specifying a PARALLEL construct containing one SIMD loop construct and no other statement.

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

      do-loop

[!$OMP END PARALLEL DO SIMD]

clause

Can be any of the clauses accepted by the PARALLEL, DO, or SIMD directives.

do-loop

Is one or more DO iterations (DO loops). The DO iteration cannot be a DO WHILE or a DO loop without loop control. The DO loop iteration variable must be of type integer.

All loops associated with the construct must be structured and perfectly nested; that is, there must be no intervening code and no other OpenMP* Fortran directives between any two loops.

The iterations of the DO loop are distributed across the existing team of threads. The values of the loop control parameters of the DO loop associated with a DO directive must be the same for all the threads in the team.

You cannot branch out of a DO loop associated with a DO SIMD directive.

If the END PARALLEL DO SIMD directive is not specified, an END PARALLEL DO SIMD directive is assumed at the end of do-loop.

You cannot specify NOWAIT in a PARALLEL DO SIMD directive.

See Also