# TEAMS DISTRIBUTE SIMD

OpenMP* Fortran Compiler Directive: Creates a league of thread teams to execute the structured block in the primary thread of each team. It also specifies a loop that will be distributed across the primary threads of the teams region. The loop will be executed concurrently using SIMD instructions.

## Syntax

!$OMP TEAMS DISTRIBUTE SIMD [clause[[,] clause]... ]

do-loop

[!$OMP END TEAMS DISTRIBUTE SIMD]

clause | Can be any of the clauses accepted by the TEAMS or DISTRIBUTE SIMD directives with identical meanings and restrictions.
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.

This directive provides a shortcut for specifying a TEAMS construct immediately followed by a DISTRIBUTE SIMD construct. The effect of any clause that applies to both constructs is as if it were applied to both constructs separately.

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

Parent topic: T to Z

## See Also

OpenMP Fortran Compiler Directives
Syntax Rules for Compiler Directives