Intel® Fortran Compiler XE 13.1 User and Reference Guides
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.
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.
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.