Developer Guide and Reference

ID 767251
Date 10/31/2024
Public
Document Table of Contents

COPYPRIVATE Clause

Parallel Directive Clause: Uses a private variable to broadcast a value, or a pointer to a shared object, from one member of a team to the other members. The COPYPRIVATE clause can only appear in the END SINGLE directive.

Syntax

COPYPRIVATE (list)

list

Is the name of one or more variables or common blocks that are accessible to the scoping unit. Subobjects cannot be specified. Each name must be separated by a comma, and a named common block must appear between slashes (/ /).

Variables in the list must not appear in a PRIVATE or FIRSTPRIVATE clause for the SINGLE directive construct. A dummy argument that is a pointer with the INTENT (IN) attribute must not appear in a COPYPRIVATE clause.

If the directive is encountered in the dynamic extent of a parallel region, variables in the list must be private in the enclosing context.

If a common block is specified, it must be declared as THREADPRIVATE; the effect is the same as if the variable names in its common block object list were specified.

The effect of the COPYPRIVATE clause on the variables in its list occurs after the execution of the code enclosed within the SINGLE construct, and before any threads in the team have left the barrier at the end of the construct.

NOTE:

This construct is not supported within a TARGET or a DECLARE TARGET region if the target hardware is a SPIR64-based device.