01-399 Subject: Response to 357R1, Part 2. Rewrite of 9.9 From: Dick Hendrickson Date: December 6, 2001 In 357R1 Van proposed merging 9.5.3 into 9.9. He gave edits to do the merge and also asked a few questions about what was intended. This paper gives a final set of edits to accomplish the merge and also implicitly answers his questions. Subgroup followed most of Van's suggestions, but not all. Paper 393R1 shows what the final version of 9.9 should look like. The 393R1 paper version and the .doc file uses different fonts to distinguish inserts and deletes; they might not show up in the .txt versions. All edits are against the PDF version of 007/R4. 1) Replace initial paragraph of 9.9 with initial part of 9.5.3 Copy 185:16 through 186:9 to 206:19-22 (this moves less than Van moved) 2) Delete all of 9.5.3, lines 185:15 through 186:32 3) Change all references to "9.5.3" to references to "9.9" The ones I could find are at 168:22, 168:23, 168:32, 186:7, 187:32, 190:28, 194:14, 194:30, 196:29, 206:note 9.59 second line, 394:8 4) Change 9.9 section title 206:18 to "Error, end-of-record, and end-of-file conditions" 5) Move the IOSTAT and IOMSG sections to the end Move 206:23 through 207:4 to after 208:5 6) Change 9.9.3, 207:5, title to "Error conditions and the ERR= specifier" 7) Replace 207:6-7 with "If an error condition occurs during execution of an input/output statement, the position of the file becomes indeterminate. If an error condition occurs during execution of an input/output statement that contains neither an ERR= nor IOSTAT= specifier, execution of the program is terminated. If an error condition occurs during execution of an input/output statement that contains either an ERR= specifier or an IOSTAT specifier" 8) 207:8, change "list terminates" to "list, if any, terminates" 9) Replace bullet (2), 207:9 with "(2) If the statement is a data transfer statement or the error occurs during a wait operation, all implied DO variables in the statement that initiated the transfer become undefined," 10) In bullet(5), 207:14-15, replace the last clause "the variable becomes ... , and" with "the variable specified becomes defined as specified in 9.5.1.4, and" 11) Add a new bullet after (5) 207:14 "(5.5) If the statement is a READ statement or the error condition occurs in a wait operation for a transfer initiated by a READ statement, all input items or namelist group objects in the statement that initiated the transfer become undefined," 12) In bullet(6), 207:16, change "Execution" to "If an ERR= specifier appears, execution" 13) Change the title of 9.9.4, 207:17, to "End-of-file conditions and the END= specifier" 14) Replace the first paragraph of 9.9.4, 207:18-19 with "If an end-of-file condition occurs during execution of an input/output statement that contains neither an END= specifier nor an IOSTAT= specifier, execution of the program is terminated. Otherwise if an error condition does not occur" 15) 207:20, change "list terminates" to "list, if any, terminates" 16) Add two new bullets after 207:20 "(1.3) If the statement is a data transfer statement or the error occurs during a wait operation, all implied DO variables in the statement that initiated the transfer become undefined, (1.7) If the statement is a READ statement or the end-of-file condition occurs in a wait operation for a transfer initiated by a READ statement, all input list items or namelist group objects in the statement that initiated the transfer become undefined," 18) 207:23 Change "input" to "input/output" 19) 207:25 Change "input" to "input/output" 20) In bullet (5) 207:27 change "Execution" to "If an END= specifier appears, execution 21) Change the 9.9.5, 207:28 title to "End-of-record conditions and the EOR= specifier" 22) Replace the first paragraph of 9.9.5, 207:29-30 with "If an end-of-record condition occurs during a data transfer initiated by a nonadvancing input statement, the statement in which the condition is detected has neither an EOR= nor an IOSTAT= specifier, and the pad mode has the value NO, execution of the program is terminated." 23) 207:34, change "list terminates" to "list, if any, terminates" 24) Add a new bullet after 207:34 "(2.5) If the statement is a data transfer statement or the error occurs during a wait operation, all implied DO variables in the statement that initiated the transfer become undefined," 25) 207:35 Change "input" to "input/output" 26) 207:36 Change "input" to "input/output" 27) 208:1 Change "input" to "input/output" 28) In bullet(6), 208:3-4, replace the last clause "the variable becomes ... , and" with "the variable specified becomes defined as specified in 9.5.1.4, and" 29) In bullet (7) 208:5 change "Execution" to "If an EOR= specifier appears, execution