The following table relates clauses to directives and pragmas:
Table A–1 Pragmas Where Clauses Can Appear
Clause/Pragma |
PARALLEL |
DO/for |
SECTIONS |
SINGLE |
PARALLEL DO/for |
PARALLELSECTIONS |
PARALLELWORKSHARE |
---|---|---|---|---|---|---|---|
IF |
Yes |
Yes |
Yes |
Yes |
|||
PRIVATE |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
SHARED |
Yes |
Yes |
Yes |
Yes |
|||
FIRSTPRIVATE |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
LASTPRIVATE |
Yes |
Yes |
Yes |
Yes | |||
DEFAULT |
Yes |
Yes |
Yes |
Yes |
|||
REDUCTION |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
|
COPYIN |
Yes |
Yes |
Yes |
Yes |
|||
COPYPRIVATE |
Yes (1) | ||||||
ORDERED |
Yes |
Yes | |||||
SCHEDULE |
Yes |
Yes | |||||
NOWAIT |
Yes (2) |
Yes (2) |
Yes (2) | ||||
NUM_THREADS |
Yes |
Yes |
Yes |
Yes |
|||
__AUTO |
Yes |
Yes |
Yes |
Yes |
Fortran only: COPYPRIVATE can appear on the END SINGLE directive.
For Fortran, a NOWAIT modifier can only appear on the END DO, END SECTIONS, END SINGLE, or END WORKSHARE directives.
Only Fortran supports WORKSHARE and PARALLEL WORKSHARE.