To: J3 J3/12-163 Subject: Removing apparent contradiction for newcomers From: Van Snyder Date: 2012 June 22 1. Introduction --------------- C514 at [10-007r1:89:19] specifies that an entity shall not explicitly be given an attribute more than once in a scoping unit. 5.2.1p2 at [10-007r1:88:1-4] says that the type declaration statement specifies the attributes whose keywords appear in the , except that the DIMENSION attribute may be specified or overridden by the appearance of in its , and the CODIMENSION attribute may be specified or overridden for an entity by the appearance of in its . 4.4.4.2p4 at [10-007r1:58:7-11] operates similarly for character type, except that this is a type parameter, not an attribute, so not covered by C514. This has confused a few readers who find C514, do not look further to find 5.2.1p2, and then assume that real, dimension(:,:) :: A(10,2) is an error that the compiler failed to detect. 2. Repair --------- The wording of in 5.2.1p2 implies that the DIMENSION or CODIMENSION in the specifies a default for the dimension or codimension attribute, which only applies if or does not appear in the . Mention this in a note after C514. 4. Edits -------- [C514+ 10-007r1:89:19+] Insert a note: "NOTE 5.1a If the DIMENSION or CODIMENSION appears in a it specifies a default for the attribute that is used only if an or does not appear in the ."