Я пытаюсь записать массив в файл, где я открыл файл следующим образом:
open(unit=20, FILE="output.txt", form='unformatted', access='direct', recl=sizeof(u))
Здесь u
- массив, а sizeof(u)
- 2730025920, что составляет ~ 2,5 ГБ.
Когда я запускаю программу, я получаю сообщение об ошибке Fortran runtime error: RECL parameter is non-positive in OPEN statement
, которое, по моему мнению, означает, что размер записи слишком велик.
Есть ли способ справиться с этим? Один из вариантов - записать массив более чем в один вызов записи, чтобы размер записи при каждой записи был меньше 2,5 ГБ. Но мне интересно, могу ли я написать весь массив за один вызов.
Edit:
u
был объявлен как double precision u(5,0:408,0:408,0:407)
Программа была скомпилирована как gfortran -O3 -fopenmp -mcmodel=medium test.f
В этой программе есть некоторый код OpenMP, но файловый ввод-вывод последовательный.
gfortran v 4.5.0, ОС: Opensuse 11.3 на 64-битной платформе AMD Opteron
Спасибо за вашу помощь.