ISO/IEC JTC1/SC22/WG5 N1658 Result of the interpretations ballot, N1657 Key for the Result line: Y Vote passes unconditionally. C Vote passes, subject to J3 considering the comments and accepting the item with or without the changes proposed and without making any other changes. N Vote fails. Returned to J3 for further work. F03/ F03/ F03/ F03/ F03/ F03/ F03/ F03/ F03/ F03/ F03/ F03/ F03/ 008 012 018 019 020 023 025 026 027 028 029 045 056 Chivers Y C Y Y Y Y Y Y Y Y Y Y Y Cohen Y Y N N Y Y Y Y C Y Y Y Y Gorelik Y Y Y Y Y Y Y Y Y Y Y Y Y Ingrassia Y Y Y Y Y Y Y Y Y Y Y Y Y James Y Y Y Y Y Y Y Y Y Y Y Y Y Long Y Y Y Y Y Y Y Y Y Y Y Y Y Martin Y Y Y Y Y Y Y Y Y Y Y Y Y Moene Y Y Y Y Y Y Y Y Y Y Y Y Y Muxworthy Y C Y Y Y Y Y Y Y Y Y Y Y North Y Y Y Y Y Y Y Y Y Y Y Y Y Rasmussen Y Y Y Y Y Y Y Y Y Y Y Y Y Reid Y Y Y Y Y Y Y Y Y Y Y Y Y Schoenauer Y Y Y Y Y Y Y Y Y Y Y Y Y Sleightholme Y C Y Y Y Y Y Y Y Y Y Y Y Snyder Y Y Y Y Y Y Y Y Y Y Y C Y Whitlock Y Y Y Y Y Y Y Y Y Y Y Y Y Result Y C N N Y Y Y Y C Y Y Y Y F03/ F03/ F03/ F03/ F03/ F03/ F03/ F03/ F03/ F03/ F03/ F03/ 057 058 060 061 062 063 066 067 068 069 070 072 Chivers Y Y Y Y Y Y Y Y Y Y Y Y Cohen Y Y Y Y Y N Y Y Y C Y Y Gorelik Y Y Y Y Y Y Y Y Y Y Y Y Ingrassia Y Y Y Y Y Y Y Y Y Y Y Y James Y Y Y Y Y Y Y Y Y Y Y Y Long Y Y Y Y Y Y Y Y Y Y Y Y Martin Y Y Y Y Y Y Y Y Y Y Y Y Muxworthy Y Y Y Y Y Y Y Y Y Y C Y Moene Y Y Y Y Y Y Y Y Y Y Y Y North Y Y Y Y Y Y Y Y Y Y Y Y Rasmussen Y Y Y Y Y Y Y Y Y Y Y Y Reid Y Y Y Y Y Y Y Y Y Y Y C Schoenauer Y Y Y Y Y Y Y Y Y Y Y Y Sleightholme Y Y Y Y Y Y Y Y Y Y Y Y Snyder Y Y C Y Y Y Y Y Y Y Y C Whitlock Y Y Y Y Y Y Y Y Y Y Y C Result Y Y Y Y Y N Y Y Y C C C Comments and reasons for NO votes ................................................................................. Ian Chivers F03/0012 David Muxworthy's comment applies here to the edits. ................................................................................. Malcolm Cohen F03/0018: NO. I disagree completely with practically everything said in ANALYSIS. It's hard to know where to begin. (a) Why assert there is an OPERATOR(+) in the module and not in the types? This is wrong - there is no OPERATOR(+) in the module; we know this, because ****WE CAN BLOCK IMPORTING IT BY DOING "use,only::x"***. It is accessible in the module, but that is a horse of a different colour. (b) Q1 is not valid Fortran: Error: junk3.f90, line 17: Passed-object dummy argument A of type-bound procedure MYADD of T is not polymorphic (in actual procedure MYADD) Error: junk3.f90, line 17: Passed-object dummy argument B of type-bound procedure MYADD of X is not polymorphic (in actual procedure MYADD) (c) Q2 is not valid Fortran: Error: junk4.f90, line 15: Passed-object dummy argument A of type-bound procedure MYADD of T is not polymorphic (in actual procedure MYADD) (d) Multiple occurrences of a single specific in a generic have not been allowed before. If we are going to consider the example in the ANSWER section, I'd think we'd expect it to be invalid. Certainly, there is no (good or otherwise) reason for it to be valid. (e) Furthermore, the example in the ANSWER section has nothing to do with the question asked. F03/0019: NO. This ANSWER is defectively worded, since the example is demonstrably NOT compliant with the standard. Nor do I believe for one microsecond that we intended it to be that way. The rationale for this NEW FEATURE is just that, rationale for a new feature. The interp process is absolutely NOT SUITABLE for adding new features to the standard. There is no ambiguity here. Do not do this. F03/0027: COMMENT The EDITS appear to be defective in conjunction with F03/0025 and F03/0026. Adding "or " to both edits probably fixes this (not carefully checked). F03/0063: NO. John Reid said: >> Considering F03/0063 leads me to wonder if there is an omission in >> the list on page 416 of the standard. Should not item (8) be about >> data pointers and do we not need an item (9) on procedure pointers? Well, that gives an easy NO vote on F03/0063 then, since the result of its edit is still nonsense. Myself, I believe that the allowance of procedure pointers in COMMON was an obvious mistake, made even more obvious by 16.4.3.1. Procedure pointers are *procedures*, they are not data objects. Procedures don't take up "storage units". Furthermore, constraint C588 prohibits procedure pointers that are not subroutines from appearing in COMMON, so F03/0063 is even more wrong. ("A shall not be ... a function name ...") F03/0069: COMMENT I see no consistency between allowing procedure pointers in common, treating them like data objects for that purpose, and disallowing them in defined operations (which are only function references after all). The reason why it says "dummy data objects" is that it did in F95. At that time we didn't even allow pointers, much less procedure pointers, in operators. Similarly for ASSIGNMENT(=). This whole thing smacks of insufficient integration, rather than any deliberate decision. But I guess I don't really object to the outcome of this interp, rather the inconsistency in apparent procptr design. .................................................................................. David Muxworthy Comment on F03/0012 In the edits [7:35-36] should read [73:35-36]. Comment on F03/0070 Should the answer also be added as a bullet point at [199:6-10] "A child data transfer statement is processed differently from a nonchild data transfer statement in the following ways"? For example: 199:8+ o Any ADVANCE= specifier in a child input/output statement is ignored. I would be happy to leave this to the editor's discretion. ................................................................................. John Reid F03/0072 There is an error in the question. In the declaration in subroutine s2, 't' should be 't2'. This should be corrected since this example shows clearly why the edit is needed. ................................................................................. Jane Sleightholme F03/0012 David Muxworthy's comment applies here to the edits. ................................................................................. Van Snyder Interp F03/0045 states that it subsumes interp F03/0060. Are we balloting both in case 0045 fails and 0060 passes? Interp F03/0072 has an answer to Q2, which is not explicitly noted in the "QUESTION" section. For clarity of the historical record, the last sentence of the "QUESTION" section should be a separate paragraph, beginning "Q2." .................................................................................. Stan Whitlock F03/0072 Default initialization for "automatic" components Stan Whitlock's YES comment for F03/0072 Van Snyder noted that interp F03/0072 has an answer to Q2 but there is no explicit "Question 2". I will modify F03/0072 so that the last sentence of the "QUESTION" section will be a separate paragraph, labeled "Q2.".