#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 ができる.~ ~