在 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
那么,这样做是不好的做法吗?
编辑:用关键字调用函数不会改变任何东西。