The EXTERNAL statement is used to name external procedures which are required in order to run a given program unit. It may specify the name of any external function or subroutine. It is required in three rather different circumstances:
The INTRINSIC statement is used to declare a name to be that of an intrinsic function. It is normally necessary only when that function is to be used as the actual argument of another procedure call, but may also be advisable when calling a non-standard intrinsic function to remove any ambiguity which might arise if an external function of the same name also existed.
The general form of the two statements is the same:
EXTERNAL ename, ename, ... ename
INTRINSIC iname, iname, ... iname
Where ename can be the name of an external function or subroutine or a dummy procedure; iname must be specific name of an intrinsic function. For example, to use the real and double precision versions of the trigonometric functions as actual arguments we need:
INTRINSIC SIN, COS, TAN, DCOS, DSIN, DTAN
When the function name SIN is used as an actual argument it refers to the specific real sine function; in other contexts it still has its usual generic property. The use of procedures as actual arguments is covered in detail in section 9.7; a list of specific names of intrinsic functions is given in the appendix.