我正在学习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语句添加到所有这些语句中,并且没有对错误进行更改。 END UPDATE 1
我保存,退出并编译。编译器返回此错误:
Error: Unexpected end of file in 'practice1.f'
任何人都知道问题是什么?我甚至尝试删除print语句,只是有变量声明但发生了同样的错误。它让我完全没有练习Fortran!
答案 0 :(得分: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
在语法上都是正确的。 gfortran
(v4.1.2)和英特尔Fortran(v13.0.1)都正确编译并生成可执行的可执行文件。