To: WG5 From: A.Gorelik (Russia) Subject: Some comments on Fortran 95 Working Draft [X3J3/95-007] 1. Attributes of index-name in a FORALL construct (a) Page 114, lines 26-28 [114:26-28], 7.5.4.1 The sentence "It has the type and type parameters ... ; it has no other attributes" is not quite correct, because an index-name has also rank equil zero. Rationale: Page 47, lines 2-3: "Every data object has a type and rank ... Collectively, these properties are the attributes of the object." Page 16, line 37: "The rank of a scalar is zero". Page 113, line 38: "The index-name shall be a scalar integer variable". (b) Page 280, lines 41-42 and 37-38, 14.1.3 The sentences "Its only attributes are the type and type parameters ..." are not quite correct by the same reason. 2. Brackets in Chapter 13 13.14.nn, where nn are: 20, 27, 33, 66, 67, 71, 72, 83, 86, 90, 95, 105, 106 and accordingly 13.12 and some intrinsic of 13.11.mm, where mm are: 6, 14, 18, 19. I believe one pair of brackets for all optional arguments is not correct, because some of them may present, but others may be absent. The brackets in C.10.1.6.2 and in C.10.1.6.7 for some intrinsic functions are right. 3. Intrinsic CPU_TIME Page 237, 13.14.25 Maybe it is reasonable to allow (in Standard) TIME argument to be a scalar or an array for the sake of portability (see the first sentence in note 13.4 [237:36- 37]). 4. Definition and undefinition of index-name in a FORALL construct (a) Page 289, 14.7.5 Add after line 28: Beginning of execution of a FORALL construct causes the index-name in this construct to become defined. (b) Pages 290-291 Add to 14.7.6: Completing of execution of FORALL construct causes the index-name in FORALL header to become undefined if it were undefined before beginning of execution of this FORALL construct. Or: Completing of execution of FORALL construct causes definition status and value of the index-name to become the same as they were before beginning of execution of this FORALL construct. 5. Rename C.10 and move FORALL note Page 333 (a) I think C.10 should be renamed because C.10.1.1 - C.10.1.5 are not Section 13 notes. I suggest two variants of new title for C.10: "Array features" or "Array processing". (b) In this connection I believe it would be better to move FORALL note from C.4.5 and C.4.6 to C.10 (after C.10.1.3) and maybe to add some words about elemental procedures. 6. Parallel computations Page 341, C.10.8 On my opinion review of Parallel computations in C.10.8 is unficcient. It is worth to develop this important theme for Fortran 95 features. 7. Constraints in sections 5.1 and 5.2 (see WG5 - N1028) (a) Section 5.1, Page 48 There is no uniformity in describing constraints on mutual using of specifications of attributes in type declaration statements. For example, prohibition to mix POINTER and TARGET in the same object is noted in line 16 [48:16] (for POINTER) and in line 18 [48:18] (for TARGET). For other combinations this symmetry is absent (SAVE [48:24-26]: there is prohibition to specify PARAMETER, but constraint for PARAMETER [48:20-21] does not cotain prohibition to specify SAVE). I think it is necessary to uniform describing of constraints. It would be very useful to give a table with all such combinations of restrictions. (b) Section 5.2, Page 57 - 62 There is phrase: "The combination of attributes that may be specified for a particular entity is subject to the same restrictions as for type declaration statements regardless of the method of specification." Nevertheless some restrictions are repeated for attribute specification statements (for example, [58:27-29] repeats [48:24-26], [59:16] repeats [48:10-11]) , but in other cases they are not repeated (for example, 5.2.9 does not repeat restrictions in [48:3-5]), in some cases they are repeated partially (5.2.7, 5.2.8). I think it is necessary to uniform describing of restrictions in section 5.2. 8. Term "reference" (a) Section 6. Page 71, lines 2-3: Here term "reference" is used, but in 2.5.5 [18:24-25] this term is defined as "a data object reference". (b) Perhaps it is worth to introduce in 2.5.5 term "reference" that is data object reference or procedure reference or module reference (by analogy with keyword in 2.5.2). 9. Some misprints. (1) Page 114, line 39: "10" replace with "100" or line 34: "100" replace with "10". (2) Page 116, line 30: Shift zeros (3) Page 261, lines 28-29: It is desirable symbols "..." are placed on one line. (4) Page 309, line 3: Insert blank before "notes". (5) Page 315, line 28: Replace "i" with "I". (6) Page 341, lines 23-25: Bracket is badly printed.