Fortran 95 コンパイラに組み込まれた FORTRAN 77 の機能
このリリースでは、f77 コンパイラは f95 コンパイラの追加機能に置き換わりました。f77 のコマンドは、f95 を呼び出すスクリプトです。
コマンド: f77 オプション ファイル ライブラリ は、次の f95 コンパイラの呼び出しになります: f95 -f77=%all -ftrap=%none オプション ファイル -lf77compat ライブラリ |
FORTRAN 77 の互換性および非互換性についての詳細は、「4.12 言語の混在」を参照してください。
Fortran 77 互換性モード
一般的には、Fortran 95 とは互換性のない FORTRAN 77 構造構文および規則を、コンパイラが受け付けるようにするためのさまざまな互換性機能を、新しい -f77 フラグを使用することによって選択できます。詳細は、「3.4.27 -f77[=list]」および 「4.12 言語の混在」を参照してください。
非標準別名付けを採用している「Dusty Deck (互換性または保守のために残さざるを得ない) 」プログラムのコンパイル
f95 コンパイラは、コンパイルするプログラムが、副プログラムの呼び出し、大域変数、ポインタ、オーバーインデックスを使用した変数の別名付けに関して、Fortran 95 標準規則に従っていると仮定する必要があります。従来の多くのプログラムは、Fortran 言語の旧バージョンの欠点を避けるために、意図的に別名付け手法を使用しています。-xalias フラグを使用すると、コンパイラにプログラムの標準からのずれと、予想される別名付けの問題を知らせることができます。場合によっては、適切な -xalias サブオプションを指定したときにのみ、正しいコードが生成されることもあります。厳格に標準に準拠しているプログラムの場合は、コンパイラに別名付けを考慮しないように助言すると、パフォーマンスが向上する場合もあります。「3.4.112 -xalias[= keywords]」および『Fortran プログラミングガイド』の移植に関する章を参照してください。
MODULE 機能の向上
新しいフラグ -use=list を使用すると、1 つ以上の暗黙的な USE 文が各副プログラムに挿入されます。「3.4.104 -use= list」を参照してください。
新しいフラグ -moddir=path によって、コンパイルした MODULE 副プログラム (.mod ファイル) をどこに書き込むかを制御できます。「3.4.58 -moddir= path」を参照してください。新しい環境変数 MODDIR によっても、どこに .mod ファイルを記述するかを制御できます。
-Mpath フラグは、ディレクトリパス、アーカイブ (.a) ファイル、または (.mod) ファイルを、MODULE 副プログラムを検索するために受け取ることができます。コンパイラは、ファイルの内容を検査してファイルの型を決めます。実際のファイルの拡張子は無視されます。「3.4.56 -Mpath」を参照してください。
モジュールを検索する際に、コンパイラは、モジュールファイルが書き込まれるディレクトリを最初に探します。
詳細は、「4.9 モジュールファイル」を参照してください。
-Xlist を使用した大域的なプログラム検査の向上
f95 コンパイラのこのリリースでは、大域的なプログラム検査のために、 -Xlist フラグによる多くの新しい検査機能が加わりました。新しい -XlistMP サブオプションは、静的プログラム解析の新しいドメイン (OpenMP 並列化指令の検証) を開きます。詳細は、「3.4.110 -Xlist[ x]」、Forte Developer『OpenMP API ユーザーズガイド』、『Fortran プログラミングガイド』の「プログラムの解析とデバッグ」の章を参照してください。
-xknown_lib=library による既知のライブラリの識別
新しいオプション -xknown_lib=library は、既知のライブラリへの参照を組み込み関数として扱い、ユーザー定義のバージョンを無視するように、コンパイラに指示します。これによって、コンパイラは、ライブラリに関する情報に基づき、ライブラリの呼び出しを最適化できます。このリリースでは、Fortaran 95 標準組み込み関数に対する明示的な EXTERNAL 宣言とこれらのルーチンのユーザー定義バージョンを無視するため、既知のライブラリ名は、Sun のパフォーマンスライブラリにある BLAS ルーチンのサブセット blas および intrinsics に限定されます。「3.4.140 -xknown_lib=library_list」を参照してください。
インタフェース仮引数型の無視
新しい指令 !$PRAGMA IGNORE_TKR {list_of_variables} は、特定の呼び出しを解釈するときに、一般的な手続きのインタフェースで使用される仮引数名の型、種類、ランクを、指定されたものに関して無視するように、コンパイラに指示します。この指令を使用することによって、引数の型、種類、ランクに基づいてライブラリルーチンを呼び出すラッパーの一般的なインタフェースの記述を単純化できます。詳細は、「2.3.1.2 IGNORE_TKR 指令」を参照してください。
-C 配列検査の向上
この f95 コンパイラのリリースでは、-C による実行時の配列添字範囲の検査が向上し、配列の準拠検査もできるようになりました。配列のセクションが準拠していない配列構文が実行されるとエラーになります。「3.4.7 -C」を参照してください。
Fortran 2003 の機能の導入
この f95 リリースでは、次の Fortran 標準に提案されている新しい書式付き入出力機能が実装されています。これらは、DECIMAL=、ROUND=、および IOMSG= 指定子で、OPEN、READ、WRITE、PRINT、および INQUIRE 文で使用されます。また、DP、DC、RP、および RC 編集編記述子も実装されています。詳細は、「4.6.9 Fortran 2003 の書式付き入出力機能」を参照してください。
書式付き入出力の丸め
新しいオプションフラグ -iorounding は、書式付き入出力のデフォルトの丸めモードを設定します。モード (プロセッサ定義または互換性がある) は、Fortran 2003 の機能として実装された ROUND= 指定子に対応して決まります。「3.4.49 -iorounding[ ={compatible|processor-defined}]」を参照してください。
旧オプションの削除
次のフラグは f95 コマンド行から削除されました。
-db -dbl
次の f77 コンパイラフラグは、f95 コンパイラに実装されず、旧オプションとして扱われます。
-arg=local -i2 -i4 -misalign -oldldo -r8 -vax-xl -xvpara -xtypemap=integer:mixed
スタックオーバーフローの検査
新しい -xcheck=stkovf フラグを指定してコンパイルすると、エントリのスタックオーバーフロー状態に対する実行時の検査が副プログラムに加わります。スタックオーバーフローが検出されると、SIGSEGV セグメント例外が発生します。スタックオーバーフローは、スタックに大きな配列が割り当てられるマルチスレッドアプリケーションで、近傍のスレッドスタックのデータを警告なしに破壊する可能性があります。スタックオーバーフローの可能性がある場合は、-xcheck=stkovf を使用してすべてのルーチンをコンパイルします。「3.4.120 -xcheck=keyword」を参照してください。
新しいデフォルトのスレッドスタックのサイズ
このリリースでは、デフォルトのスレーブスレッドのスタックサイズが、SPARC V8 プラットフォームでは 4M バイトに、SPARC V9 プラットフォームでは 8M バイトに増加されました。詳細は、『Fortran プログラミングガイド』の並列化の章で、スタックおよびスタックサイズに関する内容を参照してください。
内部手続きの最適化の向上
-xipo=1 を使用すると、コンパイラはすべてのソースファイルに対してインライン化を実行します。このリリースでは、キャッシュのパフォーマンス向上を目的として、手続き間の別名付けの解析を向上し、記憶域割り当てとレイアウトを最適化するために、-xipo=2 が追加されました。「3.4.137 -xipo[={ 0|1|2}]」を参照してください。
-xprefetch_level=n による先読み命令のコントロール
新しいフラグ -xprefetch_level=n を使用すると、-xprefetch=auto による先読み命令の自動挿入をコントロールできます。使用の際は、-xO3 以上の最適化レベルを指定し、先読み命令をサポートするターゲットプラットフォーム (-xarch プラットフォーム v8plus、v8plusa、v8plusb、v9、v9a、v9b、generic64、または native64) が必要です。「3.4.165 -xprefetch_level={ 1|2|3}」を参照してください。
Forte Developer 7 以前の機能の履歴は、Web サイト http://docs.sun.com にある以前のリリースのマニュアルを参照してください。