XL Fortran for AIX V8.1.1

ユーザーズ・ガイド


XL Fortran コンパイラー・オプションの概要

以降に記載されている表は、XL Fortran コンパイラーで使用できるコンパイラー・オプションを示しています。これらのオプションは、コンパイラー・ディレクティブ @PROCESS を使用して、構成ファイル、コマンド行、Fortran ソース・コードにも入力できます。

-q で始まるコンパイラー・オプション、サブオプション、そして @PROCESS ディレクティブを、大文字または小文字のいずれかで入力できます。しかし、-qmixed オプションを指定してある場合、 -qextern オプションに指定するプロシージャー名は、大文字小文字を区別します。

本書全般で、-q コンパイラー・オプションおよびサブオプションには小文字を、@PROCESS ディレクティブには大文字を使用しています。ただし、この章の「構文」節と概要表の「コマンド行オプション」列では、-q オプション、サブオプションの名前と @PROCESS ディレクティブの名前には大文字を使用しており、オプション・キーワードの最小の省略形を表します。 たとえば、-qOPTimize の有効な省略形は、 -qopt-qopti などです。

使用するオプションの重要度を理解し、代わりに使用できるオプションがわかれば、ごくわずかな時間と労力でプログラムを正しく効率的に機能させることができます。

コンパイラーへの入力を制御するオプション

これらのオプションは、ハイレベルでのコンパイラー入力に影響を与えます。どのソース・ファイルが処理されるかを決定し、大文字小文字の区別、桁の区別、その他のグローバルな形式の問題を確定します。

関連情報:
XL Fortran 入力ファイルおよび 出力ファイルの位置を指定するオプションを参照してください。

互換性を維持するためのオプションに記載されているオプションの多くは、許可されている入力形式を多少変えます。

表 3. コンパイラーへの入力を制御するオプション

コマンド行オプション @PROCESS ディレクティブ 説明 参照ページ
-Idir   インクルード・ファイルおよび .mod ファイルの探索パスにディレクトリーを追加します。 XL Fortran が cpp を呼び出す場合、このオプションを指定しておくと、#include ファイルの検索パスにディレクトリーが追加されます。コンパイラーは、インクルード・ファイルおよび .mod ファイルのデフォルト・ディレクトリーを検査する前に、探索パス内の個々のディレクトリーを検査します。インクルード・ファイルの場合は、INCLUDE 行のファイル名が絶対パスで示されていない場合にのみ、このパスが使用されます。 #include ファイルの -I オプションについての詳細は、cpp の資料を参照してください。

デフォルト:以下のディレクトリーは、次のような順序で検索されます

  1. 現行ディレクトリー
  2. ソース・ファイルが入っているディレクトリー
  3. /usr/include.
-I オプション
-qci=numbers CI(numbers) 指定された INCLUDE 行を活動化します。

デフォルト:
デフォルト値なし。
-qci オプション
-qdirective
[=directive_list]
-qnodirective
[=directive_list]
DIRECTIVE
[(directive_list)]
NODIRECTIVE
[(directive_list)]
トリガー定数として知られる文字列を指定します。これらの文字列は、注釈行をコンパイラーの注釈ディレクティブとして識別します。

デフォルト:
IBM* で始まっている注釈行はディレクティブと見なされます。 -qsmp=omp が指定されている場合は、$OMP だけがディレクティブ・トリガーであると見なされます。他のディレクティブ・トリガーはすべて、明示的にオンに切り替えない限り、オフになります。 -qsmp=noomp (-qsmp には noomp がデフォルト) が指定されている場合、 IBMP$OMP および SMP$ はディレクティブ・トリガーと見なされ、オンになっているその他のディレクティブ・トリガー (IBM*IBMT など) と同様に見なされます。 -qthreaded が指定されている場合は、IBMT で始まっている注釈行もディレクティブと見なされます。
-qdirective オプション
-qfixed
[=right_margin]
FIXED
[(right_margin)]
入力ソース・プログラムが固定ソース形式になっていることを示し、任意で行の最大長を指定します。

デフォルト:
xlf90xlf90_rxlf90_r7xlf95xlf95_r、および xlf95_r7 コマンドの場合は -qfree=f90 で、xlfxlf_rxlf_r7、および f77/fort77 コマンドの場合は -qfixed=72 です。
-qfixed オプション
-qfree[={f90|ibm}]
-k
FREE[({F90|
IBM})]
ソース・コードが自由形式になっていることを示します。 ibm および f90 サブオプションは、それぞれ VS FORTRAN と Fortran 90/Fortran 95 に対して定義されている自由ソース形式との互換性を指定します。 -k と -qfree は、-qfree=f90 の短縮形です。

デフォルト:
xlf90xlf90_rxlf90_r7xlf95xlf95_r、および xlf95_r7 コマンドの場合は -qfree=f90 で、xlfxlf_rxlf_r7、および f77/fort77 コマンドの場合は -qfixed=72 です。
-qfree オプション
-qmbcs
-qnombcs
MBCS
NOMBCS
文字リテラル定数、ホレリス定数、H 編集記述子、文字列編集記述子にマルチバイト文字セット (MBCS) 文字または Unicode 文字を含めることができるかどうかをコンパイラーに示します。

デフォルト:
-qnombcs
-qmbcs オプション
-qOBJect
-qNOOBJect
OBJect
NOOBJect
オブジェクト・ファイルを作成するか、または、ソース・ファイルの構文をチェックした直後に停止するかを指定します。

デフォルト:
-qobject
-qobject オプション
-U
-qmixed
-qnomixed
MIXED
NOMIXED
コンパイラーが、名前内の文字の大文字と小文字を区別するようにします。

デフォルト:
-qnomixed
-U オプション
-qsuffix={suboptions}   コマンド行でのソース・ファイル・サフィックスを指定します。 -qsuffix オプション

出力ファイルの位置を指定するオプション

これらのオプションは、コンパイラーが出力ファイルを格納するディレクトリーの名前を指定します。

この表では、* は、XL Fortran コンパイラーではなく ld コマンドによってオプションが処理されることを示します。これらのオプションの詳細については、ld コマンドに関する AIX 情報に記載されています。

