Sun Studio 12: Fortran ユーザーズガイド

第 5 章 FORTRAN 77 の互換性: Fortran 95 への移行

Fortran 95 コンパイラ f95 は、ほとんどの従来の FORTRAN 77 プログラムをコンパイルできます。これには、f77 コンパイラによって以前にコンパイルされた非標準拡張機能を利用するプログラムも含まれます。

f95 は、これらの FORTRAN 77 の機能の多くを直接的に受け入れます。その他の機能は、FORTRAN 77 互換モード (f95 -f77) でコンパイルする必要があります。

この章では、f95 で使用可能な FORTRAN 77 の機能について説明し、f95 との互換性がない f77 の機能のリストを示します。f77 コンパイラで使用可能な非標準 FORTRAN 77 拡張機能についての詳細は、 http://docs.sun.com/source/806-4841/index.html の『FORTRAN 77 言語リファレンス』を参照してください。

f95 コンパイラで使用可能な Fortran 95 言語のその他の拡張機能については、第 4 章「Fortran 95 の機能と相違点」 を参照してください。

f95 は、標準規則に準拠する FORTRAN 77 プログラムをコンパイルします。移植性を確保するためには、非標準 FORTRAN 77 機能を利用しているプログラムを標準に準拠する Fortran 95 に移行する必要があります。-ansi オプションを指定してコンパイルすると、プログラム中で使用されているすべての非標準機能にフラグが立てられます。

5.1 互換性のある f77 機能

f95 では、次の FORTRAN 77 コンパイラ f77 の非標準機能を、直接的でも、-f77 互換性モードでも使用できます。

ソースの書式

入出力

データ型、宣言、および用法

プログラム、サブルーチン、関数、および実行文

その他

非標準の言語拡張機能の構文および意味についての詳細は、 http://docs.sun.com/source/806-4841/index.html の『FORTRAN 77 言語リファレンス』を参照してください。

5.2 非互換性の問題

現行リリースの f95 で、従来の f77 プログラムをコンパイルおよびテストしたときに生じた非互換性の問題を次に示します。これらの問題は、f95 の比較機能の欠如、または動作の相違点が原因となって発生します。次の項目は、FORTRAN 77 の非標準の拡張機能であり、f77 でサポートされていても f95 でサポートされていません。

ソースの書式

入出力

データ型、宣言、および用法

プログラム、サブルーチン、関数、文

コマンド行オプション

f95 がサポートしていない f77 ライブラリルーチン

5.3 f77 でコンパイルしたルーチンとのリンク

5.3.1 Fortran 95 組み込み関数

Fortran 95 の標準機能として、FORTRAN 77 にはない組み込み関数がサポートされています。Fortarn 95 の非標準組み込み関数を含むすべての組み込み関数は、『Fortran ライブラリ・リファレンス』に記載されています。

Fortran ライブラリ・リファレンス』に記載された組み込み関数名をプログラムの関数名として使用する場合は、組み込みではないユーザー指定のルーチンを使用するために、f95EXTERNAL 文を追加する必要があります。

Fortran ライブラリ・リファレンス』には、以前の f77 コンパイラ が認識可能な組み込み関数も記載されています。f95 コンパイラは、これらの名前を組み込み関数と同様に認識できます。

-f77=intrinsics を指定してコンパイルすると、認識可能な組み込み関数は f77 コンパイラで知られるものだけに制限され、Fortran 95 組み込み関数は無視されます。

5.4 f95 への移行についてのその他の問題