OpenMP 並列コンパイラ指示文:チーム内のスレッド間で分割されなくてはならない 1 つまたは複数のコードのブロックを指定します。各セクションはチーム内の 1 つのスレッドによって 1 回だけ実行されます。
形式
c$OMP SECTIONS [clause[[,] clause] ... ]
[c$OMP SECTION]
c
次のいずれか:C (または c),!,* (「並列指示文の構文規則」を参照)
clause
以下のいずれか。
block
文または構文の構造化ブロック (セクション)。これを構成するセクションも,すべて構造化ブロックでなくてはなりません。
このブロックに対して,またはこのブロックから飛び越すことはできません。
規則と振る舞い
コードの各セクションの前には SECTIONS 指示文が置かれます。ただし,最初のセクションでは,この指示文は省略可能です。SECTIONS 指示文は,SECTIONS 指示文と END SECTIONS 指示文の組の字句的な寸法中に置かれなくてはなりません。
最後のセクションは END SECTIONS 指示文で終わります。自分の SECTION の実行を終えたスレッドは,NOWAIT が指定されていない限り,END SECTIONS 指示文のポイントで暗黙のバリアに遭遇します。
SECTIONS 指示文は,チーム内のすべてのスレッドが遭遇するか,どのスレッドも遭遇しないように置かれていなくてはなりません。また,チーム内のすべてのスレッドが同じ順序で遭遇するようになっている必要があります。
関連情報
Compaq Fortran 並列コンパイラ指示文,OpenMP Fortran API コンパイラ指示文,Tru64 UNIX システム用の並列指示文
例
次の例では,サブルーチン XAXIS,YAXIS,および ZAXIS は並列実行することができます。
c$OMP PARALLEL c$OMP SECTIONS c$OMP SECTION CALL XAXIS c$OMP SECTION CALL YAXIS c$OMP SECTION CALL ZAXIS c$OMP END SECTIONS c$OMP END PARALLEL