J3/03-261r1 Date: November 10, 2003 To: J3 From: Rich Bleikamp/jor Subject: The left tab limit and child data transfer statements Rob James asked: At [203:2-4] of the Fortran 2003 FCD, it says: A record positioning edit descriptor, such as TL and TR, used on unit by a child data transfer statement shall not cause the record position to be positioned before the record position at the time the user-defined derived-type input/output procedure was invoked. It is unclear how the situation described could arise. Given the definition of the left tab limit in 10.7.1.1, at the point that a child data transfer statement begins execution, the left tab limit would be set to the current file position. And given the definitions of T, TL, and TR (also in 10.7.1.1), you can't go farther left than the left tab limit. It appears from the statement at [203:2-4] that the intent was that the left tab limit should not be set to the current file position when a child data transfer statement begins execution. JOR responds: maybe, but after careful consideration, JOR now believes a child data transfer statement should set the left tab limit to the current position at both the START and the END of the execution of the child data transfer statement. The existing text says a child data transfer will reset the left tab limit at the start of the child data transfer. Edits below add the resetting of the left tab limit when the child data transfer completes. Under these conditions, the restrictions at 203:2-4 are not needed, since the user cannot position too far left with T or TL. This change gives maximal protection to the user from overwriting parts of the record. Edits to J3/03-007r2: Delete [203:2-4] it is not possible for the user to specify an invalid TL value if the child data transfer statement sets the left tab limit on startup [236:2] add the following sentence to the end of that paragraph After a child data transfer completes, the left tab limit becomes defined as the character position of the current record or the current position of the stream file. End of edits