以降に記載されている表は、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 の資料を参照してください。
デフォルト: 以下のディレクトリーは、次のような順序で検索されます。
また、 /opt/ibmcmp/xlf/9.1/include も検索されます。 コンパイラーとともに出荷されるインクルード・ファイルと .mod ファイルはここに入っています。 | -I オプション | |
-qci=numbers | CI(numbers) | 指定された INCLUDE 行を活動化します。
| -qci オプション |
-qcr -qnocr |
| コンパイラーが CR (復帰) 文字をどのように解釈するかを制御することができます。
これにより、Mac OS または DOS/Windows のエディターを使用して作成したコードをコンパイルできます。
| -qcr オプション |
-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 オプション |
-U -qmixed -qnomixed |
MIXED NOMIXED | コンパイラーが、名前内の文字の大文字と小文字を区別するようにします。
| -U オプション |
-qsuffix={suboptions} | コマンド行でのソース・ファイル・サフィックスを指定します。 | -qsuffix オプション |
これらのオプションは、コンパイルで出力ファイルを格納するディレクトリーの名前を指定します。
この表では、* は、XL Fortran コンパイラーではなく ld コマンドによってオプションが処理されることを示します。 これらのオプションの詳細については、ld コマンドに関する Linux 情報に記載されています。
コマンド行 オプション | @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 -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 {=subopt}| bindc {=subopt}} | ALIGN( {[NO]4K| STRUCT{(subopt)}| BINDC{(subopt)}}) | 誤って位置合わせされたデータによるパフォーマンス問題を回避する、
ストレージ内でのデータ・オブジェクトの位置合わせを指定します。
[no]4k、bindc、
および struct オプションを一緒に指定することができ、
しかも互いに排他的ではありません。
[no]4k オプションは、
基本的には論理ボリューム I/O とディスク・ストライピングの組み合わせに
有効です。
| -qalign オプション |
-qarch=architecture | コンパイラーが生成する命令を制御します。
デフォルトを変更すると、
パフォーマンスを向上させることができますが、
特定のマシンでしか実行できないコードが生成される可能性があります。
Y-HPC の場合、auto および ppc970 のみが有効です。
そうでない場合、選択項目は com、ppc、ppcgr、ppc64、ppc64gr、ppc64grsq、 rs64b、rs64c、pwr3、pwr4、pwr5、および ppc970 です。
| -qarch オプション | |
-qassert={ deps | nodeps | itercnt=n} | 最適化を微調整するのに役立つファイルの特性に関する情報を指定します。
| -qassert オプション | |
-qcache={ auto | assoc=number | cost=cycles | level=level | line=bytes | size=Kbytes | type={C|c|D|d|I|i}}[:...] | 特定の実行マシンに対して、キャッシュ構成を指定します。
コンパイラーはこの情報を使用して、
特に、データ・キャッシュに適合するデータ量に限定して処理するように構造化 (あるいはブロック化) 可能なループ演算の場合に、
プログラムのパフォーマンスを調整します。
| -qcache オプション | |
-qcompact -qnocompact |
COMPACT NOCOMPACT | コード・サイズを大きくする最適化を抑制します。
| -qcompact オプション |
-qdirectstorage -qnodirectstorage |
| 指定のコンパイル単位がライトスルー使用可能またはキャッシュ使用禁止のストレージを参照できることを
コンパイラーに通知します。
このオプションは慎重に使用してください。
メモリーとキャッシュ・ブロックの作業に精通し、最適なパフォーマンスを得るためにアプリケーションを
チューニングすることができるプログラマーを対象としています。
| -qdirectstorage オプション |
-qenablevmx -qnoenablevmx |
| コンパイラーに対して、VMX (Vector Multimedia eXtension) 命令を生成するように指示します。
-qhot=simd および -qarch=ppc970 の各コンパイラー・オプションも指定する必要があります。
| -qenablevmx オプション |
-qessl |
Fortran 90 組み込みプロシージャーの代わりに ESSL ルーチンを使用することが できます。-lessl でリンクするときは、ESSL シリアル・ライブラリーを使用します。 -lesslsmp でリンクするときは、ESSL SMP ライブラリーを使用します。
| -qessl オプション | |
-qhot[=suboptions] -qnohot |
HOT[=suboptions] NOHOT | -qhot コンパイラー・オプションは、ループと配列言語を最適化するためのチューニングを助ける強力な代替手段です。
-qhot コンパイラー・オプションは、指定されたサブオプションに
関係なく、常にループの最適化を試行します。
| -qhot オプション |
-qipa[=suboptions] | -qnoipa | プロシージャー間で詳細な分析 (プロシージャー間分析、つまり IPA) を行うことによって、-O 最適化を増大させます。
| -qipa オプション | |
-qkeepparm -qnokeepparm | 最適化しているときでも、着信するプロシージャー・パラメーターがスタックに保管されることを保証します。
| -qkeepparm オプション | |
-qmaxmem= Kbytes |
MAXMEM (Kbytes) | コンパイラーが特定のメモリー集中の最適化を実行するときに、
割り振るメモリーの量を指定キロバイト数に制限します。
値 -1 を指定すれば、制限チェックは行わず、必要なだけメモリーを使って最適化を実行します。
| -qmaxmem オプション |
-qOBJect -qNOOBJect |
OBJect NOOBJect | オブジェクト・ファイルを作成するか、または、
ソース・ファイルの構文をチェックした直後に停止するかを指定します。
| -qobject オプション |
-qpdf{1|2} | プロファイル指示フィードバック (profile-directed feedback (PDF)) によって最適化を調整します。
その場合、条件付き分岐の近辺および頻繁に実行されるコード・セクション内の最適化が、サンプル・プログラムの実行結果を使用して改善されます。
| -qpdf オプション | |
-qprefetch | -qnoprefetch | プリフェッチ命令がコンパイラーによって自動的に挿入されるかどうかを指示します。
| -qprefetch オプション | |
-qsaveopt -qnosaveopt | ソース・ファイルのコンパイルに使用するコマンド行オプションを、該当するオブジェクト・ファイルに保管します。
| -qsaveopt オプション | |
-qshowpdf -qnoshowpdf |
|
追加の呼び出しとブロック・カウント・プロファイル情報を実行可能ファイルに追加します。 このオプションは、-qpdf1 オプションとともに使用します。
| -qshowpdf オプション |
-qsmallstack[=dynlenonheap] -qnosmallstack |
|
可能な限りコンパイラーがスタック使用を最小化するように指定します。
| -qsmallstack オプション |
-qsmp[=suboptions] -qnosmp | xlf_r、xlf90_r、または xlf95_r とともに
使用され、ループの自動並列化、ループおよび他の項目のユーザー指定の並列化、
およびアルゴリズムのチャンク化の選択を制御します。
| -qsmp オプション | |
-NSbytes -qSPILLsize= bytes |
SPILLsize (bytes) | 内部プログラムのストレージ域のサイズを指定します。
| -N オプション |
-qstrict -qnostrict |
STRICT NOSTRICT | -O3、-O4、-O5、-qhot、および -qipa オプションで行われた最適化によって
プログラムのセマンティクスが変更されないことを保証します。
| -qstrict オプション |
-qstrictieeemod -qnostrictieeemod |
STRICTIEEE- MOD NOSTRICTIEEE- MOD | ieee_arithmetic および ieee_exceptions 組み込み
モジュール用の Fortran 2003 IEEE 演算規則を
コンパイラーに順守させるかどうかを指定します。
| -qstrictieeemod オプション |
-qstrict_induction -qnostrict_induction |
|
コンパイラーが帰納 (ループ・カウンター) 変数の最適化を実行してしまわないようにします。 そのような最適化を実行した場合、帰納変数が関係した整数オーバーフローの動作が発生したときに アンセーフ になる可能性があります (プログラムのセマンティクスが変更される可能性があります)。
| -qstrict_induction オプション |
-qthreaded | コンパイラーがスレッド・セーフ・コードを生成するように指定します。xlf_r、xlf90_r、および xlf95_r コマンドの場合、 これはデフォルトでオンになります。 | -qthreaded オプション | |
-qtune=implementation | ハードウェア・アーキテクチャーの特定のインプリメンテーションに対する命令の選択、
スケジューリング、その他のインプリメンテーションに依存するパフォーマンス拡張機能を調整します。
Y-HPC の場合、auto および ppc970 のみが有効です。
他のすべての場合、auto、rs64b、rs64c、pwr3、
pwr4、pwr5、または
ppc970 の設定が有効です。
| -qtune オプション | |
-qunroll [=auto | yes] -qnounroll |
| 自動的に DO ループをアンロールすることを、
コンパイラーに許可するかどうかを指定します。
| -qunroll オプション |
-qunwind -qnounwind |
UNWIND NOUNWIND | プロシージャー呼び出し時に不揮発性レジスターの
保管および復元を行うためのデフォルトの動作を指定します。
| -qunwind オプション |
-qversion -qnoversion | 呼び出しコンパイラーのバージョンとリリースを表示します。
| -qversion オプション | |
-qzerosize -qnozerosize |
ZEROSIZE NOZEROSIZE | サイズがゼロのストリングおよび配列の検査を行わせないことによって、
FORTRAN 77 プログラムと、一部の Fortran 90 および Fortran 95 プログラムのパフォーマンスを向上させます。
| -qzerosize オプション |
これらのオプションを使用すると、XL Fortran プログラム内の問題を回避、検出、 修正するのに役立ち、問題判別とデバッグを頻繁に参照する必要もなくなります。
特に、-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 オプション |
-qflttrap [=suboptions] -qnoflttrap |
FLTTRAP [(suboptions)] NOFLTTRAP | 実行時に検出する浮動小数点演算例外条件のタイプを決定します。
該当する例外が発生すると、
プログラムは SIGFPE シグナルを受信します。
| -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 変数をシグナル NAN 値に
初期化するための -qinitauto オプションと、-qflttrap オプションの両方を使用することにより、実行時に初期化されていない REAL 変数を参照していないかどうかを識別することができます。
| -qinitauto オプション | |
-qlanglvl={ 77std | 90std | 90pure | 95std | 95pure | extended}
|
LANGLVL({ 77STD | 90STD | 90PURE | 95STD | 95PURE | EXTENDED}) | 非準拠の検査を行う言語標準 (または標準のスーパーセットまたはサブセット) を決定します。
非準拠のソース・コード、
およびそのような非準拠を許可するオプションを識別します。
| -qlanglvl オプション |
-qsaa -qnosaa |
SAA NOSAA | SAA FORTRAN 言語定義に従っているかどうかをチェックします。
非準拠のソース・コード、
およびそのような非準拠を許可するオプションを識別します。
| -qsaa オプション |
-qsigtrap[= trap_handler] | xl__trce、事前定義トラップ・ハンドラーまたは
ユーザー作成トラップ・ハンドラーをメイン・プログラムにインストールします。
| -qsigtrap オプション | |
-qtbtable={none | small | full} | 64 ビット環境にのみ適用されます。
オブジェクト・ファイル内のトレースバック情報のデバッグ量を制限し、
プログラムのサイズを小さくします。
| -qtbtable オプション | |
-qxflag=dvz |
| -qxflag=dvz を指定すると、コンパイラーは、浮動小数点ゼロ除算演算を検出するコードを生成します。
| -qxflag=dvz オプション |
-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 オプション |
-qbigdata -qnobigdata |
| 32 ビット・モードでは、初期化されたデータの 16 MB を超えるプログラム (gcc 制限) および
共用ライブラリーの呼び出しルーチン (like open、close、
printf など) 用に、このオプションを使用します。
| -qminimaltoc オプション |
-qcclines -qnocclines |
CCLINES NOCCLINES | コンパイラーが条件付きコンパイル行を認識するかどうかを決定します。
| -qcclines オプション |
-qctyplss [=([no]arg)] -qnoctyplss |
CTYPLSS [([NO]ARG)] NOCTYPLSS | 型が指定されていない定数を使用できる場合に、
必ず文字定数式が許可されるかどうかを指定します。
他のプラットフォームからプログラムを移植するとき、
この言語拡張機能が必要となる場合があります。サブオプション arg は、実際の引き数として使用される
ホレリス定数が、整数の実際の引き数として扱われることを指定します。
| -qctyplss オプション |
-qddim -qnoddim |
DDIM NODDIM | 配列が参照されるたびに、pointee 配列の境界が再評価されること
を指定し、pointee 配列用の境界式に対する制約事項をいくつか除去します。
| -qddim オプション |
-qdpc -qdpc=e -qnodpc |
DPC DPC(E) NODPC | 実定数を DOUBLE PRECISION 変数に割り当てるときに、
最大の精度を得られるように実定数の精度を高めます。
他のプラットフォームからプログラムを移植するとき、
この言語拡張機能が必要となる場合があります。
| -qdpc オプション |
-qescape -qnoescape |
ESCAPE NOESCAPE | 文字ストリング、ホレリス定数、H 編集記述子、ストリング編集記述子で、
円記号がどのように扱われるかを指定します。
円記号は、エスケープ文字または円記号文字として扱うことができます。
他のプラットフォームからプログラムを移植するとき、
この言語拡張機能が必要となる場合があります。
| -qescape オプション |
-qextern=names | ユーザー作成のプロシージャーを、XL Fortran 組み込み機能の代わりに
呼び出せるようにします。names はプロシージャー名をコロンで区切ったリストです。
プロシージャー名は、コンパイル中の個々の
コンパイル単位の EXTERNAL ステートメント内にあるかのように扱われます。
プロシージャー名が XL Fortran 組み込みプロシージャーと競合する場合は、
このオプションを使用して組み込みプロシージャーの代わりに
ソース・コード内のプロシージャーを呼び出します。
| -qextern オプション | |
-qextname[=name:name...] -qnoextname |
EXTNAME[(name:name...)] NOEXTNAME | すべてのグローバル・エンティティーの名前に下線を追加します (これが混合言語プログラムに
対する規則であるシステムの場合、システムからプログラムを移植するのに役立ちます)。
| -qextname オプション |
-qinit=f90ptr | INIT(f90ptr) | ポインターの初期関連付け状況を関連付け解除にします。
| -qinit オプション |
-qintlog -qnointlog |
INTLOG NOINTLOG | 式およびステートメント内に整数と論理値を混在させることができることを指定します。
| -qintlog オプション |
-qintsize=バイト | INTSIZE(バイト) | デフォルトの INTEGER 値および LOGICAL 値のサイズを設定します。
| -qintsize オプション |
-qlog4 -qnolog4 |
LOG4 NOLOG4 | 論理オペランドを持つ論理演算の結果が、LOGICAL(4) であるか、
それともオペランドの最大長を持つ LOGICAL であるかを指定します。
| -qlog4 オプション |
-qminimaltoc -qnominimaltoc |
| コンパイラーは、各コンパイル単位ごとに、1 つの TOC エントリーのみ作成します。
デフォルトでは、プログラム内の固有の自動でない変数参照ごとに、少なくとも 1 つの TOC エントリー
をコンパイラーが割り当てます。 8192 の TOC エントリーのみが使用可能で、重複エントリーは廃棄されません。
これは、プログラムが 8192 の TOC エントリーを超える場合、64 ビット・モードで大きなプログラムをリンクしている際に、
エラーが起きる原因になります。
| -qminimaltoc オプション |
-qmodule=mangle81 |
| コンパイラーが非組み込みモジュール・ファイルに対して
XL Fortran バージョン 8.1 の命名規則を
使用するように指定します。
| -qmodule オプション |
-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 に
設定します。
FORTRAN77 コマンドの動作と同一にするために、xlf、xlf_r、f77、 または fort77 では、-qsave がデフォルトで オンになります。 | -qsave オプション |
-qsclk=[centi | micro ] |
| SYSTEM_CLOCK 組み込みプロシージャーを使用して値を戻すとき、
コンパイラーがセンチ秒レゾリューションを使用するように指定します。
-qsclk=micro を使用することによりマイクロ秒レゾリューションを指定することができます。
デフォルト : -qsclk=centi | -qsclk オプション |
-qswapomp -qnoswapomp |
SWAPOMP NOSWAPOMP | コンパイラーが、XL Fortran プログラムにある OpenMP ルーチンを認識して置換するように指定します。
| -qswapomp オプション |
-u -qundef -qnoundef |
UNDEF NOUNDEF | 変数名の暗黙の型指定が許可されるかどうかを指定します。
-u および -qundef は、暗黙のステートメントを許可する個々の有効範囲にある IMPLICIT NONE ステートメントと同じ効果を持っています。
| -u オプション |
-qwarn64 -qnowarn64 | 8 バイト整数ポインターの 4 バイトへの切り捨てを検出します。
通知メッセージを使って 32 ビットから 64 ビットへマイグレーションするときに問題を起こす可能性のあるステートメントを識別します。
|
| |
-qxflag=oldtab | XFLAG(OLDTAB) | 桁 1 から 5 のタブを単一文字として
解釈します (固定ソース形式のプログラムの場合)。
| -qxflag=oldtab オプション |
-qxlf77=settings | XLF77(settings) | 変更された言語セマンティクスと I/O データ形式について、
FORTRAN 77
との互換性を提供します。
これらの変更のほとんどは、Fortran 90 標準で必要です。
| -qxlf77 オプション |
-qxlf90= {[no]signedzero | [no]autodealloc} |
XLF90( {[no]signedzero | [no]autodealloc}) | 言語の特定の機能について、コンパイラーが Fortran 90 または Fortran 95 レベルのサポートを提供しているかどうかを
判別します。
| -qxlf90 オプション |
システムの浮動小数点のパフォーマンスと精度を最大限に利用するために、 コンパイラーおよび 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 コマンドに
関する man ページに記載されています。
コマンド行 オプション | @PROCESS ディレクティブ | 説明 | トピック参照 |
---|---|---|---|
-c | 実行可能ファイルの代わりに、オブジェクト・ファイルを作成します。
| -c オプション | |
-Ldir* | 指定されたディレクトリーの -l オプションで指定されたライブラリーを調べます。
| -L オプション | |
-lkey* | 指定されたライブラリー・ファイル (key はファイル
libkey.so、
または libkey.a を選択します) を検索します。
| -l オプション | |
-qpic -qnopic | 共用ライブラリーで使用できる位置独立コード (PIC) を生成します。
| -qpic オプション |
これらのオプションを使用すると、次を実行する際に役立ちます。
コマンド行 オプション | @PROCESS ディレクティブ | 説明 | トピック参照 |
---|---|---|---|
-Bprefix | コンパイル中に使用する実行可能ファイル (コンパイラー、リンカーなど) の代替パス名を決定します。これは -t オプションと組み合わせて使用することができ、
これらのコンポーネントのどれが -B の影響を受けるかを決定します。
| -B オプション | |
-Fconfig_file -Fconfig_file: stanza -F:stanza | 代替構成ファイルを指定するか、
その構成ファイル内で使用するスタンザを指定します (またはその両方を指定します)。
| -F オプション | |
-q32 | 32 ビット・ターゲット・アーキテクチャーのビット・モードと命令セットを設定します。 | -q32 オプション | |
-q64 | 64 ビット・ターゲット・アーキテクチャーのビット・モードと命令セットを設定します。 | -q64 オプション | |
-tcomponents | -B オプションで指定されたプレフィックスを、指定されたコンポーネントに適用します。
components には、セパレーターを持たない 1 つ以上の
F、c、
d、I、a、h、b、z、または l を指定でき、それぞれ、
C プリプロセッサー、コンパイラー、
-S 逆アセンブラー、
プロシージャー間分析 (IPA) ツール、アセンブラー、ループ最適化プログラム、コード生成プログラム、
バインド・プログラム、およびリンカーに対応します。
| -t オプション | |
-Wcomponent,options | リストされたオプションを、コンパイル中に実行されるコンポーネントに渡します。
component は、
F、c、
d、I、a、z、または l のいずれかで、それぞれ、
C プリプロセッサー、コンパイラー、
-S 逆アセンブラー、
プロシージャー間分析 (IPA) ツール、アセンブラー、バインド・プログラム、およびリンカーに
対応します。
| -W オプション |
次に示すオプションは、 以下の理由のいずれかまたは両方のために廃止されています。
注:
コマンド行 オプション | @PROCESS ディレクティブ | 説明 | トピック参照 |
---|---|---|---|
-qcharlen= length |
CHARLEN (length) | これは廃止されたオプションです。依然として受け入れますが、無効です。 文字定数および定数のサブオブジェクトの最大長は 32 767 バイト (32 KB) です。 文字変数の最大長は、268 435 456 バイト (256 MB) です (32 ビット・モードの場合)。 また文字変数の最大長は 64 ビット・モードで 2**40 バイトです。 この限界は常に有効で、長ストリングを含むプログラムに移植性の問題が生じるのを防ぐのに十分な大きさと なっています。 |
|
-qrecur -qnorecur |
RECUR NORECUR | このオプションの使用はお勧めできません。
外部サブプログラムを再帰的に呼び出すことができるかどうかを指定します。
新規プログラムの場合、RECURSIVE キーワード を使用すると、標準適応した方法で再帰的プロシージャーを使用することができます。 -qrecur オプションを指定すると、コンパイラーはすべてのプロシージャーが再帰的であると見なしてしまいます。 再帰的プロシージャーのコード生成の効率が落ちる可能性があります。RECURSIVE キーワードを使用すれば、どのプロシージャーを再帰的にするかを正確に指定することができます。 | -qrecur オプション |