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