Ответ 1
exit
в Fortran - это оператор, который завершает циклы или завершает выполнение других конструкций. Однако возникает вопрос о нестандартном расширении как функции или подпрограммы, предлагаемой многими компиляторами, которая тесно связана с оператором stop
.
Например, gfortran предлагает такую вещь.
Поскольку это использование exit
является нестандартным, вы должны ссылаться на конкретную документацию по внедрению относительно того, какую форму он принимает и какие последствия он имеет.
Оператор stop
, с другой стороны, является стандартным выражением Fortran. Этот оператор инициирует нормальное завершение выполнения программы Fortran (и его можно сравнить с оператором error stop
, который инициирует завершение ошибки).
Помимо знания того, что завершение (обычно) выполнения программы следует за оператором stop
и что существует код остановки, фактический способ, который происходит, снова остается открытым для реализации. Есть несколько рекомендаций (но это только рекомендации) относительно того, что происходит. Например, в Fortran 2008 предлагается
- код остановки (который может быть целым числом или строкой) печатается в блок "ошибка";
- если код останова является целым числом, он будет использоваться в качестве статуса выхода процесса;
- если в качестве статуса выхода не возвращается нулевой код (или его символ).
Вышеизложенное довольно неопределенно, так как во многих настройках эти понятия не применяются.
Обычно на практике exit
будет похож на библиотечную функцию C этого имени, и его эффект будет выглядеть как stop
без кода остановки (но все же передача данного статуса обратно в ОС).
В заключение, Fortran не описывает разницу между stop
и exit
. Использование exit
(для терминации) не переносимо, и даже эффект stop
не полностью определен.