PARALLEL、PARALLEL DO および PARALLEL SECTIONS 宣言子で COPYIN 節を使用して、マスタースレッドの変数または共通ブロックにあるデータを変数または共通ブロックのスレッド専用コピーに複写します。これは、並列領域の最初に実行されます。COPYIN 節は、THREADPRIVATE が宣言された変数または共通ブロックにのみ適用されます。
コピーする共通ブロック全体を指定する必要はなく、THREADPRIVATE 共通ブロックにある名前付き変数を指定することができます。
例 |
---|
INTEGER, SAVE:: X !OMP THREADPRIVATE(X) !OMP PARALLEL COPYIN(X) |
下記の例では、共通ブロック BLK1 と FIELDS をスレッド専用として指定しますが、コピーに指定するのは、共通ブロック FIELDS の変数の 1 つだけです。
例 |
---|
COMMON /BLK1/ SCRATCH COMMON /FIELDS/ XFIELD, YFIELD, ZFIELD !$OMP THREADPRIVATE(/BLK1/, /FIELDS/) !$OMP PARALLEL DEFAULT(PRIVATE),COPYIN(/BLK1/,ZFIELD) |