J3/17-136 To: J3 From: Toon Moene Subject: Reply to 17-102 items 16-241r2 Date: 2017 February 16 Reference: 17-007 Discussion --------------- Subgroup agrees with the suggestions in 17-102 regarding paper 16-241r2, leading to the following explanations and edits. It is useful after the constraints on to have a general waffle paragraph to explain like we do for ELEMENTAL, PURE, etc. The constraints on interoperable procedures (15.6.2 Procedures defined by subprograms, section 15.6.2.1 General, page 330) use two different formulations: 1. If proc-language-binding-spec is specified for a .... 2. ... of a procedure that has a proc-language-binding-spec ... The first variant occurs 4 times, the second one 2 times. The first variant has the advantage of mentioning the important condition up front. Edits are provided to reformulate the two constraints that are of variant 2 into the format of variant 1. Separately, C1555 seems to be already covered by C1554, so C1555 is deleted. In 18.3.7, the definition of the interoperability of procedures reads: "A Fortran procedure is interoperable if ..." instead of "A Fortran procedure is interoperable if and only if ..." which the preceding interoperability subclauses do for variables. Since there is no other way a Fortran procedure can be interoperable, we should say it correctly (iff). Edits to 17-007 --------------- [330:21+] In 15.6.2.1 Procedures defined by subprograms / General, after the syntax rule R1528 for insert a new paragraph: "A specifies that a procedure interface is interoperable (18.3.7)." [330:31-34] In 15.6.2.1 Procedures defined by subprograms / General, delete C1555 and replace C1556 with: C1556 If is specified for a procedure, the or attribute shall not be specified for a ." [493:4] In 18.3.7 Interoperability of procedures and procedure interfaces, paragraph 1, replace "interoperable if it has" with "interoperable if and only if it has".