Record Types

Record type refers to whether records stored in a file are all the same length, are of varying length, or use other conventions to define where one record ends and another begins.

You can use any of the record types with sequential files. Relative files require the fixed-length record type.

When creating a new file or opening an existing file, specify one of the record types described below.

See also Format of Record Types,

Fixed-Length Record Type

Records in a file must be the same length.

You must specify the record length (RECL) when the file is opened.

See also Fixed-Length Records.

Variable-Length Record Type

Records in a file can vary in length.

Record length information is stored as control bytes at the beginning and end of each record.

See also Variable-Length Records.

Segmented Record Type

This pertains to a single logical record containing one or more unformatted records of varying length, which can only be used for unformatted sequential access.

Avoid the segmented record type when the application requires that the same file be used for programs written in languages other than Fortran and for non-Intel platforms.

See also Sesgmented Records.

Stream Record Type

A stream file is not grouped into records and uses no record delimiters.

Stream files contain character or binary data that is read or written to the extent of the variables specified. Specify CARRIAGECONTROL= ' NONE ' for stream files.

See also Stream Files.

Stream_LF and Stream_CR Record Type

Records are of varying length where the line feed (LF) or the carriage return (CR) character serve as record delimiters (LF for Stream_LF files and CR for Stream_CR files).

Stream_LF files must not contain embedded LF characters or use CARRIAGECONTROL= ' LIST ' . Instead, specify CARRIAGECONTROL= ' NONE ' . Stream_CR files must not contain embedded CR characters. The Stream_LF record type is the usual record type for text files.

See also Stream_LF and Stream_CR Records.

Choosing a Record Type

Before you choose a record type, consider whether your application will use formatted or unformatted data. If you are using formatted data, you can choose any record type except segmented. If you are using unformatted data, avoid the Stream, Stream_CR, and Stream_LF record types.

The segmented record type can only be used for unformatted sequential access with sequential files. You should not use segmented records for files that are read by programs written in languages other than Intel Fortran.

The Stream, Stream_CR, Stream_LF, and segmented record types can be used only with sequential files.

The default record type (RECORDTYPE) depends on the values for the ACCESS and FORM specifiers for the OPEN statement.

The record type of the file is not maintained as an attribute of the file. The results of using a record type other than the one used to create the file are indeterminate.

An I/O record is a collection of fields (data items) that are logically related and are usually processed as a unit.

Unless you specify nonadvancing I/O (ADVANCE specifier), each Intel Fortran I/O statement transfers at least one record.