Forms of I/O Statements

Each type of record I/O statement can be coded in a variety of forms. The form you select depends on the nature of your data and how you want it treated. When opening a file, specify the form using the FORM specifier.

The following are the forms of I/O statements:

Formatted, list-directed, and namelist I/O forms require translation of data from internal (binary) form within a program to external (readable character) form in the records. Consider using unformatted I/O for the following reasons:

To write data to a file using formatted, list-directed, or namelist I/O statements, specify FORM= 'FORMATTED' when opening the file. To write data to a file using unformatted I/O statements, specify FORM= 'UNFORMATTED' when opening the file.

Data written using formatted, list-directed, or namelist I/O statements is referred to as formatted data; data written using unformatted I/O statements is referred to as unformatted data.

When reading data from a file, you should use the same I/O statement form that was used to write the data to the file. For instance, if data was written to a file with a formatted I/O statement, you should read data from that file with a formatted I/O statement.

Although I/O statement form is usually the same for reading and writing data in a file, a program can read a file containing unformatted data (using unformatted input) and write it to a separate file containing formatted data (using formatted output). Similarly, a program can read a file containing formatted data and write it to a different file containing unformatted data.

You can access records in any sequential or relative file using sequential access. For relative files and certain (fixed-length) sequential files, you can also access records using direct access.

The table below shows  the main record I/O statements, by category, that can be used in Intel Fortran programs.

File Type, Access, and I/O Form

Available Statements

External file, sequential access

Formatted

READ, WRITE, PRINT, ACCEPT, TYPE, REWRITE

List-directed

READ, WRITE, PRINT, ACCEPT, TYPE

Namelist

READ, WRITE, PRINT, ACCEPT, TYPE

Unformatted

READ, WRITE, REWRITE

External file, direct access

Formatted

READ, WRITE, REWRITE

Unformatted

READ, WRITE, REWRITE

Internal file

Formatted

READ, WRITE

List-directed

READ, WRITE

Unformatted

None

Note

You can use the REWRITE statement only for relative files, using direct access.