ID: Q41019
4.00 4.01 4.10 5.00 5.10 1.00 1.00a | 4.10 5.00 5.10 | 1.00 4.00
MS-DOS | OS/2 | WINDOWS NT
kbprg kbprb
The information in this article applies to:
In a FORTRAN READ statement, an alphanumeric variable is padded with blank characters or random data.
In the READ statement format string, the length specified in the A format descriptor is longer than the width of the associated character variable.
Specify a smaller length value with the A format descriptor.
Truncating the input field is the behavior specified in the "American National Standard, Programming Language FORTRAN" document, approved April 3, 1978. The ANSI FORTRAN-77 specification includes the following statement on Page 13-13:
Let len be the length of the input/output list item. If the specified
field width w for A input is greater than or equal to len, the rightmost
len characters will be taken from the input field.
In other words, if the format width for an alphanumeric is greater than the
variable in which the data are stored, the READ begins at character
position (width - variable_length + 1). Therefore, as the example below
demonstrates, if the input record is shorter than the specified format
width, the variable includes blank characters or other random data.
The following sample data file and application source code demonstrate this behavior.
thisisthefirstlineofthefile thisisthesecondlineofthefile thisisthethirdlineofthefile thisisthelastlineofthefile
C Compiler options needed: None
CHARACTER*20 STUFF
OPEN(UNIT = 1, FILE = 'TEST.DAT')
READ(1, '(A100)') STUFF
WRITE(*, *) STUFF
READ(1, '(A10)') STUFF
WRITE(*, *) STUFF
READ(1, '(A25)') STUFF
WRITE(*, *) STUFF
READ(1, '(A)') STUFF
WRITE(*, *) STUFF
CLOSE(1)
STOP
END
The sample application produces the following output. The first line is
blank because the program reads input beginning at column (100 - 20 + 1),
column 81. The second line receives the first 10 characters. The third line
begins at column (25 - 20 + 1), column 6. The fourth line receives the
first 20 characters. The output is as follows:
<blank line>
thisisthes
sthethirdlineofthefi
thisisthelastlineoft
Additional reference words: 1.00 4.00 4.01 4.10 5.00 5.10
KBCategory: kbprg kbprb
KBSubcategory: FORTLngIss
Keywords : kbFortranPS kbLangFortran
Version : 4.00 4.01 4.10 5.00 5.10 1.00 1.
Platform : MS-DOS NT OS/2 WINDOWS
Last Reviewed: May 2, 1998