title: Overloading functions with Fortran
body: <p>In Fortran 90, we can overload functions with an interface. However, according to <a href="http://www.cs.rpi.edu/~szymansk/OOF90/bugs.html#10">this site</a>, we cannot define these functions with the same arguments name. With gfortran, it does not seem to be a problem as the following code works well enough:</p>
  
  <pre><code>interface check
    module procedure check_int, check_real
  end interface
  
  contains 
  
  subroutine check_int(cur, dname, func_name, fname)
    integer, allocatable, intent(in) :: cur(:)
    character(*) :: dname, func_name, fname
    ...
  end subroutine
  
  subroutine check_real(cur, dname, func_name, fname)
    real, allocatable, intent(in) :: cur(:)
    character(*) :: dname, func_name, fname
    ...
  end subroutine
  </code></pre>
  
  <p>So, is it bad practice to do so?</p>
  
  <p><strong>Edit:</strong> Calling the function with keywords does not change anything.</p>