(j3.2006) nonstandard specifics of standard intrinsic generics
Fri Apr 25 19:53:49 EDT 2008
Robert Corbett wrote:
> Malcolm Cohen wrote:
>> On Thu, 17 Apr 2008 18:16:21 +0900, Robert Corbett <Robert.Corbett at sun.com> wrote:
>>> I stated that the implementation provides a nonstandard specific
>>> interface for SQRT that takes an INTEGER argument. That interface
>>> conflicts with the specific interface of the generic interface.
>>> The characteristics of the nonstandard intrinsic procedure and the
>>> procedure in the interface do not differ as specified in 16.2.3.
>>> Therefore, constraint C547 is violated.
>> No. If the user provides a specific that would override some
>> "specific" of an intrinsic, that intrinsic specific is not part
>> of the generic identifier (it is inaccessible by that generic name).
> I assume you are using the word "inaccessible" is a different sense
> than the sense of its use in the second sentence of the first
> paragraph of Section 16.2.3 of Fortran 2003. I assume that the
> sense you intend is that, for the purpose of the conditions set
> out in constraint C547 in Section 22.214.171.124 of Fortran 2003, it is
> as if those "specific intrinsic procedures" do not exist in the
> scoping unit.
> If that is the case, is it possible for a program to violate
> constraint C547? Constraint C547 states
> C547 (R503) (R1216) If the name of a generic intrinsic
> procedure is explicitly declared to have the
> INTRINSIC attribute, and it is also the generic
> name in one or more generic interfaces (126.96.36.199)
> accessible in the same scoping unit, the procedures
> in the interfaces and the specific intrinsic
> procedures shall all be functions or all be
> subroutines, and the characteristics of the
> specific intrinsic procedures and the procedures in
> the interfaces shall differ as specified in 16.2.3.
> For example, based on my understanding of what you wrote, the
> PROGRAM MAIN
> INTRINSIC SQRT
> INTERFACE SQRT
> REAL FUNCTION MY_SQRT(X)
> END FUNCTION
> END INTERFACE
> would not violate constraint C547 because the specific interface
> for MY_SQRT in the generic interface would mask the specific
> intrinsic procedure with the same characteristics as MY_SQRT. If
> the constraint does not apply in that case, I do not see how it
> can ever apply to any code.
How about this one:
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120
More information about the J3