XL Fortran for AIX V8.1.1

ランゲージ・リファレンス

omp_in_parallel

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 ループの動的エクステント内にこの呼び出しがあるためです。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]