1

我正在为一份新工作学习 Fortran,并开始编写一些非常非常基本的程序。为了编译,我使用的是 gcc 版本 4.6.2,并且我正在使用 Linux Suse OS(如果这很重要的话)。我相信我使用的 Fortran 版本是 F90 或 F95。代码是使用 VIM 文本编辑器编写的。

这是我写的程序

INTEGER, PARAMETER :: x = 2, y = 3
INTEGER            :: z = x+y

print *, z

而已!哦,这些行是缩进的,它们从第 8 列开始,所以缩进不是问题。

更新 1 我试过这样做:

PROGRAM print_stuff
        print *, z
END PROGRAM print_stuff

我还尝试将 IMPLICIT NONE 语句添加到所有这些中,并且没有改变错误。结束更新 1

我保存、退出和编译。编译器返回此错误:

Error: Unexpected end of file in 'practice1.f'

有谁知道问题是什么?我什至尝试删除 print 语句并仅使用变量声明,但发生相同的错误。它让我根本无法练习 Fortran!

4

1 回答 1

4

你的第一个版本

INTEGER, PARAMETER :: x = 2, y = 3
INTEGER            :: z = x+y

print *, z

不是有效的 Fortran 程序。每个有效程序都以该end语句结尾。end没有语句的“程序”在语法上是不正确的。继续阅读您的入门教程。

我建议您养成使用程序语句开始程序的习惯,并带有名称,例如

program myprog

并以

end program myprog

严格来说,program语句和程序名称都不是必需的,但它们确实使事情看起来更容易理解。

哦,当我在写的时候……不要养成在第 8 列开始行的习惯,这有点过时的固定格式源的味道。如果您使用的是合理的编译器(例如gcc),请为您的文件名提供.f90后缀并让您的源代码自由运行。当然,要一直保持良好的缩进习惯。

编辑以响应 OP 的编辑

PROGRAM print_stuff
        print *, z
END PROGRAM print_stuff

INTEGER, PARAMETER :: x = 2, y = 3
INTEGER            :: z = x+y

print *, z
END

两者在语法上都是正确的。( v4.1.2 gfortran) 和 Intel Fortran (v13.0.1) 都能正确编译并生成可执行的可执行文件。

于 2013-10-07T15:22:38.863 回答