在Fortran中读取单个数组中的多个数据文件

时间:2013-02-15 08:46:42

标签: arrays file fortran

我正在使用fortran 77.我有多个(比如N)数据文件,每个数据文件包含相同大小的数据(比如S)。我想将所有这些大小(N * S)数组中的数据文件读入我的程序。数据文件以排列方式命名(datafile1.dat,datafile2.dat ...... datafileN.dat)。

任何线索我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用Fortran 95表示法可能的解决方案如下:

program test
  implicit none

  integer, parameter :: NN = 2
  integer, parameter :: SS = 3
  character(len=128) :: fname
  integer :: data(NN * SS)
  integer :: ii

  do ii = 1, NN
    write(fname, "(A,I0,A)") "datafile", ii, ".dat"
    open(12, file=fname, form="formatted")
    read(12, *) data((ii-1)*SS+1:ii*SS)
    close(12)
  end do
  print *, data

end program test

如果需要,您可以轻松地将其重写为Fortran 77表示法,尽管大多数编译器已经了解Fortran 90/95:

      program test
      implicit none

      integer NN, SS
      parameter(NN = 2, SS = 3)
      character*128 fname
      integer data(NN * SS)
      integer ii, jj

      do ii = 1, NN
        write(fname, "(A,I0,A)") "datafile", ii, ".dat"
        open(12, file=fname, form="formatted")
        do jj = 1, SS
          read(12, *) data((ii-1)*SS+jj)
        end do
        close(12)
      end do
      print *, data

      end program test