J3/16-217r1 To: J3 From: Daniel Chen & Malcolm Cohen Subject: Editorial: EXTERNAL in INTERFACE body Date: 2016 June 09 Consider the following code. program main real ext, inval interface function ext1 (y) real ext1, y external ext1 end function ext1 ! Duplicate EXTERNAL attribute? end interface inval = 1.0 print *, ext1(inval) end program main The EXTERNAL statement is allowed inside an interface body. However, although there is a constraint C542 In an external subprogram, the EXTERNAL attribute shall not be specified for a procedure defined by the subprogram. there is no constraint against this being done in an interface body. There are no semantics provided for this so it cannot be standard conforming, but this should be clearly stated. EDITS to 16-007r1: [99:28+] 5.5.9 EXTERNAL attribute, after C542, add new constraint "C542a In an interface body, the EXTERNAL attribute shall not be specified for the procedure declared by the interface body." ===END===