У меня есть файл данных с 84480 строк, я разбил их на 20 разных файлов в подпрограмме, каждая из которых имеет 4224 строки. Теперь я хочу использовать эти файлы один за другим в другой подпрограмме и сделать некоторый анализ. Но когда я попытался, я получаю ошибку времени выполнения: конец файла.Ошибка выполнения: Конец файла
Вот структура основной программы
real (kind = 8) :: x(84480),y(84480),x1(4424),y1(4424)
open(1000,file='datafile.txt',status='old')
n = 20 ! number of configurations
m = 84480 ! total number of lines in all configurations
p = 4224 ! number of lines in a single configuration
no = 100 ! starting file number configurations
do i=1,m
read(1000,*) x(i),y(i)
end do
call split(x,y,m,n)
do i = 1,20
open(no)
do j = 1,p
read(no,*) x1(j),y1(j) ! error is occurring in here
end do
no = no + 1
end do
end
Вот подпрограмма
subroutine split(x,y,m,n)
integer , intent (in) :: m,n
real (kind = 8) , intent(in) :: x(m),y(m)
integer :: i,k,j,p
p = 100
do i=0,n-1
k = i*4224
do j = k+1,k+4224
write(p,*) x(j),y(j)
end do
p = p + 1
end do
end subroutine split
Эта подпрограмма производит выходные файлы fort.100
в fort.119
правильно. Но он показывает следующую ошибку:
unit = 100, file = 'fort.100' Fortran runtime error: End of file
Где я иду не так ?.
Попробуйте написать пустую строку в конце каждого файла. Кроме того, закройте ваши «нет» файлы в цикле чтения. –
'@ MichaelO.' нет, он не работает.Снова повторить ту же ошибку. – Joe
Ну, тогда вы должны указать каждый файл явно, как для чтения, так и для записи. –