ファイル情報の取得: INQUIRE 文

INQUIRE 文は、ファイルに関する情報を返します。INQUIRE 文には、次の形式があります。

ユニットによる照会

通常、ユニットによる照会は、開かれた (結合済み) ファイルに対して実行されます。ユニットによる照会によって、インテル(R) Fortran RTL は、指定されたユニットが結合されているかどうかをチェックします。ユニットの結合状況により、次のいずれかが発生します。

ユニットが結合されている場合:

ユニットが結合されていない場合:

以下の INQUIRE 文の例では次の 3 つが返されます。論理変数 I_OPENED には結合されたファイル (OPENED 指定子) がユニット 3 にあるかどうかが、文字変数 I_NAME にはそのファイル名 (大文字・小文字の区別あり) が、文字変数 I_ACTION にはそのファイルが READ、WRITE、または READWRITE 参照で開かれているかどうかが、それぞれ返されます。

INQUIRE (3, OPENED=I_OPENED, NAME=I_NAME, ACTION=I_ACTION)

ファイル名による照会

ファイル名による照会によって、インテル Fortran RTL は、開かれているファイルのリストをスキャンし、一致するファイル名を検索します。一致するファイル名の有無により、次のいずれかが発生します。

ファイル名が一致した場合:

ファイル名が一致しなかった場合:

下の INQUIRE 文では次の 3 つが返されます。論理変数 I_OPEN には log_file という名前のファイルが結合済みのファイルであるかどうかが、論理変数 I_EXIST にはそのファイルが存在するかが、整数変数 I_NUMBER にはユニット番号がそれぞれ返されます。

INQUIRE (FILE='log_file', OPENED=I_OPEN, EXIST=I_EXIST, NUMBER=I_NUMBER)

出力項目リストによる照会

ユニットおよび名前による照会とは異なり、出力項目リストによる照会は、外部ファイルにアクセスしません。この照会では、書式なし WRITE 文、READ 文、および REWRITE 文で使用される変数リストに関するレコード長が返されます。以下の INQUIRE 文では、変数リストの最大レコード長を変数 I_RECLENGTH に返します。この変数は、その後 OPEN 文で RECL 値を指定するために使用されます。

INQUIRE (IOLENGTH=I_RECLENGTH) A, B, H

OPEN (FILE='test.dat', FORM='UNFORMATTED', RECL=I_RECLENGTH, UNIT=9)

書式なしファイルの場合、-assume byterecl オプションで 1 バイト単位を指定しない限り、IOLENGTH 値は 4 バイト単位として返されます。

ディレクトリーによる照会

ディレクトリーによる照会は、ディレクトリーが存在することを確認します。

ディレクトリーが存在する場合:

ディレクトリーが存在しない場合:

例えば、次の INQUIRE 文は完全ディレクトリー・パス名を返します。

LOGICAL        ::L_EXISTS
CHARACTER (255)::C_DIRSPEC

INQUIRE (DIRECTORY=".", DIRSPEC=C_DIRSPEC, EXIST=L_EXISTS)

次の INQUIRE 文は、ディレクトリーが存在しないことを確認します。

INQUIRE (DIRECTORY="I-DO-NOT-EXIST",
EXIST=L_EXISTS)