Ввод-вывод Fortran: указание больших размеров записи

Я пытаюсь написать массив в файл, где я открыл файл следующим образом:

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

Спасибо за вашу помощь.

9
задан jitihsk 26 January 2012 в 18:22
поделиться