インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

fpscomp

ランタイムシステムおよびコンパイラーのセマンティック言語機能の一部が、インテル® Fortran または Microsoft* Fortran PowerStation と互換性があるかどうかを制御します。

構文

Linux* および macOS*:

-fpscomp [keyword[, keyword...]]

-nofpscomp

Windows*:

/fpscomp[:keyword[, keyword...]]

/nofpscomp

引数

keyword

コンパイラーが使用する互換性を指定します。設定可能な値は以下のとおりです。

none

互換性のためのオプションを使用しません。

[no]filesfromcmd

OPEN 文の FILE= 指定子が空の場合に使用する互換性を指定します。

[no]general

Fortran PowerStation とインテル® Fortran でセマンティクスが異なる場合に使用する互換性を指定します。

[no]ioformat

リスト指定の書式付き I/O と書式なし I/O に使用する互換性を指定します。

[no]libs

移植ライブラリーがリンカーに渡されるかどうかを指定します。

[no]ldio_spacing

ランタイム時に文字値の前で数値の後に空白を挿入するかどうかを指定します。

[no]logicals

LOGICAL 値の表現に使用する互換性を指定します。

all

互換性のためのすべてのオプションを使用するように指定します。

デフォルト

fpscomp libs

移植ライブラリーがリンカーに渡されます。

説明

このオプションは、ランタイムシステムおよびコンパイラーのセマンティック言語機能の一部が、インテル® Fortran または Microsoft* Fortran PowerStation と互換性があるかどうかを制御します。

Fortran PowerStation からアプリケーションを移植する際に問題が生じた場合、fpscomp (または fpscomp all) を指定します。インテル® Fortran からアプリケーションを移植する場合、fpscomp none または fpscomp libs (デフォルト) を使用します。

オプション

説明

fpscomp none

Fortran PowerStation との互換性オプションを使用しないように指定します。これは、nofpscomp と同じです。fpscomp none オプションは、インテル® Fortran との完全な互換性を有効にします。fpscomp を省略した場合、デフォルトは fpscomp libs です。fpscomp オプションと vms オプションを同じコマンドで使用することはできません。

fpscomp filesfromcmd

OPEN 文の FILE= 指定子が空の場合 (FILE=' ') に行う Fortran PowerStation の動作を指定します。ランタイム時に次の動作が行われます。

  • プログラムを呼び出したコマンドライン引数のリストからファイル名を読み取ります。コマンドライン引数に NULL 文字列 ('') が含まれている場合、プログラムは対応するファイル名の入力をユーザーに促します。追加する FILE= 指定子が空の OPEN 文ごとに、コマンドライン引数を読み取ります。

  • コマンドラインの引数よりもファイル名のない OPEN 文が多い場合、プログラムは追加のファイル名の入力を促します。

  • QuickWin アプリケーションでは、[File Select] ダイアログボックスが表示され、ファイル名を要求されます。

OPEN 文の FILE 指定子が省略されている場合に、ランタイムシステムがコマンドラインで指定されたファイル名を使用しないようにするには、fpscomp nofilesfromcmd を指定します。アプリケーションは、インテル® Fortran のデフォルトである FORTn 環境変数や FORT.n ファイル名 (n はユニット番号) を使用できるようになります。

fpscomp filesfromcmd オプションは、次の Fortran の機能に影響を与えます。

  • OPEN 文の FILE 指示子

    例えば、OPENTEST というプログラムに次の文が含まれているとします。

    OPEN(UNIT = 2, FILE = ' ')

    OPEN(UNIT = 3, FILE = ' ')

    OPEN(UNIT = 4, FILE = ' ')

    次のコマンドラインは、ユニット 2 に TEST.DAT ファイルを割り当て、ユーザーにユニット 3 に関連付けるファイル名の入力を促し、続いてユニット 4 に関連付けるファイル名の入力を促します。

    opentest test.dat '' ''

  • WRITE、READ、ENDFILE 文などの暗黙的な OPEN 文。READ 文または WRITE 文で参照されている開かれていないファイルは、名前に空白が指定された OPEN 文があるかのように暗黙的に開かれます。名前はコマンドラインから読み取られます。

