Суть проблемы такова:
У меня есть огромный тяжелый код на FORTRAN 77 (~600 файлов *.f 8++ МБ кода).
Компилирую версией компилятора Intel Fortan (ifl) 4.5 — все собирается — тестовые задачи решаются.
Но кровь из носа надочтобы код компилировался 8й версией того же Intel Fortran Compiler. Пробую — ставлю
какие только можно опции совместимости с F.77 — копилятор ругается вот так на два исходника:
D:\FORTRAN\TRAC_work\trac80\Sources\tf3ds.f(543): Error: This name has already been assigned a data type. [GETBIT]
смотрю внимательнее — в этих файлах одна и та же переменная(точнее сказать — функция) объявляется 2(!!!) раза.
То есть в коде есть: (в скобочках номера строк)
(10) integer getbit
и
(542) integer getbit
конечно есть и вызовы (все находятся ниже второго объавления), например:
(704) if(getbit(bd(53,jsnx),19).ne.0) wlsrc(mis,k)=0.0
Как это пропускает компилер 4.5 — уму непостижимо.
Пробую закомментарить второе объявление — код перестает работать. (то есть — с 2 объявлениями — не компилится — с одним — не работает). Возможно сбои в коде обусловлены другими различиями между компиляторами.
И еще — этот самый неработающий экзешник получается мегабайт 20. В то время как 4.5 дает исполняемый файл всего на 6 мб. (при одинаквый опциях, относительно ДЕБАГ-информации)
Буду очень рад любым соображениям по поводу проблемы. Сам я с фортраном столкнулся совсем недавно — в основном на C работал до этого....
PLEASE!!!!