J3/16-113 To: J3 Members From: Bill Long Subject: Clause 5 edits Date: 2016 January 21 References: 16-007 Discussion: ---------- In 5.1p1 we have "The type of a named data object is either specified explicitly in a type declaration statement or determined implicitly by the first letter of its name (5.7)." That seems to be out of date even for F2003 (CLASS(*) declaration). Certainly misses things declared TYPE(*). The minimal fix would be to insert "nonpolymorphic" before "named data object". Polymorphic ones can acquire a type by argument association, allocation, or pointer assignment. The same issue exists in 5.2p1, where we have "The type and type parameters are those specified by declaration-type-spec..." (with an exception case for CHARACTER type). The term includes both CLASS(*) and TYPE(*) syntax options. In 5.5.5p3 we say that the BIND attribute for a variable confers the SAVE attribute. Since such a variable has to be declared in the specification part of a module, the SAVE is automatic anyway. Restating that here seems redundant. R511 appears to be missing a "]" before the continuation square on the first line. 5.5.14p1 says "Procedure pointers are described in 12.4.3.7.". But 12.4.3.7 is Procedure declaration statement. Not really where procedure pointers are described. 5.5.9 EXTERNAL attribute seems closer, where we say "... is a procedure pointer". More information is in 7.2.2.2 and 7.2.2.4. 5.5.18p1 has cross references for VALUE. It would be helpful to add a reference to 12.6.2.2, which contains an important constraint on VALUE and OPTIONAL. In 5.6.11, rule R551 for , it appears there is an extra space between and <-list>. 5.7, constraint C590 reads "If IMPLICIT NONE is specified in a scoping unit, it shall precede any PARAMETER statements that appear in the scoping unit. No more than one IMPLICIT NONE statement shall appear in a scoping unit." This constraint is about statement ordering, but the beginning phrase is about specification. This needs rewording. Propose "If an IMPLICIT NONE statement appears in a scoping unit, it shall precede any PARAMETER statements that appear in the scoping unit. No more than one IMPLICIT NONE statement shall appear in a scoping unit." Edits to 16-007: ----- [89:4] In 5.1 Attributes of procedures and data objects, para 1, change the beginning of the third sentence "The type of a named data" to "The type of a nonpolymorphic named data". [89:14] In 5.2 Type declaration statement, para 1, in the first sentence, change "The type declaration statement specifies" to "Except for declarations of polymorphic entities, the type declaration statement specifies". [94:11-12] In 5.5.5 BIND attribute for data entities, in the only sentence of para 3, "The BIND attribute for ... explicit specification.", delete "a variable or" and make the whole sentence \obs font. [95:16] In 5.5.6.3 Explicit-coshape coarray, in R511 for , insert "]" after "...". [103:15-16] In 5.5.14 POINTER attribute, last sentence of para 1, change "12.4.3.7" to "5.5.9". [105:14] In 5.5.18 VALUE, para 1, after "12.5.2.4" insert ", 12.6.2.2". [111:7] In 5.6.11 PARAMETER statement, in R551 for , remove the space between "" and "<-list>". [113:14] In 5.7 IMPLICIT statement, the first constraint (C590), at the beginning of the constraint change "If IMPLICIT NONE is specified" to "If an IMPLICIT NONE statement appears".