関連情報:
XL Fortran 出力ファイルおよび コンパイラーへの入力を制御するオプションを参照してください。

表 4. 出力ファイルの位置を指定するオプション

コマンド行オプション @PROCESS ディレクティブ 説明 参照ページ
-d   cpp によって作成されたプリプロセス済みソース・ファイルを削除せずに残します。

デフォルト:
cpp で作成された一時ファイルは削除されます。
-d オプション
-o name*   出力オブジェクト・ソース・ファイル、実行可能ソース・ファイル、アセンブラー・ソース・ファイルなどの名前を指定します。

デフォルト:
-o a.out
-o オプション
-qmoddir=directory   コンパイラーが書き込むモジュール・ファイル (.mod) の位置を指定します。

デフォルト:
.mod ファイルは現行ディレクトリーに置かれます。
-qmoddir オプション

パフォーマンスの最適化のためのオプション

これらのオプションは、XL Fortran プログラムの実行速度を速めたり、パフォーマンスが低下している部分を見つけ、調整するのに役立ちます。このようなオプションの中で最も重要なのは -O です。一般に、他のパフォーマンス関連のオプションは、-O と組み合わせることにより、効果が上がります。 -O を組み合わせないと、まったく効果のないオプションもあります。

関連情報:
第 8 章, XL Fortran プログラムの最適化を参照してください。

浮動小数点処理のためのオプションに記載されているオプションの中にも、パフォーマンスを向上させるものがあります。ただし、これらのオプションを使用する際は、エラー条件や誤った結果が起きないように十分注意して使用してください。

表 5. パフォーマンスの最適化のためのオプション

コマンド行オプション @PROCESS ディレクティブ 説明 参照ページ
-O[level]
-qoptimize[=level]
-qnooptimize
OPTimize[(level)]
NOOPTimize
コンパイル時にコードを最適化するかどうかを指定し、最適化する場合は、最適化のレベル (0、2、3、4 または 5) を指定します。
デフォルト:
-qnooptimize
-O オプション
-P{v|k}[!]   選択された最適化プリプロセッサーを呼び出します。 ! を追加することにより、コンパイル・ステップでプリプロセスを行うことはなくなります。

注:
プリプロセッサーは、別個のベンダー・ロゴ製品として入手できます。

デフォルト:
プリプロセスなし。
-P オプション
-p
-pg
  プロファイル用のオブジェクト・ファイルをセットアップします。

デフォルト:
プロファイルなし。
-p オプション
-Q
-Q!
-Q+names
-Q-names
  プロシージャーをインライン化するかどうか、または、特定のプロシージャーをインライン化しなければならないかインライン化してはならないかを指定します (これらを両方指定する場合もあります)。 names はプロシージャー名をコロンで区切ったリストです。

デフォルト:
インライン化なし。
-Q オプション
-qalias=
{[no]aryovrlp |
[no]intptr |
[no]pteovrlp|
[no]std}...]
ALIAS(
{[NO]ARYOVRLP
|[NO]INTPTR
|[NO]PTEOVRLP
|[NO]STD}... )
ある種の別名付けが、プログラムに含まれているかどうかを示します。コンパイラーは、同じストレージ・ロケーションにさまざまな名前が別名として付けられている可能性がある場合、最適化の有効範囲を制限します。

デフォルト:
xlf90xlf90_rxlf90_r7xlf95xlf95_r、および xlf95_r7 コマンドの場合は -qalias=aryovrlp:nointptr:pteovrlp:std で、xlfxlf_rxlf_r7f77、および fort77 コマンドの場合は -qalias= aryovrlp:intptr:pteovrlp:std です。
-qalias オプション
-qalign={[no]4k|
struct [=packed |
natural|
port]}
ALIGN( {[NO]4K | STRUCT[packed | natural| port]}) 誤って位置合わせされたデータによるパフォーマンス問題を回避する、ストレージ内でのデータ・オブジェクトの位置合わせを指定します。 [no]4k および struct オプションを一緒に指定することができ、しかも互いに排他的ではありません。デフォルトの設定は、 -qalign=no4k:struct=natural です。 [no]4K オプションは、基本的には論理ボリューム I/O とディスク・ストライピングの組み合わせに有効です。

デフォルト:
-qalign= no4k:struct=natural
-qalign オプション
-qarch=architecture   コンパイラーが生成する命令を制御します。デフォルトを変更すると、パフォーマンスを向上させることができますが、特定のマシンでしか実行できないコードが生成される可能性があります。 com、auto、rs64a、rs64b、 rs64c、p2sc、pwr、pwr2 (または pwrx)、pwr3、pwr4、pwr2s、ppc、 ppcgr、ppc64、601、603、および 604 からの選択。

デフォルト:
-qarch=com です (-q32 が指定される場合)。これは、すべてのプラットフォームに共通の命令だけを使用します。 -q64 が指定される場合デフォルトは PPC になります。これにより、任意の 64 ビットの PowerPC ハードウェア・プラットフォーム上で実行可能ファイルを実行できるようになります。
-qarch オプション
-qassert={ deps |
nodeps | itercnt=n}
  最適化を微調整するのに役立つファイルの特性に関する情報を指定します。

デフォルト:
-qassert=deps:itercnt=1024
-qassert オプション
-qcache={
auto |
assoc=number |
cost=cycles |
level=level |
line=bytes |
size=Kbytes |
type={C|D|I}}[:...]
  特定の実行マシンに対して、キャッシュ構成を指定します。コンパイラーはこの情報を使用して、特に、データ・キャッシュに適合するデータ量に限定して処理するように構造化 (あるいはブロック化 ) 可能なループ演算の場合に、プログラムのパフォーマンスを調整します。

デフォルト:
コンパイラーは、 -qtune 設定値または -qarch 設定値、あるいは、その両方に基づいて一般的な値を使用します。
-qcache オプション
-qcompact
-qnocompact
COMPACT
NOCOMPACT
コード・サイズを大きくする最適化を抑制します。
デフォルト:
-qnocompact
-qcompact オプション
-qfdpr
-qnofdpr
  AIX fdpr (Feedback Directed Program Restructuring; フィードバック指定プログラム再構築) パフォーマンス調整ユーティリティーが、生成される実行可能ファイルを最適化する際に必要とする情報をオブジェクト・ファイルに提供します。

