assume

 

コンパイラーによって行われる仮定を指定します。

IDE オプション

Windows: [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)

[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)

[External Procedures (外部プロシージャー)] > [Append Underscore to External Names (外部名への下線追加)] (/assume:[no]underscore)

Linux: なし

Mac OS X: [Optimization (最適化)] > [I/O Buffering (I/O バッファリング)] (-assume [no]buffered_io)

[Preprocessor (プリプロセッサー)] > [OpenMP Conditional Compilation (OpenMP 条件付きコンパイル)] (-assume [no]cc_omp)

[Preprocessor (プリプロセッサー)] > [Default Include and Use Path (INCLUDE/USE 文の既定パス)] (-assume [no]source_include)

[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)

[Floating Point (浮動小数点)] > [Enable IEEE Minus Zero Support (IEEE マイナスゼロのサポート)] (-assume [no]minus0)

[External Procedures (外部プロシージャー)] > [Append Underscore to External Names (外部名への下線追加)] (-assume [no]underscore)

アーキテクチャー

IA-32、インテル® 64、IA-64 アーキテクチャー

構文

Linux および Mac OS X:

-assume keyword

Windows:

/assume:keyword

引数

keyword

仮定を指定します。設定可能な値は以下のとおりです。

none

すべての assume オプションを無効にします。

[no]bscc

バックスラッシュ文字 (\) を C 言語の文字列で使用される制御 (エスケープ) 文字として処理するかどうかを指定します。

[no]buffered_io

データを直ちにディスクに書き込むか、バッファーに蓄積するかを指定します。

[no]byterecl

書式なしファイルの OPEN 文の RECL 指定子 (レコード長) の値がバイト単位か、ロングワード (4 バイト) 単位であるかを指定します。

[no]cc_omp

OpenMP* Fortran API により条件付きコンパイルを有効にするか、無効にするかを指定します。

[no]dummy_aliases

プロシージャーへの仮引数が他の仮引数と、または指定された COMMON 変数とメモリー位置を共有していることを仮定するかどうかを指定します。

[no]ieee_fpe_flags

浮動小数点例外フラグとステータスフラグをルーチンの入口で保存し、ルーチンの出口で復元するかどうかを指定します。

[no]minus0

-0.0 と +0.0 が 0.0 として扱われる場合、SIGN 組み込み関数で Fortran 95 または Fortran 90/77 の標準セマンティクスを使用するようコンパイラーに指示するかどうかと、書式付き出力での値の書き込み方法を指定します。

[no]old_boz

組み込み関数 INT、REAL、DBLE、および CMPLX の 2 進、8 進、および 16 進の定数引数を、符号付き整数定数として扱うかどうかを指定します。

[no]old_logical_ldio

NAMELIST およびリスト指定入力で IO リストの数値項目に対して論理値を受け付けるかどうかを示します。

[no]old_maxminloc

引数で空の配列が指定された場合の MAXLOC 組み込み関数と MINLOC 組み込み関数の結果を指定します。

[no]old_unit_star

UNIT=* への READ または WRITE を、それぞれ stdin または stdout に渡すかどうかを指定します。

[no]old_xor

コンパイラーによって、.XOR. が組み込み演算子として定義されるかどうかを決定します。

[no]protect_constants

呼び出される側のルーチンに定数実引数を渡すか、そのコピーを渡すかを指定します。

[no]protect_parens

REAL および COMPLEX の式評価で、演算の関連付けを変更せずに、括弧を考慮に入れて最適化するかどうかを指定します。

[no]realloc_lhs

代入式の左辺の割り当て可能なオブジェクトを Fortran 95/90 規則に従って処理するか、または Fortran 2003 規則に従って処理するかを指定します。

[no]source_include

USE モジュールおよび INCLUDE ファイルを検索する際、デフォルトのディレクトリーとソースファイルが置かれているディレクトリーのどちらを検索するかを指定します。

[no]std_mod_proc_name

モジュール・プロシージャー名とユーザー定義の外部シンボリック名の競合を許可するかどうかを指定します。

[no]underscore

ユーザー定義の外部名に 2 つの下線を付加するかどうかを決定します。

[no]2underscores
(Linux および Mac OS X)

ユーザー定義の外部名に 2 つの下線を付加するかどうかを決定します。

[no]writeable-strings

文字定数を書き込み可能なメモリーに配置するかどうかを決定します。

デフォルト

nobscc

文字列でバックスラッシュ文字 (\) を通常の文字として処理するかどうかを指定します。

nobuffered_io

(OPEN 文の指定子が BUFFERED='NO' の場合) 内部バッファーにあるデータは直ちにディスクに書き込まれ (フラッシュされ) ます。

