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.