デフォルト:
-qnofdpr
-qfdpr オプション
-qhot[=suboptions]
-qnohot
HOT[=suboptions]
NOHOT
最適化実行時にループおよび配列言語に高位変換を実行するかどうか、また配列次元とデータ・オブジェクトに埋め込みを行いキャッシュ・ミスを避けるかどうかを決定します。

デフォルト:
-qnohot
-qhot オプション
-qipa[=suboptions]   プロシージャー間で詳細な分析 (プロシージャー間分析、つまり IPA) を行うことによって、-O 最適化を増大させます。

デフォルト:
サブプログラムの境界全域に適用されるある一定の最適化を除外しながら、 -O は個々のサブプログラムを分析します。 -O5 を指定することと、 -O4-qipa=level=2 を指定することは同じであることに注意してください。
-qipa オプション
-qlargepage
-qnolargepage

ラージ・ページ・メモリー環境で実行するように設計されているプログラムが、 POWER4 およびより高いベース・システムで提供される大きな 16 MB ページを活用できるようにコンパイラーに指示します。 -qlargepage オプション
-qpdf{1|2}   プロファイルの結果を反映したフィードバック (profile-directed feedback (PDF)) によって最適化を調整します。その場合、条件付き分岐の近辺および頻繁に実行されるコード・セクション内の最適化が、サンプル・プログラムの実行結果を使用して改善されます。

デフォルト:
最適化では、分岐の頻度とその他の統計に関しては、固定の想定を使用します。
-qpdf オプション
-qprefetch | -qnoprefetch   プリフェッチ命令がコンパイラーによって自動的に挿入されるかどうかを指示します。

デフォルト:
-qprefetch
-qprefetch オプション
-qsmallstack
-qnosmallstack

可能な限りコンパイラーがスタック使用を最小化するように指定します。

デフォルト:
-qnosmallstack
-qsmallstack オプション
-qsmp[=suboptions]
-qnosmp
  xlf_rxlf_r7xlf90_rxlf90_r7xlf95_r、または xlf95_r7 とともに使用され、ループの自動並列化、ループおよび他の項目のユーザー指定の並列化、およびアルゴリズムのチャンク化の選択を制御します。

デフォルト:
-qnosmp
-qsmp オプション
-qstrict
-qnostrict
STRICT
NOSTRICT
これを使用すれば、 -O3、 -O4、 -O5、 -qhot、および -qipa オプションで行われた最適化によって Fortran 90 または Fortran 95 プログラムのセマンティクスが変更されないことを保証します。

デフォルト:
-O3 およびさらに高いレベルの最適化が有効な場合には、結果または例外が、最適化していないプログラムの結果または例外と異なるように、コードを再配置できます。
-qstrict オプション
-qstrictieeemod
-qnostrictieeemod
STRICTIEEE-
MOD
NOSTRICTIEEE-
MOD
ieee_arithmetic および ieee_exceptions 組み込みモジュール用の Fortran 2000 IEEE 演算規則をコンパイラーに順守させるかどうかを指定します。
デフォルト:
-qstrictieeemod
-qstrictieeemod オプション
-qstrict_induction
-qnostrict_induction

コンパイラーが帰納 (ループ・カウンター) 変数の最適化を実行してしまわないようにします。そのような最適化を実行した場合、帰納変数が関係した整数オーバーフローの動作が発生したときに 安全ではない 可能性があります (プログラムのセマンティクスが変更される可能性があります)。

デフォルト:
-qnostrict_induction
-qstrict_induction オプション
-qthreaded   コンパイラーがスレッド・セーフ・コードを生成するように指定します。xlf_rxlf_r7xlf90_rxlf90_r7xlf95_r、および xlf95_r7 コマンドの場合、これはデフォルトでオンになります。 -qthreaded オプション
-qtune=implementation   ハードウェア・アーキテクチャーの特定のインプリメンテーションに対する命令の選択、スケジューリング、その他のインプリメンテーションに依存するパフォーマンス拡張機能を調整します。次の設定が有効です: auto、601、603、604、pwr、pwr2 (または pwrx)、pwr3、pwr4、 pwr2s、rs64a、rs64b、rs64c、または p2sc。

デフォルト:
-q32 を指定した場合 -qtune=pwr2 がデフォルトとなり、-qarch=com オプションが可能となります。-q64 を指定した場合 -qarch=ppc オプションが可能となり、デフォルトは -qtune=pwr3 となります。
-qtune オプション
-qunroll [=auto | yes]
-qnounroll

自動的に DO ループをアンロールすることを、コンパイラーに許可するかどうかを指定します。

デフォルト:
-qunroll=auto
-qunroll オプション
-qunwind
-qnounwind
UNWIND
NOUNWIND
プロシージャー呼び出し時に不揮発性レジスターの保管および復元を行うためのデフォルトの動作を指定します。

デフォルト:
-qunwind
-qunwind オプション
-qzerosize
-qnozerosize
ZEROSIZE
NOZEROSIZE
サイズがゼロのストリングおよび配列の検査を行わせないことによって、 FORTRAN 77 プログラムと、いくつかの Fortran 90 および Fortran 95 プログラムのパフォーマンスを向上させます。

デフォルト:
xlf90xlf90_rxlf90_r7xlf95xlf95_r、および xlf95_r7 コマンドの場合は -qzerosize で、xlfxlf_rxlf_r7f77、および fort77 コマンドの場合は -qnozerosize です (サイズがゼロのオブジェクトを含んでいるプログラムにはこれらのコマンドを使用できないことを示しています)。
-qzerosize オプション

エラー・チェックおよびデバッグのためのオプション

これらのオプションを使用すると、XL Fortran プログラム内の問題を回避、検出、修正するのに役立ち、第 11 章, 問題判別とデバッグを頻繁に参照する必要もなくなります。

特に、-qlanglvl は、Fortran 標準の潜在的な違反を警告することによって、コンパイル・プロセスの初期の段階で移植性の問題を検出するのに役立ちます。これはプログラムで拡張が行われていたり、そのような拡張ができるようにするコンパイラー・オプションが備えられているためです。

