Принудительная строгая проверка типов с помощью функций Fortran во время компиляции - PullRequest
3 голосов
/ 23 мая 2019

Я помогаю обновить устаревшую базу кода на Фортране, в которой есть определения интерфейса для функций / подпрограмм.

Проблема, с которой я сталкиваюсь, заключается в том, что некоторые из этих интерфейсов не синхронизированы с фактическими определениями функций, и компилятор (silverfrost) не перехватывает их во время компиляции. Это приводит к ошибкам во время выполнения.

Игнорируя определенный компилятор, который я сейчас использую, есть ли у Fortran метод для обработки этого без повторения определения функции? Например, в C #, Java и т. Д. Я могу объявить функцию и вызывать ее из любого места в проекте, а компилятор обеспечивает совместимость вызывающей и целевой функций.

Разве GNU Fortran или компилятор Intel Fortran делают это менее уязвимым?

1 Ответ

4 голосов
/ 24 мая 2019

Если вы помещаете процедуры в МОДУЛИ и ИСПОЛЬЗУЕТЕ МОДУЛИ, компилятор проверит, что процедуры вызываются с правильными аргументами.

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