For EXTERNAL procedures it is possible to provide an explicit interface for a procedure. Consider:
SUBROUTINE expsum( n, k, x, sum )! in interface IMPLICIT NONE INTEGER, INTENT(IN) :: n ! in interface REAL, INTENT(IN) :: k,x ! in interface REAL, INTENT(OUT) :: sum ! in interface REAL, SAVE :: cool_time ... END SUBROUTINE expsum ! in interface
The explicit INTERFACE for this routine is given by the statements:
INTERFACE ! for EXTERNAL procedure SUBROUTINE expsum( n, k, x, sum ) INTEGER, INTENT(IN) :: n REAL, INTENT(IN) :: k,x REAL, INTENT(OUT) :: sum END SUBROUTINE expsum END INTERFACEThis could be included in the declarations part of any other program unit which calls expsum.
Interfaces are not needed for internal (or module) procedures.
For more information, click here