(j3.2006) EXTERNAL statement in an INTERFACE body

Bill Long longb
Wed Apr 13 17:02:32 EDT 2016


We also have this constraint:

	? C514  An entity shall not be explicitly given any attribute more than once in a scoping unit.

So it is not so clear why the EXTERNAL statement is allowed here, since the interface explicitly gives EXT1 the EXTERNAl attribute. 

"An interface body in a generic or specific interface block specifies the EXTERNAL attribute??

Note 5.13 lists the was to give a name the EXTERNAL attribute:

"The EXTERNAL attribute can be specified in a type declaration statement, by an interface body (12.4.3.2), by an EXTERNAL statement (12.4.3.6), or by a procedure declaration statement (12.4.3.7)."

Cheers,
Bill


On Apr 13, 2016, at 1:53 PM, Daniel C Chen <cdchen at ca.ibm.com> wrote:

> Hello all,
> 
> Is the following code valid?
> 
> 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, we have a constraint as:
> 
> [16-007: p118] C542 In an external subprogram, the EXTERNAL attribute shall not be specified for a procedure defined by the subprogram.
> 
> It only mentions 'external subprogram'. Should it also include interface body to be consistent?
> 
> Thanks,
> 
> Daniel
> 
> XL Fortran Development - IBM Toronto Software Lab
> Phone: 905-413-3056 
> Tie: 969-3056 
> Email: cdchen at ca.ibm.com
> http://www.ibm.com/software/awdtools/fortran/xlfortran
> _______________________________________________
> J3 mailing list
> J3 at mailman.j3-fortran.org
> http://mailman.j3-fortran.org/mailman/listinfo/j3

Bill Long                                                                       longb at cray.com
Fortran Technical Support  &                                  voice:  651-605-9024
Bioinformatics Software Development                     fax:  651-605-9142
Cray Inc./ Cray Plaza, Suite 210/ 380 Jackson St./ St. Paul, MN 55101





More information about the J3 mailing list