fpscomp general

インテル® Fortran と PowerStation 間における違いで Fortran PowerStation セマンティクスを使用するように指定します。fpscomp general オプションは、次の Fortran の機能に影響を与えます。

  • BACKSPACE 文

    • ACCESS='APPEND' で開かれたファイルを BACKSPACE 文とともに使用できるようにします。

    • ACCESS='DIRECT' で開かれたファイルを BACKSPACE 文とともに使用できるようにします。

    注: シーケンシャル・アクセスで開かれなかったファイル (ACCESS='DIRECT' など) を BACKSPACE 文とともに使用できるようにすることは、Fortran 95 の標準に違反します。これは、将来削除される可能性があります。

  • READ 文

    • READ 文は、直接アクセスで開かれた書式付きファイルから、Fortran PowerStation と同じレコード型形式のレコードを読み取ります。これは、レコードの一部であるキャリッジリターン/ラインフィードのペア (<CR><LF>) が考慮されているためです。直接アクセスで開かれた書式付きファイルからシーケンシャルな読み取りを可能にします。

      注: シーケンシャル・アクセスで開かれなかったファイル (ACCESS='DIRECT' など) をシーケンシャル READ 文とともに使用できるようにすることは、Fortran 95 の標準に違反します。これは、将来削除される可能性があります。

    • FORM='FORMATTED' で開かれたファイルの最後のレコードや、適切なレコード終了子 (<line feed> または <carriage return>) で終わらない STREAM_LF レコード型または STREAM_CR レコード型を、エラーが発生することなく読み取ることができるようになります。

    • これは、直接アクセスで開かれた書式なしファイルからシーケンシャルな読み取りを可能にします。

    • 注: シーケンシャル・アクセスで開かれなかったファイル (ACCESS='DIRECT' など) をシーケンシャル READ 文で読み取れるようにすることは、Fortran 95 の標準に違反します。これは、将来削除される可能性があります。

  • INQUIRE 文

    • キャリッジ制御が不明な場合、CARRIAGECONTROL 指定子は "UNKNOWN" ではなく "UNDEFINED" を返します。

    • ファイル名が不明な場合、NAME 指定子はファイル名に空白を挿入せずに "UNKNOWN" を返します。

    • SEQUENTIAL 指定子は、直接アクセスを行う書式付きファイルに対して "NO" ではなく "YES" を返します。

    • ファイルに対して書式なし I/O が実行可能かどうか不明な場合、UNFORMATTED 指定子は "UNKNOWN" ではなく "NO" を返します。

      注: この指定子に対して "UNKNOWN" ではなく "NO" を返すことは Fortran 95 の標準に違反します。これは、将来削除される可能性があります。

  • OPEN 文

    • STATUS キーワード値を指定せずにファイルが開かれた場合、ファイル名が指定されていないと (FILE 指定子がないと)、ファイルはスクラッチファイルとして開かれます。

      次に例を示します。

      OPEN (UNIT = 4)

    • STATUS 値と FILE 指定子が指定されておらず fpscomp nogeneral が有効な場合、FORTn 環境変数および FORT.n ファイル名 (n はユニット番号) が使用されます。

    • ファイル名が "USER" で STATUS 値が指定されていない場合、ファイルは閉じられたときに削除の対象となります。

    • これにより、APPEND および READONLY 特性としてファイルを開くことができるようになります。

    • CARRIAGECONTROL 指定子がデフォルトであると仮定すると、直接アクセスの書式付きファイルに対するキャリッジ制御は "NONE" ではなく "LIST" になります。

    • CARRIAGECONTROL 指定子がデフォルトであると仮定し、かつデバイスタイプが端末ファイルの場合、"LIST" ではなくデフォルトのキャリッジ制御である "FORTRAN" が使用されます。

    • これは、開かれたファイルに書き出し共有のデフォルト設定を追加します。

    • ファイルのデフォルト・ブロックサイズが、8192 ではなく、1024 になります。

    • デフォルトの MODE 指定子および ACTION 指定子でファイルを開く際にエラーが発生した場合、まず読み取り専用として開き、その後書き出し専用として開いてください。

    • 再度開いたファイルと既存のファイルのタイプが異なる場合、エラーが返されます。

    • 直接アクセスの書式付きファイルは、Fortran PowerStation と同じレコード型になります。これは、レコードの一部であるキャリッジリターン/ラインフィードのペア (<CR><LF>) が考慮されていることを意味します。

  • STOP 文: Fortran PowerStation の出力文字列を書き込み、同じ出口条件を返します。

  • WRITE 文

    • 書式付直接アクセスファイルへの書き出し

      直接アクセスで開かれた書式付きファイルへ書き出す際、Fortran PowerStation と同じレコード型でレコードが書き出されます。これは、レコードの一部であるキャリッジリターン/ラインフィードのペア (<CR><LF>) の追加が考慮されているためです。

      書式付き直接アクセスファイルへ書き出す際、CARRIAGECONTROL 指定子の設定は無視されます。

    • Fortran キャリッジ制御文字の解釈

      書式付き I/O で Fortran キャリッジ制御文字を解釈する場合、Fortran PowerStation と同じキャリッジ制御シーケンスで書き出されます。これは、"スペース、0、1 および + " 文字にも当てはまります。

    • 端末に対する非アドバンシング I/O の実行

      端末に対して非アドバンシング I/O を実行する場合、出力は Fortran PowerStation と同じ形式で書き出されます。

    • バックスラッシュ (\) 書式記述子またはドル記号 ($) 書式記述子の解釈

      書式付き I/O でバックスラッシュ書式記述子またはドル記号書式記述子を解釈する場合、Fortran PowerStation と同じシーケンスで書き出されます。

    • シーケンシャル WRITE の実行

      これは、直接アクセスで開かれた書式なしファイルからシーケンシャルな書き出しができます。

      注: シーケンシャル・アクセスで開かれなかったファイル (ACCESS='DIRECT' など) をシーケンシャル WRITE 文で読み取れるようにすることは、Fortran 95 の標準に違反します。これは、将来削除される可能性があります。

