Программа Fortran77 не выполняется - PullRequest
0 голосов
/ 25 сентября 2018

Рабочие компиляторы Fortran иногда генерируют недопустимые файлы Win32 .exe

Привет всем,

Некоторые рабочие компиляторы Fortran в некоторых ситуациях ведут себя странно.Я попытался скомпилировать и запустить программы профессора Джона Дентона, которые можно найти здесь:

https://www.dropbox.com/sh/8i0jyxzjb57q4j4/AABD9GQ1MUFwUm5hMWFylucva?dl=0

Различные версии программ Meangen und Stagen могут быть скомпилированы и работают нормально.Последняя программа с именем Multall также имеет несколько разных версий.Как и прежде, соответствующие исходные коды могут быть скомпилированы без проблем.Но: когда я попытался запустить получившиеся файлы .exe, я получил очень странное сообщение об ошибке, в котором говорилось, что Multall .exe НЕ будет действительным исполняемым файлом Win32.

Я использовал четыре разных компилятора Фортрана (g77, Cygwin, Mingw, FTN95) в Windows XP и Windows 8, всегда с одинаковым результатом.Я сделал несколько тестов, и, как мне кажется, причина странного сообщения об ошибке - огромное количество исходного кода, из которого состоит Multall.В нем гораздо больше 16000 строк кода, поэтому, возможно, память, выделяемая компилятором по умолчанию для сегмента кода, слишком мала и возникает переполнение.

Я попробовал несколько параметров командной строки компилятора g77 вЧтобы увеличить объем памяти сегмента кода, но ни один не работал.Кто-нибудь может сказать мне, какие параметры командной строки g77 заставляют работать огромную программу Multall's .exe?А может, я ошибаюсь, а странное сообщение об ошибке не имеет ничего общего с сегментом кода?Кто может мне помочь?

Большое спасибо, я очень ценю вашу помощь

1 Ответ

0 голосов
/ 25 сентября 2018

Действительно, проблема не в размере программы, а в размере стека.Это связано с большими общими блоками.В качестве теста вы можете уменьшить JD в commall-open-18.3 до 1000, и вы заметите, что проблема решена.Вы можете проверить, не увеличены ли массивы, и настроить некоторые параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...