0

問題があり、それが何であるかわかりません。本体に MPI_INIT と MPI_FINALIZE を含むテスト プログラムがあります。5 つのサブルーチンを含むモジュールがあります。3 つのサブルーチンは依存しており、他の 2 つのサブルーチンから独立しています。テストプログラムのMPIコードをこのモジュールに入れたいです。変数が宣言されているモジュールのサブルーチンの前に MPI_INIT を配置しました。同じエラー メッセージを含む一連のエラーが表示されます。

This statement must not appear in the specification part of a module

「MPI_INIT と MPI_FINALIZE は 1 回だけ呼び出す必要がある」は、Fortran プログラム、モジュール、およびサブルーチンにどのように影響しますか? 複数の独立したプログラムがあり、それぞれがこのモジュールのサブルーチンを複数回呼び出す場合、MPI 関数と変数をどこに置くべきですか?

4

1 に答える 1

1

モジュールのサブルーチン部分で MPI サブルーチンを呼び出す必要があります。

通常、MPI_INIT を呼び出し、最終的に MPI_COMM_RANK と MPI_COMM_SIZE を呼び出す init_mpi サブルーチンを定義します。この init_mpi サブルーチンで MPI_INITIALIZED を使用して、複数の初期化を回避することもできます。

于 2012-11-25T10:43:25.890 に答える