以下FORTRAN 77代码有什么问题?

Ber*_*tek 2 fortran fortran77

我总是FORTRAN 77新手,我不明白为什么第一个代码显示错误,而第二个代码编译时我希望他们做同样的事情.

第一个代码(不编译并在z处引用意外数据声明语句时出错):

program FOO

integer x, y

x = 1
y = 2

integer z 

z = 3

end
Run Code Online (Sandbox Code Playgroud)

此代码在功能上与第一个代码看起来100%相似,但编译时没有错误

program FOO

integer x, y, z

x = 1
y = 2
z = 3

end
Run Code Online (Sandbox Code Playgroud)

我还尝试在第一个代码中禁用隐式变量声明而没有效果.

pax*_*blo 7

Fortran是其中一个古怪的"定义一切顶级"语言.换句话说,这没关系:

program FOO
    integer x, y
    integer z 
    x = 1
    y = 2
    z = 3
end
Run Code Online (Sandbox Code Playgroud)

因为所有类型规范都在任何可执行代码之前.如果定义变量,则应首先定义它.在这里看到例如:

这些不可执行的语句必须放在程序的开头,在第一个可执行语句之前.

  • @phycker:如果你的fortran书籍不太合适,他们会包含这些信息; 如果他们不这样做,我会抛弃他们并找到其他人.@paxdiablo:虽然官方标准文件不是免费的,但最终草案(由委员会投票通过)可以免费获得.gfortran wiki有一个页面链接到他们:http://gcc.gnu.org/wiki/GFortranStandards. (3认同)