J3/05-241r4 To: J3 From: Dan Nagle Subject: Deleting statement functions Date 2005 August 10 At Delft, it was decided to delete the obsolescent feature statement functions. This paper attempts to provide edits to do so. Edits consist of deleting all references to statement functions in page order throughout 007. A paragraph is moved within the appendix. Edits are also provided to add a new paragraph to Section 1 describing the deleted feature. Thanks to Van and Dick for useful comments, which are incorporated herein. Note that paper 05-254 updates obsolescent and deleted features discussion generally. Specifications: Specifications are as per RU-003 as modified by N1638. Move statement functions to the deleted list, and delete them from the standard. Syntax: None. Edits: [3:9+] Add statement functions to incompatibility list. [10:16] delete "or stmt-function-stmt" [14] "and statement function statements" from table 2.1 (middle right column) [14] "statement function statements" and row from table 2.2 [41:18-19] delete C421 [73:7] change "a function dummy procedure, or a statement function" to "or a function dummy procedure" [126:6] delete ", is not a statement function" [250] in Note 11.4, delete "statement function definitions, " [250:20] change "a , and ," to "an " [255:26] change "a nondummy procedure pointer, or a statement function" to "or a nondummy procedure pointer" [256:14-15] delete the section 12.1.2.5 [257:19] delete the sentence "The interface of a statement function is always implicit." [257:23] delete "other than a statement function" [259:12-13] change ", or " by "or " [276:35-36] change ", internal subprogram, or statement function" to "or internal subprogram" [278:14] change ", internal subprogram, or statement function" to "or internal subprogram" [282:32] delete the sentence "When a statement function is invoked, an instance of that statement function is created." [282:34] delete "or statement function" [282:35] delete "or statement function" [282:36-37] delete "or statement function" [284:1-3] delete the paragraph [285:9] move section 12.5.4 to B.1 [286:8] delete the line "(4) A statement function that references only pure functions." [286:19] in C1270 change "neither an intrinsic procedure nor a statement function" to "not an intrinsic procedure" [406:5] delete ", statement functions" [409:14] delete "as a dummy argument in a statement function statement," [409:30-32] delete the paragraph [411:14] delete "or statement function" [411:24-25] change "in an , or in a " to "or in an " [429:10] delete "statement function," [430:28] delete "A statement function always has an implicit interface." [433:25] change "a dummy procedure, or a statement function" to "or a dummy procedure" [434:2] delete ", or is a statement function that references only pure functions" [435:4-5] delete the definition [438:10] delete the line and renumber [437:32+] add list item 6 "(6) Statement functions. In Fortran 77, and for consistency in Fortran 90, Fortran 95 and Fortran 2003, statement functions provided functionality which has been superseded by internal functions. Statement functions have been deleted." [438:36-40] delete