【问题标题】:Opening/reading .dat file in Fortran77在 Fortran77 中打开/读取 .dat 文件
【发布时间】:2012-02-04 03:16:32
【问题描述】:

我正在尝试读取 .dat 文件中的一组点,并通过我的 .f 文件中的算法运行这些点。我一直在使用 OPEN 语句:

OPEN(UNIT=1,FILE='POINTS.DAT',FORM='UNFORMATTED')

首先,一直在尝试打印 .dat 中的值 - 不起作用。

PRINT *, 1

PRINT *, POINTS.DAT

PRINT *, 'POINTS.DAT'

我应该放弃尝试打印出这些值吗?我应该如何索引 .dat 中的值?我应该做一个 DO 循环并让它通过我文件中的数据点数循环 n 次吗?我如何称呼这些值?

【问题讨论】:

  • 您的 .dat 文件是什么样的?你创造的吗?
  • 您应该首先找到一些材料来向您介绍编程/fortran 的基础知识。另外,您为什么想要/需要读取该文件,为什么使用 fortran,您有任何编程经验吗?

标签: file file-io fortran fortran77


【解决方案1】:

打开后,您必须从文件中读取值。您不能通过在打印语句中使用文件名来打印它们。如果你是正确的,它是一个二进制/未格式化的文件,你使用没有格式的读取:read (1) item。您可以使用 do 循环并一次读取一个项目,也可以将所有项目读入一个数组。如果文件是用另一个 Fortran 程序编写的,您应该使用与写入相同的方法(单个项目或数组),因为该文件将基于记录。如果文件是用另一种语言编写的,请将 access='stream' 添加到您的 open 语句中,以通知 Fortran 它没有 Fortran 通常使用的记录结构。

基本结构1:

real :: item  ! or whatever type
open (unit=1, ...
ReadLoop: do
  read (1, end=99) item
  process item...
end do ReadLoop
99 continue

基本结构2:

real, dimension (NUMBER) :: array
open (unit=1,..
read (1) array
process array...

这是基本的 Fortran ......如果你找到一本书来学习,你可能会取得更快的进步。我喜欢 Metcalf 和 Reid 的 Fortran 90/95 解释

【讨论】:

  • 作为旁注,梅特卡夫书的最新修订版称为“现代 Fortran 解释”。
  • @haraldkl - 我很想知道下一个将被称为什么,现在他们已经将标题从“fortran 版本解释”更改为“现代 fortran 解释”......“后现代……”?
  • @haraldkl,感谢梅特卡夫书的更新。 Idigas,是的,这个标题是一个潜在的陷阱——这本书在 Fortran 2050 时代将如何阅读?! ——这让我想起了 1950 年代过时的物理教科书《现代物理学》。
猜你喜欢
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多