0

割り当てられたプロジェクトで、f77を使用してコードをコンパイルするように求められ、1行あたり72文字の制限を処理する方法を把握しようとしています。次のコード行を記述したいと思います。

!use the numbers to check my indentation...
!2345678901234567890
                  MPI_SEND(slave, 1, MPI_INTEGER, slave, MPI_ANY_TAG, MPI_COMM_WORLD, ierr)

以前の長いインデントは、行が2、3ブロック内にあるためです。コードのインデント(つまり、読みやすさ)を犠牲にすることなく、これを解決したいと思います。

現状では、コードはMPinの後に切り捨てられるMPI_COMM_WORLDので、行を分割して6列目に行継続文字を追加すると思いました。+行継続文字として両方と整数の数字を使用する例をネット上で見ました。だから私は次の両方のバージョンを試しました:

!2345678901234567890
                  MPI_SEND(slave, 1, MPI_INTEGER, slave, MPI_ANY_TAG,
     1              MPI_COMM_WORLD, ierr)
                  MPI_SEND(slave, 1, MPI_INTEGER, slave, MPI_ANY_TAG,
     +              MPI_COMM_WORLD, ierr)

どちらも最初の行でコンパイルエラーが発生し、

                  MPI_SEND(slave, 1, MPI_INTEGER, slave, MPI_ANY_TAG,   
                  1
Error: Unclassifiable statement at (1)

コードは、という名前のコードファイルにありますpi.f。コンパイルしてmake piいますが、makefileには次のものしかありません。

FC = mpif77 
FFLAGS=-Wall

Makeは、ファイルをコンパイルするための実際のコマンドが

mpif77 -Wall pi.f -o pi

私はここで何が間違っているのですか?これを機能させるにはどうすればよいですか?

4

1 に答える 1

0

行継続構文の問題について心配する前に、コンパイラからのエラーメッセージに注意することをお勧めします。 MPI_SENDはサブルーチンであり、関数でもコマンドでもありません。その使用の前にキーワードを付ける必要がありますcall

于 2013-03-26T18:05:41.513 に答える