Проблема с Compaq Visual Fortran
В моем случае это
Windows XP/2000/NT 4.0 (SP3+)/Me/98 have a limit of 2 GBне нарушается.
Винда ХР.
А сколько стоит оперативки? Программа сколько ест? При замене статических массивов на динамические проблема решается?
А что, с динамическими массивами должно лучше работать?
program memory
implicit none
real(4) :: a(500000000)
end program memory
приводит к сообщению: warning LNK4084: total image size 2000322560 exceeds max (268435456); image may not run
А вот этот код
program memory
implicit none
real(4allocatable :: a(:)
allocate(a(500000000
deallocate(a)
end program memory
работает нормально.
Кстати, при размере массива 300000000 сообщение аналогичное, но программа запускается =)
В ссылках вроде ясно написано, что ошибка связана с невозможностью адресации к большим массивам. Для WinXP про 2Gb написано только с учетом того что стоит SP начиная с третьего. Может SP более ранний?
В ссылках вроде ясно написано, что ошибка связана с невозможностью адресации к большим массивам.Так проблема появлялась при добавлении массивов при сохранении размерности - или имеется в виду суммарная длина всех массивов?
Для WinXP про 2Gb написано только с учетом того что стоит SP начиная с третьего. Может SP более ранний?А разве уже есть SP3 для ХР?
С динамическими массивами работаетСпасибо, попробую
![](/images/graemlins/smile.gif)
п.с.: а еще в некоторых книгах пишут, что динамические массивы в фортране - это "ненужные дополнения, которые выгледят как следование моде и желание сохранить популярность Фортрана" (с) С.Бобровский Программная инженерия (стр 51 3-й абзац)
![](/images/graemlins/frown.gif)
После таких заявлений как-то даже книгу читать расхотелось
![](/images/graemlins/frown.gif)
Или ты какое-то конкретное обновление имеешь в виду?
Так проблема появлялась при добавлении массивов при сохранении размерности - или имеется в виду суммарная длина всех массивов?Именно суммарная. Пробовал в этих примерах создавать несколько с сохранением размерности. Одна фигня. =)
А разве уже есть SP3 для ХР?
Ошибся, там про NT4 речь похоже идет.
Оставить комментарий
durka82
В какой-то момент компилятор говорит, что ехе-файл слишком большой и работать не будет.Вот такое сообщение: Расшифровка этого предупреждения такая: Неужели размер приложения действительно ограничен?
Или проблема на самом деле в другом?
В этой программе куча статических массивов с размерностью 10^7.
Эта ошибка начинает выдаваться после добавления еще пары массивов.
При этом если 10^7 заменить на 5*10^6 - прога компилится, но при попытке выбрать хотя бы половину массивов на этапе выполнения выдается сообщение, что стек переполнен
Какой нафиг стек, если все массивы статические?