Блок или переменное определение целого числа и объема памяти - PullRequest
0 голосов
/ 24 августа 2010

Кто-нибудь имеет представление об этой проблеме, у меня есть код, который прекрасно работает для сетки 3000 элементов, но когда я хочу запустить его для сетки 17000 элементов, он показывает мне эту ошибку: общий блок или переменная не может превышать 2147483647 байт

Это некоторые части кода:

PARAMETER(NDIM=398316702)

integer   IA(NDF+1),LPIVTC(NDF),JA(NDIM)

DIMENSION AA(NDIM)

И это показывает ошибку для

DIMENSION AA(NDIM)

Почему это так?

1 Ответ

1 голос
/ 24 августа 2010

Это не характеристика Fortran как таковая, а скорее ваш конкретный компилятор или операционная система.Обратите внимание, что 2147483647 = 2 ^ 31 - 1 или 2 гигабит.Вероятно, у вас есть 32-разрядная ОС, и она не может выделить больше памяти.Что касается того, почему вы не можете получить целые 2 ^ 32, возможно, что-то использует целое число со знаком, а не без знака для хранения адресов, и один бит недоступен.

...