nAG Fortran コンパイラは、世界で初めて Fortran 90 コンパイラをリリースした nAG が提供する、Fortran 77,Fortran 90,Fortran 95,Fortran 2003,Fortran 2008 のコンパイラです。プログラム上の誤りを的確に見つけだし、プログラマを支援する、高度な診断機能を持っています。
※ nAG Fortran コンパイラの現行最新バージョンは 7.2 です。
nAG Fortran コンパイラ 7.2 リリースノート
nAG では 50 年以上の数値計算分野での経験を生かし、コンパイラに最も必要とされるコンパイルの信頼性を最重要課題として本コンパイラを開発しています。
- Fortran 77、Fortran 90、Fortran 95、Fortran 2003、Fortran 2008、Fortran 2018をフルサポート ※1
- OpenMP 4.0 と 4.5 の部分的なサポート
-
強力なプログラムチェック機能を有しており、コンパイル時と実行時の「エラー」と「警告」を厳しく検出します。
これにより、実行結果の信頼性が高く、移植性に優れた Fortran ソースコードの作成が可能です。 -
Linux、Mac、Windows など多くの環境をサポートしています。
特に、Windows 版は統合開発環境 Fortran Builder として販売しています。
※1 nAG Fortran コンパイラは、ANSI X3.9-1978, ISO/IEC 1539:1991, ISO/IEC 1539-1:1997 (JIS X 3001-1:1998), ISO/IEC 1539-1:2004 (JIS X 3001-1:2009) に準拠しています。
製品価格
nagfor [mode] [option]... file...
詳細は「nAG Fortran Compiler, Release 7.2 マニュアル - 2 コンパイラの使用」をご参照ください。
nAG Fortran コンパイラは強力なプログラムチェック機能を持っており、Fortran 標準に準拠していないコードや、初期化忘れ、引数の型の誤りなどを見つけ出します。これによりバグの温床であるプログラム上の誤りや、ポータビリティーを損なう Fortran 標準への非準拠を容易に検出します。
強力なプログラムチェック機能は、より保守性が高く移植性に優れたプログラムの作成を支援し、プログラム作成者がメンテナンスに費やす時間を大幅に削減するだけでなく、後にそのプログラムを利用する方々の時間をも削減します。
以下の表では、特に見つけ難いと思われるプログラム上のエラーをいくつか紹介します。
nAG Fortran コンパイラは、これらのエラーをすべて検出することができます。
詳細は こちら をご覧ください。
エラー項目 | nAG の 検出状況 |
1. EQUIVALENCE 経由の DO ループ制御変数の変更 | ◯ |
2. 配列の範囲外参照 | ◯ |
3. 形状引継ぎ配列の範囲外参照 | ◯ |
4. パラメタ化構造型配列の範囲外参照 | ◯ |
5. 配列引数の寸法の不一致 | ◯ |
6. 寸法が異なる配列の代入 | ◯ |
7. 未定義ポインタの参照 | ◯ |
8. 空状態のポインタの参照 | ◯ |
9. 省略された引数の参照 | ◯ |
10. DOループの増分値がゼロ | ◯ |
11. 文字引数の長さの不一致 | ◯ |
12. 組込拡張型代入における変数と式の型パラメタの不一致 | ◯ |
13. 組込拡張型代入で変数と式の型パラメタが不一致の状態で代入 | ◯ |
14. 仮引数と実引数で拡張型の型パラメタが異なる | ◯ |
15. 誤った純粋手続 | ◯ |
16. スレッドセーフではないコードの検出 | ◯ |
17. 実引数と仮引数の型の不一致 | ◯ |
18. 名前付き共通ブロックの大きさの不一致 | ◯ |
19. 大きさ引き継ぎ配列の範囲外参照 | ◯ |
20. ビット組込み関数への誤った引数 | ◯ |
21. 整数オーバーフロー | ◯ |
22. 解放済のポインタの利用 | ◯ |
23. 再帰的に呼び出された手続が非再帰 | ◯ |
24. 誤った型の引数 | ◯ |
25. 定数(パラメタ)引数の変更 | ◯ |
26. サブルーチン内での DO ループ制御変数の変更 | ◯ |
27. 割付け配列の初期化忘れ | ◯ |
28. 配列の部分的な初期化忘れ | ◯ |
29. 大きさ引き継ぎ配列の初期化忘れ | ◯ |
30. 固定サイズ配列の初期化忘れ | ◯ |
31. 共通ブロックの初期化忘れ | ◯ |
32. モジュール変数の初期化忘れ | ◯ |
Judith Rommel, Research Fellow, Department of Chemistry, University of Cambridge
"The nAG Compiler is often my best tool when debugging complex Fortran code. One of my favourite sets of compiler flags is -g -O0 -C=all -mtrace -gline -ieee=stop. The excellent memory tracing and array bound checks, in combination with the analysis of floating point arithmetic, e.g. division by zero or floating point overflow, and reliable tracebacks to the line of code where an issue occurs, makes my life much easier. I love the nAG Compiler for its efficiency in finding sources of errors, verifying implementations, and assuring excellent code quality."
「複雑な Fortran コードをデバッグするとき、nAG コンパイラは私にとってしばしば最良のツールです。私のお気に入りのコンパイラオプション設定の一つは、-g -O0 -C=all -mtrace -gline -ieee=stop です。優れたメモリトレースと配列の境界チェック、浮動小数点演算の分析(ゼロ除算や浮動小数点オーバーフローなど)と問題が発生したコード行への信頼できるトレースバック、これらにより作業がとても楽になります。 エラーの原因を見つけ、実装を検証し、コードの品質を保証する、これらを効率的にできる nAG コンパイラを、私はとても気に入っています。」
その他にも以下のような便利な機能をご利用いただけます。
本製品に関連する追加の技術情報です。