parallel 構文内で参照され、暗黙に決まるか事前定義されたスコープを持たないスカラー変数を自動宣言する場合、コンパイラは、変数の使用を次の規則 PS1 - PS3 に対して順番に確認します。
PS1: parallel 構文内で変数を使用しても、その構文を実行するチーム内でスレッドに関するデータ競合状態が発生しない場合、その変数のスコープは shared と宣言されます。
PS2: parallel 構文を実行するすべてのスレッドで、変数が同じスレッドによる読み取りの前に常に書き込まれる場合、その変数のスコープは private と宣言されます。変数が private とスコープ宣言することが可能で、並列構文のあと、書き込みの前に読み取られ、構文が parallel for/do と parallel sections のいずれかである場合、その変数のスコープは、lastprivate と宣言されます。
PS3: 変数がコンパイラの認識可能な縮約処理で使用されている場合、その変数のスコープは、その特定の型を持つ reduction と宣言されます。