Sun Studio 12: OpenMP API ユーザーズガイド

2.2 Fortran 95 OpenMP の妥当性検査

f95 コンパイラのプログラム全体のチェック機能を使用して、Fortran 95 プログラムの OpenMP 指令の手続き間の妥当性検査を静的に実行することができます。OpenMP のチェックは、-XlistMP フラグを指定してコンパイルを行うことによって有効になります。-XlistMP を指定した場合の診断メッセージは、ソースファイル名に .lst という拡張子の付いた名前の別ファイルの形で出力されます。コンパイラは、次の違反と並列化の阻害要因を診断します。

たとえば、ord.f というソースファイルを -XlistMP を指定してコンパイルすると、ord.lst という診断ファイルが生成されます。


FILE  "ord.f"
     1  !$OMP PARALLEL
     2  !$OMP DO ORDERED
     3                  do i=1,100
     4                          call work(i)
     5                  end do
     6  !$OMP END DO
     7  !$OMP END PARALLEL
     8
     9  !$OMP PARALLEL
    10  !$OMP DO
    11                  do i=1,100
    12                          call work(i)
    13                  end do
    14  !$OMP END DO
    15  !$OMP END PARALLEL
    16                  end
    17                  subroutine work(k)
    18  !$OMP ORDERED
         ^
**** ERR-OMP:  ORDERED 節が指定されていない DO 指令 (ord.f、10 行目、
2 列目) に ORDERED 指令を結合することは不当です。
    19                  write(*,*) k
    20  !$OMP END ORDERED
    21                  return
    22                  end

この例では、サブルーチン WORK 内の ORDERED 指令で、2 番目の DO 指令に ORDERED 句がないことを指摘する診断が出力されています。