  PROGRAM main
    IMPLICIT NONE

    INTERFACE my_function
      SUBROUTINE f1(x, y)       ! <--- 
        integer :: x
        real    :: y
      END SUBROUTINE

      SUBROUTINE f2(y, x)       ! <--- 
        real    :: y
        integer :: x
      END SUBROUTINE
    END INTERFACE

    INTEGER i
    REAL    r

    CALL my_function(i,r)	

  END

  SUBROUTINE f1(x,y)
    IMPLICIT NONE
 
    INTEGER x
    REAL    y

    print *, "Called f1(x)"
    RETURN
  END

  SUBROUTINE f2(x,y)
    IMPLICIT NONE
 
    REAL    x
    INTEGER y

    print *, "Called f2(x)"
    RETURN
  END



