インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
標準 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) が使用される場合のデフォルトです。 |