インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

既存の Fortran 拡張機能に標準 Fortran 互換性保持構文を使用する

標準 Fortran 互換性保持機能が導入される前は、Fortran と C で記述されたコードを使用したプログラミングを行うには、インテル® Fortran により提供された拡張機能が使用されていました。Fortran 2003 規格では、C との互換性保持のために新しい言語機能が定義されました。多くの場合、これらの新しい機能を既存のインテル® Fortran 拡張機能の代わりに使用することができます。次の表は、以前のインテル® Fortran 拡張機能と同等の標準 Fortran 機能の一覧です。

以前の拡張機能を使用する既存のコードは引き続き使用できますが、新しいコードを記述する場合は、標準構文を使用してください。

以前の拡張機能

同等の標準 Fortran 互換性保持機能

ATTRIBUTES ALIAS

BIND(C,NAME="alias-name") を使用します。

BIND(C) 構文には ATTRIBUTES DECORATE も含まれます。コンパイラーは、C が名前に使用する名前の修飾 (先頭または最後の下線) をすべて適用します。NAME= keyword が省略された場合、インテル® Fortran はすべてのプラットフォームで小文字に変換された Fortran の名前を使用します。

プロシージャーに引数がない場合、BIND を追加するときに () で示す必要があります。

(BIND(C) で) "interoperable" として指定されたルーチンへの引数はすべて、互換性がなければなりません。

モジュール変数と COMMON ブロックで BIND(C) を指定することもできます。

ATTRIBUTES C

BIND(C) を使用します (上記の ALIAS を参照)。引数渡しメカニズムを値渡しに変更しないことを除いて、ATTRIBUTES C と同様の効果があります。値で渡す必要がある場合は、Fortran 標準の VALUE 属性を使用します。

BIND(C) では、インテル® Fortran のデフォルトとは異なり、小さなレコードは C と同じように関数値として処理されます。ATTRIBUTES C のように、BIND(C) は外部名を小文字に変換して、必要な名前の修飾を追加します。

ATTRIBUTES DECORATE

通常 ATTRIBUTES ALIAS とともに使用されます。上記の ATTRIBUTES ALIAS を参照してください。

ATTRIBUTES DEFAULT

BIND(C) を使用する場合は必要ありません。iface のようなコマンドライン・オプションの設定に関係なく、コンパイラーは常に C コンパイラーのセマンティクスを使用します。

ATTRIBUTES EXTERN

BIND(C) をモジュール変数とともに使用します。

ATTRIBUTES REFERENCE

BIND(C) を使用する場合は必要ありません。

通常は文字引数とともに使用されるか、ATTRIBUTES C の暗黙の値渡しを無視します。

ATTRIBUTES STDCALL

同等の機能はありません。

STDCALL と BIND(C) の使用は、インテル® Fortran および IA-32 アーキテクチャーの Windows* でのみサポートされており、外部プロシージャー名とスタック規則が変更されます。詳細は、ATTRIBUTES C および STDCALLを参照してください。

ATTRIBUTES VALUE

Fortran 標準の VALUE 属性を使用します。

Fortran プロシージャーとともに使用すると別の効果があります。仮引数は値で受け取られ、プロシージャー内で変更可能な一時変数にコピーされます。プロシージャーが終了すると、一時的な値は破棄されます。

ATTRIBUTES VARYING

同等の機能はありません。

%LOC 関数

ISO_C_BINDING 組込みモジュールの C_LOC 関数。変数の適切な代替機能になります。C_FUNLOC は、プロシージャーの対応する関数です。

%VAL 関数

VALUE 属性を使用して引数を宣言します。

%REF 関数

同等の機能はありません。BIND(C) が使用される場合のデフォルトです。