Мне интересно, есть ли в фортране директивы препроцессора, похожие на #ifdef ... #endif
C?
Существуют ли директивы препроцессора в фортране, подобные тем, что в C?
comment
Да, но не стандартный. Тем не менее, вполне пригодный для использования. В gfortran препроцессор работает только в традиционном режиме, возможности ограничены по сравнению с C99 или C++.
- person Vladimir F   schedule 22.07.2014
Ответы (1)
Да это так. На самом деле они обычно одинаковы. Для gfortran
вы можете включить препроцессор с помощью опции -cpp
, для ifort
вы можете использовать -fpp
.
Кроме того, существует соглашение, что заглавная F
в *.F
и *.F90
включает препроцессор, а *.f
и *.f90
— нет.
person
Alexander Vogt
schedule
21.07.2014
... хотя технически препроцессор C не используется в Fortran.
- person IanH; 22.07.2014
Другой вариант — вызвать препроцессор c непосредственно перед компиляцией вашего кода на Fortran. Например.
cpp -P -traditional -DWHATEVER code.F90 > code.f90 ; gfortran -c code.f90
- person casey; 22.07.2014
Соглашение для .F и .F90 не применяется к Windows.
- person Steve Lionel; 22.07.2014
@SteveLionel В этом есть смысл ;-) Спасибо! [Я не использую Windows...]
- person Alexander Vogt; 22.07.2014
Просто чтобы закрыть мой комментарий - Windows сохраняет регистр, но не учитывает регистр имен файлов, поэтому .f и .F обрабатываются одинаково.
- person Steve Lionel; 24.07.2014