The INTRINSIC attribute allows the specific name of an intrinsic
procedure to be used as an actual argument. (Not all specific
names can be used as actual arguments. For more information, see
Table 9-1.)

The INTRINSIC attribute can be specified in a type declaration
statement or an INTRINSIC statement, and takes one of the following
forms:

Note that when TRIG is called with a second argument of SIN or
COS, the function reference F(X) references the Fortran 95/90 library
functions SIN and COS; but when TRIG is called with a second
argument of CTN, F(X) references the user function CTN.