1

私は fortran 77 を使用しています。それぞれ同じサイズ (たとえば S) のデータを含む複数 (たとえば N) のデータ ファイルがあります。これらすべてのデータ ファイルを、サイズ (N*S) の 1 つの配列でプログラムに読み込みたいと考えています。データファイルには、整理された方法で名前が付けられます (datafile1.dat、datafile2.dat......datafileN.dat)。

どうすればそれを行うことができますか?

ありがとうございました!

4

1 に答える 1

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 90/95 を理解していますが、必要に応じて Fortran 77 表記に簡単に書き直すことができます。

      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
于 2013-02-15T08:56:15.090 に答える