To: J3 J3/23-162 From: T. Clune Subject: Intrinsic procedures as template arguments Date: 2023-June-08 #Reference: Fortran has a number of intrinsic procedures that do not have specific names, and therefore cannot be used as actual arguments to procedures. Now though, the proposed approach to Fortran features for generic programming allow a generic procedure name to be used as an actual argument to a template deferred procedure dummy argument. This begs the question of whether _intrinsic_ procedures with generic names can be used in this new context. This paper proposes to amend the standard to allow certain intrinsic procedures to be used as template arguments where appropriate/sensible. The poster children for this capability are the math functions: SQRT(), SIN(), LOG(), ..., etc. Possibly no change is needed for this (beyond the new generic programming features themselves), as the standard already describes some intrinsics in terms of having a generic name. Nonetheless, since many intrinsics are "magic", the situation is not entirely clear to me. At a minimum, I think a clarifying remark in chapter 16 would be appropriate.