09-149 To: J3 From: Malcolm Cohen Subject: Reconsideration of interp F03/0064 Date: 2009 February 11 1. Introduction Interp F03/0064 failed with a NO vote from Rob James, who claimed that the edits did not catch two additional examples. On reexamination of his examples, it is clear that they are caught by the interp as provided. 2. Effects of the edit The edit changes C1212 to read: C1212 ... If is declared by a or it shall be previously declared." 3. Reexamination Example 1: MODULE m1 CONTAINS SUBROUTINE s(p) PROCEDURE(s) :: p END SUBROUTINE END MODULE This is clearly invalid, since the declaration of "s" in the PROCEDURE statement is still in progress (until END SUBROUTINE) and therefore "s" which is being declared by an interface body is *NOT* previously declared. Example 2: MODULE m2 CONTAINS SUBROUTINE s1(a) PROCEDURE(s2) :: a END SUBROUTINE SUBROUTINE s2(b) PROCEDURE(s1) :: b END SUBROUTINE END MODULE This is invalid because the interface body for S1 does not have access to S2. Furthermore, adding an IMPORT statement is ineffective because of the requirement "An entity that is imported ... and is defined in the host scoping unit shall be explicitly declared prior to the interface body." 4. Conclusion I recommend we pass F03/0064 as is (in 09-006A.txt). ===END===