FORT_BUFFERED 環境変数を TRUE に設定すると、デフォルトは assume buffered_io です。

nobyterecl

書式なしファイルの RECL 値は 4 バイト (ロングワード) 単位です。

nocc_omp

OpenMP Fortran API による条件付きコンパイルは、-openmp オプション (Linux) または /Qopenmp オプション (Windows) が指定されない限り無効です。

-openmp オプション (Linux および Mac OS X) または /Qopenmp オプション (Windows) が指定されない場合、デフォルトは assume cc_omp です。

nodummy_aliases

プロシージャーへの仮引数が他の仮引数と、または参照結合、ホスト結合、または共通ブロックを使用して共有した変数とメモリー位置を共有しないと仮定します。

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 進の定数引数を、組み込み関数のデータ型の値を示すビット文字列として扱います (ビットは変換されません)。

noold_logical_ldio

NAMELIST およびリスト指定入力で IO リストの数値 (integer、real、および complex) 項目に対して、論理値 (T、F など) を受け付けないようにコンパイラーに指示します。このオプションが指定された場合、NAMELIST およびリスト指定入力で数値項目に対して論理値が指定されると、ランタイムエラーとなります。

old_maxminloc

引数で空の配列が指定された場合、MAXLOC と MINLOC は 1 を返します。

noold_unit_star

UNIT=5 または 6 がほかのファイルに結合されていても、UNIT=* への READ または WRITE を、それぞれ stdin または stdout に渡します。

old_xor

コンパイラーによって、組み込み演算子 .XOR. が定義されます。

protect_constants

定数実引数が呼び出される側のルーチンに渡されます。この値を変更した場合、エラーが発生します。

noprotect_parens

高速なコードを生成できる場合は、REAL および COMPLEX の式評価で、括弧を考慮に入れずに並べ替えて、最適化します。

norealloc_lhs

コンパイラーは、代入文の解釈に Fortran 95/90 規則を使用します。右辺を保持するための正しい形状が左辺に割り当てられるものと仮定します。そうでない場合は、不正な動作が発生します。

source_include

ソースファイルが置かれているディレクトリーの USE モジュールおよび INCLUDE ファイルを検索します。

nostd_mod_proc_name

モジュール・プロシージャー名とユーザー定義の外部シンボリック名の競合を許可します。

Windows: nounderscore
Linux および Mac OS X: underscore

Windows システムでは、コンパイラーはユーザー定義の外部名に下線を付加しません。Linux および Mac OS X システムでは、コンパイラーはユーザー定義の外部名に下線を付加します。

no2underscores
(Linux および Mac OS X)

コンパイラーは、下線文字が含まれているユーザー定義の外部名に下線を 2 つ付加しません。

nowriteable-strings

コンパイラーは、文字定数を書き込み可能なメモリーに配置します。

説明

コンパイラーによって行われる仮定を指定します。

オプション

説明

assume none

すべての assume オプションを無効にします。

assume bscc

バックスラッシュ文字 (\) を C 言語の文字列で使用される制御 (エスケープ) 文字として処理するようコンパイラーに指示します。"bscc" キーワードは "BackSlashControlCharacters" を意味します。

assume buffered_io

レコードをバッファーに蓄積するようコンパイラーに指示します。これにより、シーケンシャル・ファイルを開く際のデフォルトが BUFFERED='YES' に設定されます。FORT_BUFFERED ランタイム環境変数を指定する場合も、同様の動作をします。

このオプションを指定すると、Fortran ランタイムシステムによってレコードがディスクに書き込まれるまで、多くのレコード出力文 (WRITE) によって内部バッファーが使用されます。ファイルが直接アクセスで開かれた場合、I/O バッファリングは無視されます。

通常、バッファリング付きの書き込みを使用すると、より大きなデータブロックがディスクに書き込まれ、書き込み回数が減るため、ディスク I/O の効率が向上します。ただし、バッファリング付きの書き込みを指定する場合、システム障害が起こると、ディスクにまだ書き込まれていないレコードが失われる可能性があります。

OPEN 文の BUFFERED 指定子は、特定の論理ユニットに適用されます。これに対して、assume [no]buffered_io オプションおよび FORT_BUFFERED 環境変数は、すべての Fortran ユニットに適用されます。

assume byterecl

書式なしデータファイルに対する OPEN 文の RECL 指定子 (レコード長) の値をロングワード (4 バイト単位) ではなく、バイト単位に指定します。書式付きファイルに対する RECL の値は、常にバイト単位です。

ファイルが書式なしデータとして開かれ、assume byterecl が指定されている場合、INQUIRE 文は RECL をバイト単位で返します。それ以外の場合は、ロングワード単位で返します。ユニットが開いていない場合、INQUIRE 文は RECL をバイト単位で返します。

