1.3 Предварительная обработка и условная компиляция
Многие компиляторы Fortran, включая GNU Fortran, позволяют передавать исходный код через предварительный процессор C (CPP; иногда также называемый предварительным процессором Fortran, FPP), чтобы разрешить условную компиляцию. В случае GNU Fortran это GNU C Preprocessor в традиционном режиме. В системах с сохранением регистра в именах файлов предварительная обработка автоматически вызывается, если расширение файла — .F, .FOR, .FTN, .fpp, .FPP, .F90, .F95, .F03 или .F08. Чтобы вручную вызвать предварительный процессор для любого файла, используйте -cpp, чтобы отключить предварительную обработку файлов, где предварительная обработка выполняется автоматически, используйте -nocpp.
Если предварительно обработанный файл включает другой файл с оператором Fortran INCLUDE, включённый файл не подвергается предварительной обработке. Чтобы выполнить предварительную обработку включённых файлов, используйте эквивалентный оператор предварительной обработки #include.
Если GNU Fortran вызывает предварительный процессор, __GFORTRAN__ определён. Макросы __GNUC__, __GNUC_MINOR__ и __GNUC_PATCHLEVEL__ могут быть использованы для определения версии компилятора. Смотрите Обзор в The C Preprocessor для получения подробностей.
GNU Fortran поддерживает ряд типов INTEGER и REAL kind помимо типов kind, требуемых стандартом Fortran. Доступность любого заданного типа kind зависит от архитектуры. Следующие предопределённые макросы предварительной обработки могут быть использованы для условной включения кода для этих дополнительных типов kind: __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-10.2.0/gfortran/Preprocessing-and-conditional-compilation.html