インテル® Fortran コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
コンパイラーによって行われる仮定を指定します。
Linux* および macOS*: | -assume keyword[, keyword...] |
Windows*: | /assume:keyword[, keyword...] |
keyword |
仮定を指定します。設定可能な値は以下のとおりです。
|
nobscc |
文字列でバックスラッシュ文字 (\) を通常の文字として処理するかどうかを指定します。 |
nobuffered_io |
(OPEN 文の指定子が BUFFERED='NO' の場合) 内部バッファーにあるデータは直ちにディスクから読み込まれるか、ディスクに書き込まれ (フラッシュされ) ます。可変長の書式なしファイルからのデータ読み込みは、ディスクからユーザーの変数に直接読み込まれます。 FORT_BUFFERED 環境変数を TRUE に設定すると、デフォルトは assume buffered_io です。 |
nobuffered_stdout |
データは標準出力デバイスにバッファーされませんが、代わりに直ちにデバイスに書き込まれます。 |
nobyterecl |
書式なしファイルの RECL 値は 4 バイト (ロングワード) 単位です。 |
nocc_omp |
OpenMP* Fortran API による条件付きコンパイルは、[q または Q]openmp オプションが指定されない限り無効です。 [q または Q]openmp コンパイラー・オプションが指定されると、デフォルトは assume cc_omp です。 |
nocontiguous_assumed_shape |
形状引き継ぎ仮引数が連続していると仮定しません。 |
nocontiguous_pointer |
ポインターが連続していると仮定しません。 |
nodummy_aliases |
プロシージャーへの仮引数が他の仮引数と、または参照結合、親子結合、または共通ブロックを使用して共有した変数とメモリー位置を共有しないと仮定します。 |
nofpe_summary |
STOP または ERROR STOP 文に到達したときに浮動小数点例外の概要を表示しないようにします。 |
noieee_fpe_flags |
フラグはルーチンの入口で保存されません。また、ルーチンの出口でも復元されません。 |
nominus0 |
SIGN 組込み関数で Fortran 90/77 の標準セマンティクスを使用するようにコンパイラーに指示し、-0.0 と +0.0 は 0.0 として扱い、-0.0 は負の符号なしで書式付き出力に書き出します。 |
noold_boz |
組込み関数 INT、REAL、DBLE、および CMPLX の 2 進、8 進、および 16 進の定数引数を、組込み関数のデータ型の値を示すビット文字列として扱います (ビットは変換されません)。 |
old_ldout_format |
リスト指定出力およびネームリスト指定出力の場合、整数は整数種別に応じて固定幅で記述され、ゼロ実数値は E 形式で記述されます。 |
noold_logical_assign |
fpscomp logicals コンパイラー・オプションの設定に応じて、代入文 L = N (L は論理変数、N は数値) では、N は必要に応じて整数に変換され、整数値が 0 の場合は .FALSE. が、-1 または 1 の場合は .TRUE. が L に代入されます。 fpscomp logicals コンパイラー・オプションの設定に応じて、代入文 N = L (N は数値型の変数、L は論理値) では、L が .FALSE. の場合は 0 が、.TRUE. の場合は 1 または -1 が、必要に応じて N の型へ変換後に N に代入されます。 fpscomp logicals コンパイラー・オプションは、非ゼロ値は true として扱い、ゼロ値は false として扱うように指定します。リテラル定数 .TRUE. は整数値 1、リテラル定数 .FALSE. は整数値 0 になります。 デフォルトは、fpscomp nologicals です。このオプションが指定された場合、奇数の整数値 (最下位ビットが 1) は TRUE、偶数の整数値 (最下位ビットが 0) は FALSE として処理されます。リテラル定数 .TRUE. は整数値 -1、リテラル定数 .FALSE. は整数値 0 になります。 |
noold_logical_ldio |
NAMELIST およびリスト指定入力で、IO リストの数値 (integer、real、および complex) 項目に対して論理値 (T、F など) と IO リストの論理項目に対して数値を受け付けないようにコンパイラーに指示します。このオプションが指定された場合、NAMELIST およびリスト指定入力で数値項目に対して論理値が指定されたり、論理項目に対して数値が指定されると、ランタイムエラーとなります。 |
old_maxminloc |
引数で空の配列が指定された場合またはマスクのすべての要素が false の場合、MAXLOC と MINLOC は 1 を返します。 |
old_unit_star |
UNIT=5 または 6 がほかのファイルに結合されていても、UNIT=* への READ または WRITE を、それぞれ stdin または stdout に渡します。 |
old_xor |
コンパイラーによって、組込み演算子 .XOR. が定義されます。 |
noprotect_allocates |
ALLOCATE 文を使用したメモリー割り当て要求はクリティカル・セクションにより保護されません。マルチスレッド環境では、ランダムなタイミングの問題を引き起こす可能性があります。 |
protect_constants |
定数実引数が呼び出される側のルーチンに渡されます。この値を変更した場合、エラーが発生します。 |
noprotect_parens |
高速なコードを生成できる場合は、REAL および COMPLEX の式評価で、演算の関連付けを変更し、括弧を考慮に入れずに並べ替えて、最適化します。 |
realloc_lhs |
代入文の左辺が割付けオブジェクトの場合は、代入前に右辺の形状に再割り当てするようにコンパイラーに指示します。これは、現在の Fortran 標準規則です。この機能は、ランタイム時に余分なオーバーヘッドを引き起こすことがあります。standard-realloc-lhs オプションは、assume realloc_lhs と同じ効果があります。 |
norecursion |
RECURSIVE キーワードで宣言されていない限り、すべてのプロシージャーを再帰としてコンパイルしないようにコンパイラーに指示します。Fortran 2018 のデフォルトのコンパイルモードは再帰です。以前の規格では非再帰です。このデフォルトは将来のリリースで変更される予定です。 |
source_include |
ソースファイルが置かれているディレクトリーの USE モジュールおよび INCLUDE ファイルを検索します。 |
std_intent_in |
コンパイラーは、Fortran 標準に従って、呼び出されるプロシージャーの INTENT(IN) 属性を持つ仮引数が、呼び出し全体で変更されないと仮定します。 |
std_minus0_rounding |
出力でゼロに丸められる (ゼロではない) 負の値の先頭にマイナス記号を付けて表示します。例えば、F5.1 形式の値 -0.00000001 は、0.0 ではなく -0.0 で表示されます。 |
nostd_mod_proc_name |
モジュール・プロシージャー名とユーザー定義の外部シンボリック名の競合を許可します。 |
std_value |
コンパイラーは、VALUE 属性が指定された場合、Fortran 標準に従って、仮引数への変更が実引数に影響しないように、実引数が一時引数に割り当てられ、呼び出されたプロシージャーにその一時引数が渡されると仮定します。 |
Windows*: nounderscore |
Windows* システムでは、コンパイラーはユーザー定義の外部名に下線を付加しません。Linux* および macOS* システムでは、コンパイラーはユーザー定義の外部名に下線を 1 つ付加します。 |
no2underscores |
コンパイラーは、下線文字が含まれているユーザー定義の外部名に下線を 2 つ付加しません。 |
nowriteable-strings |
コンパイラーは、文字定数を書き込み可能なメモリーに配置します。 |
コンパイラーによって行われる仮定を指定します。
オプション |
説明 |
---|---|
assume none |
すべての assume オプションを無効にします。 |
assume bscc |
バックスラッシュ文字 (\) を C 言語の文字列で使用される制御 (エスケープ) 文字として処理するようにコンパイラーに指示します。"bscc" キーワードは "BackSlashControlCharacters" を意味します。 |
assume buffered_io |
レコードをバッファーに蓄積するようにコンパイラーに指示します。これにより、シーケンシャル・ファイルを開く際のデフォルトが BUFFERED='YES' に設定されます。FORT_BUFFERED ランタイム環境変数を指定する場合も、同様の動作をします。 このオプションを指定すると、Fortran ランタイムシステムによってレコードがディスクから読み込まれるか、ディスクに書き込まれるまで、多くのレコード入力文 (READ) または出力文 (WRITE) によって内部バッファーが使用されます。ファイルが直接アクセスで開かれた場合、I/O バッファリングは無視されます。 通常、バッファリング付きの読み込みおよび書き込みを使用すると、より大きなデータブロックがディスクで処理され、書き込み回数が減るため、ディスク I/O の効率が向上します。ただし、バッファリング付きの書き込みを指定する場合、システム障害が起こると、ディスクにまだ書き込まれていないレコードが失われる可能性があります。 OPEN 文の BUFFERED 指定子は、特定の論理ユニットに適用されます。これに対して、assume [no]buffered_io オプションおよび FORT_BUFFERED 環境変数は、すべての Fortran ユニットに適用されます。 |
assume buffered_stdout |
バッファーの標準出力デバイス用のデータを蓄積するように Fortran ランタイムシステムに指示します。バッファーがフルまたはユーザーが FLUSH を組込みモジュールISO_FORTRAN_ENV の OUTPUT_UNIT で実行すると、データは標準出力ユニットに表示されます。 バッファリング付きの書き込みを使用すると、時間と空間の点では効率的ですが、入力プロンプトのように、データを標準出力デバイスに直ちに表示する場合は、assume nobuffered_stdout を使用します。 assume [no]buffered_stdout は、assume [no]buffered_io に影響しません。逆も同様です。 このオプションでコンパイルすると、stdout のデフォルトのブロックサイズは 8KB です。 |
assume byterecl |
書式なしデータファイルに対する OPEN 文の RECL 指定子 (レコード長) の値をロングワード (4 バイト単位) ではなく、バイト単位に指定します。書式付きファイルに対する RECL の値は、常にバイト単位です。 ファイルが書式なしデータとして開かれ、assume byterecl が指定されている場合、INQUIRE 文は RECL をバイト単位で返します。それ以外の場合は、ロングワード単位で返します。ユニットが開いていない場合、INQUIRE 文は RECL をバイト単位で返します。 |
assume cc_omp |
OpenMP* Fortran API により条件付きコンパイルが有効になります。"!$space" が自由形式ソースにあるとき、または "c$spaces" が固定形式ソースのカラム 1 にあるときは、残りの行は Fortran 行として受け付けられます。 |
assume contiguous_assumed_shape |
形状引き継ぎ仮引数が連続していると仮定するようにコンパイラーに指示します。これは最適化を支援する可能性がありますが、データが連続していない場合ランタイムエラーになります。 |
assume contiguous_pointer |
ポインターが連続していると仮定するようにコンパイラーに指示します。これは最適化を支援する可能性がありますが、データが連続していない場合ランタイムエラーになります。 |
assume dummy_aliases |
プロシージャーへの仮引数が他の仮引数 (エイリアス)、または参照結合、親子結合、共通ブロックを使用して共有した変数とメモリー位置を共有していると仮定するようにコンパイラーに指示します。 呼び出されるサブプログラムをコンパイルする際のオプションを指定します。仮エイリアシングに関連したプログラム・セマンティクスは、標準の Fortran に完全に従っていないため、パフォーマンスが低下します。このため、このオプションを使用しない方がランタイム・パフォーマンスは向上します。 しかし、仮エイリアシングに依存するプログラムでこのオプションを指定しない場合、プログラムはランタイムに予期せぬ動作を引き起こします。このようなプログラムの結果は、行われた最適化の内容に依存します。場合によっては、通常の結果が生じることもありますが、問題を引き起こすエイリアスが関わる演算に使用された値が変わったために、結果が変わる場合もあります。 |
assume fpe_summary |
STOP または ERROR STOP 文に到達したときにプログラム実行中に発生した浮動小数点例外の概要を表示します。各例外に対し発生回数が表示されます。これは、Fortran 2003 標準で指定された動作です。 STOP または ERROR STOP 文がない場合は、概要は表示されないことに注意してください。 |
assume ieee_fpe_flags |
浮動小数点例外フラグとステータスフラグをルーチンの入口で保存し、ルーチンの出口で復元するようにコンパイラーに指示します。 このオプションを使用すると、各ルーチンの入口に浮動小数点例外フラグとステータスフラグ (丸めモードも) を保存するためのコードと、出口にそれを復元するためのコードが追加されるため、ランタイム・パフォーマンスが低下します。 このオプションを使用して、IEEE EXCEPTIONS、IEEE ARITHMETIC、および IEEE FEATURES 組込みモジュールの Fortran 標準の完全な動作を取得できます。これらの組込みモジュールでは、ルーチンの入口でフラグがシグナル型にある場合、プロセッサーはフラグをクワイエット型にセットして、出口でシグナル型に戻す必要があります。ルーチンの実行中にフラグがシグナル型になっても、ルーチンの出口でクワイエット型にはセットされません。 浮動小数点例外フラグがシグナル型となる初期状態をセットするには、fpe オプションと fpe-all オプションを使用できます。 |
assume minus0 |
プロセッサーが -0.0 と +0.0 を判別できる場合、SIGN 組込み関数の IEEE* 浮動小数点値 -0.0 を扱う際に Fortran 95 の標準セマンティクスを使用し、書式付き出力に -0.0 の値を負の符号で書き出すようにコンパイラーに指示します。 |
assume old_boz |
組込み関数 INT、REAL、DBLE、および CMPLX の 2 進、8 進、および 16 進の定数引数を、符号付き整数定数として扱うようにコンパイラーに指示します。 |
assume noold_ldout_format |
リスト指定出力およびネームリスト指定出力の整数値と実数値の出力に、Fortran 2003 標準セマンティクスを使用するようにコンパイラーに指示します。 整数は、先頭にスペースのための空白付きで I0 形式を使用して、記述されます。 実数値と複素数値は、先頭にスペースのための空白付きで E 形式または F 形式で記述されます。使用される形式は値の大きさによって異なります。ゼロの値は、F 形式で記述されます。 |
assume old_logical_assign |
代入文 L = N (L は論理変数、N は数値) では、N は必要に応じて整数に変換され、整数値のビット値が変換なしで L に代入されます。 代入文 N = L (N は数値型の変数、L は論理値) では、L の値のビット値が変換なしで N に代入されます。 |
assume old_logical_ldio |
数値項目に対して論理値と論理項目に対して数値を受け付けます。 |
assume noold_maxminloc |
引数で空の配列が指定された場合またはマスクのすべての要素が false の場合、MAXLOC 組込み関数と MINLOC 組込み関数が 0 を返すようにコンパイラーに指示します。デフォルト設定 (old_maxminloc) と比べると、この動作では引数が空の配列かどうか、またはマスクのすべての要素が false かどうかをチェックするためのコードが追加されるため、パフォーマンスが低下する可能性があります。 |
assume noold_unit_star |
UNIT=* への READ または WRITE が、UNIT=5 または 6 に結合されたファイルに渡されるようにコンパイラーに指示します。 |
assume noold_xor |
コンパイラーが .XOR. を組込み演算子として定義しないようにします。.XOR. をユーザー定義の演算子として使用できるようにします。これは、Fortran 2003 の機能です。 |
assume protect_allocates |
一部のディストリビューションと構成では、マルチスレッド環境でランダムなタイミングの問題を回避するため、ALLOCATE 文を使用したメモリー割り当て要求はクリティカル・セクションにより保護されます。 |
assume noprotect_constants |
定数実引数のコピーを渡すようにコンパイラーに指示します。標準 Fortran では行うことができないコピーの変更を、呼び出されたルーチンで変更することができます。呼び出しルーチンは、変数を変更しません。 |
assume protect_parens |
REAL および COMPLEX の式評価で、演算の関連付けを変更せずに、括弧を考慮して最適化するように指示します。例えば、(A+B)+C は A+(B+C) として評価されません。 noprotect_parens が指定されているものとして、(A+B)+C は A+B+C と同じように扱われ、高速なコードを生成する場合は、A+(B+C) として評価されます。 このような再結合は、引数のサイズと精度によって異なる結果を生成することがあります。 例えば、(A+B)+C で B と C の符号が異なり、A と比べて非常に大きな値の場合、A+B は B となり、C を加算すると 0.0 となり得ます。再結合を行うと、B+C は 0.0 となり、A を加算すると非ゼロ値になり得ます。 |
assume norealloc_lhs |
コンパイラーは、代入文の解釈に Fortran 2003 標準規則を使用します。右辺を保持するための正しい形状が左辺に割り当てられるものと仮定します。そうでない場合は、不正な動作が発生します。nostandard-realloc-lhs オプションは、assume norealloc_lhs と同じ効果があります。 |
assume recursion |
RECURSIVE または NON_RECURSIVE キーワードが宣言されていないプロシージャーを再帰プロシージャーとしてコンパイルするようにコンパイラーに指示します。Fortran 2018 では、これらのプロシージャーはデフォルトで再帰としてコンパイルされます。以前の規格では、非再帰プロシージャーとしてコンパイルされます。現在のデフォルトは非再帰です。これは、将来のリリースでは変更される予定です。 |
assume nosource_include |
デフォルトのディレクトリーを検索して、USE 文で指定したモジュールファイルまたは INCLUDE 文で指定したソースファイルを探すようにコンパイラーに指示します。このオプションは、fpp 動作と USE 文に影響を与えます。 |
assume nostd_intent_in |
呼び出されるプロシージャーの INTENT(IN) 属性を持つ仮引数が、呼び出し全体で変更される可能性があると仮定するようにコンパイラーに指示します。これは Fortran 標準の動作ではありません。 standard_semantics オプションを指定すると、assume std_intent_in オプションが設定されます。 |
assume nostd_minus0_rounding |
負で非ゼロの、丸めたときにゼロになる IEEE* 浮動小数点値の処理に Fortran 2008 標準よりも前のセマンティクスを使用するようにコンパイラーに指示します。値は先頭のマイナス記号なしで出力されます。 例えば、F5.1 形式で丸めた浮動小数点値 -0.00000001 は 0.0 として表示されます。Fortran 2008 標準のセマンティクスを使用して、この値を F5.1 形式で丸めたときに -0.0 と表示するには、assume std_minus0_rounding を指定します。 assume [no]std_minus0_rounding は、assume [no]minus0 に影響しません。逆も同様です。前者は非ゼロの値のマイナス記号の出力を制御し、後者は符号付きゼロの値の出力を制御します。 |
assume std_mod_proc_name |
ユーザー定義の外部シンボリック名と競合しないように、モジュール・プロシージャー名を変更するようにコンパイラーに指示します。例えば、モジュール m のプロシージャー proc の名前を m_MP_proc とします。Fortran 2003 規格では、モジュール・プロシージャー名とほかの外部シンボリック名の競合を許可していません。 デフォルトでは、モジュール m のプロシージャー proc の名前は m_mp_proc となりますが、これはユーザー定義の外部名 m_mp_proc と競合します。 |
assume nostd_value |
実引数のアドレスや実引数のコピーのアドレスではなく、実引数の値が呼び出されたプロシージャーに渡されるように、Fortran 2003 標準以前の VALUE 属性のセマンティクスを使用します。 |
assume underscore |
ユーザー定義の外部名 (メインプログラム名、名前付き COMMON、BLOCK DATA、MODULE 内のグローバルデータ名、および暗黙的または明示的に EXTERNAL と宣言された名前) に下線を付加するようにコンパイラーに指示します。名前のない共通ブロックは、_BLNK__ のまま残され、Fortran 組込み名は影響を受けません。 |
assume 2underscores |
下線が含まれているユーザー定義の外部名 (メインプログラム名、名前付き COMMON、BLOCK DATA、MODULE 内のグローバルデータ名、および暗黙的または明示的に EXTERNAL と宣言された名前) に下線を 2 つ付加するようにコンパイラーに指示します。名前のない共通ブロックは、_BLNK__ のまま残され、Fortran 組込み名は影響を受けません。 このオプションは、下線が含まれていない外部名には影響を与えません。デフォルトでは、コンパイラーはこれらの名前に下線を 1 つだけ付加します。例えば、my_program および myprogram という外部名に対して assume 2underscores を指定すると、my_program は my_program__ となりますが、myprogram は myprogram_ となります。 |
assume writeable-strings |
コンパイラーは、文字定数を書き込み可能なメモリーに配置します。 |
Visual Studio*: [Code Generation (コード生成)] > [Enable Recursive Routines (再帰ルーチンを有効にする)] (/assume:[no]recursion)
[Compatibility (互換性)] > [Treat Backslash as Normal Character in Strings (バックスラッシュ (\) の取り扱い)] (/assume:[no]bscc)
[Data (データ)] > [Assume Dummy Arguments Share Memory Locations (ダミー引数がメモリーの場所を共有すると仮定する)] (/assume:dummy_aliases)
[Data (データ)] > [Constant Actual Arguments Can Be Changed (定数の実引数の変更)](/assume:noprotect_constants)
[Data (データ)] > [Use Bytes as RECL=Unit for Unformatted Files (書式なしファイルでバイトを RECL= 単位で使用)] (/assume:byterecl)
[External Procedures (外部プロシージャー)] > [Append Underscore to External Names (外部名への下線追加)] (/assume:underscore)
[Floating Point (浮動小数点)] > [Enable IEEE Minus Zero Support (IEEE マイナスゼロのサポート)] (/assume:minus0)
[Optimization (最適化)] > [I/O Buffering (I/O バッファリング)] (/assume:buffered_io)
[Preprocessor (プリプロセッサー)] > [Default Include and Use Path (INCLUDE/USE 文の既定パス)] (/assume:nosource_include)
[Preprocessor (プリプロセッサー)] > [OpenMP Conditional Compilation (OpenMP 条件付きコンパイル)] (/assume:nocc_omp)
Eclipse*: なし
Xcode*: [Code Generation (コード生成)] > [Enable Recursive Routines (再帰ルーチンを有効にする)] (-assume [no]recursion)
[Compatibility (互換性)] > [Treat Backslash as Normal Character in Strings (バックスラッシュ (\) の取り扱い)] (-assume [no]bscc)
[Data (データ)] > [Assume Dummy Arguments Share Memory Locations (ダミー引数がメモリーの場所を共有すると仮定する)] (-assume [no]dummy_aliases)
[Data (データ)] > [Constant Actual Arguments Can Be Changed (定数の実引数の変更)] (-assume [no]protect_constants)
[Data (データ)] > [Use Bytes as RECL=Unit for Unformatted Files (書式なしファイルでバイトを RECL= 単位で使用)] (-assume [no]byterecl)
[External Procedures (外部プロシージャー)] > [Append Underscore to External Names (外部名への下線追加)] (-assume [no]underscore)
[Floating Point (浮動小数点)] > [Enable IEEE Minus Zero Support (IEEE マイナスゼロのサポート)] (-assume [no]minus0)
[Optimization (最適化)] > [I/O Buffering (I/O バッファリング)] (-assume [no]buffered_io)
[Preprocessor (プリプロセッサー)] > [Default Include and Use Path (INCLUDE/USE 文の既定パス)] (-assume [no]source_include)
[Preprocessor (プリプロセッサー)] > [OpenMP Conditional Compilation (OpenMP 条件付きコンパイル)] (-assume [no]cc_omp)
assume nobscc |
Linux* および macOS*: -nbs Windows*: /nbs |
assume dummy_aliases |
Linux* および macOS*: -common-args Windows*: /Qcommon-args |
assume protect_parens |
Linux* および macOS*: -fprotect-parens Windows*: /Qprotect-parens |
assume realloc_lhs |
Linux* および macOS*: -standard-realloc-lhs Windows*: /standard-realloc-lhs |
assume recursion |
Linux* および macOS*: -recursive Windows*: /recursive |