3

我正在将用 Fortran 77 编写的相当大的旧修复格式代码转换为自由格式。在代码中,我经常遇到 read 语句,例如

DOUBLE PRECISION :: VARIABLE

read(1,10) VARIABLE

10 format(2A10)

但是,它从输入文件中读取的实际上是一行字符串。该代码运行得非常好,但是当尝试从名称列表而不是固定格式的输入文件中读取 VARIABLE 时,它会崩溃。

这在 Fortran 中怎么可能?有什么参考资料可以找到更多信息吗?任何帮助是极大的赞赏。

4

1 回答 1

4

这来自 F77 之前的日子,当时使用双精度和整数来存储字符。从格式声明来看,这可能来自一个 CDC,它可以在每个单词中存储 10 个 6 位字符。双精度是两个单词,所以它是两个 10 个字符的批次。如果您将代码更改为

CHARACTER(LEN=20) VARIABLE
READ(1,10) VARIABLE
10 FORMAT(A20)

它应该工作。关于 CDC 编译器的信息并不多。我从来没有尝试过使用一个名单,所以我不能真正评论它。试试http://bitsavers.trailing-edge.com/pdf/cdc/cyber/cyber_70/chippewa/Chippewa_Fortran-Run_Apr66.pdf

于 2013-09-02T04:34:10.990 回答