J3/10-249 To: J3 From: Malcolm Cohen Subject: Editorial corrections for 10-165r2 Date: 2010 October 13 1. Introduction 10-165r2 suffers from a number of minor and fatal editorial flaws. This paper attempts to improve these. Note that other papers might also make changes in these areas. Care needs to be taken in merging these changes. 2. Some philosophy In previous Technical Reports we gave the actual edits to the Fortran standard that were needed to implement the features. That is in my view unnecessary, however it is *absolutely essential* to specify precisely which bits of the standard are replaced by the Technical Report. When giving replacement syntax or constraints to existing syntax rules or constraints, the new version *must* use exactly the same numbering as in the Fortran standard. In my view additional constraints and rules should be numbered in accordance with the existing standard. We already do this in edits made in corrigenda, where we use {R/C}nnnn{a/b/c/...} where nnnn is the existing rule/constraint number in the standard; to avoid confusion, I suggest using a different scheme such as {R/C}nnnn{x}m, where m indicates the number of additional rules/constraints at that point. (If m is always ==1, we could omit it.) 3. Edits to 10-165r2 [throughout] Stop using the confusing page footers with the clause numbers in them, as it is all too easy to confuse these with the page numbers. (Furthermore they add no real info and are forbidden by ISO.) [1:27,29] "intrinsic procedures" -> "an intrinsic procedure". [1:29] delete "one of". {Correct number.} [3:1] "2 Data Attributes" -> "2 Type specifiers and attributes" {Improvement.} [3:2+] Insert new text as follows "The syntax rule R403 \si{declaration-type-spec} in subclause 4.3.1.1 of ISO/IEC 1539-1:2010 is replaced by \bnfx{403}{declaration-type-spec}{\si{intrinsic-type-spec}} \\ \bnfo{TYPE ( \si{intrinsic-type-spec} )} \\ \bnfo{TYPE ( \si{derived-type-spec} )} \\ \bnfo{CLASS ( \si{derived-type-spec} )} \\ \bnfo{CLASS ( * )} \\ \bnfo{TYPE ( * )}" {Fatal.} [3:6-7] Merge into one constraint "\dcons[C407x1]{An assumed-type entity shall be a dummy variable that does not have the CODIMENSION or VALUE attribute." {Improvement.} [3:11+] Insert new text as follows "The syntax rule R515 \snref{array-spec} in subclause 5.3.8.1 of IS 1539-1:2010 is replaced by \bnfx{515}{array-spec}{\si{explicit-shape-spec}\st{-list}} \\ \bnfo{\si{assumed-shape-spec}\st{-list}} \\ \bnfo{\si{deferred-shape-spec}\st{-list}} \\ \bnfo{\si{assumed-size-spec}} \\ \bnfo{\si{implied-shape-spec}\st{-list}} \\ \bnfo{\si{assumed-rank-spec}}" {Fatal.} [3:14-16] Replace with "\bnfx{522x1}{assumed-rank-spec}{..} \dcons[535x1] An assumed-rank entity shall be a dummy variable that does not have the CODIMENSION or VALUE attribute." {Improvement.} [3:20] "array"->"array or scalar object". {Misleading.} [3:25-26] Replace with "The constraint C1255 of subclause 12.6.2.2 is replaced by \dcons[1255]{(\snref{proc-language-binding-spec}) If \si{proc-language-binding-spec} is specified for a procedure, each dummy argument of the procedure shall be an interoperable procedure (15.3.7) or an interoperable variable (15.3.5, 15.3.6) that does not have both the OPTIONAL and VALUE attributes. If \si{proc-language-binding-spec} is specified for a function, the function result shall be an \termi{interoperable} scalar variable.}" {Fatal.} [5:3] "Whether" -> "Additionally to the characteristics listed in subclause 12.3.2.2 of IS 1539-1:2010, whether". {Contradiction.} [5:5-6] Replace with "Additionally to the rules of subclause 12.4.2.2 of ISO/IEC 1539-1:2010, a procedure is also required to have an explicit interface if it has a dummy argument that is assumed-type or assumed-rank." {Correct requirement.} [5:7+] I don't have an edit here, but careful reading of clause 12 could turn up a contradiction that needs to be addressed. That should be checked later. [5:20] Append "The value of the lower and upper bound of dimension \textit{N} of the dummy argument are equal to the result of applying the LBOUND and UBOUND intrinsic inquiry functions to the actual argument with DIM=\textit{N} specified." {Somewhat convoluted to handle assumed-size, even though we don't have it yet. Wording could be further improved, perhaps the previous sentence should also be replaced. Note that array sections and array expressions don't have "bounds" in themselves... just shape.} [12:39+] Insert text "The rules in this subclause replace the contents of subclause 15.3.7 of ISO/IEC 1539-1:2010 entirely." {Fatal.} [12:later] I'm convinced these rules are wrong, but it is probably better to wait until the dust settles on the technical changes before trying to get them right (since they might be changing anyway). [19] Do we really need an index for this document? I don't think so. In any case, the index is ***NOT*** an annex so will be rejected by ISO. Delete Annex B. ===END===