-C および -qflttrap のようなその他のオプションは、実行時の計算エラーの検出もしくは回避、またはその両方を行います (これを行わないと誤った出力結果が作成される可能性があります)。

これらのオプションではコンパイル時に追加チェックを必要とし、また実行速度の低下をもたらす実行時エラー・チェックを使用する場合もあるので、チェックの必要性、コンパイル速度の低下、実行パフォーマンスという 3 エレメント間の適切なバランスを見つけ出すために実験が必要な場合があります。

これらのオプションを使用すると、行わなければならない問題判別とデバッグの量を最小限にとどめることができます。デバッグ中に役立つオプションには、他にも次のものがあります。


表 6. デバッグおよびエラー・チェックのためのオプション

コマンド行オプション @PROCESS ディレクティブ 説明 参照ページ
-C
-qcheck
-qnocheck
CHECK
NOCHECK
配列エレメント、配列セクション、文字サブストリングなどへの個々の参照が正しいかどうかをチェックします。コンパイル時に境界外参照が検出されると、重大エラーとして報告され、実行時に SIGTRAP シグナルを生成します。
デフォルト:
-qnocheck
-C オプション
-D
-qdlines
-qnodlines
DLINES
NODLINES
桁 1 に D を持つ固定ソース形式行がコンパイルされるか、注釈として扱われるかを指定します。

デフォルト:
-qnodlines
-D オプション
-g
-qdbg
-qnodbg
DBG
NODBG
シンボリック・デバッガーで使用するデバッグ情報を生成します。

デフォルト:
-qnodbg
-g オプション
-qdpcl
-qnodpcl
DPCL
NODPCL
実行可能ファイルの構造を見るときに、動的プローブ・クラス・ライブラリー (DPCL) に基づくツールが使用することのできるシンボルを生成します。

デフォルト:
-qnodpcl
-qdpcl オプション
-qextchk
-qnoextchk
EXTCHK
NOEXTCHK
共通ブロック、プロシージャー定義、プロシージャー参照、モジュール・データのタイプ・チェック情報を設定します。リンカーは後でこの情報を使用して、コンパイル単位間の不一致を検出できます。

デフォルト:
-qnoextchk
-qextchk オプション
-qflttrap
[=suboptions]
-qnoflttrap
FLTTRAP
[(suboptions)]
NOFLTTRAP
実行時に検出する浮動小数点演算例外条件のタイプを決定します。該当する例外が発生すると、プログラムは SIGTRAP シグナルを受信します。

デフォルト:
-qnoflttrap
-qflttrap オプション
-qfullpath
-qnofullpath
  ソース・ファイルとインクルード・ファイルの完全なパス名、つまり絶対パス名は、コンパイルされたオブジェクト・ファイルの中にデバッグ情報と一緒に記録されます (-g オプション)。
デフォルト:
ソース・ファイルの相対パス名はオブジェクト・ファイルの中に記録されます。
-qfullpath オプション
-qhalt=sev HALT(sev) コンパイル時メッセージの最大の重大度が、指定した重大度と等しいか、それを上回る場合、オブジェクト・ファイル、実行可能ファイル、アセンブラー・ソース・ファイルを作成する前に動作を停止します。 severity (重大度) は、i (通知)、l (言語)、w (警告)、e (エラー)、s (重大エラー)、u (回復不能エラー)、 q (「停止しない」を示す重大度) のいずれかです。

デフォルト:
-qhalt=S
-qhalt オプション
-qinitauto[=hex_value]
-qnoinitauto
  hex_value の長さに応じて、自動変数用のストレージの個々のバイトまたはワード (4 バイト) を、特定の値に初期設定します。これにより、定義前に参照される変数を見つけることができます。たとえば、REAL 変数を NaNS 値に初期設定するための -qinitauto オプションと、-qflttrap オプションの両方を使用することにより、実行時に初期設定されていない REAL 変数を参照していないかどうかを識別することができます。

デフォルト:
-qnoinitauto。 hex_value を付けずに -qinitauto を指定する場合、コンパイラーは自動ストレージの各バイトの値をゼロに初期設定します。
-qinitauto オプション
-qlanglvl={
77std
| 90std
| 90pure
| 90ext
| 95std
| 95pure
| extended}


LANGLVL({
77STD
| 90STD
| 90PURE
| 90EXT
| 95STD
| 95PURE
| EXTENDED})
非適合の検査を行う言語標準 (または標準のスーパーセットまたはサブセット) を決定します。非適合のソース・コード、およびそのような非適合を許可するオプションを識別します。

デフォルト:
-qlanglvl=extended
-qlanglvl オプション
-qsaa
-qnosaa
SAA
NOSAA
SAA FORTRAN 言語定義に従っているかどうかをチェックします。非適合のソース・コード、およびそのような非適合を許可するオプションを識別します。 -qsaa オプション
-qsigtrap[=
trap_handler]
  xl__trce、事前定義トラップ・ハンドラーまたはユーザー作成トラップ・ハンドラーをメイン・プログラムにインストールします。
デフォルト:
トラップ・ハンドラーがインストールされません。 trap 命令が実行されたとき、プログラムはメモリー・ダンプします。
-qsigtrap オプション
-qtbtable={none
| small
| full}
  オブジェクト・ファイル内のトレースバック情報のデバッグ量を制限し、プログラムのサイズを小さくします。

デフォルト:
最適化なしで (-O を指定しない) コンパイルする場合、またはデバッグ用に (-g を指定して) コンパイルする場合、トレースバックの全情報をオブジェクト・ファイルに入れます。それ以外の場合、トレースバックの限定情報をオブジェクト・ファイルに入れます。
-qtbtable オプション
-qwarn64
-qnowarn64
  8 バイト整数ポインターの 4 バイトへの切り捨てを検出します。通知メッセージを使って 32 ビットから 64 ビットへマイグレーションするときに問題を起こす可能性のあるステートメントを識別します。

デフォルト:
-qnowarn64

-qxlines
-qnoxlines
XLINES
NOXLINES
桁 1 に X を持つ固定ソース形式行をソース・コードと見なしてコンパイルするか、注釈として扱うかを指定します。