assume cc_omp

OpenMP Fortran API により条件付きコンパイルが有効になります。"!$space" が自由形式ソースにあるとき、または "c$spaces" が固定形式ソースのカラム 1 にあるときは、残りの行は Fortran 行として受け付けられます。

assume dummy_aliases

プロシージャーへの仮引数が他の仮引数 (エイリアス)、または参照結合、ホスト結合、共通ブロックを使用して共有した変数とメモリー位置を共有していると仮定するようにコンパイラーに指示します。

呼び出されるサブプログラムをコンパイルする際のオプションを指定します。仮エイリアシングに関連したプログラム・セマンティクスは、Fortran 95/90 の標準に完全に従っていないため、パフォーマンスが低下します。このため、このオプションを使用しない方がランタイム・パフォーマンスは向上します。

しかし、仮エイリアシングに依存するプログラムでこのオプションを指定しない場合、プログラムはランタイムに予期せぬ動作を引き起こします。このようなプログラムの結果は、行われた最適化の内容に依存します。場合によっては、通常の結果が生じることもありますが、問題を引き起こすエイリアスが関わる演算に使用された値が変わったために、結果が変わる場合もあります。

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 old_logical_ldio

数値項目に対して論理値を受け付けます。

assume noold_maxminloc

引数で空の配列が指定された場合、MAXLOC と MINLOC が 0 を返すようにコンパイラーに指示します。デフォルト設定 (old_maxminloc) と比べると、この動作では空の配列引数をチェックするためのコードが追加されるため、パフォーマンスが低下する可能性があります。

assume old_unit_star

UNIT=* への READ または WRITE が、UNIT=5 または 6 に結合されたファイルに渡されるようにコンパイラーに指示します。

assume noold_xor

コンパイラーが .XOR. を組み込み演算子として定義しないようにします。.XOR. をユーザー定義の演算子として使用できるようにします。これは、Fortran 2003 の機能です。

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 realloc_lhs

代入文の左辺が割り当て可能なオブジェクトの場合は、代入前に右辺の形状に再割り当てするようにコンパイラーに指示します。これは、Fortran 2003 の定義です。この機能は、ランタイム時に余分なオーバーヘッドを引き起こすことがあります。

assume nosource_include

デフォルトのディレクトリーを検索して、USE 文で指定したモジュールファイルまたは INCLUDE 文で指定したソースファイルを探すようコンパイラーに指示します。このオプションは、fpp 動作と USE 文に影響を与えます。

assume std_mod_proc_name

ユーザー定義の外部シンボリック名と競合しないように、モジュール・プロシージャー名を変更するようにコンパイラーに指示します。例えば、モジュール m のプロシージャー proc の名前を m_MP_proc とします。Fortran 2003 規格では、モジュール・プロシージャー名とほかの外部シンボリック名の競合を許可していません。

デフォルトでは、モジュール m のプロシージャー proc の名前は m_mp_proc となりますが、これはユーザー定義の外部名 m_mp_proc と競合します。

assume underscore

ユーザー定義の外部名 (メインプログラム名、名前付き COMMON、BLOCK DATA、MODULE 内のグローバルデータ名、および暗黙的または明示的に EXTERNAL と宣言された名前) に下線を付加するようコンパイラーに指示します。 名前のない共通ブロックは、_BLNK__ のまま残され、Fortran 組み込み名は影響を受けません。

assume 2underscores
(Linux および Mac OS X)

下線が含まれているユーザー定義の外部名 (メインプログラム名、名前付き COMMON、BLOCK DATA、MODULE 内のグローバルデータ名、および暗黙的または明示的に EXTERNAL と宣言された名前) に下線を 2 つ付加するようコンパイラーに指示します。名前のない共通ブロックは、_BLNK__ のまま残され、Fortran 組み込み名は影響を受けません。

このオプションは、下線が含まれていない外部名には影響を与えません。デフォルトでは、コンパイラーはこれらの名前に下線を 1 つだけ付加します。例えば、my_program および myprogram という外部名に対して assume 2underscores を指定すると、my_programmy_program__ となりますが、myprogram は myprogram_ となります。

assume writeable-strings

コンパイラーは、文字定数を書き込み可能なメモリーに配置します。

代替オプション

assume nobscc

Linux および Mac OS X: -nbs

Windows: /nbs

assume dummy_aliases

Linux および Mac OS X: -common-args

Windows: /Qcommon-args

assume underscore

Linux および Mac OS X: -us

Windows: /us

assume nounderscore

Linux および Mac OS X: -nus

Windows: なし

関連情報