The unit specifier identifies the I/O unit to be accessed. It takes the following form:
Units 5 and 6 are associated with preconnected units. In addition, unit 0 is also associated with a preconnected unit on Tru64 UNIX, Linux, and Windows systems.
For internal files, io-unit identifies a scalar or array character variable that is an internal file. An internal file is designated internal storage space (a variable buffer) that is used with formatted (including list-directed) sequential READ and WRITE statements.
The io-unit must be specified in a control list. If the keyword UNIT is omitted, the io-unit must be first in the control list.
A unit number is assigned either explicitly through an OPEN statement or implicitly by the system. If a READ statement implicitly opens a file, the file's status is STATUS='OLD'. If a WRITE statement implicitly opens a file, the file's status is as follows:
If the internal file is a scalar character variable, the file has only one record; its length is equal to that of the variable.
If the internal file is an array character variable, the file has a record for each element in the array; each record's length is equal to one array element.
An internal file can be read only if the variable has been defined and a value assigned to each record in the file. If the variable representing the internal file is a pointer, it must be associated; if the variable is an allocatable array, it must be currently allocated.
Before data transfer, an internal file is always positioned at the beginning of the first character of the first record.
For More Information: