Код, с которым я работаю, изначально был написан на FORTRAN 77. Я не решаюсь обновить все файлы до более современного стандарта, поскольку существует несколько файлов длиной в тысячи строк, которые зависят от устаревших функций.
Во время компиляции я получаю несколько аргументов несоответствия типов, большинство из которых решается с -freal-4-real-8, но я не уверен, является ли это постоянным решением.
В настоящее время я использую следующие флаги для компиляции всех объектных файлов, которые затем компилируются в конечный исполняемый файл: -ff2 c -std = legacy -freal-4-real-8
Файл, в котором происходит ошибка, скомпилирован без флага -freal, потому что он использует функцию, которая требует переменной real (4).
Текущая ошибка, которую я получаю при запуске исполняемого файла: В строке 2680 файла twopt.f Ошибка времени выполнения Fortran: Назначенная метка не является целевой меткой
Подпрограмма, в которой происходит ошибка, принимает REENT в качестве логического параметра. Позже ROUTE объявляется как целое число, но ему не присваивается какое-либо значение, которое, я думаю, может быть причиной проблемы. Я использовал операторы print, чтобы проверить его значение до того, как произойдет ошибка, и REENT равен true, а ROUTE равен 0.
Код в строках 2678-2681:
IF (REENT) THEN REENT =. ЛОЖНЫЙ. GO TO ROUTE END IF
В подпрограмме отсутствует метка оператора со значением 0, которая также может способствовать возникновению ошибки. Опять же, я не решаюсь слишком много редактировать код, так как он предположительно работал в 90-х. Любая помощь будет принята с благодарностью.