### 15.2.2.2 DEFAULT Clause (TU*X only)

The DEFAULT clause lets you specify a scope for all variables in the lexical extent of a parallel region. It takes the following form:

  DEFAULT ( PRIVATE | SHARED | NONE )

The specifications have the following effects:

- PRIVATE - Makes all named objects in the lexical extent of the parallel region, including common block variables but excluding THREADPRIVATE (or TASKCOMMON) variables, private to a thread as if you explicitly listed each variable in a PRIVATE clause.
- SHARED - Makes all named objects in the lexical extent of the parallel region shared among the threads in a team, as if you explicitly listed each variable in a SHARED clause. If you do not specify a DEFAULT clause, this is the default.
- NONE - Specifies that there is no implicit default as to whether variables are PRIVATE or SHARED. In this case, you must specify the PRIVATE, SHARED, FIRSTPRIVATE, LASTPRIVATE, or REDUCTION property of each variable you use in the lexical extent of the parallel region.

You can specify only one DEFAULT clause in a PARALLEL directive. You can exclude variables from a defined default by using the PRIVATE, SHARED, FIRSTPRIVATE, LASTPRIVATE, or REDUCTION clauses.

Variables in THREADPRIVATE (or TASKCOMMON) common blocks are not affected by this clause.

Previous Page Next Page Table of Contents