1.3 Предварительная обработка и условные компиляции
Многие компиляторы Fortran, включая GNU Fortran, позволяют передавать исходный код через препроцессор C (CPP; иногда также называемый препроцессором Fortran, FPP), чтобы разрешить условную компиляцию. В случае GNU Fortran это GNU препроцессор C в традиционном режиме. На системах с сохранением регистра в именах файлов препроцессор автоматически вызывается, если расширение файла равно .F, .FOR, .FTN, .fpp, .FPP, .F90, .F95, .F03 или .F08. Для ручного вызова препроцессора на любом файле используйте -cpp, чтобы отключить предварительную обработку файлов, где препроцессор запускается автоматически, используйте -nocpp.
Если обработанный файл включает другой файл с Fortran INCLUDE инструкцией, включенный файл не обрабатывается предварительно. Чтобы обработать предварительно включенные файлы, используйте эквивалентную инструкцию препроцессора #include.
Если GNU Fortran вызывает препроцессор, __GFORTRAN__ определен. Макросы __GNUC__, __GNUC_MINOR__ и __GNUC_PATCHLEVEL__ могут использоваться для определения версии компилятора. См. Обзор в Препроцессоре C для получения подробностей.
GNU Fortran поддерживает ряд INTEGER и REAL типов данных наряду с типами данных, требуемыми стандартом Fortran. Доступность любого заданного типа данных зависит от архитектуры. Следующие предопределенные макросы препроцессора могут использоваться для условного включения кода для этих дополнительных типов данных: __GFC_INT_1__, __GFC_INT_2__, __GFC_INT_8__, __GFC_INT_16__, __GFC_REAL_10__, и __GFC_REAL_16__.
Хотя CPP является фактическим стандартом для предварительной обработки кода Fortran, Часть 3 стандарта Fortran 95 (ISO/IEC 1539-3:1998) определяет условную компиляцию, которая не широко используется и не поддерживается напрямую компилятором GNU Fortran. Вы можете использовать программу coco для предварительной обработки таких файлов (http://www.daniellnagle.com/coco.html).
Далее: GNU Fortran и G77, Предыдущее: GNU Fortran и GCC, Вверх: Введение [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.3.0/gfortran/Preprocessing-and-conditional-compilation.html