module m1 implicit none contains subroutine foo(x) real :: x end subroutine end module !Note: PGI, Intel, GNU, and NAG allow this; Sun does not module m2 use m1 implicit none !ERROR: 'foo' is already declared in this scoping unit interface foo module procedure s end interface contains subroutine s(i) integer :: i end subroutine end module