デフォルト:
-qnoxlines
-qxlines オプション

リストとメッセージを制御するオプション

これらのオプションは、コンパイラーがリスト (.lst ファイル) を作成するかどうか、どのような種類の情報がリストに入るか、エラー条件を検出したらコンパイラーはそれについて何を行うかなどを決定します。

エラー・チェックおよびデバッグのためのオプションに記載されているオプションの中には、コンパイラー・メッセージも作成できるものがあります。

表 7. リストとメッセージを制御するオプション

コマンド行オプション @PROCESS ディレクティブ 説明 参照ページ
-#   個々のコンポーネントを実際には実行せずに、コンパイルの進行に関する情報を生成します。

デフォルト:
進捗メッセージは生成されません。
-# オプション
-qattr[=full]
-qnoattr
ATTR[(FULL)]
NOATTR
属性のコンポーネントおよびリストの相互参照セクションを作成するかどうかを指定します。

デフォルト:
-qnoattr
-qattr オプション
-qflag=
listing_severity:
terminal_severity
-w
FLAG
(listing_severity,
terminal_severity)
診断メッセージを指定されたレベルまたはそれ以上のレベルに限定します。 listing_severity またはそれ以上の重大度を持つメッセージだけがリスト・ファイルに書き込まれます。 terminal_severity またはそれ以上の重大度を持つメッセージだけが端末装置に書き込まれます。 -w は、-qflag=e:e の短い形式です。
デフォルト:
-qflag=i:i
-qflag オプション
-qlist
-qnolist
LIST
NOLIST
リストのオブジェクト・セクションを作成するかどうかを指定します。

デフォルト:
-qnolist
-qlist オプション
-qlistopt
-qnolistopt
LISTOPT
NOLISTOPT
リスト・ファイル内のすべてのコンパイラー・オプションの設定を表示するか、または、選択したオプションだけを表示するかを決定します。これらの選択したオプションには、コマンド行またはディレクティブに指定されているオプションと、常にリストにあるオプションが含まれます。

デフォルト:
-qnolistopt
-qlistopt オプション
-qnoprint   他のリスト・オプションの設定とは関係なく、リスト・ファイルが作成されないようにします。

デフォルト:
次のいずれかが指定された場合にリストが作成されます。 -qattr、 -qlist、 -qlistopt、 -qphsinfo、 -qreport、 -qsource、または -qxref。
-qnoprint オプション
-qphsinfo
-qnophsinfo
PHSINFO
NOPHSINFO
各コンパイラー・フェーズのタイミング情報が端末に表示されるかどうかを決定します。

デフォルト:
-qnophsinfo
-qphsinfo オプション
-qreport[={smplist
| hotlist}...]
-qnoreport
REPORT
[({SMPLIST |
HOTLIST}...)]
NOREPORT
プログラムの並列化方法とループの最適化方法を示す変換報告書を作成するかどうかを決定します。

デフォルト:
-qnoreport
-qreport オプション
-qsource
-qnosource
SOURCE
NOSOURCE
リストのソース・セクションを作成するかどうかを指定します。

デフォルト:
-qnosource
-qsource オプション
-qsuppress
[= nnnn-mmm[:nnnn-mmm...] |
cmpmsg] |
-qnosuppress
  出力ストリームから抑止されるメッセージを指定します。 -qsuppress オプション
-qxref
-qnoxref
-qxref=full
XREF
NOXREF
XREF(FULL)
属性の相互参照コンポーネントおよびリストの相互参照セクションを作成するかどうかを決定します。

デフォルト:
-qnoxref
-qxref オプション
-S   個々の Fortran ソース・ファイルに対して同等のアセンブラー・ソースを示す 1 つまたは複数の .s ファイルを作成します。

デフォルト:
出力は実行可能ファイルです。
-S オプション
-v   呼び出しコマンドで実行される個々のコンパイラー・コンポーネントの名前とパラメーターを表示することによって、コンパイルの進捗状況をトレースします。

デフォルト:
進捗メッセージは生成されません。
-v オプション
-V   呼び出しコマンドで実行される個々のコンパイラー・コンポーネントの名前とパラメーターを表示することによって、コンパイルの進捗状況をトレースします。これらの情報は、シェル実行可能形式で表示されます。

デフォルト:
進捗メッセージは生成されません。
-V オプション

互換性を維持するためのオプション

これらのオプションは、過去、現在、将来のハードウェア・プラットフォーム上の XL Fortran ソース・コード間の互換性を維持するのに役立つほか、変更をできる限り最小にとどめてプログラムを XL Fortran に移植するのに役立ちます。

関連情報:
第 14 章, XL Fortran へのプログラムの移植でこの主題を詳細に説明しています。 他のシステムの浮動小数点結果の再現では、他のシステムと互換性のある浮動小数点結果を得るためには、浮動小数点処理のためのオプションに記載されているオプションをどのように使用したらよいかを説明しています。

-qfree オプション-qfree=ibm 形式もまた、VS FORTRAN 自由ソース形式との互換性を提供します。

表 8. 互換性を維持するためのオプション

コマンド行オプション @PROCESS ディレクティブ 説明 参照ページ
-qautodbl=setting AUTODBL(setting) 単精度浮動小数点を倍精度へ自動的に変換する方法、そして倍精度を拡張精度へ自動的に変換する方法を提供します。 none、 dbl、 dbl4、 dbl8、 dblpad、 dblpad4、または dblpad8 の設定のいずれかを使用します。

デフォルト:
-qautodbl=none
-qautodbl オプション
-qcclines
-qnocclines
CCLINES
NOCCLINES
コンパイラーが条件付きコンパイル行を認識するかどうかを決定します。

デフォルト:
-qsmp=omp オプションを指定した場合は -qcclines、指定しなかった場合は -qnocclines。
-qcclines オプション
-qctyplss
[=([no]arg)]
-qnoctyplss
CTYPLSS
[([NO]ARG)]
NOCTYPLSS
タイプが指定されていない定数を使用できる場合に、必ず文字定数式が許可されるかどうかを指定します。他のプラットフォームからプログラムを移植するとき、この言語拡張機能が必要となる場合があります。サブオプション arg は、実際の引き数として使用されるホレリス定数が、整数の実際の引き数として扱われることを指定します。

