10-153 To: J3 From: Robert Corbett Subject: Interpretation Request: generic resolution with banned argument combinations Date: 2010 May 31 All references are to J3/10-007. QUESTION: The specifications of some intrinsic functions and subroutines explicitly ban certain combinations of arguments, even though those combinations are included in the title and the argument portion of the specification of the function or subroutine. Examples include CMPLX and RANDOM_SEED. Suppose one of those intrinsic functions or subroutines is referenced with one of the ban combinations of arguments. If the process of generic resolution tries to resolve the reference against the intrinsic, is it resolve the function or subroutine to the intrinsic or should it continue trying to resolve the function or subroutine reference? For example, given the function reference CMPLX(Z, R) where Z is COMPLEX and R is REAL, should the processor resolve the generic reference to the intrinsic even if it could be resolved to a user-defined function with the same signature later in the process of resolving the reference? Similarly, given the subroutine call CALL RANDOM_SEED(GET=A, PUT=B) should the processor skip over the intrinsic subroutine to possibly resolve the generic reference against a user-defined subroutine with the same signature? ANSWER: A program that includes such a reference is not a standard- conforming program. Because the Fortran standard does not specify the behavior of nonstandard programs, a processor is allowed to resolve the references against user-defined functions or procedures found later in the process of generic resolution, but it is not required to do so. EDITS: None.