fortran90 - 语言 : how can double precision variable read and hold string content from an input file

标签 fortran90 fortran77

我正在将用 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/

相关文章:

multidimensional-array - 如何确定文本文件中多个矩阵的维数

fortran - 数组构造函数中的不同字符长度(3/4),如何修剪字符串 - fortran

format - Fortran:向文件添加列(即跳过不同数量的水平空格)

compiler-errors - 编译三个文件fortran 77 “Line too long”

compiler-errors - 未报告 Fortran 77 中参数错误中的排名不匹配

compilation - 子程序中未定义语句的Fortran问题

pointers - 比较两个指针

fortran - 通过子程序将一组变量值传递给没有公共(public) block 的函数有哪些方法?

c - 如何将一维数组从 fortran 传递到 c

fortran - gfortran 如何判断我正在编译 f90 还是 f95 代码?