В Fortran 90 мы можем перегружать функции с помощью интерфейса. Однако, согласно этому сайту, мы не можем определить эти функции с тем же именем аргументов. С gfortran это не кажется проблемой, поскольку следующий код работает достаточно хорошо:
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
Итак, это плохая практика?
Изменить: Вызов функции с помощью ключевых слов ничего не меняет.