【发布时间】:2011-07-29 14:01:06
【问题描述】:
我正在阅读一本在二手书店找到的旧书(又一次)。这本书被称为“Fortran 技术——特别提到非数值应用”,作者是 A. Colin Day,由剑桥大学出版社于 1972 年出版。毕竟,跟上软件开发的最新进展非常重要; -)
本书声称涵盖了 Fortran-66 (X3.9-1966),即 Fortran-IV,与 DATA 语句的标准略有不同,此处不相关。
问题是,这本书似乎留下了很多猜测,我的猜测很不确定 WRT DO 循环。这是在第 1 章中,所以不是一个很好的迹象。
这是一个例子……
DO 15 I = 1, 87
J = I - 44
在DO 行中,1 和 87 似乎代表循环的包含范围 - I 取值 1 到 87(含),因此 J 取值 -43 到 +43(含)。但是,15 代表什么?
另一个例子是……
N = 1
DO 33 I = 1, 10
...
33 N = N + N
在这种情况下,33 看起来像一个标签或行号 - 大概是循环重复(或退出)之前执行的最后一行。但是 33 是一个奇数,可以作为任意标签选择。
编辑这是一个错误 - 请参阅 duffymo 的答案 - How do `DO` loops work in Fortran 66?
接下来的例子是……
DO 33 I = 1, 10
N = 2 ** (I-1)
再次使用相同的 33,但没有任何行被明确标记。
我是不是因为这些是断章取义的短 sn-ps 而感到困惑? DO n ...中的n代表什么?
【问题讨论】:
-
@eriktous - 我找了教程,但没有一个涵盖 Fortran IV 或 66 - 77 似乎是最旧的版本。我没想过要寻找标准 - 我想存在版权问题,即使是古代语言版本。无论如何,我学习 77 可能会更好——它并不那么严重,除了这本书之外,没有什么特别的理由要学习一个版本而不是另一个版本,这本书看起来更像是一本“sn-ps”书而不是一本语言教程或参考。
-
F66 和 F77 标准在 NAG (Numerical Algorithms Group) ftp 服务器上公开可用,该服务器作为标准委员会工作文件的宿主 (ftp.nag.co.uk/sc22wg5/ARCHIVE)。您还可以在那里找到后来标准的草案版本。特定标准的最终草案实际上与官方标准相同。 gfortran wiki 有很多指向各种文档的链接 (gcc.gnu.org/wiki/GFortranStandards)。除非您必须使用遗留代码,否则没有充分的理由不学习现代 Fortran。
-
@eriktous - 谢谢 - 这些链接会很有用。不过,我学习 Fortran 的唯一原因是更好地了解编程语言设计的历史,而学习更新的版本对此无济于事。
标签: fortran