08-224r1 To: J3 From: Van Snyder, originally Michael Ingrassia Subject: Public Comment J32010 Date: 2008 August 12 ---------------------------------------------------------------------- Commenter: Robert Corbett Subject: "constraint C542" Consider the following program: PROGRAM MAIN INTRINSIC SQRT INTERFACE SQRT REAL FUNCTION MYSQRT(X) END FUNCTION END INTERFACE END REAL FUNCTION MYSQRT(X) MYSQRT = SQRT(X) END This program clearly violates constraint C542 in Section 5.3.11 of the Fortran 2008 draft. I have had an e-mail correspondence with a member of the committee who states that interpretation 90/000083 makes it clear that the committee intended to allow programs such as the one above. If that is so, the final clause of constraint C542, which says and the characteristics of the specific intrinsic procedures and the procedures in the interfaces shall differ as specified in 12.4.3.4.5 should be removed. If the committee holds that the constraint as written is valid, I suggest adding a note giving an example such as the one above to confirm that the constraint is the intent of the committee. ---------------------------------------------------------------------- J3 response: C542 simply restates the requirements of 12.5.3.4.5 (notice that 12.5.3.4.5p1 refers to "specific procedures," and that "nonintrinsic" is conspicuously absent), but makes it clear that a conflict arises only if the INTRINSIC attribute is specified. If the provisions of 12.5.3.4.5 applied where the INTRINSIC attribute is not specified, 12.5.5.2p5 would be irrelevant. 12.5.3.4.5 arose from subclause 16.2.3 from the 2003 standard, with some requirements restated as constraints, since Clause 16 has the stature of constraints. Therefore, the above example is not standard conforming, and there is no need to edit the current draft.