Следующий код пытается прочитать файл в блок памяти, в котором хранятся символы, и прочитать данные из этого блока вместо исходного файла. (Код изменен на основе здесь )
program read_file
implicit none
integer :: n
character(len=:), allocatable :: s
character(len=5) :: a, b
open(unit=10, file="read_file.f", action="read",
1 form="unformatted", access="stream")
inquire(unit=10, size=n)
allocate(character(n) :: s)
read(10) s
close(10)
print "(A)", s
read ( s, * ) a
read ( s, * ) b
print *, a
print * , b ! meant to read from the previously visited place
end program read_file
При попытке чтения из блока символов 's' программа всегда читает с начала, а не читает непрерывно, как чтение текстового файла. Так что «а» и «б» - это одно и то же. Есть ли способ прочитать 's', как если бы он читал из файла? Спасибо!