Я пытаюсь написать массив в файл, где я открыл файл следующим образом:
open(unit=20, FILE="output.txt", form='unformatted', access='direct', recl=sizeof(u))
Здесь u
- это массив, а sizeof (u)
равен 2730025920, что составляет ~ 2,5 ГБ.
Когда я запускаю программу, я получаю сообщение об ошибке Ошибка выполнения Fortran: параметр RECL не является положительным в операторе OPEN
, что, как мне кажется, означает, что размер записи слишком велик.
Как с этим справиться? Один из вариантов - записать массив более чем за один вызов записи, чтобы размер записи при каждой записи был меньше 2,5 ГБ. Но мне интересно, могу ли я записать весь массив за один вызов.
Изменить:
u
был объявлен как двойной точности 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
Спасибо за вашу помощь.