On input, an edit descriptor such as Fw.d specifies that w characters (the field width) are to be read from the external field.
If the field contains fewer than w characters, the input statement will read characters from the next data field in the record. You can prevent this by padding the short field with blanks or zeros, or by using commas to separate the input data.
You can use the OPEN statement specifier PAD='YES' to indicate blank padding for short fields of input data. However, blanks can be interpreted as blanks or zeros, depending on which default behavior is in effect at the time. Consider the following:
READ (2, '(I5)') J
If 3 is input for J, the value of J will be 30000 or 3 depending on
which default behavior is in effect (BLANK='NULL' or BLANK='ZERO').
This can give unexpected results.
To ensure that the desired behavior is in effect, explicitly specify the BN or BZ edit descriptor. For example, the following ensures that blanks are interpreted as blanks (and not as zeros):
READ (2, '(BN, I5)') J
Using Commas to Separate Input Data
You can use a comma to terminate a short data field. The comma has no effect on the d part (the number of characters to the right of the decimal point) of the specification.
The comma overrides the w specified for the I, B, O, Z, F, E, D, EN, ES, G, and L edit descriptors. For example, suppose the following statements are executed:
READ (5,100) I,J,A,B
100 FORMAT (2I6,2F10.2)
Suppose a record containing the following values is read:
1, -2, 1.0, 35
The following assignments occur:
I = 1
J = -2
A = 1.0
B = 0.35
A comma can only terminate fields less than w
characters long. If a comma follows a field of w or more characters,
the comma is considered part of the next field.
A null (zero-length) field is designated by two successive commas, or by a comma after a field of w characters. Depending on the field descriptor specified, the resulting value assigned is 0, 0.0, 0.0D0, 0.0Q0, or .FALSE.
For More Information:
For details on input processing, see Section 11.2.2.