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

ID 767251
Date 11/07/2023
Public

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

Document Table of Contents

TEAMS DISTRIBUTE

OpenMP* Fortran Compiler Directive: Creates a league of thread teams to execute a structured block in the primary thread of each team. It also specifies that loop iterations will be distributed among the primary threads of all thread teams in a league created by a TEAMS construct.

Syntax

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

   do-loop

[!$OMP END TEAMS DISTRIBUTE]

clause

Can be any of the clauses accepted by the TEAMS or DISTRIBUTE 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 containing a DISTRIBUTE construct.

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