Intel® Fortran Compiler 16.0 User and Reference Guide

DEPEND Clause

Parallel Directive Clause: Enforces additional constraints on the scheduling of a task by enabling dependences between sibling tasks in the task region.

DEPEND (dependence-type : list)

dependence-type

Can be any one of the following clauses: IN, OUT, or INOUT.

For IN, the generated task will be a dependent task of all previously generated sibling tasks that reference at least one of the list items in an OUT or INOUT clause.

For OUT and INOUT, the generated task will be a dependent task of all previously generated sibling tasks that reference at least one of the list items in an IN, OUT, or INOUT clause.

list

Is one or more variables or non-zero length array sections. Any list items used in a DEPEND clause of the same task or sibling tasks must indicate identical storage or disjoint storage.

Note that this enforced task dependence establishes a synchronization of accesses to each list item performed by a dependent task, with respect to accesses to the same list item performed by any previous tasks. You must properly synchronize access with respect to other concurrent accesses to each list item.

If a DEPEND clause appears in a TARGET or TARGET UPDATE directive, it is treated as if it had appeared on the implicit task construct that encloses the TARGET construct.