我的续行语法有什么问题?

时间:2013-03-26 09:19:17

标签: syntax fortran

在我被分配到的项目中,我被要求使用f77编译我的代码,并且我试图掌握如何处理每行限制72个字符。我想写下面的代码:

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

之前的长缩进是因为该行在几个块内,我想解决这个问题,而不必牺牲代码缩进(即可读性)。

原样,代码在MP 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

告诉我编译文件的实际命令是

mpif77 -Wall pi.f -o pi

我在这里做错了什么?我如何使这项工作?

1 个答案:

答案 0 :(得分:0)

在担心您可能(或可能没有)的任何行继续语法问题之前,我建议您注意编译器的错误消息。 MPI_SEND是一个子程序,不是函数也不是命令,它的使用前面应该有关键字call