omp_in_parallel 関数は、並列で実行している領域の動的エクステントから呼び出されると .TRUE. を戻し、それ以外の場合は .FALSE. を戻します。 omp_in_parallel 呼び出し元の領域が逐次化されていて、並列実行している領域の動的エクステント内でネストされている場合は、この関数は .TRUE. を戻します。 (ネストされた並列領域は、デフォルトでは逐次化されます。詳しくは、omp_set_nested、および 「ユーザーズ・ガイド」の『環境変数 OMP_NESTED』を参照してください。)
結果タイプおよび属性
デフォルトの論理値
結果値
並行して実行されている領域の動的エクステントから呼び出された場合は .TRUE.。それ以外の場合は .FALSE.。
例
USE omp_lib INTEGER N, M N = 4 M = 3 PRINT*, omp_in_parallel() !$OMP PARALLEL DO DO I = 1,N !$OMP PARALLEL DO DO J=1, M PRINT *, omp_in_parallel() END DO !$OMP END PARALLEL DO END DO !$OMP END PARALLEL DO
最初の omp_in_parallel の呼び出しでは、 .FALSE. が戻されます。これは、いずれかの領域の動的エクステントの外からこれが呼び出されるためです。 2 番目の呼び出しでは、ネストされた PARALLEL DO ループが逐次化されていても、 .TRUE. が戻されます。これは、外側の PARALLEL DO ループの動的エクステント内にこの呼び出しがあるためです。