XL Fortran がサポートしている共通の業界用拡張機能

XL Fortran は、普及している他のコンパイラーと同じく、多くの FORTRAN 77 拡張機能が 使用可能です。それには、次のものが含まれます。

拡張機能 参照する「XL Fortran ランゲージ・リファレンス」の項
型なし定数 型なしリテラル定数
*len 型の長さ指定子 データ型
BYTE データ型 BYTE
長い変数名 名前
小文字 名前
整数値と論理値の混在 (-qintlog オプションを使用) 式の計算
文字カウント Q 編集記述子 (-qqcount オプションを使用) Q (文字カウント) 編集
レジスター内の設定ビットをカウントしてデータ・オブジェクト・パリティーを判別するための組み込み機能 POPCNT, POPPAR
64 ビットのデータ型 (INTEGER(8)REAL(8)COMPLEX(8)LOGICAL(8))。 デフォルトの 64 ビット型 (-qintsize および -qrealsize オプションを使用) のサポートを含みます。 整数 実数 複素数 論理
CRAY および Sun のコンパイラーで サポートしているものと同様の整数 POINTER (XL Fortran 整数ポインターの算術演算は 1 バイト増分を単位としているのに対し、 CRAY コンピューターでは 8 バイト増分を単位としています。 CRAY コンピューターから移植されたプログラムを正しく機能させるためには、 ポインターの増分および減分に 8 を乗算することが必要です。) POINTER(整数)
条件付きベクトル組み合わせ (CVMGx) 組み込み関数 CVMGx (TSOURCE, FSOURCE, MASK)
日付および時刻サービスとユーティリティー機能 (rtc、irtc、jdate、clock_、timef、date) サービス・プロシージャーおよびユーティリティー・プロシージャー
STRUCTUREUNION、および MAP 構文 構造体コンポーネントUnion および Map

ステートメント内でのデータ型の混在

-qctyplss オプションを指定すると、 型なし定数を使用する位置と同じ位置で 文字定数式を使用することができます。 -qintlog オプションを指定すると、論理式を 使用できる場所で整数式を使用することができます (その逆も可能です)。 kind 型付きパラメーターは、-qintlog がオンの場合でも 論理定数と置き換えることができず、-qctyplss がオンの場合でも 文字定数と置き換えることができません。 また、型なし定数にすることもできません。

日付および時刻ルーチン

dtimeetimejdate などの 日付および時刻ルーチンは、Fortran サブルーチンとしてアクセス可能です。

その他の libc ルーチン

libc ライブラリーからのその他の一般的なルーチン (たとえば、 flushgetenvsystem) が多数あり、 これらも Fortran サブルーチンとしてアクセス可能です。

データ型のデフォルト・サイズの変更

ワード・サイズの大きいまたは小さいマシンからの移植の 場合は、-qintsize オプションを指定すると整数値および論理値の デフォルト・サイズを指定することができ、-qrealsize オプションを 指定すると実数および複素数のコンポーネントのデフォルト・サイズを 指定することができます。

ユーザーのプロシージャーと XL Fortran 組み込みプロシージャー間の名前の競合

XL Fortran 組み込みプロシージャーと同じ名前のプロシージャーがある場合は、 プログラムは組み込みプロシージャーを呼び出します。 (この状態は、多数の新しい Fortran 90 および Fortran 95 組み込みプロシージャーを 追加した場合に、さらに発生する可能性が高くなります。)

それでもユーザー自身のプロシージャーを呼び出したい場合は、 名前が競合するプロシージャーに明示的なインターフェース、EXTERNAL ステートメント、または PROCEDURE ステートメントを追加するか、あるいはコンパイル時に -qextern オプションを使用してください。

その他のシステムからの結果の再現

XL Fortran は、浮動小数点結果を他の IEEE システムからの結果と 矛盾させないために、-qfloat オプションによる設定をサポートしています。 他のシステムの浮動小数点結果の再現を参照してください。

非標準拡張機能の検出

XL Fortran は、さまざまな言語標準に関するいくつかの拡張機能をサポートしています。 これらの拡張機能の多くは一般的に使用されているため、 プログラムを別のシステムに移植する際には、 すべてのコンパイラーがそれらの機能を備えているわけではないことを 覚えておいてください。 移植作業を始める前に、-qlanglvl オプションを 使用して、XL Fortran プログラム内のそのような拡張部分を見つけてください。


$ # -qnoobject stops the compiler after parsing all the source,
$ # giving a fast way to check for errors.
$ # Look for anything above the base F77 standard.
$ xlf  -qnoobject -qlanglvl=77std f77prog.f
  ...
$ # Look for anything above the F90 standard.
$ xlf90 -qnoobject -qlanglvl=90std use_in_2000.f
  ...
$ # Look for anything above the F95 standard.
$ xlf95 -qnoobject -qlanglvl=95std use_in_2000.f
  ...
関連情報:
-qlanglvl オプションおよび -qport オプションを 参照してください。
IBM Copyright 2003