2.4 コンパイラオプション
- -132
- 固定ソース形式の入力行の長さを72文字から132文字に増加させます。 自由ソース形式の入力には影響しません。
- -abi=abi
- (Linux x86-64のみ)
コンパイルターゲットのABIを32、64t、64cのいずれかで指定します。
2つの64ビットABIの違いは以下のとおりです。
ABI Object size Character長 -abi=64t 64 ビット 32 ビット -abi=64c 64 ビット 64 ビット -abi=32オプションを指定してコンパイルされたプログラムは、 x86 Linuxシステムで実行可能です。64-bit ABIを指定した場合は64-bitカーネル上でのみ実行可能です。
デフォルトは-abi=64tです。 -abi=64cオプションはIntel Fortranで使われているABIと互換性があります。
- -abi=abi
- (Windows のみ) コンパイルターゲットのABIを32(32ビットABI)、64(64ビットABI) のいずれかで指定します。デフォルトはWindows x64では -abi=64 です。 32-bitのWindowsではデフォルトは -abi=32 で -abi=64 は利用可能ではありません。
- -align=alignment
- (MacOs のみ)
変数や成分の配置属性を次のいずれかで指定します:
natural (性能を優先したnatural配置。 COMMON
ブロック、またはSEQUENCE
型レイアウトに関する解釈を標準に準拠しない形で変更する可能性があります。)standard (標準準拠の配置。デフォルト。) プログラム全体を同一の配置オプションでコンパイルする必要があります。
- -Bbinding
- 静的(static)バインディング、または動的(dynamic)バインディン グを指定します。 この指定はリンクフェーズ中で指定された場合にのみ有効です。 デフォルトは動的バインディングです。 SPARCでは、これらのオプションの指定位置が意味を持ち、 一部のライブラリを静的にそして他の部分を動的に結合するようなことが可能です。 (本オプションはIBM z9 Open Editionでは利用できません)
- -c
- コンパイル(各ソースファイルに対する.oファイルの生成)の実行のみ。.oファイ ルをリンクし実行可能ファイルを生成するといった処理は行いません。 このオプションは -otype=obj と同等です。
- -C
- 時間のかかる実行時チェックは行わない形でのコンパイルの実行。 -C=alias、-C=dangling、-C=undefined、 及び-C=intovf は無視されます。
- -C=check
- check の値に応じた判定ロジックを伴うコンパイルを実行します。
check の値として許されるのは次のいずれかです。
alias (個別名化仮引数の代入のチェックを行う。), all (-C=undefined を除くすべてのチェックを行う。) array (配列境界のチェックを行う。) bits (ビットintrinsicな引数をチェックする。) calls (手続き参照のチェックを行う。) dangling (ポインタ不正をチェックする。) do (DOループ中でのステップ値が0かどうか、及び親子結合による不正な変更をチェックする。) intovf (整数オーバーフローをチェックする。) none (チェックを行わない。デフォルト。) present (OPTIONAL参照をチェックする。) pointer (POINTER参照をチェックする。) recursion (再帰不正をチェックする。) undefined (未定義変数をチェックする。詳細については後述。) -C=aliasオプションは、 仮引数への代入が他の仮引数に影響を与える事が検出された場合に実行時エラーを生成します。 本リリースではスカラ仮引数の場合のみ検出されます。
-C=danglingオプションはぶら下がりポインタが使われた時に実行時エラーを生成します。 また、実行時オプション‘show_dangling’が指定された場合、 ポインタがぶら下がり状態になった時に警告が生成されます。 (詳細は実行時環境変数をご参照下さい)
-C=undefined オプションには種々の制限が付きます。またそのオプ ションを使わずにコンパイルされたコードとはバイナリ互換性がありません。 また
BIND(C)
インタフェースを介してCコードを呼び出す事とも互換性がありません。 詳細についてはセクション“未定義変数の検出”をご参照ください。 - -coarray
- このオプションは、-coarray=cosmpの略です。
- -coarray=mode
- Coarray操作モードをmodeに設定します。
modeは単一像モードではsingle、Co-SMPモードではcosmpでなければなりません。またこのオプションでは大文字と小文字は区別されません。
デフォルトは-coarray=singleです。
単一像モード(-coarray=single)では、すべてのcoarray構文が受け入れられますが、実行は並列ではなく、単一の像のみがサポートされます。
Co-SMPモード(-coarray=cosmp)では、SMPマシンでの複数の像の並列実行がサポートされます。 このモードでの像の最大数は1000です。 -num_images=Nオプションが使用される場合、実行する像のデフォルト数はNです。 -num_images=autoの場合、 デフォルトの像の数はプロセッサーで使用可能なハードウェアスレッド数となります。また像の数がハードウェアのスレッド数を超える場合がありますが、 この場合、像が(入出力や同期のために)待機を多く行う場合にのみパフォーマンスが向上することに注意してください。 尚-num_images=オプションは、実行時に環境変数
nAGFORTRAN_NUM_IMAGES
によってオーバーライドされる場合があります。共配列機能(coarray構文または像制御文)を使用するコード、もしくは共通ブロックやグローバル変数(保存変数や初期値を与えられた変数)を持つコードで -coarray=singleでコンパイルされたコードはCo-SMPモードでは正しく動かないためそのように実行すべきではありません。
-coarray=cosmpオプションは、-openmpと同時に使用できません。 これらの機能を回避し、Co-SMPモードと単一像モードの両方で機能することを目的としたコードは、 -thread_safeオプションを使用してコンパイルする必要があります。
-coarray= cosmpオプションは、-openmpと同時に使用することはできません。 -coarray=cosmpオプションは-C=undefinedオプションと共に指定できますが、この場合-C=undefinedは自動的に無効になります。
- -colour
- コンパイラからのメッセージ出力をANSIエスケープシーケンスを使ってカラー化しま す。デフォルトの前景カラースキームは次の通りです:エラーメッセージ(致命的エラ ーを含む)に対しては赤、警告メッセージに対しては青、参考情報に対しては緑。
- -colour=scheme
- 指定されたスキーム(scheme )に従ってコンパイラからのメッセージ出力をカラ
ー化します。
具体的にはコンマで区切ったリストの形式でカラーの指定を行います。それぞれはメッ
セージカテゴリ名(“error”、“warn”、“info”)、コロン、前景
カラー名称の順で指定しますが、さらにプラス記号と背景色の指定を追加することもで
きます。
カテゴリ名を明示しない形のカラーリングがデフォルトです。
指定可能なカラー:black, red, green, yellow, blue, magenta, cyan and white
例 -colour=error:red+blue,warn:cyan,info:magenta+yellow
はかなりけばけばしいカラースキームです。 - -compatible
- 外部リンケージを可能な限り他のコンパイラと互換にします。 他のコンパイラとは、Windowsの場合Microsoft Fortran(32-bit mode)もしくはIntel Fortran (64-bit mode)を示し、 Mac OSX、Linuxではg77、g95、gfortranを示し、その他の環境ではOSベンダーが提供するコンパイラをそれぞれ示します。 この指定は名称の規約と呼び出し規約の両方に影響します。 例えばWindowsの場合には、ほとんどのDLLで用いられている“STDCALL”呼び出し 規約が使用されるようになります。(名前が大文字で後ろにアンダースコアが付かない) Windowsの64-bit modeでは常に-compatibleが指定されたものとみなされます。
- -convert=format
- 書式なしファイルのデフォルトの変換モードを format に設定します。
この設定は
OPEN
文のCONVERT=
指定子もしくは環境変数FORT_CONVERT
n(ここで n は装置番号)によりオーバーライドできます。 formatの値は以下のいずれかでなければなりません(大文字小文字の区別はありません)書式 説明 BIG_ENDIAN
BIG_IEEE
と同等BIG_IEEE_DD
ビッグエンディアン(IEEEの単精度浮動小数点形式、IEEEの倍精度浮動小数点形式、double-double 4倍精度浮動小数点形式) BIG_IEEE
ビッグエンディアン(IEEEの単精度浮動小数点形式、IEEEの倍精度浮動小数点形式、IEEEの128ビット4倍精度浮動小数点形式) BIG_NATIVE
ビッグエンディアン(ネイティブの浮動小数点形式) LITTLE_ENDIAN
LITTLE_IEEE
と同等LITTLE_IEEE_DD
リトルエンディアン(IEEEの単精度浮動小数点形式、IEEEの倍精度浮動小数点形式、double-double 4倍精度浮動小数点形式) LITTLE_IEEE
リトルエンディアン(IEEEの単精度浮動小数点形式、IEEEの倍精度浮動小数点形式、IEEEの128ビット4倍精度浮動小数点形式) LITTLE_NATIVE
ネイティブのエンディアンとデータ形式 NATIVE
変換無し(デフォルト) - -Dname
- name をfppに対しプリプロセッサ変数として定義します。 fppによってプリプロセスされるファイルのみが影響を受けます。
- -d_lines
- 固定形式の場合のみに“D”で始まる行についてその“D”を空白で置換えて通常のFortran文として扱います。 このオプションが指定されない場合、このような行はコメントとして取り扱われます。
- -dcfuns
- 非標準の倍精度複素組込み関数の認識を有効にします。これらは次に示すように標準的
な組込み関数に対する特殊形として機能します:
非標準 対応する標準Fortran組込み関数 CDABS(A)
ABS(A)
DCMPLX(X,Y)
CMPLX(X,Y,KIND=KIND(0d0))
DCONJG(Z)
CONJG(Z)
DIMAG(Z)
AIMAG(Z)
DREAL(Z)
REAL(Z)
またはDBLE(Z)
- -double
- デフォルトの
INTEGER
,LOGICAL
,REAL
,COMPLEX
のサイ ズを2倍にします。 種別番号とバイト長を明示する形で指定した要素は影響されません。4倍精度のREAL
がサポートされている場合にはDOUBLE PRECISION
のサイズも2倍に なります。 - -dryrun
- コンパイラドライバによって作成されたコマンドを実行はせず、表示のみを行います。
- -dusty
- “Legacy”ソフトウェアに対し、共通的なエラーのカテゴリを“Error”か ら“Warning”(-w オプションを指定することで出力を抑止す ることもできます)にダウングレードさせた上で、そのコンパイルと実行を許容し、 ホレリスI/O(-hollerith_io オプション参照)も可能にします。
- -encoding=charset
- Fortranソースファイルのエンコードシステムを charset に設定します。 charset はISO_Latin_1, Shift_JIS, UTF_8のいずれかでなければなりません。 このオプションを指定しない場合のデフォルトのエンコーディングは以下の通りです。 UTF-8 Byte Order Markがファイルの最初に存在するファイルであればUTF-8、 そうでない場合で言語設定が英語の場合には ISO-Latin-1、日本語の場合には Shift-JISとなります。
- -english
- コンパイラのメッセージを英語で出力します(デフォルト)。
- -Error=class
- class のメッセージをエラーとして扱います。
class の値は以下のいずれかでなければなりません(大文字・小文字は区別されません):
古い FORTRAN 77の古い非標準の拡張の使用; 削除済み Fortran標準から削除された機能の使用; 拡張 Fortran標準の拡張機能の使用; 廃止予定 Fortran標準で廃止予定となっている機能の使用; 疑問 有効だがプログラミングエラーの可能性があり、疑問視される使用法; 警告 上記以外の警告メッセージ; 任意の警告 上記のいずれか。 -Error=Obsolescent は -Error=Deleted を含意します、 というのも全ての削除された機能は以前に廃止予定であったからです。 同様の理由により、-Error=Extension は -Error=Ancient を含意します。
また、メッセージの接頭辞は変更されないことに注意してください、例えば警告メッセージは 依然として ‘
Warning:
’ で始まりますが、-colour オプションが使用される場合、 メッセージの色はエラーとして色付けされます。 - -F
- プリプロセスのみを行い、コンパイルは実行しません。
プリプロセスされた個々のファイルからは、入力ファイルの拡張子に応じて
.f
,.f90
,.f95
の付いた同名のファイルが出力されます。 このオプションは -otype=Fortran と同等です。 - -f90_sign
- Fortran 95の
SIGN
組込み関数の代りにFortran 77/90版のそれを使用します (両者には負のゼロの扱いで違いがあります)。 - -f95
- 基盤となる言語がFortran 95であることを指定します。 これは拡張仕様に関するメッセージ生成にのみ影響します(Fortran 2003、Fortran 2008の機能は 拡張仕様としてレポートされます)。
- -f2003
- 基盤となる言語がFortran 2003であることを指定します これは拡張仕様に関するメッセージ生成にのみ影響します(Fortran 2008の機能は拡張仕様としてレポートされます)。
- -f2008
- 基盤となる言語がFortran 2008であることを指定します。(デフォルト)
- -f2018
- 基本言語がFortran 2018であることを指定します。 これには-recursiveオプションも含まれます。
- -fixed
- すべてのFortranソースファイルを固定形式のルールに従って解釈します。
- -float-store
- (Gnu Cベースのシステムのみ) 64ビットより大きな浮動小数レジスタを有するマシンにおいて、浮動小数変数をレジ スタ中に格納しないようにします。これによって過大な精度に伴う問題を回避するこ とができます。
- -fpp
- 拡張子が通常のFortranファイルであることを示していたとしても、fppを用い たプリプロセスを実行します。
- -fpplonglines
- このオプションは、
fpp
プリプロセッサに対して、自由形式のソースで132文字を超える出力行を折り返さないよう指示します。 (折り返された場合、そのような行は途中で#line
ディレクティブを含むことがあり、これが他のソフトウェアツールでの困難を引き起こす可能性があります。) - -framework f
- (MacOSのみ) リンキングに際してフレームワークf を使用します。
- -free
- すべてのFortranソースファイルを自由形式のルールに従って解釈します。
- -g
- 対話型デバッグのための情報をホストのシステムデバッガにより生成します。
- -g90
- デバッグ用情報をdbx90(ホストシステムデバッガ用のフロントエンドでFortran 90に 対応)用に生成します。 この場合、個々のFortranソースファイルごとにデバッグ情報ファイル(.g90)が生成 されます。このオプションはコンパイルとリンキング双方に対して指定する必要があ ります。
- -gc
- 実行可能プログラムにおける自動ガベージコレクションの機能を有効にします。 このオプションはコンパイルとリンキング双方に対して指定する必要があります。 このオプションはIBM z9 OpenEdition、MacOS版、及びWindows x64版では利用できません。 また-thread_safe と-mtrace とは整合性がありません。 詳細についてはセクション“自動ガベージコレクション”をご参照く ださい。
- -gline
- 実行時エラーメッセージが出力された際にトレースバック情報も出力するようなコー
ドを生成します。
このオプションを用いてコンパイルされたルーチンのみがトレースバック上に表示さ
れます。このオプションを指定すると実行時モジュールのサイズと実行時間の増大を
招きます。
以下に例を示します:
Runtime Error: Invalid input for real editing Program terminated by I/O error on unit 5 (Input_Unit,Formatted,Sequential) main.f90, line 28: Error occurred in READ_DATA main.f90, line 57: Called by READ_COORDS main.f90, line 40: Called by INITIAL main.f90, line 13: Called by $main$
- -help
- 現在のモード(=compiler, =callgraph, =depend, =epolish, =interfaces, =polish or =unifyprecision)に関して、 それぞれのオプションについて1行からなるサマリを表示します。
- -hollerith_io
A
編集記述子を用いて数値変数中に格納された文字データのFortran-66互換入 出力を有効にします。この機能はFortran 77におけるCHARACTER
データ型 によって置き換えられています。- -I pathname
- モジュール情報ファイル(
.mod
)とINCLUDE
ファイルのサーチに使用さ れるディレクトリの一覧にpathname を追加します。 現行のワーキングディレクトリが常に最初にサーチされますが、それに続いて -I オプションで指定されたすべてのディレクトリが、最後にコン パイラのライブラリディレクトリ(-Qpathをご参照下さい)がサーチされます。 - -indirect file
- file の内容をコンパイラドライバへの追加引数として読み込みます。
またこのオプションは “@file” によって与えることもできます。
(ここで ‘@’ とファイル名の間に空白はありません)
indirect fileでは、引数を複数行に分ける事ができます。 一行で行う場合には複数の引数を空白で区切る事が可能です。
"
で括ることで、オプションもしくはファイル名に空白を含めることができます。 (唯一の方法) indirect fileは他のindirect fileを参照することが可能です。 - -ieee=mode
- IEEE算術操作のモードをmode に従って設定します。ただしmode は
full、nonstd、stopのいずれかでなくてはなりません。
- full
- ノンストップ演算を含むすべてのIEEE算術機能を有効にします。
- nonstd
- ノンストップ演算を無効とします。これにより浮動小数オーバフロー、0による除算、 不正オペランドに際しては実行が停止されます。 ハードウェアサポートがある場合、IEEEのgradual underflowも抑止されます。これに より非正規化数値ではなく0が生成されるようになるため、システムによっては性能が 向上します。
- stop
- ノンストップ演算を除くすべてのIEEE算術機能を有効にします。浮動小数オーバフロー、 0による除算、不正オペランドに際しては実行が停止されます。
-ieee オプションはメインプログラムユニットをコンパイルする際 に指定する必要があります。その指定は大域的な影響を持ちます。 デフォルトのモードは-ieee=stop です。 詳細についてはセクション“IEEE 754算術サポート”をご参照ください。 このオプションは16進浮動小数点を持つIBM z9 Open Editionでは利用できません。
- -info
- 参考情報メッセージの出力を要求します。これには“Info”と“Remark”(最も重要ではない)が含まれます。 デフォルトではこれらのメッセージ出力は抑止されます。
- -kind=option
- 使用する種別番号の系を指定します。option はbyte、sequential、uniqueの
いずれかでなくてはなりません。
-kind=byte の場合、
INTEGER
,REAL
,LOGICAL
に対する種別番号は記憶装置上のバイト数に一致します(例えばデフォルトのREAL
は4、DOUBLE PRECISION
は8です)。 なお、COMPLEX
に対する種別番号はそのREAL
成分と同一であり、要素 の全バイト長の半分である点に注意してください。-kind=sequential の場合(デフォルト)、すべてのデータ型 に対する種別番号は精度の順に1から付けられます(例えばデフォルトの
REAL
は1、DOUBLE PRECISION
は2となります)。-kind=uniqueでは種別番号が全てのデータ型を通じて一意となります。 これにより他のデータの種別番号を誤って別の型に適用してしまう事を防ぎます。 (例外として
COMPLEX
型とREAL
型の種別番号は同じになります) また、種別番号はすべて100よりも大きな数値となるため、バイトサイズと混同されることもありません。このオプションはバイト長指定子(Fortran 77に対する拡張)の解釈には影響しませ ん。
- -lx
- ライブラリlibx.aを用いてリンクを行います。 リンカーは-Ldir オプションで指定されたディレクトリに続き、 通常のシステムディレクトリ(ld(1)コマンド参照)を用いてこのライブラリをサー チします。
- -Ldir
- ライブラリファイル用のディレクトリ一覧(ld(1)コマンド参照)にdir を追 加します。
- -M
- モジュール情報ファイル(
.mod
ファイル)のみを生成します。 このオプションは -otype=mod と同等です。 - -max_internal_proc_instances=N
- 実引数として渡された、もしくは手続きポインタに代入された内部手続きの同時に活動状態となる親分身の最大数をNに設定します。 デフォルトでこの制限はシングルスレッドの場合には30となっていますが、 -openmpもしくは-thread_safeオプションのいずれかを指定した場合は160となります。
- -max_parameter_size=N
PARAMETER
の最大サイズを N MB (メガバイト)に設定します。 N は1から1048576(1MBから1TB)の範囲でなければなりません。 デフォルトは50MBです。- -maxcontin=N
- 継続行数の上限を255からN に増やします。 ただし上限を標準値より小さな値に減らすことはできません。
- -mdir dir
- モジュール情報ファイル(
.mod
)を現行のワーキングディレクトリにでは なくディレクトリdir 中に出力します。 - -message_encoding=charset
- コンパイラメッセージのエンコーディングスキームをcharsetに設定します。 charsetはISO_Latin_1、Shift_JIS、UTF_8 (大文字小文字は関係ない)のいずれかでなければなりません。 -message_encoding=ISO_Latin_1オプションは-nihongo とは非互換です。 デフォルトのメッセージエンコーディングスキームはWindowsではShift_JIS、その他のシステムではUTF_8です。
- -mismatch
- 手続きの引数リストに対する一貫性チェックのレベルを下げ、不整合があって もエラーメッセージではなく警告メッセージが出力されるようにします。 この指定は現行ファイルに含まれないルーチンへのコールにのみ適用されます。コ ンパイル対象のファイルに含まれるルーチンへのコールは正しいものでなくてはな りません。 このオプションは-C=calls を無効にします。
- -mismatch_all
- 手続きの引数リストに対する一貫性チェックのレベルをさらに下げ、同一ファ イル中のルーチンへのコールに不正があった場合にもエラーメッセージではなく警 告メッセージを出力するようにします。 このオプションは-C=calls を無効にします。
- -mtrace
- メモリ割付けと解放をトレースします。このオプションは -mtrace=on と等価です。
- -mtrace=trace_opt_list
- メモリ割付けと解放をtrace_opt_list の値に従ってトレースします。
trace_opt_list は以下の項目からなるリストで、項目間の仕切りにはコンマ
を用います:
address (アドレスを表示する) all (offを除く全オプション) line (わかる範囲でファイル/行を表示する) off (トレース出力を無効にする) on (トレース出力を有効にする) paranoia (メモリアロケータのデータ構造体をユーザプログラムによる破壊から防ぐ) size (サイズをバイト単位で表示する) verbose (off とparanoia を除く全オプション) このオプションはコンパイルとリンキング双方に対して指定する必要があります。 ただし-gc オプションとは整合性がありません。 詳細についてはセクション“メモリトレーシング”をご参照くださ い。 -mtrace=paranoia オプションはIBM z9 Open Editionでは利用できません。
- -nan
REAL
変数とCOMPLEX
変数をIEEEシグナルNaNに初期化します。これに より値が未設定の状態で使用されると実行時にクラッシュが発生することになります。 これは局所変数、モジュール変数、INTENT(OUT)
仮引数に対してのみ 有効であり、COMMON
、EQUIVALENCE
中の変数には影響を及ぼしません。 このオプションは16進浮動小数点を持つIBM z9 Open Editionでは利用できません。- -nihongo
- コンパイラメッセージを日本語(シフトJISエンコーディングを使用)で出力します。 必要であれば-message_encoding=オプションでエンコーディングの変更も可能です。 このオプションはIBM z9 Open Editionでは利用できません。
- -no_underflow_warning
- 浮動小数点アンダーフローが実行時に発生した場合に通常出現する警告メッセージを抑止します。 このオプションは主プログラムコンパイル時に指定された場合に有効です。
- -nocheck_modtime
.mod
ファイルが古いものであるかどうかのチェックを行わない ようにします。- -nomod
- モジュール情報ファイル(
.mod
)の生成を抑止します。 -M と共に使用すると(警告及びエラー以外の)出力が行われません。 (-otype=noneと同等) - -nonstrict
- Fortran標準への厳格な準拠をチェックしない、具体的には:
-
‘
CHARACTER*
’ 構文の使用に対する廃止予定の警告メッセージを生成しない; - 多相的割付け可能成分の値の宣言型が成分の宣言型の拡張である場合に拡張メッセージを生成しない(これはFortran 2003の語句の誤りで、Fortran 2018まで修正されなかった)。
-
‘
- -noqueue
- コンパイラに対するライセンスがすぐに利用できない場合に、待ちに入るのではなく エラー終了するようにします。
- -not_openmp
- -openmp オプションなしでプログラムをコンパイルしているときにOpenMPディレクティブが現れた場合の通常の警告メッセージを抑制します。 つまり、意図的に -openmp なしでコンパイルしています。
- -num_images=N
- プログラムを実行する際の像の数をNに設定します。
Nは1から1000の範囲、‘auto’、もしくは‘unknown’でなければなりません。
単一像モード(-coarray=single)でこのオプションは定数の共添字の解析のみに影響します。 Nが数値であった場合で、評価の結果がNよりも大きな像番号になった場合、エラーとなります。 -num_images=unknown(または-num_images=auto)は、そのような解析を抑止します。
CoSMPモード(-coarray=cosmp)では、実行時のデフォルトの像の数を指定します。 デフォルトの像の数は実行時の環境変数
nAGFORTRAN_NUM_IMAGES
の指定でオーバーライドされる場合があります。 -num_images=auto(または-num_images=unknown)は、プロセッサーのハードウェアスレッドの数をデフォルトの像の数に設定します。 このオプションは主プログラムのコンパイル時に有効です。-coarray=singleモードのデフォルトは-num_images=1であり、-coarray=smpモードのデフォルトは-num_images=autoです。
- -o output
- デフォルトの代りに使用する出力ファイルoutput を指名します。
実行可能モジュールが生成される場合、デフォルトの名称は
a.out
となります。そうでない場合、-c オプションが指定された場合にはfile.o が、-S オプションが指定された場合にはfile.cが、-F オプションが 指定された場合にはfile.f, file.f90、またはfile.f95 が使用されま す。ただしfile はソースファイルの名称基本部(拡張子を除いた部分)を意味し ます。 - -O
- 通常の最適化レベル、すなわち-O2 と等価です。
- -ON
- 最適化レベルをN にセットします。ただし最適化レベルは次のように定義されます:
-O0 最適化なし(デフォルト)。デバッグ時にはこのレベルが推奨されます。 -O1 最低限の最適化レベル。 -O2 通常の最適化レベル。 -O3 さらなる最適化を実施するレベル。 -O4 最大限の最適化レベル。 - -Oassumed
- -Oassumed=contig と指定したのと同義です。
- -Oassumed=shape
- 形状引継ぎ配列の仮引数をshape の値に従って最適化します。ただし
shape として指定できるのは次のいずれかです。
- always_contig
- 連続的な実引数として最適化します。実引数が連続的でなかった場合には実行時エラ ーが生じます(このオプションが指定された場合にはコンパイラは標準準拠とはなり ません)。
- contig
- 連続的な実引数として最適化します。実引数が連続的でなかった場合(すなわち部分
配列であった場合)、連続的なローカルコピーが行われます。十分に多くの配列要素
や配列操作が行われる場合(すなわちローカルコピーを行うコストが不連続な配列ア
クセスに伴うオーバヘッドを下回る場合)には部分配列へのアクセスを高速化できる
かも知れませんが、通常はアクセス性能の低下を招きます。
なお、このオプションは
TARGET
属性を持った仮引数に対しては影響しない点 に注意してください。これらは常にドープベクトルを介してアクセスされます。 - section
- 部分配列に対する(不連続な)実引数への小・中規模アクセスとして最適化します。 これがデフォルトです。
CHARACTER
配列はこれらのオプションによって影響されない点にご注意くだ さい。 - -Oblock=N
MATMUL
組込み関数の評価に用いるブロックの次元を指定します。 デフォルト値(-O1 またはそれ以上の場合のみ)はシステムやデ ータ型に依存します。- -Onopropagate
- 定数伝播の最適化を無効にします。 これは-O1 以下の場合のデフォルトです。
- -Onoteams
- チームが使用していない前提で、Coarrayのアクセスを行うコードを生成します。
CHANGE TEAM
構文がアクティブな場合は誤った結果を生成します。 - -Opropagate
- 定数伝播の最適化を有効にします。 これは-O2 以上の場合のデフォルトです。
- -Orounding
- プログラムがデフォルトの丸めモードを変更しないことを指定します。
これによって
ANINT
組込み関数に対するより高速なコードの使用が可能になり ます。 - -Ounroll=N
- 単純なループや配列操作をアンロールする深さを指定します。 -O0、-O1 の場合のデフォルトはアンロールなし (すなわち深さ1)であるのに対し、-O 以上の場合には深さ2がデ フォルトとなります。 Cコンパイラが有能な場合には、Fortranコンパイラのループアンローリングを抑止し た方が良い場合があります。それには-Ounroll=1 という指定を行 います。
- -Ounsafe
- プログラムの数値的安定性に依存するような安全性を損なう可能性のある最適化を 実行します。 IBM z9 Open Editionではこの オプションは(-O4と共に指定すると) NOSTRICTをCコンパイラへ渡します。
- -odir dir
- 依存関係解析(
nagfor =depend
)に、-otype=make オプションを使用してMakefile依存関係を生成する際に、ソースファイルに依存するオブジェクトファイルがディレクトリ dir に存在することを指定します。 たとえば、“file.f90
” に依存するオブジェクトファイルは、単に “file.o
” の代わりに “dir/file.o
” と見なされます。 - -openmp
- OpenMPを有効にして、現在完全にサポートされているOpenMPバージョンよりも新しいOpenMP機能を使用するための拡張メッセージを生成します。 nagfor 7.1では、これは-openmp=3.1と同等です。
- -openmp=version
- OpenMPディレクティブを認識し、OpenMPサポートライブラリとリンクします。 OpenMP versionよりも新しいOpenMP機能を使用するための拡張メッセージを生成します。 これは3.0、3.1、4.0、4.5、5.0、または5.1に等しい必要があります。 詳細はOpenMP Supportをご参照下さい。 このオプションは、-coarray=smpオプションと互換性がありません。
- -otype=filetype
- filetypeで必要とされる出力ファイルの型を指定します。以下のいずれかである必要があります。
c (Cソースファイル), exe (実行形式ファイル), fortran (Fortranソースファイル), mod (モジュール情報ファイル), none (出力ファイル無し), obj (オブジェクトファイル). -c, -F, -M の各オプションは -otype=obj, -otype=Fortran, -otype=mod とそれぞれ同等です。
- -pg
- プロファイリング情報を出力するコードを生成します。この情報は実行時に実装依存 のファイル(通常はgmon.out またはmon.out )に出力されます。 実行時のプロファイルはgprof を用いて生成することもできます。 このオプションはコンパイルとリンキング双方に対して指定する必要がありますが、 実装によってはサポートされていないこともあります。
- -pic
- 共用ライブラリとしての使用を想定し、位置非依存のコード(small model)を生成 します。Small modelに対し共用ライブラリが大き過ぎる場合には -PIC を使用してください。 このオプションはIBM z9 Open Editionでは利用できません。
- -PIC
- 共用ライブラリとしての使用を想定し、位置非依存のコード(large model)を生成 します。 このオプションはIBM z9 Open Editionでは利用できません。
- -quiet
- 診断メッセージのみが表示されるように、コンパイラーバナーと要約行を抑止します。
- -Qpath pathname
- コンパイラライブラリのパス名称をデフォルトからpathname に変更します。
(Unix上でのデフォルトは通常‘
/usr/local/lib/nAG_Fortran
’か ‘/opt/nAG_Fortran/lib
’です。またWindows上ではインストール場所が自動的に検出されるため このオプションの指定は必要がありません。 - -r8
- デフォルトの
REAL
、COMPLEX
のサイズを2倍にします。また4倍精度の 浮動小数演算がサポートされているマシンの場合には、DOUBLE PRECISION
(及び非標準のDOUBLE COMPLEX
)のサイズも2倍にします。 ただし種別(KIND
)番号、またはバイト長が明示されたREAL
、COMPLEX
は影響を受けません — しかしKIND
組込み関数は正しい値 を応答するため、4倍精度の浮動小数演算機構を有するマシン上でのCOMPLEX(KIND(0d0))
は正しく4倍長COMPLEX
を選択します。INTEGER
のサイズには影響を与えないため、このモードではコンパイラは 標準準拠とは言えません。注:このオプションはすべての数値データ型のサイズを倍加する -double オプションによって置き換えられています。
- -random=version
- このオプションは、コンパイルされるファイル内の
RANDOM_NUMBER
の呼び出しで使用される疑似乱数生成器を制御します。 version が 7.2 の場合、使用される生成器は乱数の最下位ビットでさえ完全なエントロピーを提供します。 version が 5.2 の場合、以前のバージョンの生成器が使用されます; これは各個々の数値においてそれほど多くのエントロピーを提供しませんが、倍精度および四倍精度でかなり高速です。 version に他の値を設定することは許可されていません。 デフォルトは -random=7.2 です。 - -recursive
- 手続きがデフォルトで
RECURSIVE
であることを指定します。 これは -f95、-f2003、または -f2008 オプションが指定されていない限りデフォルトです。 - -round_hreal
- すべての半精度演算を半精度に丸めます。
このオプションを使用しない場合は、半精度の式は単精度で評価され、変数に割り当てられる場合及び非組み込み手続や非数学手続きの実引数となる場合に半精度に丸められます。
このオプションは、コンパイル時及びランタイムの評価に影響します。
- -s
- 記号表に関する情報を実行可能ファイルから除去します。 このオプションはリンクフェーズで指定された場合にのみ有効となります。
- -S
- アセンブラ(実際にはCソースコード)を生成します。 結果として生成される.cファイルはCコンパイラで直接コンパイルするのではなく、 nAG Fortranコンパイラによって処理されなくてはなりません。 このオプションは -otype=c と同等です。
- -save
- これは、純粋ではなく、
RECURSIVE
として宣言されておらず、デフォルトでRECURSIVE
でもない(-recursiveオプションを参照)すべてのサブプログラムにSAVE
文を挿入することと同じです 。したがって、このようなサブプログラム内のすべての非自動ローカル変数が静的に割り当てられます。 BLOCK構文の変数には影響しません。 - -target=machine
- コード生成、最適化の対象となるマシンを指定します。
-
x86-32 (Linux及びWindowsで、x86互換 32-bit モードでコンパイル)として以下のいずれかを指定可能。
i486, i586, i686, pentium2, pentium3, pentium4, prescott Intelプロセッサ k6, k6-2, k6-3, k6-4, athlon, athlon-4, athlon-xp, athlon-mp AMDプロセッサ pentium (i586 と等価) pentiumpro (i686 と等価) デフォルトはPentium4(Linux)及びprescott(Windows)です。
- x86-64(Linux、MacOSX、及びWindowsで、x86互換 32-bit モードでコンパイル)の場合、 machineはathlon64、nocona、もしくはcore2です。 LinuxとWindows上では、machine は以下のいずれかも指定できます: nehalem、westmere、sandybridge、ivybridge、haswell、 broadwell、skylake、zen、または native(現在のマシンをターゲットにします)。
-
Sun/SPARCの場合、machine としては次のいずれかを指定可。
- V7
- SPARCstation 1等
- V8
- SPARCstation 2等
- super
- SuperSPARC
- ultra
- UltraSPARC
- native
- 使用中のマシン
デフォルトはSPARC V7。
より新しいアーキテクチャ用にコンパイルされたプログラムは古いマシン上では動作し ないか、あるいは性能が大きく落ちる場合があります。 -target=native はgccではサポートされていません。
-
x86-32 (Linux及びWindowsで、x86互換 32-bit モードでコンパイル)として以下のいずれかを指定可能。
- -tempdir directory
- コンパイラの一時ファイル用ディレクトリをdirectory とします。
デフォルトとして使用されるのは
TMPDIR
環境変数で指定されたディレクトリ か、あるいはそれがセットされていなかった場合には/tmp(UNIX系の場合)もしくはWindows一時フォルダ(Windowsの場合)が使用されます。 - -thread_safe
- マルチスレッド環境で安全に実行できるコードを生成します。 これはコンパイルとリンクの双方のフェーズで指定する必要があります。 -gc とは整合性がありません。
- -time
- 種々のコンパイルフェーズに対する実行時間をレポートします。
- -u
- これは -u=type の省略形です。
- -u=noimplicit-list
- noimplicit-list の値に応じて暗黙のデフォルト設定を制御します。
これは、一つ以上の以下のリストからカンマで区切られたものでなければなりません:
all 他のすべてのサブオプションを指定したのと同等; external IMPLICIT NONE (EXTERNAL)
を指定し、すべての外部および仮手続きが明示的な引用仕様を持つか、または明示的にEXTERNAL
属性を与えられていることが必要です;locality DO CONCURRENT
構造内でのデフォルトの局所性をNONE
と指定します、 まるでDEFAULT(NONE)
が明示的に指定されたかのように;sharing OpenMP PARALLEL
およびTASK
構造内のデフォルトの共有をNONE
と指定します、 明示的なDEFAULT(
…)
節を持たない(PARALLELDO
などの組み合わせた構造を含む)場合;type デフォルトで IMPLICIT NONE (TYPE)
が有効であることを指定します(これにより暗黙の型付けが無効になります)、 ただし明示的なIMPLICIT
文によって上書きされた場合を除きます。noimplicit-list の項目はどの順序でも現れることができ、大文字・小文字は区別されません。
- -unsharedrts
- Fortran実行時システムの非共用(静的)バージョンとバインドします。これにより nAG Fortranコンパイラがインストールされていないシステムにおいても、動的にリン クされる実行可能モジュールを実行させることが可能になります。 このオプションはリンクフェーズで指定された場合にのみ有効となります。
- -v
- Verbose(饒舌出力)。 コンパイルされるそれぞれのファイルにつき名称をプリントします。
- -V
- コンパイラのバージョン情報をプリントします。
- -w
- すべての警告メッセージを抑止します。 -w=all という指定と同義です。
- -w=class
- class で指定された警告メッセージを抑止します。ここでclassは
all, alloctr, longlines, note, obs, ques, uda, uei, uep,
uip, ulv, unreffed, unused, uparam, usf,
usy, x77 または x95 のいずれかでなければなりません。
- -w=all
- すべての警告メッセージを抑止します。
- -w=alloctr
- 割付け可能な要素、仮引数、関数の使用に関する警告メッセージを抑止します。
- -w=longlines
- Fortran自由形式のソースの行がFortran標準によって許可されているよりも長い(Fortran 2018まで132文字、Fortran 2023から10000文字)場合についての警告メッセージを抑制します — nAG Fortranコンパイラは任意の長さの自由形式ソースの行を受け入れます;
- -w=note
- 情報注釈メッセージを抑止します。
- -w=obs
- 廃止予定事項となった機能の使用に関する警告メッセージを抑止します。
- -w=ques
- 怪しい用法に関する警告メッセージを抑止します。
- -w=uda
- 未使用の仮引数に関する警告メッセージを抑止します。
- -w=uei
- 未使用の明示的インポートに関する警告メッセージを抑止します。
- -w=uep
- 未使用の外部手続きに関する警告メッセージを抑止します。
- -w=uip
- 未使用の組込み手続きに関する警告メッセージを抑止します。
- -w=ulv
- 未使用の局所変数に関する警告メッセージを抑止します。
- -w=unreffed
- 値が設定されたにも関わらず参照されていない変数に関する警告メッセージを抑止します。
- -w=unused
- 未使用の言語要素に関する警告メッセージを抑止します。 これは ‘-w=uda -w=uei -w=uep -w=uip -w=ulv -w=uparam -w=usf -w=usy’ と指定したのと等価です。
- -w=uparam
- 使用されていない
PARAMETER
に関する警告メッセージを抑止します。 - -w=usf
- 未使用の文関数に関する警告メッセージを抑止します。
- -w=usy
- 未使用の記号に関する警告メッセージを抑止します。
- -w=x77
- Fortran 77に対する一般的な拡張仕様(しかし廃止予定事項)に対する警告メッセージを抑止します。 該当するのはTABフォーマット、バイト長指定子、ホレリス定数、Dラインです。
- -w=x95
- 近代的なFortran(Fortran 95に限定しない)に対する拡張仕様に対する警告メッセージを抑止します。
- -Woptions
- -W オプションはコンパイラ構成要素のために使用するパスを指定する
目的で、あるいは該当要素に直接オプションを引き渡す目的で使用できます。
可能な組合せは次の通りです:
- -W0=path
- Fortranコンパイラフロントエンド用に使用するパスを指定します。 ただしこの指定はライブラリディレクトリには影響しない点に注意してください。 それを指定するには-Qpath を使用する必要があります。
- -Wc=path
- Cコンパイラを呼び出す際に使用されるパスを指定します。これはコンパイルの最終 ステージとリンキングに対して使用されます。
- -Wc,option
- コンパイル(.oファイルの生成)に際してホストのCコンパイラにoption を直 接引き渡します。 単一の-Wc, オプション中で複数のオプションを指定する場合に は、それらをカンマで区切って指定します。
- -Wl=path
- (実行可能モジュールを作成する)リンカーを呼び出す際に使用するパスを指定し ます。
- -Wl,option
- リンキング(実行可能モジュールの生成)に際してホストのCコンパイラに option を直接引き渡します。 単一の-Wl, オプション中で複数のオプションを指定する場合に は、それらをカンマで区切って指定します。 オプション中にカンマを含める場合にはそれを繰り返し入力します。例えば -Wl,-filelist=file1,,file2,,file3 と入力した場合のリンカー オプションは-filelist=file1,file2,file3 となります。 -Wl,で指定されたオプションはリンクコマンドに追加されます。特定の場所にある必要があるオプションの場合、 -xldarg オプションを使用できます。
- -Wp=path
- fppプリプロセッサを呼び出す際に使用するパスを指定します。
- -Wp,option
- プリプロセシングに際してfppにoption を直接引き渡します。
- -Warn=class
- classで指定される追加の警告メッセージを生成します。以下のいずれかでなければなりません。
- allocation
- 組込み代入において、 代入される側の変数(もしくは部分成分)の割付けを発生させる可能性がある場合に警告します。
- constant_coindexing
- 像選択子が定数共添え字を持つ場合に警告します。
- default_double_literals
- 基本倍精度定数表現について、注記し、もし不正確であれば警告します。
- reallocation
- 組込み代入において、 代入される側の割付け済変数(もしくは部分成分)の再割付けを発生させる可能性がある場合に警告します。
- subnormal
- 通常の演算対象を持つ組込み演算もしくは関数の結果が非正規化数になる場合に警告します。
(精度の減少、
TINY(
...)
よりも小さい) - unkind_real_literals
- 基本実定数表現について、注記し、種別指定子がないか、不正確である場合に警告します。
再割付けは、配列の形状、無指定型パラメタ、 もしくは動的な型(多相的の場合)が、 変数(もしくは部分成分)同士と式(もしくは対応する部分成分)同士が異なるの場合のみ行われます。 割付は、変数もしくは部分成分)が代入の実行前までに割付けられていない場合にも行われます。 (例外:ブロードキャスト代入) 従って、-Warn=allocationは-Warn=reallocationを包含します。
- -wmismatch=proc-name-list
- 引数データ形式と配列に関する一貫性チェックを抑止する外部手続きの一覧を指定しま す。 手続き名はカンマで区切る必要があります。例:-wmismatch=p_one,p2。 -mismatch オプションと異なり、これはデータ形式と配列のチェック にのみ影響し、警告メッセージは出力されません。
- -xldarg arg
- argをリンク時に渡します。 -Wl, オプションと異なり、argで指定されるオプションは.oファイルと同じような位置に配置されます。 また、複数のリンク引数をコンマで結合して単一のオプションとすることはできません。それぞれを個別の-xldargオプションとして指定する必要があります。
- -xlicinfo
- コンパイルを実行するのではなく、コンパイラに対するライセンスが利用可能かどうか をレポートします。また利用されているKUSARIライセンス管理システムのバージョンもレポートします。
- -xs
- (Sun/SPARCオプションのみ) 記号表を実行可能モジュール中に格納します(そうでない場合にはオブジェクトファイ ルが保持されているときにのみデバッギングが可能になります)。