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

ID 767251
Date 7/13/2023
Public

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

Document Table of Contents

DEPOBJ

OpenMP* Fortran Compiler Directive: Initializes, updates, or uninitializes an OpenMP depend object. This feature is only available for ifx.

Syntax

!$OMP DEPOBJ(depend-object) clause

depend-object

Is a scalar integer variable with kind type OMP_DEPEND_KIND, a named integer kind type constant defined in module omp_lib.

clause

Is one of the following:

  • DEPEND (dependence-type : locator)

    Sets the state of depend-object to initialized with a value that represents the dependence specified. depend-object must be in an uninitialized state.

    dependence-type and locator are as described in the DEPEND clause with the following exceptions:

    • dependence-type must not specify the SOURCE or SINK dependence type.

    • The DEPEND clause of a DEPOBJ construct can contain only one locator.

  • DESTROY

    Sets the state of depend-object to be uninitialized. depend-object must be in an initialized state or the behavior of the program is unspecified.

  • UPDATE (dependence-type)

    Changes the dependence-type of an initialized depend-object to the dependence-type specified. depend-object must be in an initialized state. dependence-type can not specify SOURCE, SINK, or DEPOBJ dependence types.

Description

A depend object allows dynamic user-computed dependencies to be used in DEPEND clauses.

Depend objects must only be modified in a DEPOBJ construct, and referenced in a DEPEND clause. Any other use of a variable that is a depend object makes the program a non-conforming OpenMP program. Depend objects have two states, uninitialized and initialized. Depend objects have an initial state of uninitialized.

The DEPOBJ directive is a standalone construct; it does not affect any loop-nest or structured-block following it. The binding thread set for a DEPOBJ regions is the thread that encounters it.