インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
各種のレコード I/O 文は、さまざまな形式でコード化できます。選択する形式は、データの種類と処理方法により異なります。ファイルを開くときに、FORM 指定子を使用して形式を指定します。
I/O 文の形式は次のとおりです。
書式付き I/O 文には、プログラムの内部 (バイナリー) 形式からレコードの外部 (可読文字) 形式へのデータ変換、あるいはその逆のデータ変換の制御に使用される、明示的な書式指定子が含まれます。
リスト指定 I/O 文およびネームリスト I/O 文は、機能的に書式付き文と同様です。ただし、これらの文はデータの変換を制御するために使用するメカニズムが異なります。書式付き I/O 文は明示的な書式指定子を使用しますが、リスト指定 I/O 文およびネームリスト I/O 文はデータ型を使用します。
書式なし I/O 文には、書式指定子が含まれません。そのため、転送されるデータを変換しません (後で読み出すデータを書き込むときに重要です)。
書式付き I/O、リスト指定 I/O、およびネームリスト I/O の各形式では、レコードのプログラムの内部 (バイナリー) 形式から外部 (可読文字) 形式へのデータ変換が必要です。次のような理由があるため、書式なし I/O の使用を検討してください。
書式なしデータでは、変換処理を行わないため、I/O が速くなります。
書式なしデータでは、出力データをその後で入力データとして使用するときに、浮動小数点数の精度が低下しません。
書式なしデータは、ファイル保存領域を浪費しません (バイナリー形式で保存)。
書式付き I/O 文、リスト指定 I/O 文、またはネームリスト I/O 文を使用してファイルにデータを書き込むには、ファイルを開く際に FORM= 'FORMATTED' を指定します。書式なし I/O 文を使用してファイルにデータを書き込むには、ファイルを開く際に FORM= 'UNFORMATTED' を指定します。
書式付き I/O 文、リスト指定 I/O 文、またはネームリスト I/O 文を使用して書き込まれたデータは、書式付きデータとして参照されます。書式なし I/O 文を使用して書き込まれたデータは、書式なしデータとして参照されます。
ファイルからデータを読み出す際には、ファイルにデータを書き込むときと同じ I/O 文形式を使用してください。例えば、書式付き I/O 文でファイルにデータを書き込んだ場合、書式付き I/O 文でそのファイルからデータを読み出さなければなりません。
通常、ファイルで使用する I/O 文の形式は、データの読み出しと書き込みで同じですが、プログラムは書式なしデータを含むファイルを読み出すことも (書式なし入力を使用)、書式付きデータを含む別のファイルへ書き込むこともできます (書式付き出力を使用)。同様に、プログラムは書式付きデータを含むファイルを読み出すことも、書式なしデータを含む別のファイルへ書き込むこともできます。
シーケンシャル・ファイルまたは相対ファイルのレコードをシーケンシャル・アクセスを使用してアクセスできます。相対ファイルおよび特定 (固定長) のシーケンシャル・ファイルに対しては、直接アクセスを使用してレコードにアクセスすることもできます。
次の表は、インテル® Fortran プログラムで使用できる主なレコード I/O 文のカテゴリーを示しています。
ファイルのタイプ、アクセスおよび I/O 形式 |
使用できる文 |
---|---|
外部ファイル、シーケンシャル・アクセス |
|
書式付き |
READ、WRITE、PRINT、ACCEPT、TYPE、REWRITE |
リスト指定 |
READ、WRITE、PRINT、ACCEPT、TYPE |
ネームリスト |
READ、WRITE、PRINT、ACCEPT、TYPE |
書式なし |
READ、WRITE、REWRITE |
外部ファイル、直接アクセス |
|
書式付き |
READ、WRITE、REWRITE |
書式なし |
READ、WRITE、REWRITE |
外部ファイル、ストリームアクセス |
|
書式付き |
READ、WRITE |
リスト指定 |
READ、WRITE |
ネームリスト |
READ、WRITE |
書式なし |
READ、WRITE |
内部ファイル |
|
書式付き |
READ、WRITE |
リスト指定 |
READ、WRITE |
書式なし |
なし |
REWRITE 文は、相対ファイルに対して直接アクセスを使用する場合のみ使用できます。