1億年ぶりにfortranを使ったらコンパイルオプションの意味がわからずに整理していなかったことを後悔したので改めて整理しました。
前提として、
です。
後日CMakeについても同じようにまとめようと思います。
gfortran-debug
公式サイトの翻訳サイトをリンク:2022-08-11時点
- -std=gnu : 規格を設定。gnuはgfortranでサポートされている規格に対応。他には、f95, f2003, f2008, legacy
- -Wall : warning all
- -g : dbxのデバック用
- -fcheck=bounds : 配列の領域外を検証
- -fbacktrace(デフォルト有効のため廃止) : エラー箇所を通知
- -O : 最適化なし
- "-ffpe-trap=invalid,zero,overflow" : 不適切な演算(例えばsqrt(-1.)): invalid、ゼロ割り:zero、オーバーフロー:overflowを確認
- -Wuninitialized:初期化されずに使われた変数を検出
gfortran-release
公式サイトの翻訳サイトをリンク:2022-08-11時点
- -std=gnu : 規格を設定。gnuはgfortranでサポートされている規格に対応。他には、f95, f2003, f2008, legacy
- -static : ライブラリーをすべて静的にリンク
ifort-debug
公式サイトをリンク:2022-08-11時点。日本語版はダウンロード形式のため英語サイト版
- -standard-semantics : コンパイラーの現在のFortran標準動作を完全に実装するかどうかを指定
- -fpe-all=0 : プログラム中の各ルーチンのランタイム時の浮動小数点例外処理の制御を許可
- -traceback : エラー箇所を通知
- -debug full : 詳細なデバッグ情報を生成
- -warn all : エラーとstderrorsを除くすべての警告メッセージを有効にする
ifort-release
公式サイトをリンク:2022-08-11時点。日本語版はダウンロード形式のため英語サイトをリンク
- -standard-semantics : コンパイラーの現在のFortran標準動作を完全に実装するかどうかを指定
- -static : ライブラリーをすべて静的にリンク
- -fast : プログラム全体の速度を最大化
参照サイト:2022-08-11時点
公式系
- GCC online documentation - GNU Project
- 上のRunebook.devによる日本語訳
- Intel® Fortran Compiler Classic 2021.1 and Intel® Fortran Compiler...
- 上の日本語訳(なぜかhtmlのダウンロード形式)インテル ソフトウェア開発製品 : 技術ドキュメント・資料ダウンロード | XLsoft エクセルソフト
その他
- http://www-ocea.kugi.kyoto-u.ac.jp/yosikawa/Tips/Fortran/debug.htm
- GCCの最適化 - Gentoo Wiki
- 4.3 gccコンパイラの最適化
- g++ 最適化オプション - C++入門
- 最適化オプションによる結果の違いin Fortran - Qiita
リンク