我正在使用fortran 77.我有多个(比如N)数据文件,每个数据文件包含相同大小的数据(比如S)。我想将所有这些大小(N * S)数组中的数据文件读入我的程序。数据文件以排列方式命名(datafile1.dat,datafile2.dat ...... datafileN.dat)。
任何线索我该怎么办?
谢谢!
答案 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