Я новичок в программировании fortran. Я хотел бы открыть несколько файлов .txt (CrossSec01 to CrossSec10) и прочитать данные Allocatable массивов в один файл.Открыть и прочитать mulitple .txt файлы
Мой код дает мне «конец ошибки файла» в «read». Может ли кто-нибудь из новичков помочь мне, пожалуйста?
Вот мой код:
implicit none
real(8), allocatable :: dat(:,:,:) ! a 3D array, no defined size yet
integer :: i,j,k,m,n
integer :: x,y,z
open(unit=123,file="crossSec01.txt") ! opens 1st file reads & closes file
!read (100,20) ((dat(i,j,k)
read(123,*) y,x
z=30
close(123)
allocate (dat(i,j,k))
do k=1,z
write(str,'("crossSec",i2.2,".txt")')k
open(unit=345,file=str,status="old")
read(345,*)
read(345,*)
read(345,*)
do i = 1,y
read(345,*)(dat(i,j,k),j=1,x) ! This is where I get my fortran runtime error "end of file" error.
end do
close(345)
end do
Являются ли 'i',' j' и 'k' известными/инициализированными во время выписки? Вы читаете правильное количество элементов из файла? Я бы начал с добавления 'stat' /' iostat' ко всем операторам ввода-вывода и 'allocate', чтобы проверить, успешно ли выполняются все операции. –
Очевидно, вы хотите, чтобы первое измерение было y, второе x и третье z, но вы имеете i, j, k в инструкции allocate. –
Спасибо М.С.Б. код работал. Приветствия. – user3161781