Major Decisions made at the Tokyo meeting of WG5, 1995/4/17-21 1. Technical items for inclusion in the Fortran 95 CD 1.1 X3J3-approved interpretations (N1082) WG5 approves all of the defect item resolutions described in document N1082, with the exception of item 196, which is discussed in section 1.2, below. Note that in item 194 there is a typographical error: END SELECT CASE should be END SELECT. WG5 directs the editor to incorporate the edits associated with these defect items resolutions into the draft CD. 1.2 Defect items 125 and 196 WG5 agrees that there was an error in the edits approved in response to defect item 125, and requests the editor, subject to X3J3 review, to make the following changes to the draft CD in order to correct this error: [203:9] After "attribute" insert "and is either scalar or is an assumed-shape array," [203:15-]Insert the following sentence at the beginning of the paragraph: "If the dummy argument has the TARGET attribute and is an explicit- shape array or is an assumed-size array, any pointers associated with the dummy argument become undefined when execution of the procedure completes." 1.3 Masked ELSEWHERE (N1084) WG5 believes that there is no technical problem with masked ELSEWHERE, as described in 95-007, and that the functionality provided is precisely that provided by nested WHERE constructs. In this sense masked ELSEWHERE is very much analogous with ELSEIF. WG5 accepts the rationale requested and provided by email during the Tokyo meeting and accordingly accepts the masked ELSEWHERE as described in 95- 007r0. However, should X3J3 find that masked ELSEWHERE needs correcting in some sense, WG5 directs X3J3 to remove it rather than correct it 1.4 NAMELIST and List-directed I/O (N1097) WG5 believes that the edits proposed represent a significant editorial change at this late stage in the development of the Fortran 95 Standard. Furthermore, although a justification for the changes proposed for NAMELIST is provided, there is no such justification for the changes proposed to list-directed input/output other than the statement that "the list-directed section has a few of the same problems, but they are mostly editorial." WG5 does not believe that this, in itself, justifies making a major change to the description of a feature of Fortran 90 which, as far as is known, is not in error. Moreover, it was not possible to identify the changes proposed, as much of the text was omitted and identified only by reference to line numbers in an obsolete document which WG5 did not have. Accordingly, WG5 defers any decision on this paper to X3J3, while recommending that they should examine the proposal very carefully before taking any action, bearing in mind the maxim that "if it ain't broke, don't fix it." 1.5 NULL (N1106, Zongaro comment) WG5 believes there is a problem with NULL() in a DATA statement, as currently described, and requests the editor, subject to X3J3 review, to make the following change to the draft CD: [61:43] Replace "sequence of scalar variables . An array" by "sequence of pointers and scalar variables. A non-pointer array". 1.6 COMMON block attributes (N1110, item 7) WG5 agrees that a common block cannot have an attribute. Furthermore, once the change proposed to correct this has been made, the third sentence of the same paragraph becomes a tautology and should be deleted to avoid confusion. WG5 therefore requests the editor, subject to X3J3 review, to make the following changes to the draft CD: [58:33-34]Replace "for all objects and common blocks in the list." by "for all objects named explicitly or included within a common block named explicitly in the list." [58:35-36]Delete the sentence "All objects ..... attribute." 1.7 EXTERNAL statement/scoping units (N1110, item 42) WG5 believes there is a problem with the description of EXTERNAL with regard to passing procedures, and requests the editor, subject to X3J3 review, to make the following change to the draft CD: [199:40-42]Replace "it shall ..... scoping unit." by "its interface shall be explicit or it shall be explicitly declared to have the external attribute". 1. 8 CHARACTER*(*) functions WG5 agrees that the extension of the obsolescent CHARACTER*(*) feature to allow such entities to be elemental is undesirable. In researching this topic, WG5 identified problems with the constraint on [51:1-2] and requests the editor, subject to X3J3 review, to make the following change to the draft CD: [51:1-2] Replace the existing constraint with the following: "Constraint:A function name shall not be declared with the asterisk char-len-param-value unless it is the name of an external function in its own defining program unit, or a dummy function whose interface is implicit. Constraint:A function name declared with an asterisk char-len-param-value shall not be array- valued, pointer-valued, recursive or elemental." 1.9 MAXLOC, MINLOC, etc The current description of MAXLOC, MINLOC, MAXVAL, MINVAL, PRODUCT, and SUM are inconsistent with the generic procedure provisions of 14.1.2.3. WG5 wishes to remove this inconsistency, and directs the editor to make the following changes to the draft CD: [227:8-15]Replace by MAXVAL(ARRAY[,DIM,MASK]) Maximum value in an array MINVAL(ARRAY[,DIM,MASK]) Minimum value in an array PRODUCT(ARRAY[,DIM,MASK]) Product of array elements SUM(ARRAY[,DIM,MASK]) Sum of array elements [227:36-39] Replace by MAXLOC(ARRAY,DIM[,MASK]) Location of a maximum value in an array or MAXLOC(ARRAY[,MASK]) MINLOC(ARRAY,DIM[,MASK]) Location of a minimum value in an array or MINLOC(ARRAY[,MASK]) In addition, make the corresponding changes to the relevant section headings in Chapter 13: [253:12] 13.14.66 heading [254:15] 13.14.67 heading [256:1] 13.14.71 heading [257:1] 13.14.72 heading [261:4] 13.14.83 heading [269:7] 13.14.105 heading In addition, section C.10.1.6.1 [334:16-335:11] should be removed as it merely duplicates text available in Chapter 13. 1.10 PURE characteristic (N1110, items 8, 54) WG5 believes that purity should remain as a characteristic of a procedure, but that it should be permissible for a pure actual procedure argument to become associated with an impure dummy procedure argument. Furthermore, WG5 recommends that an additional constraint be added to section 12.6 to require that a dummy procedure argument to a pure procedure is specified to be pure. (Note that the constraint in 12.4 [201:25-26] requires thatan actual argument to a pure procedure is pure, and that the associated dummy argument must, therefore, also be pure; however, the addition of this new constraint ensures that the compiler can check that the dummy argument is pure, thus avoiding the possibility of creating a procedure which it is impossible to ever legally reference.) In addition, WG5 noted two typographical errors in 12.6. WG5 therefore requests the editor, subject to X3J3 review, to make the following changes to the draft CD: [204:15+]After "(12.2)" insert ",except that a pure actual procedure may be associated with a dummy procedure that is not pure" [214:42]Replace "(R1216-R1201)" by "(R1216-R1220)" and replace "(R1221-R1201)" by "(R1221-R1224)" [215:3+] Insert the following new constraint: "Constraint:The specification-part of a pure procedure shall specify that all dummy arguments that are procedure arguments shall be pure." 2. Items for Technical Reports WG5 has discussed the best way of responding to urgent user requirements for enhancements to the language in advance of the next revision of the Standard, and has resolved to proceed by means of Type 2 Technical Reports, as described in N1111. WG5 has identified three topics for immediate processing in this way. 2.1 Handling floating point exceptions (N1095) WG5 will request SC22 to approve a New Work Item to create a Type 2 Technical Report on this topic, and has appointed Wolfgang Walter to act as interim Project Editor until a nominee for the actual Project Editor has been identified. He will be responsible for providing the Acting Convenor with the information necessary for the submission of an NP no later than 30th June 1995. 2.2 Interoperability with C (N1096) WG5 will request SC22 to approve a New Work Item to create a Type 2 Technical Report on this topic, and has appointed Jamie Shiers to act as interim Project Editor until a nominee for the actual Project Editor has been identified. He will be responsible for providing the Acting Convenor with the information necessary for the submission of an NP no later than 30th June 1995. 2.3 Data type enhancements (parameterized derived types, allocatable components) WG5 will request SC22 to approve a New Work Item to create a Type 2 Technical Report on this topic, and has appointed Lawrie Schonfelder to act as interim Project Editor until a nominee for the actual Project Editor has been identified. He will be responsible for providing the Acting Convenor with the information necessary for the submission of an NP no later than 30th June 1995. 3. WG5 actions 3.1 Rationale (N1091) WG5 determines that Fortran 95 shall not contain rationale sections beyond the notes that already appear occasionally throughout 95-007. That is, in particular, Annex B is not to be expanded to include additional rationale material. The reasons are: (1) it appears that achieving adequate consensus as to appropriate rationale material is difficult to achieve (in both X3J3 and WG5), (2) considerable time is likely to be needed to produce acceptable rationale material, and (3) correcting technical deficiencies in, and making other editorial improvements to, the draft CD document is more important than providing additional rationales. 3.2 Fortran preprocessor WG5 believes that a preprocessor is not an appropriate item for the main Fortran Standard (IS 1539-1), but is prepared to support work on auxiliary standards or technical reports referring to such standards if a suitable proposal is forthcoming from amongst its members, as long as any such proposal includes a nomination for the Project Editor. Its formal position on this subject is included in Resolution T11. 4. Possible new Fortran 2000 requirements WG5 intends to review its updated requirements database at its next meeting in San Diego, CA, in November 1995, and to produce an initial list of requirements for that revision at that time. 5. Editorial items deferred to X3J3 WG5 requests that X3J3 process the editorial material in the following documents as it sees fit: N1099 WG5 recommends these edits N1101 WG5 recommends that no action be taken on item 3, and that X3J3 investigate the technical issue raised in item 4. N1105 WG5 wishes to inform X3J3 that the Japanese Member Body indicated that, although items 8-16 refer to Chapter 9, there are similar issues in other Chapters which should be treated similarly if X3J3 should decide to adopt these edits. N1106 (Bleikamp, Martin, Zongaro comments) WG5 notes that the edits suggested by Bleikamp for Chapter 10 have been dealt with under item 1.4 of this document, and that the edits suggested by Zongaro for Section 5 have been dealt with under item 1.5. N1110 (apart from items 7, 8, 42, 46, 54, which are dealt with under 1.) WG5 has no additional comments on the issues raised in this paper.