



List-Directed Formatting Each WRITE statement starts a new record; additional records are produced when
necessary. Each record starts with a single blank to provide carriage-control on
printing. Arithmetic data types are converted to decimal values with the
number of digits appropriate for the internal precision; integer values will not
have a decimal point, the system may choose fixed-point or exponential
(scientific) form for floating-point values depending on their magnitude.
Complex values are enclosed in parentheses with a comma separating the two
parts.
Logical values are output as a single letter, either T or F. Character values are
output without enclosing apostrophes; if a character string is too long for one record
it may be continued on the next. Except for character values, each item is followed
by at least one blank or a comma (or both) to separate it from the next
value.
The rules for List-directed input effectively allow free-format entry for numerical
data. Each READ statement starts with a new record and reads as many records as are
necessary to satisfy its data-transfer list. The input records must contain a suitable
sequence of values and separators.
The values may be given in any form which would be acceptable in a Fortran
program for a constant of the corresponding type, except that embedded blanks are
only permitted in character values. When reading a real or double-precision value an
integer constant will be accepted; when reading a logical value only the letter T or F
is required (a preceding dot and any following characters will be ignored). Note that
a character constant must be enclosed in apostrophes and a complex constant must
be enclosed in parentheses with a comma between the two components. If a
character constant is too long to fit on one record it may be continued on to
the next; the two parts of a complex constant may also be given on two
records.
The separator between successive values must be one or more blanks, or a comma, or both. A new record may start at any point at which a blank would be permitted.
If several successive items are to have the same value a repetition factor can be
used: this has the form n*constant where n is an unsigned integer. Blanks are not
allowed either side of the asterisk.
Two successive commas represent a null value: the corresponding variable in the
READ statement has its value unchanged. It is also possible to use the form n* to
represent a set of n null values.
A slash (/) may be used instead of an item separator; it has the effect of
completing the current READ without further input; all remaining items in its data
transfer list are unchanged in value.
List-directed output files are generally compatible with list-directed input, unless they contain character items, which will not have the enclosing apostrophes which are required on input.