以降に記載されている表は、XL Fortran コンパイラーで使用できるコンパイラー・オプションを示しています。これらのオプションは、コンパイラー・ディレクティブ @PROCESS を使用して、構成ファイル、コマンド行、Fortran ソース・コードにも入力できます。
-q で始まるコンパイラー・オプション、サブオプション、そして @PROCESS ディレクティブを、大文字または小文字のいずれかで入力できます。しかし、-qmixed オプションを指定してある場合、 -qextern オプションに指定するプロシージャー名は、大文字小文字を区別します。
本書全般で、-q コンパイラー・オプションおよびサブオプションには小文字を、@PROCESS ディレクティブには大文字を使用しています。ただし、この章の「構文」節と概要表の「コマンド行オプション」列では、-q オプション、サブオプションの名前と @PROCESS ディレクティブの名前には大文字を使用しており、オプション・キーワードの最小の省略形を表します。 たとえば、-qOPTimize の有効な省略形は、 -qopt、-qopti などです。
使用するオプションの重要度を理解し、代わりに使用できるオプションがわかれば、ごくわずかな時間と労力でプログラムを正しく効率的に機能させることができます。
これらのオプションは、ハイレベルでのコンパイラー入力に影響を与えます。どのソース・ファイルが処理されるかを決定し、大文字小文字の区別、桁の区別、その他のグローバルな形式の問題を確定します。
互換性を維持するためのオプションに記載されているオプションの多くは、許可されている入力形式を多少変えます。
コマンド行オプション | @PROCESS ディレクティブ | 説明 | 参照ページ |
---|---|---|---|
-Idir | インクルード・ファイルおよび .mod ファイルの探索パスにディレクトリーを追加します。
XL Fortran が cpp を呼び出す場合、このオプションを指定しておくと、#include ファイルの検索パスにディレクトリーが追加されます。コンパイラーは、インクルード・ファイルおよび .mod ファイルのデフォルト・ディレクトリーを検査する前に、探索パス内の個々のディレクトリーを検査します。インクルード・ファイルの場合は、INCLUDE 行のファイル名が絶対パスで示されていない場合にのみ、このパスが使用されます。
#include ファイルの -I オプションについての詳細は、cpp の資料を参照してください。
デフォルト:以下のディレクトリーは、次のような順序で検索されます
| -I オプション | |
-qci=numbers | CI(numbers) | 指定された INCLUDE 行を活動化します。
| -qci オプション |
-qdirective [=directive_list] -qnodirective [=directive_list] |
DIRECTIVE [(directive_list)] NODIRECTIVE [(directive_list)] | トリガー定数として知られる文字列を指定します。これらの文字列は、注釈行をコンパイラーの注釈ディレクティブとして識別します。
| -qdirective オプション |
-qfixed [=right_margin] |
FIXED [(right_margin)] | 入力ソース・プログラムが固定ソース形式になっていることを示し、任意で行の最大長を指定します。
| -qfixed オプション |
-qfree[={f90|ibm}] -k |
FREE[({F90| IBM})] | ソース・コードが自由形式になっていることを示します。
ibm および f90 サブオプションは、それぞれ VS FORTRAN と Fortran 90/Fortran 95 に対して定義されている自由ソース形式との互換性を指定します。
-k と -qfree は、-qfree=f90 の短縮形です。
| -qfree オプション |
-qmbcs -qnombcs |
MBCS NOMBCS | 文字リテラル定数、ホレリス定数、H 編集記述子、文字列編集記述子にマルチバイト文字セット (MBCS) 文字または Unicode 文字を含めることができるかどうかをコンパイラーに示します。
| -qmbcs オプション |
-qOBJect -qNOOBJect |
OBJect NOOBJect | オブジェクト・ファイルを作成するか、または、ソース・ファイルの構文をチェックした直後に停止するかを指定します。
| -qobject オプション |
-U -qmixed -qnomixed |
MIXED NOMIXED | コンパイラーが、名前内の文字の大文字と小文字を区別するようにします。
| -U オプション |
-qsuffix={suboptions} | コマンド行でのソース・ファイル・サフィックスを指定します。 | -qsuffix オプション |
これらのオプションは、コンパイラーが出力ファイルを格納するディレクトリーの名前を指定します。
この表では、* は、XL Fortran コンパイラーではなく ld コマンドによってオプションが処理されることを示します。これらのオプションの詳細については、ld コマンドに関する AIX 情報に記載されています。
コマンド行オプション | @PROCESS ディレクティブ | 説明 | 参照ページ |
---|---|---|---|
-d | cpp によって作成されたプリプロセス済みソース・ファイルを削除せずに残します。
| -d オプション | |
-o name* | 出力オブジェクト・ソース・ファイル、実行可能ソース・ファイル、アセンブラー・ソース・ファイルなどの名前を指定します。
| -o オプション | |
-qmoddir=directory | コンパイラーが書き込むモジュール・ファイル (.mod) の位置を指定します。
| -qmoddir オプション |
これらのオプションは、XL Fortran プログラムの実行速度を速めたり、パフォーマンスが低下している部分を見つけ、調整するのに役立ちます。このようなオプションの中で最も重要なのは -O です。一般に、他のパフォーマンス関連のオプションは、-O と組み合わせることにより、効果が上がります。 -O を組み合わせないと、まったく効果のないオプションもあります。
浮動小数点処理のためのオプションに記載されているオプションの中にも、パフォーマンスを向上させるものがあります。ただし、これらのオプションを使用する際は、エラー条件や誤った結果が起きないように十分注意して使用してください。
コマンド行オプション | @PROCESS ディレクティブ | 説明 | 参照ページ |
---|---|---|---|
-O[level] -qoptimize[=level] -qnooptimize |
OPTimize[(level)] NOOPTimize | コンパイル時にコードを最適化するかどうかを指定し、最適化する場合は、最適化のレベル (0、2、3、4 または 5) を指定します。
| -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}... ) | ある種の別名付けが、プログラムに含まれているかどうかを示します。コンパイラーは、同じストレージ・ロケーションにさまざまな名前が別名として付けられている可能性がある場合、最適化の有効範囲を制限します。
| -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 オプション |
-qarch=architecture | コンパイラーが生成する命令を制御します。デフォルトを変更すると、パフォーマンスを向上させることができますが、特定のマシンでしか実行できないコードが生成される可能性があります。
com、auto、rs64a、rs64b、
rs64c、p2sc、pwr、pwr2 (または pwrx)、pwr3、pwr4、pwr2s、ppc、
ppcgr、ppc64、601、603、および 604 からの選択。
| -qarch オプション | |
-qassert={ deps | nodeps | itercnt=n} | 最適化を微調整するのに役立つファイルの特性に関する情報を指定します。
| -qassert オプション | |
-qcache={ auto | assoc=number | cost=cycles | level=level | line=bytes | size=Kbytes | type={C|D|I}}[:...] | 特定の実行マシンに対して、キャッシュ構成を指定します。コンパイラーはこの情報を使用して、特に、データ・キャッシュに適合するデータ量に限定して処理するように構造化 (あるいはブロック化 ) 可能なループ演算の場合に、プログラムのパフォーマンスを調整します。
| -qcache オプション | |
-qcompact -qnocompact |
COMPACT NOCOMPACT | コード・サイズを大きくする最適化を抑制します。
| -qcompact オプション |
-qfdpr -qnofdpr | AIX fdpr (Feedback Directed Program Restructuring;
フィードバック指定プログラム再構築) パフォーマンス調整ユーティリティーが、生成される実行可能ファイルを最適化する際に必要とする情報をオブジェクト・ファイルに提供します。
| -qfdpr オプション | |
-qhot[=suboptions] -qnohot |
HOT[=suboptions] NOHOT | 最適化実行時にループおよび配列言語に高位変換を実行するかどうか、また配列次元とデータ・オブジェクトに埋め込みを行いキャッシュ・ミスを避けるかどうかを決定します。
| -qhot オプション |
-qipa[=suboptions] | プロシージャー間で詳細な分析 (プロシージャー間分析、つまり IPA) を行うことによって、-O 最適化を増大させます。
| -qipa オプション | |
-qlargepage -qnolargepage |
| ラージ・ページ・メモリー環境で実行するように設計されているプログラムが、 POWER4 およびより高いベース・システムで提供される大きな 16 MB ページを活用できるようにコンパイラーに指示します。 | -qlargepage オプション |
-qpdf{1|2} | プロファイルの結果を反映したフィードバック (profile-directed feedback (PDF)) によって最適化を調整します。その場合、条件付き分岐の近辺および頻繁に実行されるコード・セクション内の最適化が、サンプル・プログラムの実行結果を使用して改善されます。
| -qpdf オプション | |
-qprefetch | -qnoprefetch | プリフェッチ命令がコンパイラーによって自動的に挿入されるかどうかを指示します。
| -qprefetch オプション | |
-qsmallstack -qnosmallstack |
|
可能な限りコンパイラーがスタック使用を最小化するように指定します。
| -qsmallstack オプション |
-qsmp[=suboptions] -qnosmp | xlf_r、xlf_r7、xlf90_r、xlf90_r7、xlf95_r、または xlf95_r7 とともに使用され、ループの自動並列化、ループおよび他の項目のユーザー指定の並列化、およびアルゴリズムのチャンク化の選択を制御します。
| -qsmp オプション | |
-qstrict -qnostrict |
STRICT NOSTRICT | これを使用すれば、
-O3、
-O4、
-O5、
-qhot、および -qipa オプションで行われた最適化によって Fortran 90 または Fortran 95 プログラムのセマンティクスが変更されないことを保証します。
| -qstrict オプション |
-qstrictieeemod -qnostrictieeemod |
STRICTIEEE- MOD NOSTRICTIEEE- MOD | ieee_arithmetic および ieee_exceptions 組み込みモジュール用の Fortran 2000 IEEE 演算規則をコンパイラーに順守させるかどうかを指定します。
| -qstrictieeemod オプション |
-qstrict_induction -qnostrict_induction |
|
コンパイラーが帰納 (ループ・カウンター) 変数の最適化を実行してしまわないようにします。そのような最適化を実行した場合、帰納変数が関係した整数オーバーフローの動作が発生したときに 安全ではない 可能性があります (プログラムのセマンティクスが変更される可能性があります)。
| -qstrict_induction オプション |
-qthreaded | コンパイラーがスレッド・セーフ・コードを生成するように指定します。xlf_r、xlf_r7、xlf90_r、xlf90_r7、xlf95_r、および xlf95_r7 コマンドの場合、これはデフォルトでオンになります。 | -qthreaded オプション | |
-qtune=implementation | ハードウェア・アーキテクチャーの特定のインプリメンテーションに対する命令の選択、スケジューリング、その他のインプリメンテーションに依存するパフォーマンス拡張機能を調整します。次の設定が有効です:
auto、601、603、604、pwr、pwr2
(または pwrx)、pwr3、pwr4、
pwr2s、rs64a、rs64b、rs64c、または p2sc。
| -qtune オプション | |
-qunroll [=auto | yes] -qnounroll |
| 自動的に DO ループをアンロールすることを、コンパイラーに許可するかどうかを指定します。
| -qunroll オプション |
-qunwind -qnounwind |
UNWIND NOUNWIND | プロシージャー呼び出し時に不揮発性レジスターの保管および復元を行うためのデフォルトの動作を指定します。
| -qunwind オプション |
-qzerosize -qnozerosize |
ZEROSIZE NOZEROSIZE | サイズがゼロのストリングおよび配列の検査を行わせないことによって、
FORTRAN 77 プログラムと、いくつかの Fortran 90 および Fortran 95 プログラムのパフォーマンスを向上させます。
| -qzerosize オプション |
これらのオプションを使用すると、XL Fortran プログラム内の問題を回避、検出、修正するのに役立ち、第 11 章, 問題判別とデバッグを頻繁に参照する必要もなくなります。
特に、-qlanglvl は、Fortran 標準の潜在的な違反を警告することによって、コンパイル・プロセスの初期の段階で移植性の問題を検出するのに役立ちます。これはプログラムで拡張が行われていたり、そのような拡張ができるようにするコンパイラー・オプションが備えられているためです。
-C および -qflttrap のようなその他のオプションは、実行時の計算エラーの検出もしくは回避、またはその両方を行います (これを行わないと誤った出力結果が作成される可能性があります)。
これらのオプションではコンパイル時に追加チェックを必要とし、また実行速度の低下をもたらす実行時エラー・チェックを使用する場合もあるので、チェックの必要性、コンパイル速度の低下、実行パフォーマンスという 3 エレメント間の適切なバランスを見つけ出すために実験が必要な場合があります。
これらのオプションを使用すると、行わなければならない問題判別とデバッグの量を最小限にとどめることができます。デバッグ中に役立つオプションには、他にも次のものがあります。
コマンド行オプション | @PROCESS ディレクティブ | 説明 | 参照ページ |
---|---|---|---|
-C -qcheck -qnocheck |
CHECK NOCHECK | 配列エレメント、配列セクション、文字サブストリングなどへの個々の参照が正しいかどうかをチェックします。コンパイル時に境界外参照が検出されると、重大エラーとして報告され、実行時に SIGTRAP シグナルを生成します。
| -C オプション |
-D -qdlines -qnodlines |
DLINES NODLINES | 桁 1 に D を持つ固定ソース形式行がコンパイルされるか、注釈として扱われるかを指定します。
| -D オプション |
-g -qdbg -qnodbg |
DBG NODBG | シンボリック・デバッガーで使用するデバッグ情報を生成します。
| -g オプション |
-qdpcl -qnodpcl |
DPCL NODPCL | 実行可能ファイルの構造を見るときに、動的プローブ・クラス・ライブラリー (DPCL) に基づくツールが使用することのできるシンボルを生成します。
| -qdpcl オプション |
-qextchk -qnoextchk |
EXTCHK NOEXTCHK | 共通ブロック、プロシージャー定義、プロシージャー参照、モジュール・データのタイプ・チェック情報を設定します。リンカーは後でこの情報を使用して、コンパイル単位間の不一致を検出できます。
| -qextchk オプション |
-qflttrap [=suboptions] -qnoflttrap |
FLTTRAP [(suboptions)] NOFLTTRAP | 実行時に検出する浮動小数点演算例外条件のタイプを決定します。該当する例外が発生すると、プログラムは SIGTRAP シグナルを受信します。
| -qflttrap オプション |
-qfullpath -qnofullpath | ソース・ファイルとインクルード・ファイルの完全なパス名、つまり絶対パス名は、コンパイルされたオブジェクト・ファイルの中にデバッグ情報と一緒に記録されます (-g オプション)。
| -qfullpath オプション | |
-qhalt=sev | HALT(sev) | コンパイル時メッセージの最大の重大度が、指定した重大度と等しいか、それを上回る場合、オブジェクト・ファイル、実行可能ファイル、アセンブラー・ソース・ファイルを作成する前に動作を停止します。
severity (重大度) は、i (通知)、l (言語)、w (警告)、e (エラー)、s (重大エラー)、u (回復不能エラー)、
q (「停止しない」を示す重大度) のいずれかです。
| -qhalt オプション |
-qinitauto[=hex_value] -qnoinitauto | hex_value の長さに応じて、自動変数用のストレージの個々のバイトまたはワード (4 バイト) を、特定の値に初期設定します。これにより、定義前に参照される変数を見つけることができます。たとえば、REAL 変数を NaNS 値に初期設定するための -qinitauto オプションと、-qflttrap オプションの両方を使用することにより、実行時に初期設定されていない REAL 変数を参照していないかどうかを識別することができます。
| -qinitauto オプション | |
-qlanglvl={ 77std | 90std | 90pure | 90ext | 95std | 95pure | extended}
|
LANGLVL({ 77STD | 90STD | 90PURE | 90EXT | 95STD | 95PURE | EXTENDED}) | 非適合の検査を行う言語標準 (または標準のスーパーセットまたはサブセット) を決定します。非適合のソース・コード、およびそのような非適合を許可するオプションを識別します。
| -qlanglvl オプション |
-qsaa -qnosaa |
SAA NOSAA | SAA FORTRAN 言語定義に従っているかどうかをチェックします。非適合のソース・コード、およびそのような非適合を許可するオプションを識別します。 | -qsaa オプション |
-qsigtrap[= trap_handler] | xl__trce、事前定義トラップ・ハンドラーまたはユーザー作成トラップ・ハンドラーをメイン・プログラムにインストールします。
| -qsigtrap オプション | |
-qtbtable={none | small | full} | オブジェクト・ファイル内のトレースバック情報のデバッグ量を制限し、プログラムのサイズを小さくします。
| -qtbtable オプション | |
-qwarn64 -qnowarn64 | 8 バイト整数ポインターの 4 バイトへの切り捨てを検出します。通知メッセージを使って 32 ビットから 64 ビットへマイグレーションするときに問題を起こす可能性のあるステートメントを識別します。
|
| |
-qxlines -qnoxlines |
XLINES NOXLINES | 桁 1 に X を持つ固定ソース形式行をソース・コードと見なしてコンパイルするか、注釈として扱うかを指定します。
| -qxlines オプション |
これらのオプションは、コンパイラーがリスト (.lst ファイル) を作成するかどうか、どのような種類の情報がリストに入るか、エラー条件を検出したらコンパイラーはそれについて何を行うかなどを決定します。
エラー・チェックおよびデバッグのためのオプションに記載されているオプションの中には、コンパイラー・メッセージも作成できるものがあります。
コマンド行オプション | @PROCESS ディレクティブ | 説明 | 参照ページ |
---|---|---|---|
-# | 個々のコンポーネントを実際には実行せずに、コンパイルの進行に関する情報を生成します。
| -# オプション | |
-qattr[=full] -qnoattr |
ATTR[(FULL)] NOATTR | 属性のコンポーネントおよびリストの相互参照セクションを作成するかどうかを指定します。
| -qattr オプション |
-qflag= listing_severity: terminal_severity -w |
FLAG (listing_severity, terminal_severity) | 診断メッセージを指定されたレベルまたはそれ以上のレベルに限定します。
listing_severity またはそれ以上の重大度を持つメッセージだけがリスト・ファイルに書き込まれます。
terminal_severity またはそれ以上の重大度を持つメッセージだけが端末装置に書き込まれます。
-w は、-qflag=e:e の短い形式です。
| -qflag オプション |
-qlist -qnolist |
LIST NOLIST | リストのオブジェクト・セクションを作成するかどうかを指定します。
| -qlist オプション |
-qlistopt -qnolistopt |
LISTOPT NOLISTOPT | リスト・ファイル内のすべてのコンパイラー・オプションの設定を表示するか、または、選択したオプションだけを表示するかを決定します。これらの選択したオプションには、コマンド行またはディレクティブに指定されているオプションと、常にリストにあるオプションが含まれます。
| -qlistopt オプション |
-qnoprint | 他のリスト・オプションの設定とは関係なく、リスト・ファイルが作成されないようにします。
| -qnoprint オプション | |
-qphsinfo -qnophsinfo |
PHSINFO NOPHSINFO | 各コンパイラー・フェーズのタイミング情報が端末に表示されるかどうかを決定します。
| -qphsinfo オプション |
-qreport[={smplist | hotlist}...] -qnoreport |
REPORT [({SMPLIST | HOTLIST}...)] NOREPORT | プログラムの並列化方法とループの最適化方法を示す変換報告書を作成するかどうかを決定します。
| -qreport オプション |
-qsource -qnosource |
SOURCE NOSOURCE | リストのソース・セクションを作成するかどうかを指定します。
| -qsource オプション |
-qsuppress [= nnnn-mmm[:nnnn-mmm...] | cmpmsg] | -qnosuppress | 出力ストリームから抑止されるメッセージを指定します。 | -qsuppress オプション | |
-qxref -qnoxref -qxref=full |
XREF NOXREF XREF(FULL) | 属性の相互参照コンポーネントおよびリストの相互参照セクションを作成するかどうかを決定します。
| -qxref オプション |
-S | 個々の Fortran ソース・ファイルに対して同等のアセンブラー・ソースを示す 1 つまたは複数の .s ファイルを作成します。
| -S オプション | |
-v | 呼び出しコマンドで実行される個々のコンパイラー・コンポーネントの名前とパラメーターを表示することによって、コンパイルの進捗状況をトレースします。
| -v オプション | |
-V | 呼び出しコマンドで実行される個々のコンパイラー・コンポーネントの名前とパラメーターを表示することによって、コンパイルの進捗状況をトレースします。これらの情報は、シェル実行可能形式で表示されます。
| -V オプション |
これらのオプションは、過去、現在、将来のハードウェア・プラットフォーム上の XL Fortran ソース・コード間の互換性を維持するのに役立つほか、変更をできる限り最小にとどめてプログラムを XL Fortran に移植するのに役立ちます。
-qfree オプションの -qfree=ibm 形式もまた、VS FORTRAN 自由ソース形式との互換性を提供します。
コマンド行オプション | @PROCESS ディレクティブ | 説明 | 参照ページ |
---|---|---|---|
-qautodbl=setting | AUTODBL(setting) | 単精度浮動小数点を倍精度へ自動的に変換する方法、そして倍精度を拡張精度へ自動的に変換する方法を提供します。
none、
dbl、
dbl4、
dbl8、
dblpad、
dblpad4、または dblpad8 の設定のいずれかを使用します。
| -qautodbl オプション |
-qcclines -qnocclines |
CCLINES NOCCLINES | コンパイラーが条件付きコンパイル行を認識するかどうかを決定します。
| -qcclines オプション |
-qctyplss [=([no]arg)] -qnoctyplss |
CTYPLSS [([NO]ARG)] NOCTYPLSS | タイプが指定されていない定数を使用できる場合に、必ず文字定数式が許可されるかどうかを指定します。他のプラットフォームからプログラムを移植するとき、この言語拡張機能が必要となる場合があります。サブオプション arg は、実際の引き数として使用されるホレリス定数が、整数の実際の引き数として扱われることを指定します。
| -qctyplss オプション |
-qddim -qnoddim |
DDIM NODDIM | 配列が参照されるたびに、ポインティング先の境界が再評価されることを指定し、ポインティング先用の境界式に対する制約事項をいくつか除去します。
| -qddim オプション |
-qdpc -qdpc=e -qnodpc |
DPC DPC(E) NODPC | 実定数を DOUBLE PRECISION 変数に割り当てるときに、最大の精度を得られるように実定数の精度を高めます。他のプラットフォームからプログラムを移植するとき、この言語拡張機能が必要となる場合があります。
| -qdpc オプション |
-qescape -qnoescape |
ESCAPE NOESCAPE | ストリング、ホレリス定数、H 編集記述子、ストリング編集記述子で、バックスラッシュがどのように扱われるかを指定します。バックスラッシュは、エスケープ文字またはバックスラッシュ文字として扱うことができます。他のプラットフォームからプログラムを移植するとき、この言語拡張機能が必要となる場合があります。
| -qescape オプション |
-qessl |
Fortran 90 組み込みプロシージャーの代わりに ESSL ルーチンを使用することができます。-lessl でリンクするときは、ESSL シリアル・ライブラリーを使用します。 -lesslsmp でリンクするときは、ESSL SMP ライブラリーを使用します。
| -qessl オプション | |
-qextern=names | ユーザー作成のプロシージャーを、XL Fortran 組み込み関数の代わりに呼び出せるようにします。names はプロシージャー名をコロンで区切ったリストです。プロシージャー名は、コンパイル中の個々のコンパイル単位の EXTERNAL ステートメント内にあるかのように扱われます。プロシージャー名が XL Fortran 組み込みプロシージャーと競合する場合は、このオプションを使用して組み込みプロシージャーの代わりにソース・コード内のプロシージャーを呼び出します。
| -qextern オプション | |
-qextname[=name:name...] -qnoextname |
EXTNAME[(name:name...)] NOEXTNAME | グローバル・エンティティーの名前に下線を追加して、システムからプログラムを移植する場合に役立ちます (これが混合言語プログラムに対する規則であるシステムの場合)。
| -qextname オプション |
-qintlog -qnointlog |
INTLOG NOINTLOG | 式およびステートメント内に整数と論理値を混在させることができることを指定します。
| -qintlog オプション |
-qintsize=バイト | INTSIZE(バイト) | デフォルトの INTEGER 値および LOGICAL 値のサイズを設定します。
| -qintsize オプション |
-qlog4 -qnolog4 |
LOG4 NOLOG4 | 論理オペランドを持つ論理演算の結果が、LOGICAL(4) であるか、それともオペランドの最大長を持つ LOGICAL であるかを指定します。
| -qlog4 オプション |
-qnullterm -qnonullterm |
NULLTERM NONULLTERM | 仮引き数として渡される文字定数式に NULL 文字を付加することによって、ストリングを C 関数に渡しやすくします。
| -qnullterm オプション |
-1 -qonetrip -qnoonetrip |
ONETRIP NOONETRIP | DO ステートメントが実行される場合、反復回数が 0 であったとしても、コンパイルされたプログラム内の個々の DO ループを最低 1 回実行します。
| -1 オプション |
-qport [=suboptions] -qnoport |
PORT [(suboptions)] NOPORT | 他の Fortran 言語拡張機能を収容するために幾つかのオプションを提供して、
XL Fortran にプログラムを移植すると柔軟性が増加します。
| -qport オプション |
-qposition= {appendold | appendunknown} |
POSITION( {APPENDOLD | APPENDUNKNOWN}) | POSITION= 指定子を持たない OPEN ステートメントの後にデータが書き込まれ、対応する STATUS= 値 (OLD または UNKNOWN) が指定されると、ファイル・ポインターをファイルの終わりに置きます。
| -qposition オプション |
-qqcount -qnoqcount |
QCOUNT NOQCOUNT | 拡張精度 Q 編集記述子 (Qw.d) だけではなく、
Q 文字カウント編集記述子 (Q) を受け入れます。
-qnoqcount を使用すると、すべての Q 編集記述子が拡張精度 Q 編集記述子として解釈されます。
| -qqcount オプション |
-qrealsize=バイト | REALSIZE(バイト) | REAL、DOUBLE PRECISION、
COMPLEX、および DOUBLE COMPLEX 値のデフォルト・サイズを設定します。
| -qrealsize オプション |
-qsave[={all | defaultinit}] -qnosave |
SAVE{(ALL | DEFAULTINIT)} NOSAVE | ローカル変数のデフォルト・ストレージ・クラスを指定します。
-qsave、-qsave=all、あるいは -qsave=defaultinit は、デフォルト・ストレージ・クラスを
STATIC に設定し、-qnosave は、AUTOMATIC に設定します。
-qsave を xlf、xlf_r、xlf_r7、f77、または fort77 に指定して、FORTRAN77 コマンドの動作を複写します。 | -qsave オプション |
-qswapomp -qnoswapomp |
SWAPOMP NOSWAPOMP | コンパイラーが、XL Fortran プログラムにある OpenMP ルーチンを認識して置換するように指定します。
| -qswapomp オプション |
-u -qundef -qnoundef |
UNDEF NOUNDEF | 変数名の暗黙のタイプ指定が許可されるかどうかを指定します。
-u および -qundef は、暗黙のステートメントを許可する個々の有効範囲にある IMPLICIT NONE ステートメントと同じ効果を持っています。
| -u オプション |
-qxflag=oldtab | XFLAG(OLDTAB) | XL Fortran バージョン 1 との互換性を維持するために、桁 1 から 5 のタブを単一文字として解釈します (固定ソース形式のプログラムの場合)。
| -qxflag=oldtab オプション |
-qxlf77=settings | XLF77(settings) | 変更された言語セマンティクスと I/O データ形式について、XL Fortran バージョン 1 および 2 からの言語との下位互換性を提供します。これらの変更のほとんどは、Fortran 90 標準で必要です。
| -qxlf77 オプション |
-qxlf90= {[no]signedzero | [no]autodealloc} |
XLF90( {[no]signedzero | [no]autodealloc}) | 言語の特定の機能について、コンパイラーが Fortran 90 または Fortran 95 レベルのサポートを提供しているかどうかを判別します。
| -qxlf90 オプション |
これらのオプションは、新しいプログラムを作成するためのものです。このオプションを使用するときに、プログラムを変更します。プログラムを変更しない場合は、ソース・コードを変更する必要があります。
コマンド行オプション | @PROCESS ディレクティブ | 説明 | 参照ページ |
---|---|---|---|
-qinit=f90ptr | INIT(f90ptr) | ポインターの初期アソシエーション状態をアソシエーション解除にします。
| -qinit オプション |
システムの浮動小数点のパフォーマンスと精度を最大限に利用するために、コンパイラーおよび XLF コンパイル済みプログラムが浮動小数点計算をどのように実行するかを詳しく指定しなければならない場合もあります。
コマンド行オプション | @PROCESS ディレクティブ | 説明 | 参照ページ |
---|---|---|---|
-qfloat=options | FLOAT(options) | 特定のタイプの浮動小数点計算を処理するために、コンパイラーがどのようにコードの生成または最適化を行うかを決定します。
| -qfloat オプション |
-qieee={ Near | Minus | Plus | Zero} -y{n | m | p | z} |
IEEE({Near | Minus | Plus | Zero}) | コンパイル時に定数浮動小数点式を評価するときにコンパイラーが使用する丸めモードを指定します。
| -qieee オプション |
これらのオプションは、コンパイル中に ld コマンドがオブジェクト・ファイルを処理する方法を制御します。これらのオプションの中には、ld に渡されて、コンパイラーによる処理がまったく行われないものもあります。
コンパイラーは認識されないオプションをリンカーに渡すので、コンパイラー・コマンド行に実際に ld オプションを入れることができます。
この表では、* は、XL Fortran コンパイラーではなく ld コマンドによってオプションが処理されることを示します。これらのオプションの詳細については、ld コマンドに関する AIX 情報に記載されています。
その他にも次のような便利だと思われるリンカー・オプションがあります。
コマンド行オプション | @PROCESS ディレクティブ | 説明 | 参照ページ |
---|---|---|---|
-b64* | 64 ビットのオブジェクトを 64 ビット・モードでバインドするよう ld に指示します。 | -b64 オプション | |
-bdynamic* -bshared* -bstatic* | これらのオプションは、-l オプションの処理と、共用オブジェクトの処理方法を制御するのに使用するトグルです。 | -bdynamic、-bshared、-bstatic オプション | |
-bhalt:error_level* | リンカー・コマンド処理が停止するまでに許可されている最大エラー・レベルを指定します。
| -bhalt オプション | |
-bloadmap:name* | リンカー・アクションおよびメッセージのログが name というファイルに保管されるように要求します。
| -bloadmap オプション | |
-bmaxdata:bytes* -bmaxstack:bytes* | プログラムのデータ・セグメントおよびスタック・セグメント用に予約する空間の最大量を、これらの領域のサイズが制約されているプログラムに対して指定します。
| -bmaxdata、-bmaxstack オプション | |
-brtl* -bnortl* | ライブラリー (-l オプションで指定する) の検出に使用するアルゴリズムを決定します。 | -brtl オプション | |
-c | 実行可能ファイルの代わりに、オブジェクト・ファイルを作成します。
| -c オプション | |
-Ldir* | 指定されたディレクトリーの -l オプションで指定されたライブラリーを調べます。
| -L オプション | |
-lkey* | 指定されたライブラリー・ファイル
(key はファイル libkey.a を選択します) を検索します。
| -l オプション | |
-qpic[=large | small] | 共用ライブラリーで使用できる位置独立コード (PIC) を生成します。
| -qpic オプション |
これらのオプションを使用すると、次を実行する際に役立ちます。
コマンド行オプション | @PROCESS ディレクティブ | 説明 | 参照ページ |
---|---|---|---|
-Bprefix | コンパイル中に使用する実行可能ファイル (コンパイラー、リンカーなど) の代替パス名を決定します。これは -t オプションと組み合わせて使用することができ、これらのコンポーネントのどれが -B の影響を受けるかを決定します。
| -B オプション | |
-Fconfig_file -Fconfig_file: stanza -F:stanza | 代替構成ファイルを指定するか、その構成ファイル内で使用するスタンザを指定します (またはその両方を指定します)。
| -F オプション | |
-q32 | 32 ビット・ターゲット・アーキテクチャーのビット・モードと命令セットを設定します。 | -q32 オプション | |
-q64 | 64 ビット・ターゲット・アーキテクチャーのビット・モードと命令セットを設定します。 | -q64 オプション | |
-qlm -qnolm | ライセンス管理制御を使用不能にします。
| -qlm オプション | |
-NSbytes -qSPILLsize= bytes |
SPILLsize (bytes) | 内部プログラムのストレージ域のサイズを指定します。
| -N オプション |
-qmaxmem= Kbytes |
MAXMEM (Kbytes) | コンパイラーが特定のメモリー集中の最適化を実行するときに、割り振るメモリーの量を指定キロバイト数に制限します。値 -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) ツール、アセンブラー、ループ最適化プログラム、コード生成プログラム、バインド・プログラム、およびリンカーに対応します。
| -t オプション | |
-Wcomponent,options | リストされたオプションを、コンパイル中に実行されるコンポーネントに渡します。component は、p、F、c、d、I、a、z、または l のいずれかで、それぞれ、最適化プリプロセッサー、C プリプロセッサー、コンパイラー、-S 逆アセンブラー、プロシージャー間分析 (IPA) ツール、アセンブラー、バインド・プログラム、およびリンカーに対応します。
| -W オプション |
次に示すオプションは、以下の理由のいずれかまたは両方のために廃止されています。
注:
コマンド行オプション | @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 オプション |