#author("2023-12-04T18:18:58+09:00","default:Miyashita","Miyashita")
#author("2023-12-04T18:19:31+09:00","default:Miyashita","Miyashita")
* Fortran の Preprocessor [#l10eaf3e]

**Fortran のソースコードの表記 [#p7ff4f29]
#codeprettify(lang-fortran){{
#ifdef HOGE
    ! something goes on
#endif
#if defined(HOGE) && defined(FOOBAR)
    ! another
#endif
}}
基本は ifdef と ifndefで,2つ以上を使う場合は if defined と && や || を組み合わせる. if !defined と !をいれると否定(ifndef).~
~

**デバッグ時に読みやすく [#pd71cc9d]
cppdef の種類が多いとソースコードが読みにくいので,特定のものだけ抜き出してみたい場合は cpp コマンドに -D{NAME} をつけると抽出できる.
#codeprettify{{
cpp -P -DHOGE -DFOOBAR filename.f90 filename_preprocessed.f90
}}
~
~

**コンパイル [#t3e60535]
上のようなプリプロセスをした中間ファイルを生成せずに,そのままコンパイルするなら
#codeprettify{{
gfortran -c -cpp -DHOGE -DFOOBAR filename.f90
}}
とすれば filename.o ができる.
とすれば filename.o ができる.~
~

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes