我的程序在Fortran中讀取一個「未格式化」的文件。除此之外,這個文件包含一個我的程序不需要的數組,但它可能會變得很大。我想跳過這個數組。如何跳過Fortran未格式化文件中的數組?
如果是這樣的程序寫入數據:
program write
real :: useless(10), useful=42
open(123, file='foo', form='unformatted')
write(123) size(useless)
write(123) useless
write(123) useful
end program write
然後這個作品閱讀:
program read
integer :: n
real, allocatable :: useless(:)
real :: useful
open(123, file='foo', form='unformatted')
read(123) n
allocate(useless(n))
read(123) useless
read(123) useful
print*, useful
end program read
但我想,以避免分配「無用」的陣列。我發現這個
program read2
integer :: n, i
real :: useless
real :: useful
open(123, file='foo', form='unformatted')
read(123) n
do i=1,n
read(123) useless
end do
read(123) useful
print*, useful
end program read2
不工作(因爲記錄的長度被寫入文件 [編輯,見francescalus'答案])。
這不是更改文件格式的選項。