在Fortran77中打开/读取.dat文件

0 file-io fortran file fortran77

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

OPEN(UNIT=1,FILE='POINTS.DAT',FORM='UNFORMATTED')
Run Code Online (Sandbox Code Playgroud)

而对于一个初学者,一直试图打印出.dat中的值 - 不工作.

PRINT *, 1

PRINT *, POINTS.DAT

PRINT *, 'POINTS.DAT'
Run Code Online (Sandbox Code Playgroud)

我是否应该试图打印出值?我应该如何索引.dat中的值?我应该做一个DO循环,并通过我文件中的数据点循环n次吗?我该如何调用这些值?

M. *_* B. 7

打开后,您必须从文件中读取值.您无法使用print语句中的文件名来打印它们.如果你是正确的二进制/无格式文件,你使用没有格式的读取:read (1) item.您可以使用do循环并一次读取一个项目,也可以将所有项目读入数组.如果文件是用另一个Fortran程序编写的,则应该使用与写入时相同的方法(单个项目或数组),因为该文件将基于记录.如果文件是用其他语言编写,请在open语句中添加access ='stream',以通知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
Run Code Online (Sandbox Code Playgroud)

基本结构2:

real, dimension (NUMBER) :: array
open (unit=1,..
read (1) array
process array...
Run Code Online (Sandbox Code Playgroud)

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

  • @haraldkl - 我很想知道下一个将被称为什么,现在他们已经将标题从"fortran版本解释"改为"现代fortran解释"......"后现代......"? (4认同)