fpscomp general を指定すると fpscomp ldio_spacing が設定されます。

fpscomp ioformat

リスト指定の書式付き I/O と書式なし I/O で Fortran PowerStation セマンティクスの表記法とレコード形式を使用するかどうかを指定します。fpscomp ioformat オプションは Fortran の次の機能に影響を与えます。

  • WRITE 文

    • 書式付きリスト指定 WRITE 文、書式付き内部リスト指定 WRITE 文、および書式付きネームリスト WRITE 文における出力行、フィールド幅の値、およびリスト指定データ型のセマンティクスは、次の実数定数 (下記の N を参照) のサンプルによって決定されます。

      1 <= N < 10**7 の場合、単精度には F15.6 を、倍精度には F24.15 を使用します。

      N < 1 または N >= 10**7 の場合、単精度には E15.6E2 を、倍精度には E24.15E3 を使用します。

      影響を受けるその他のデータ型に関する詳細は、Fortran PowerStation のドキュメントを参照してください。

    • 書式なし WRITE 文における、書式なしファイルのセマンティクスは Fortran PowerStation のドキュメントに従ってください。これらのセマンティクスはインテル® Fortran のファイル形式と異なります。詳細は、Fortran PowerStation のドキュメントを参照してください。

      次の表は、組込みデータ型が含まれたリスト指定の出力に対するデフォルトの出力形式を示します。

      データ型

      fpscomp noioformat を使用した出力形式

      fpscomp ioformat を使用した出力形式

      BYTE

      I5

      I12

      LOGICAL (all)

      L2

      L2

      INTEGER(1)

      I5

      I12

      INTEGER(2)

      I7

      I12

      INTEGER(4)

      I12

      I12

      INTEGER(8)

      I22

      I22

      REAL(4)

      1PG15.7E2

      1PG16.6E2

      REAL(8)

      1PG24.15E3

      1PG25.15E3

      COMPLEX(4)

      '( ',1PG14.7E2, ', ',1PG14.7E2, ') '

      '( ',1PG16.6E2, ', ',1PG16.6E2, ') '

      COMPLEX(8)

      '( ',1PG23.15E3, ', ',1PG23.15E3, ') '

      '( ',1PG25.15E3, ', ',1PG25.15E3, ') '

      CHARACTER

      Aw

      Aw

  • READ 文

    • 書式付きリスト指定 READ 文、書式付き内部リスト指定 READ 文、および書式付きネームリスト READ 文における、フィールド幅の値およびリスト指定のセマンティクスは、次の実数定数 (下記の N を参照) のサンプルによって決定されます。

      1 <= N < 10**7 の場合、単精度には F15.6 を、倍精度には F24.15 を使用します。

      N < 1 または N >= 10**7 の場合、単精度には E15.6E2 を、倍精度には E24.15E3 を使用します。

      影響を受けるその他のデータ型に関する詳細は、Fortran PowerStation のドキュメントを参照してください。

    • 書式なし READ 文における、書式なしファイルのセマンティクスは Fortran PowerStation のドキュメントに従ってください。これらのセマンティクスはインテル® Fortran のファイル形式と異なります。詳細は、Fortran PowerStation のドキュメントを参照してください。

