13 July 2000 Page 1 of 1 J3/00-249 To: J3 From: Van Snyder Subject: Request for interpretation concerning the INTRINSIC statement and ATTRIBUTE CONCRETE EXAMPLE: Consider the following program: module SCREEN type :: COLOR integer :: RED, GREEN, BLUE end type COLOR contains subroutine SET_BACKGROUND ( WHAT ) type(color), intent(in) :: WHAT ! Call to set the background color end subroutine SET_BACKGROUND end module SCREEN program TEST_SCREEN use SCREEN real, external :: DIM character(len=15) :: SIGN real :: SIN type(color) :: TAN = color(210,180,140) call color_intensity ( dim ) call biblical ( sign ) call cardinal ( sin ) call set_background ( tan ) end program TEST_SCREEN Notice that the actual arguments have the names of specific intrinsic functions listed in section 13.13 of the Fortran 95 standard, but they do not appear in an INTRINSIC statement, nor are they given the INTRINSIC attribute in a type declaration statement, as required by the penultimate normative paragraph of 12.3.2.3 of the Fortran 95 standard [198:7-9]. QUESTION: Is it possible for a variable or external procedure that has the same name as the specific name of an intrinsic function listed in section 13.13 of the Fortran 95 standard and not marked with a bullet to be used as an actual argument? SUGGESTED ANSWER: Yes. SUGGESTED EDITS: Replace [198:7-9] in the Fortran 95 standard by: "If an actual argument is a name that is the same as the specific name of an intrinsic function listed in 13.13 and not marked with a bullet, is not given the EXTERNAL attribute in a type declaration statment, does not appear in an EXTERNAL statement, and the associated dummy argument is a dummy procedure, the name shall either appear in an INTRINSIC statement or be given the INTRINSIC attribute in a type declaration statement."