An external procedure is one which is defined outside another program unit, or by a means other than Fortran.
The function contained in a file like
integer function f() implicit none end function f
is an external function.
For external procedures, their existence may be declared by using an interface block (to given an explicit interface)
program prog implicit none interface integer function f() end interface end program prog
or by a declaration statement to give an implicit interface
program prog implicit none integer, external :: f end program prog
program prog implicit none integer f external f end program prog
external attribute is not necessary:
program prog implicit none integer i integer f i = f() ! f is now an external function end program prog