program f05 !-- Overload 2 subroutine names as above but using one file !-- but need to use std=gnu to compile implicit none complex, parameter :: x= CMPLX(0,2.0*ACOS(0.0)) integer, parameter :: y=5 interface foo procedure foo_c, foo_i end interface foo CALL foo(x) CALL foo(y) contains subroutine foo_i(arg) integer, intent(in) :: arg print *, arg end subroutine subroutine foo_c(arg) complex, intent(in) :: arg print *, arg end subroutine end program f05