THREADPRIVATE ディレクティブを使用して、名前付きの共通ブロックをスレッドに対してプライベートに、スレッド内ではグローバルにすることができます。
各スレッドは、共通ブロックのコピーを取得し、1 つのスレッドにより書き込まれるデータが、他のスレッドから直接見えないようにします。プログラムのシリアルな部分と MASTER セクションでは、アクセスは共通ブロックのマスタスレッドのコピーに対して行われます。
スレッド・プライベートの共通ブロックやその構成変数は、COPYIN 節以外の節では使用できません。
次の例では、共通ブロックの BLK1 および FIELDS がスレッド・プライベートとして指定されています。
COMMON /BLK1/ SCRATCH
COMMON /FIELDS/ XFIELD, YFIELD, ZFIELD
!$OMP THREADPRIVATE(/BLK1/,/FIELDS/)