fpscomp nolibs

移植ライブラリーをリンカーに渡さないようにします。

fpscomp ldio_spacing

ランタイム時に、文字値 (非区切り文字列) の前で数値の後に空白を挿入しないように指定します。この表現は、インテル® Fortran の以前のリリースおよび Fortran PowerStation によって使用されています。fpscomp general を指定すると、fpscomp ldio_spacing が設定されます。

fpscomp logicals

ゼロ以外の整数値は TRUE、ゼロは FALSE として処理するように指定します。リテラル定数 .TRUE. は整数値 1、リテラル定数 .FALSE. は整数値 0 になります。この表現は、インテル® Fortran の以前のリリースおよび Fortran PowerStation によって使用されています。

デフォルトは、fpscomp nologicals です。このオプションが指定された場合、奇数の整数値 (最下位ビットが 1) は TRUE、偶数の整数値 (最下位ビットが 0) は FALSE として処理されます。

リテラル定数 .TRUE. は整数値 -1、リテラル定数 .FALSE. は整数値 0 になります。この表現は、Compaq* Visual Fortran で使用されます。LOGICAL 値の内部表現は Fortran 規格では指定されていません。LOGICAL コンテキストで整数値を使用するプログラム、または LOGICAL 値を他の言語で記述されたプロシージャーに渡すプログラムは可搬性がなく、正しく動作しません。インテルでは、LOGICAL 値の内部表現に依存するコーディングを行わないことを強く推奨します。

fpscomp logicals オプションはすべての論理式の結果と、次の Fortran の機能の戻り値に影響を与えます。

  • INQUIRE 文の OPENED、IOFOCUS、EXISTS、および NAMED 指定子

  • EOF 組込み関数

  • BTEST 組込み関数

  • 字句組込み関数の LLT、LLE、LGT、および LGE

fpscomp all

Fortran PowerStation との互換性でオプションをすべて使用するように指定します。これは、keyword なしで fpscomp を指定するのと同じです。fpscomp all オプションは、Fortran PowerStation との完全な互換性を有効にします。

IDE オプション

Visual Studio*: [Compatibility (互換性)] > [Use Filenames from Command Line (コマンドラインからのファイル名を使用)] (/fpscomp:filesfromcmd)

[Compatibility (互換性)] > [Use PowerStation I/O Format (PowerStation I/O 書式の使用)] (/fpscomp:ioformat)

[Compatibility (互換性)] > [Use PowerStation Portability Library (PowerStation Portability ライブラリーの使用)] (/fpscomp:libs)

[Compatibility (互換性)] > [Use PowerStation List Directed I/O Spacing (PowerStation リスト指定出力時の空白処理)] (/fpscomp:ldio_spacing)

[Compatibility (互換性)] > [Use PowerStation Logical Values (PowerStation Logical 値の使用)] (/fpscomp:logicals)

[Compatibility (互換性)] > [Use Other PowerStation Run-time Behavior (その他の PowerStation ランタイム動作の使用)] (/fpscomp:general)

Eclipse*: なし

Xcode*: なし

代替オプション

なし