PARALLEL DO (TU*X のみ)

OpenMP 並列コンパイラ指示文:1 つの DO 指示文を含んでいる並列領域を指定するための簡便な手段を提供します。

形式

c$OMP PARALLEL DO [clause[[,] clause] ... ]

do-loop
[c$OMP END PARALLEL DO]

c
次のいずれか:C (または c),!* (「並列指示文の構文規則」を参照)

clause
DO または PARALLEL 指示文が受け付ける任意の節。

do_loop
DO の繰り返し (DO ループ)。DO WHILE や,ループ制御を持たない DO ループであってはなりません。DO ループの繰り返し変数は整数型でなくてはなりません。

DO 指示文に結合された DO ループの外に飛び越すことはできません。

規則と振る舞い

END PARALLEL DO 指示文が指定されていない場合,PARALLEL DO は,PARALLEL DO 指示文の直後の DO ループで終わるものと見なされます。END PARALLEL DO 指示文を使用する場合,この指示文は DO ループの終わりの直後に置かれていなくてはなりません。

文脈は,PARALLEL 指示文の直後に DO 指示文を続けたものを明示的に指定した場合と同じです。

関連情報

Compaq Fortran 並列コンパイラ指示文OpenMP Fortran API コンパイラ指示文Tru64 UNIX システム用の並列指示文

次の例では,ループ繰り返し変数は基本設定として非公開になっており,これを明示的に宣言する必要はありません。END PARALLEL DO 指示文は省略可能です。

	c$OMP PARALLEL DO
	      DO I=1,N
	        B(I) = (A(I) + A(I-1)) / 2.0
	      END DO
	c$OMP END PARALLEL DO

次の例は,PARALLEL DO 指示文での REDUCTION 節の使用方法を示しています。

	c$OMP PARALLEL DO DEFAULT(PRIVATE) REDUCTION(+: A,B)
	      DO I=1,N
	        CALL WORK(ALOCAL,BLOCAL)
	        A = A + ALOCAL
	        B = B + BLOCAL
	      END DO
	c$OMP END PARALLEL DO