У меня есть код, который записывает данные в некоторые файлы, я хочу перебрать этот код, чтобы продолжить открытие и запись в файлы с другими параметрами. Однако всякий раз, когда я пытаюсь это сделать, после создания файлов (после первой итерации цикла) появляется сообщение об ошибке:
Программный полученный сигнал SIGSEGV: Ошибка сегментации - недопустимая ссылка на память.
Код будет выглядеть примерно так:
program main
! premable here
DO a=1,10
call something(a, b, c)
END DO
contains
SUBROUTINE something(a, b, c)
!premable + data manipulation
open(12, FILE = 'file.name', STATUS='UNKNOWN') ! the problem occurs here for
! the second iteration of the loop
! in the main
DO i=.... ! general loop for extracting values from array
write(12, '(4F16.12)') b(:, i)
END DO
close(12)
END SUBROUTINE something
end program main
Я пытался использовать STATUS='OLD'
вместо 'UNKNOWN'
с предварительно созданными пустыми файлами, но это тоже не сработало (фактически с этим цикл даже не завершит первую итерацию).
Я использую компилятор GNU Fortran с Windows и CODE :: BLOCKS.