この情報は、FORTRAN 77 のユーザーで、Fortran 95、Fortran 90 および XL Fortran については
詳しくないユーザーのためのものです。
以下に記載した点以外では、Fortran 90 標準および Fortran 95 標準が、
先行の Fortran 国際標準 (Fortran International Standard)、ISO 1539-1:1980
(略式名称 FORTRAN 77) の、上位互換性のある拡張言語です。
標準適応の FORTRAN 77 プログラムは、Fortran 90 標準の環境下でも
標準適応となります。ただし、組み込みプロシージャーについての
下記の項目 4 は例外です。
標準適応の FORTRAN 77 プログラムは、
削除された機能をプログラムで使用しない限り、
Fortran 95 標準の環境下でも標準適応となります。ただし、
組み込みプロシージャーについての下記の項目 4 は例外です。
Fortran 90 標準および Fortran 95 標準では、
一部の機能の動作が制限されています (これらの機能は、FORTRAN 77 では
プロセッサー依存のものです)。したがって、これらのプロセッサー依存の
機能のうち、いずれかを使用している標準適応の FORTRAN 77 プログラムは、Fortran 90 標準
および Fortran 95 標準の環境下で使用すると、標準適応プログラムであるにもかかわらず、
解釈が変わってしまう可能性があります。以下の FORTRAN 77 の
機能を Fortran 90 および Fortran 95 の環境下で使用すると、解釈結果が異なります。
- FORTRAN 77 では、DATA ステートメントの DOUBLE PRECISION データ・オブジェクトの
初期化に実定数が使用される場合、プロセッサーは、実際のデータに格納できる定数から得られる精度より高い精度を
提供することができました。
Fortran 90 および Fortran 95 では、プロセッサーにこのオプションはありません。
XL Fortran の以前のリリースは、Fortran 90 および Fortran 95 の動作と整合性があります。
- 共通ブロックに属さない名前付き変数が、DATA ステートメントで初期化され、SAVE の
属性が指定されなかった場合、FORTRAN 77 では、SAVE 属性をプロセッサー依存のままにしていました。
Fortran 90 標準および Fortran 95 標準では、この名前付き変数に、SAVE 属性を持たせるように指定します。
XL Fortran の以前のリリースは、Fortran 90 および Fortran 95 の動作と整合性があります。
- FORTRAN 77 では、入力リストで必要とする文字数が、入力のフォーマット時にレコードに格納される文字数以下で
なければならないことが必須でした。
Fortran 90 標準および Fortran 95 標準では、入力レコードの文字数が不足する場合、適切な OPEN ステートメントに
PAD='NO' 指定子が指定されていなければ、入力レコードに論理的にブランクを埋め込むことを指定します。
XL Fortran では、-qxlf77 コンパイラー・オプションの noblankpad サブオプションが指定されて
いる場合は、入力レコードにブランクが埋め込まれません。
- Fortran 90 標準および Fortran 95 標準には、FORTRAN 77 よりも多くの組み込み関数があり、組み込みサブルーチンが
いくつか追加されています。
したがって、標準適応の FORTRAN 77 プログラムを Fortran 90 および Fortran 95 の環境下で使用すると、変換処理結果が異なる可能性があります。
これは、FORTRAN 77 で、新標準の組み込みプロシージャーのいずれかと同じ名前のプロシージャーを呼び出した
場合に起こります。
ただし、このプロシージャーを EXTERNAL ステートメントに指定した場合は例外です。
XL Fortran では、指定された名前のプロシージャーが、-qextern コンパイラー・オプションに
よって、EXTERNAL ステートメントに指定されたプロシージャーであるかのように扱われます。
- Fortran 95 では、編集記述子によっては、定様式出力ステートメント内のリスト項目で使う 0 値の
フォーマット結果が異なる場合があります。
しかも、Fortran 95 標準は FORTRAN 77 と違い、値を丸めることで出力フィールドの形式にどのような影響を
与えるかを指定します。
したがって、値と編集記述子の特定の組み合わせによっては、FORTRAN 77 プロセッサーは Fortran 95 プロセッサーを
使用する場合とは異なる出力形式を生成する可能性があります。
- Fortran 95 では、プロセッサーが、正の実数ゼロと負の実数ゼロを区別することができます。
これは Fortran 90 ではできませんでした。Fortran 95 は、2 番目の引き数が負の実数ゼロの場合、SIGN 組み込み関数の動作を変更します。
