Мне нужно поработать над программой на фортране, которую раньше компилировали с использованием Microsoft Compaq Visual Fortran 6.6.Я бы предпочел работать с Gfortran, но я столкнулся с множеством проблем.Основная проблема заключается в том, что сгенерированные двоичные файлы имеют различное поведение.Моя программа берет входной файл, а затем должен сгенерировать выходной файл.Но иногда, когда используется двоичный файл, скомпилированный gfortran, он вылетает до конца или дает разные числовые результаты.Это программа, написанная исследователями, которая использует много чисел с плавающей точкой.
Итак, мой вопрос: каковы различия между этими двумя компиляторами, которые могут привести к такого рода проблемам?
edit: Моя программа вычисляет значения некоторых параметров, и существует множество итераций.В начале все идет хорошо.После нескольких итераций появляются некоторые значения NaN (только когда они скомпилированы gfortran).
edit: Думайте всем за свои ответы.Поэтому я использовал компилятор intel, который помог мне, дав несколько полезных сообщений об ошибках.Источник моих проблем в том, что некоторые переменные не инициализированы должным образом.Похоже, что при компиляции с compaq visual fortran эти переменные автоматически принимают 0 в качестве значения, тогда как с gfortran (и intel) он принимает случайные значения, которые объясняют некоторые численные различия, которые складываются на следующих итерацияхТак что теперь решение - лучшее понимание программы для исправления этих пропущенных инициализаций.