These are often just called text files . Terminals and
printers should always be treated as formatted sequential files. Data
files of this type can be created in a variety of ways, for example by
direct entry from the keyboard, or by using a text editor. Some Fortran
systems do not allow records to be longer than a normal line of text, for
example 132 characters. Unless a text file is pre-connected it must be
opened with an OPEN statement, but the FORM= and
ACCESS= keywords are not needed as the default values are suitable:
OPEN(UNIT=4, FILE='REPORT', STATUS='NEW')
All data transfers must be carried out under format control. There
are two options with files of this type: you can either provide your
own format specification or use list-directed formatting.
The attraction of list-directed I/O is that the Fortran system does the work, providing simple data transfers with little programming effort. They are specified by having an asterisk as the format identifier:
WRITE(UNIT=*, FMT=*)'Enter velocity: ' READ(UNIT=*, FMT=*, END=999) SPEEDList-directed input is quite convenient when reading numbers from a terminal since it allows virtually ``free-format" data entry. It may also be useful when reading data files where the layout is not regular enough to be handled by a format specification. List-directed output is satisfactory when used just to output a character string (as in the example above), but it produces less pleasing results when used to output numerical values since you have no control over the positioning of items on the line, the field-width, or the number of decimal digits displayed. Thus:
WRITE(UNIT=LP, FMT=*)' Box of',N,' costs ',PRICEwill produce a record something like this:
Box of 12 costs 9.5000000
The alternative is to provide a format specification: this provides complete control over the data transfer. The previous example can be modified to use a format specification like this:
WRITE(UNIT=LP, FMT=55)'Box of',N,' costs ',PRICE 55 FORMAT(1X, A, I3, A, F6.2)and will produce a record like this:
Box of 12 costs 9.5
0
One unusual feature of input under control of a format specification is that each line of text will appear to be padded out on the right with an indefinite number of blanks irrespective of the actual length of the data record. This means that, among other things, it is not possible to distinguish between an empty record and one filled with blanks. If numbers are read from an empty record they will simply be zero.