デフォルト:
-qnoctyplss
-qctyplss オプション
-qddim
-qnoddim
DDIM
NODDIM
配列が参照されるたびに、ポインティング先の境界が再評価されることを指定し、ポインティング先用の境界式に対する制約事項をいくつか除去します。

デフォルト:
-qnoddim
-qddim オプション
-qdpc
-qdpc=e
-qnodpc
DPC
DPC(E)
NODPC
実定数を DOUBLE PRECISION 変数に割り当てるときに、最大の精度を得られるように実定数の精度を高めます。他のプラットフォームからプログラムを移植するとき、この言語拡張機能が必要となる場合があります。

デフォルト:
-qnodpc
-qdpc オプション
-qescape
-qnoescape
ESCAPE
NOESCAPE
ストリング、ホレリス定数、H 編集記述子、ストリング編集記述子で、バックスラッシュがどのように扱われるかを指定します。バックスラッシュは、エスケープ文字またはバックスラッシュ文字として扱うことができます。他のプラットフォームからプログラムを移植するとき、この言語拡張機能が必要となる場合があります。

デフォルト:
-qescape
-qescape オプション
-qessl  

Fortran 90 組み込みプロシージャーの代わりに ESSL ルーチンを使用することができます。-lessl でリンクするときは、ESSL シリアル・ライブラリーを使用します。 -lesslsmp でリンクするときは、ESSL SMP ライブラリーを使用します。

デフォルト:
-qnoessl
-qessl オプション
-qextern=names   ユーザー作成のプロシージャーを、XL Fortran 組み込み関数の代わりに呼び出せるようにします。names はプロシージャー名をコロンで区切ったリストです。プロシージャー名は、コンパイル中の個々のコンパイル単位の EXTERNAL ステートメント内にあるかのように扱われます。プロシージャー名が XL Fortran 組み込みプロシージャーと競合する場合は、このオプションを使用して組み込みプロシージャーの代わりにソース・コード内のプロシージャーを呼び出します。

デフォルト:
組み込みプロシージャー名がユーザー作成のプロシージャー名と同じであると、前者が後者をオーバーライドします。
-qextern オプション
-qextname[=name:name...]
-qnoextname
EXTNAME[(name:name...)]
NOEXTNAME
グローバル・エンティティーの名前に下線を追加して、システムからプログラムを移植する場合に役立ちます (これが混合言語プログラムに対する規則であるシステムの場合)。

デフォルト:
-qnoextname
-qextname オプション
-qintlog
-qnointlog
INTLOG
NOINTLOG
式およびステートメント内に整数と論理値を混在させることができることを指定します。

デフォルト:
-qnointlog
-qintlog オプション
-qintsize=バイト INTSIZE(バイト) デフォルトの INTEGER 値および LOGICAL 値のサイズを設定します。

デフォルト:
-qintsize=4
-qintsize オプション
-qlog4
-qnolog4
LOG4
NOLOG4
論理オペランドを持つ論理演算の結果が、LOGICAL(4) であるか、それともオペランドの最大長を持つ LOGICAL であるかを指定します。

デフォルト:
-qnolog4
-qlog4 オプション
-qnullterm
-qnonullterm
NULLTERM
NONULLTERM
仮引き数として渡される文字定数式に NULL 文字を付加することによって、ストリングを C 関数に渡しやすくします。

デフォルト:
-qnonullterm
-qnullterm オプション
-1
-qonetrip
-qnoonetrip
ONETRIP
NOONETRIP
DO ステートメントが実行される場合、反復回数が 0 であったとしても、コンパイルされたプログラム内の個々の DO ループを最低 1 回実行します。

デフォルト:
-qnoonetrip
-1 オプション
-qport
[=suboptions]
-qnoport
PORT
[(suboptions)]
NOPORT
他の Fortran 言語拡張機能を収容するために幾つかのオプションを提供して、 XL Fortran にプログラムを移植すると柔軟性が増加します。
デフォルト:
-qnoport
-qport オプション
-qposition=
{appendold |
appendunknown}
POSITION(
{APPENDOLD |
APPENDUNKNOWN})
POSITION= 指定子を持たない OPEN ステートメントの後にデータが書き込まれ、対応する STATUS= 値 (OLD または UNKNOWN) が指定されると、ファイル・ポインターをファイルの終わりに置きます。

デフォルト:
OPEN ステートメントの I/O 指定子とコンパイラー呼び出しコマンドに応じて、次のように設定されます。 xlfxlf_rxlf_r7、および f77/fort77 コマンドの場合は、 -qposition=appendold になり、xlf90xlf90_rxlf90_r7xlf95xlf95_r、および xlf95_r7 コマンドの場合は、定義済みの Fortran 90 および Fortran 95 動作になります。
-qposition オプション
-qqcount
-qnoqcount
QCOUNT
NOQCOUNT
拡張精度 Q 編集記述子 (Qw.d) だけではなく、 Q 文字カウント編集記述子 (Q) を受け入れます。 -qnoqcount を使用すると、すべての Q 編集記述子が拡張精度 Q 編集記述子として解釈されます。

デフォルト:
-qnoqcount
-qqcount オプション
-qrealsize=バイト REALSIZE(バイト) REALDOUBLE PRECISIONCOMPLEX、および DOUBLE COMPLEX 値のデフォルト・サイズを設定します。

デフォルト:
-qrealsize=4
-qrealsize オプション
-qsave[={all |
defaultinit}]
-qnosave
SAVE{(ALL |
DEFAULTINIT)}
NOSAVE
ローカル変数のデフォルト・ストレージ・クラスを指定します。 -qsave、-qsave=all、あるいは -qsave=defaultinit は、デフォルト・ストレージ・クラスを STATIC に設定し、-qnosave は、AUTOMATIC に設定します。
デフォルト:
-qnosave

-qsave を xlfxlf_rxlf_r7f77、または fort77 に指定して、FORTRAN77 コマンドの動作を複写します。

-qsave オプション
-qswapomp
-qnoswapomp
SWAPOMP
NOSWAPOMP
コンパイラーが、XL Fortran プログラムにある OpenMP ルーチンを認識して置換するように指定します。

デフォルト:
-qswapomp
-qswapomp オプション
-u
-qundef
-qnoundef
UNDEF
NOUNDEF
変数名の暗黙のタイプ指定が許可されるかどうかを指定します。 -u および -qundef は、暗黙のステートメントを許可する個々の有効範囲にある IMPLICIT NONE ステートメントと同じ効果を持っています。
デフォルト:
-qnoundef
-u オプション
-qxflag=oldtab XFLAG(OLDTAB) XL Fortran バージョン 1 との互換性を維持するために、桁 1 から 5 のタブを単一文字として解釈します (固定ソース形式のプログラムの場合)。

デフォルト:
タブは 1 つまたは複数の文字として解釈されます。
-qxflag=oldtab オプション
-qxlf77=settings XLF77(settings) 変更された言語セマンティクスと I/O データ形式について、XL Fortran バージョン 1 および 2 からの言語との下位互換性を提供します。これらの変更のほとんどは、Fortran 90 標準で必要です。

デフォルト:
デフォルトのサブオプションは、xlf90xlf90_rxlf90_r7xlf95xlf95_r、および xlf95_r7 コマンドの場合、blankpad、 nogedit77、nointarg、 nointxor、leadzero、 nooldboz、nopersistent、および nosofteof で、xlfxlf_rxlf_r7、および f77/fort77 コマンドの場合、この逆です。
-qxlf77 オプション
-qxlf90=
{[no]signedzero |
[no]autodealloc}
XLF90(
{[no]signedzero |
[no]autodealloc})
言語の特定の機能について、コンパイラーが Fortran 90 または Fortran 95 レベルのサポートを提供しているかどうかを判別します。

デフォルト:
xlf95xlf95_r、および xlf95_r7 呼び出しコマンドでは、デフォルトのサブオプションは signedzero と autodealloc です。他のすべての呼び出しコマンドでは、デフォルトのサブオプションは nosignedzero と noautodealloc です。
-qxlf90 オプション

新規言語拡張機能のためのオプション

これらのオプションは、新しいプログラムを作成するためのものです。このオプションを使用するときに、プログラムを変更します。プログラムを変更しない場合は、ソース・コードを変更する必要があります。

表 9. Fortran 90 拡張機能のためのオプション

コマンド行オプション @PROCESS ディレクティブ 説明 参照ページ
-qinit=f90ptr INIT(f90ptr) ポインターの初期アソシエーション状態をアソシエーション解除にします。
デフォルト:
ポインターのデフォルト時アソシエーション状態は未定義です。
-qinit オプション

浮動小数点処理のためのオプション

システムの浮動小数点のパフォーマンスと精度を最大限に利用するために、コンパイラーおよび XLF コンパイル済みプログラムが浮動小数点計算をどのように実行するかを詳しく指定しなければならない場合もあります。

関連情報:
-qflttrap オプションおよび 他のシステムの浮動小数点結果の再現を参照してください。

表 10. 浮動小数点処理のためのオプション

コマンド行オプション @PROCESS ディレクティブ 説明 参照ページ
-qfloat=options FLOAT(options) 特定のタイプの浮動小数点計算を処理するために、コンパイラーがどのようにコードの生成または最適化を行うかを決定します。

デフォルト:
デフォルト・サブオプションは、 nofltint、 fold、 nohsflt、 nohssngl、 nonans、 norndsngl、 maf、 norrm、 norsqrt、および nostrictnmaf で、これらの設定の中には、-O3 最適化がオンになっていたり、 -qarch=ppc の場合に異なるものもあります。
-qfloat オプション
-qieee={ Near
| Minus
| Plus
| Zero}
-y{n | m | p | z}
IEEE({Near
| Minus
| Plus
| Zero})
コンパイル時に定数浮動小数点式を評価するときにコンパイラーが使用する丸めモードを指定します。

デフォルト:
-qieee=near
-qieee オプション

リンクを制御するオプション

これらのオプションは、コンパイル中に ld コマンドがオブジェクト・ファイルを処理する方法を制御します。これらのオプションの中には、ld に渡されて、コンパイラーによる処理がまったく行われないものもあります。

コンパイラーは認識されないオプションをリンカーに渡すので、コンパイラー・コマンド行に実際に ld オプションを入れることができます。

この表では、* は、XL Fortran コンパイラーではなく ld コマンドによってオプションが処理されることを示します。これらのオプションの詳細については、ld コマンドに関する AIX 情報に記載されています。

関連情報:
-qextchk オプションを使用すると、リンク中にいくつかの整合性検査を余分に行うことができます。

その他にも次のような便利だと思われるリンカー・オプションがあります。


表 11. リンクを制御するオプション

コマンド行オプション @PROCESS ディレクティブ 説明 参照ページ
-b64*   64 ビットのオブジェクトを 64 ビット・モードでバインドするよう ld に指示します。 -b64 オプション
-bdynamic*
-bshared*
-bstatic*
  これらのオプションは、-l オプションの処理と、共用オブジェクトの処理方法を制御するのに使用するトグルです。 -bdynamic、-bshared、-bstatic オプション
-bhalt:error_level*   リンカー・コマンド処理が停止するまでに許可されている最大エラー・レベルを指定します。

デフォルト:
構成ファイルに指定したとおり、-bhalt:4
-bhalt オプション
-bloadmap:name*   リンカー・アクションおよびメッセージのログが name というファイルに保管されるように要求します。

デフォルト:
ログは保持されません。
-bloadmap オプション
-bmaxdata:bytes*
-bmaxstack:bytes*
  プログラムのデータ・セグメントおよびスタック・セグメント用に予約する空間の最大量を、これらの領域のサイズが制約されているプログラムに対して指定します。

デフォルト:
スタックとデータ・スペースを結合すると、256 MB よりもわずかに少ないか、または、それ以下になります。どちらになるかは、ユーザー ID に対する制限によって決まります。
-bmaxdata、-bmaxstack オプション
-brtl*
-bnortl*
  ライブラリー (-l オプションで指定する) の検出に使用するアルゴリズムを決定します。 -brtl オプション
-c   実行可能ファイルの代わりに、オブジェクト・ファイルを作成します。

デフォルト:
実行可能ファイルを作成するコンパイルおよびリンク・エディット
-c オプション
-Ldir*   指定されたディレクトリーの -l オプションで指定されたライブラリーを調べます。

デフォルト:
/usr/lib.
-L オプション
-lkey*   指定されたライブラリー・ファイル (key はファイル libkey.a を選択します) を検索します。

デフォルト:
xlf.cfg にリストされているライブラリー
-l オプション
-qpic[=large |
small]
  共用ライブラリーで使用できる位置独立コード (PIC) を生成します。

デフォルト:
-qpic=small
-qpic オプション

コンパイラーの内部操作を制御するオプション

これらのオプションを使用すると、次を実行する際に役立ちます。


表 12. コンパイラーの内部操作を制御するオプション

コマンド行オプション @PROCESS ディレクティブ 説明 参照ページ
-Bprefix   コンパイル中に使用する実行可能ファイル (コンパイラー、リンカーなど) の代替パス名を決定します。これは -t オプションと組み合わせて使用することができ、これらのコンポーネントのどれが -B の影響を受けるかを決定します。

デフォルト:
これらのコンポーネントのパスは、構成ファイルと $PATH 環境変数、またはその両方に定義されます。
-B オプション
-Fconfig_file
-Fconfig_file:
stanza
-F:stanza
  代替構成ファイルを指定するか、その構成ファイル内で使用するスタンザを指定します (またはその両方を指定します)。

デフォルト:
構成ファイルは /etc/xlf.cfg ですが、スタンザはコンパイラーを実行するコマンドの名前によって異なります。
-F オプション
-q32   32 ビット・ターゲット・アーキテクチャーのビット・モードと命令セットを設定します。 -q32 オプション
-q64   64 ビット・ターゲット・アーキテクチャーのビット・モードと命令セットを設定します。 -q64 オプション
-qlm
-qnolm
  ライセンス管理制御を使用不能にします。

デフォルト:
デフォルト時には、ライセンス管理制御システム (LM) はオンになります。 LM を使用不能にするには、-qnolm コンパイラー・オプションを指定する必要があります。
-qlm オプション
-NSbytes
-qSPILLsize=
bytes
SPILLsize
(bytes)
内部プログラムのストレージ域のサイズを指定します。

デフォルト:
-NS512
-N オプション
-qmaxmem=
Kbytes
MAXMEM
(Kbytes)
コンパイラーが特定のメモリー集中の最適化を実行するときに、割り振るメモリーの量を指定キロバイト数に制限します。値 -1 を指定すれば、制限チェックは行わず、必要なだけメモリーを使って最適化を実行します。

デフォルト:
-qmaxmem=2048; -O3 の場合 -qmaxmem=-1
-qmaxmem オプション
-qsclk=[centi | micro ]
SYSTEM_CLOCK 組み込みプロシージャーを使用して値を戻すとき、コンパイラーがセンチ秒レゾリューションを使用するように指定します。 -qsclk=micro を使用することによりマイクロ秒レゾリューションを指定することができます。

デフォルト : -qsclk=centi

-qsclk オプション
-tcomponents   -B オプションで指定されたプレフィックスを、指定されたコンポーネントに適用します。components には、セパレーターを持たない 1 つ以上の p、F、c、 d、I、a、h、b、z、または l を指定でき、それぞれ、最適化プリプロセッサー、C プリプロセッサー、コンパイラー、-S 逆アセンブラー、プロシージャー間分析 (IPA) ツール、アセンブラー、ループ最適化プログラム、コード生成プログラム、バインド・プログラム、およびリンカーに対応します。

デフォルト:
-B プレフィックスがあれば、それがすべてのコンポーネントに適用されます。
-t オプション
-Wcomponent,options   リストされたオプションを、コンパイル中に実行されるコンポーネントに渡します。component は、p、F、c、d、I、a、z、または l のいずれかで、それぞれ、最適化プリプロセッサー、C プリプロセッサー、コンパイラー、-S 逆アセンブラー、プロシージャー間分析 (IPA) ツール、アセンブラー、バインド・プログラム、およびリンカーに対応します。

デフォルト:
これらのプログラムに渡されるオプションは次のとおりです。
  • 構成ファイルにリストされているオプション
  • コマンド行上の認識されないオプション (リンカーに渡される)
-W オプション

廃止、または不適オプション

次に示すオプションは、以下の理由のいずれかまたは両方のために廃止されています。

注:

  1. これらのオプションのいずれかを既存の makefile またはコンパイル・スクリプトで使用している場合は、将来起こり得る問題を回避するために、できる限り早急に新しい代替オプションへマイグレーションする必要があります。

  2. -qpositionappend サブオプションは、appendunknown に代わりました。

表 13. 廃止、または不適オプション

コマンド行オプション @PROCESS ディレクティブ 説明 参照ページ
-qcharlen=
length
CHARLEN
(length)
これは廃止されたオプションです。依然として受け入れますが、無効です。文字定数の最大長は 32 767 バイト (32 KB) です。また文字変数の最大長は 32 ビット・モードで 268 435 456 バイト (256 MB) です。また文字変数の最大長は 64 ビット・モードで 2**40 バイトです。この限界は常に有効で、長いストリングを含むプログラムに移植性の問題が生じるのを防ぐのに十分な大きさとなっています。 -qcharlen オプション
-qrecur
-qnorecur
RECUR
NORECUR
このオプションの使用はお勧めできません。外部サブプログラムを再帰的に呼び出すことができるかどうかを指定します。

新規プログラムの場合、RECURSIVE キーワードを使用すると、標準適応した方法で再帰的プロシージャーを使用することができます。 -qrecur オプションを指定すると、コンパイラーはすべてのプロシージャーが再帰的であると見なしてしまいます。再帰的プロシージャーのコード生成の効率が落ちる可能性があります。RECURSIVE キーワードを使用すれば、どのプロシージャーを再帰的にするかを正確に指定することができます。

-qrecur オプション


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]