Я пытаюсь открыть 6 различных файлов (как минимум), а затем прочитать количество строк в каждом файле, которое должно составлять около 20000 строк каждый. Я прочитал несколько сообщений на этом форуме о том, как это сделать, поскольку я новичок, и я попытался реализовать это в своих целях.
Я могу сделать это индивидуально без каких-либо проблем, но когда я пытаюсь прочитать все файлы, я получаю сообщение об ошибке. Я получаю сообщение об ошибке «Killed: 9» или ошибку malloc:
malloc: *** mach_vm_map(size=63032829050880) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Что означает эта ошибка в отношении выделения памяти? Что я делаю неправильно? Как мне исправить это?
PROGRAM X
IMPLICIT NONE
INTEGER :: J,IO,NFILES,NLINES
CHARACTER (LEN=128) :: FILENAME
NFILES = 6
NLINES = 0
DO J = 0,NFILES-1
WRITE(FILENAME,'(A,I7.7,A)') 'data_',J*200,'.txt'
OPEN(1,FILE='FILENAME',FORM='FORMATTED')
DO
READ(1,*,IOSTAT=IO)
IF (IO/=0) EXIT
NLINES = NLINES + 1
END DO
WRITE(*,*) NLINES
CLOSE(1)
END DO
END PROGRAM X
Я использую gfortran для компиляции.
UPDATE
Я создал 6 тестовых файлов, data_0000000.txt, data_0000200.txt, ..., data_0001000.txt, каждый из которых содержит менее 10 строк, где в каждой строке содержится менее 100 символов. К сожалению, я получаю ту же ошибку.