To: WG5 From: John Reid Subject: Comments on 007 6:26. Replace '90 and largely unused' by '77 and largely unused in Fortran 90'. 6:30. Replace '90' by '77'. [It is important to catch the notion that deletion takes two revisions.] 110:39. Delete final '...' [There should be only one unmasked elsewhere.] 111:4. Tabbing needs correction. 111:8. Replace by Constraint:A that is a defined assignment shall be elemental. [The old wording was OK when we did not have elemental defined assignments.] 111:33-36. Replace by: Upon execution of a (also called a masked ELSEWHERE statement), the following actions take place in sequence: (1)The control mask is established to have the value of the pending control mask. (2)The pending control mask is established to have the value (control mask).AND.(.NOT.). (3)The control mask is established to have the value (control mask).AND.. The is evaluated only once. [It considerably simplifies the text on the next page if it is always the control mask that does the masking. Also, it makes the text on 116:21 correct.] 112:24-25. Delete 'by the control mask or the pending control mask, if any'. 112:28-30. Replace by 'the , , or '. 112:34-36. Delete from 'in a' to end of sentence. 112:38. Delete 'by the control mask or the pending control mask '. 113:10-11. Replace 'evaluation ... targets in' by 'execution of assignment and pointer'. [The present text is wrong because it is restricted to assignment statements.] 211:46. After 'PURE' add 'or ELEMENTAL'. [See 216:29-30, which says that PURE is implied by ELEMENTAL.] 214:35. Replace 'A pure procedure is a procedure that has no side effects' by 'A non-intrinsic procedure is pure if it is defined with the PURE or ELEMENTAL or is an internal procedure whose host is pure. A pure procedure has no side effects' [I do not understand how you can have syntax constraints, such as that at the bottom of page 214, unless there is explicit syntax to specify that the procedure is pure.] 214:42. Replace 'R2116-R1201' by 'R2116-R1220' and 'R2121-R1201' by 'R2121- R1224'. 215:10. Delete 'and that interface shall specify the PURE keyword'. [This is inconsistent with 216:29-30, which says that PURE is implied by ELEMENTAL. Also, it seems very fussy in the case of a pure procedure invoking one of its own internal procedures to require PURE in that procedure definition. No restriction of this kind is needed in a interface block in view of the general rules on consistency of interfaces.] 216:32. Replace 'R2116-R1201' by 'R2116-R1220' and 'R2121-R1201' by 'R2121- R1224'. 217:18-21. Replace by In a reference to the intrinsic subroutine MVBITS, the actual arguments corresponding to the TO and FROM dummy arguments may be the same variable. Apart from this, the actual arguments in a reference to an elemental subroutine must satisfy the restrictions of 12.4.1.6. [Use of the term "storage association" is misleading to the reader since it suggests common and equivalence, but this problem may occur through pointer or argument association. Really all we need to say is that MVBITS is exceptional. It might, however, be a good idea to add an illegal example such as CALL SWAP(A(1:10),A(2:11)) ]