我正在将用 Fortran 77 编写的相当大的旧固定格式代码转换为自由格式。在代码中,我经常遇到像
这样的读取语句DOUBLE PRECISION :: VARIABLE
read(1,10) VARIABLE
10 format(2A10)
然而,它从输入文件中读取的实际上是一行字符串。代码运行得很好,但是当试图从名单而不是固定格式的输入文件中读取 VARIABLE 时它会崩溃。
在 Fortran 中这怎么可能?有什么引用资料可以找到更多信息吗? 非常感谢任何帮助。
最佳答案
这来自 F77 之前的日子,当时使用 double 和整数来存储字符。从格式声明来看,这可能来自 CDC,它可以在每个单词中存储 10 个六位字符。 double 是两个单词,所以它是两批 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
关于fortran90 - 语言 : how can double precision variable read and hold string content from an input file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18565591/