我有一個示例代碼測試我用Fortran 90超載子程序理解這是我的例子:Fortran的未解決的模塊程序規範名稱
module testint_mod
use constants
implicit none
private :: testvReal
private :: testvdpn
interface testv
module procedure testvReal
module procedure testvdpn
end interface
contains
subroutine testvReal(vR)
implicit none
real,intent(in) :: vR
write(*,*) vR
end subroutine
subroutine testvdpn(vdpn)
implicit none
real(kind=dpn),intent(in) :: vdpn
write(*,*) vdpn
end subroutine
end module testint_mod
program testintmain
use constants
use testint_mod
implicit none
real :: r
real(kind=dpn) :: d
integer :: i
interface testv
module procedure testvdpn
end interface
r = 2.0
d = dble(4.0)
call testv(r)
call testv(d)
end program testintmain
其中常量包括:整數,參數DPN = selected_real_kind(14)
我得到的錯誤:
testint_main.F(10) : Error: Unresolved MODULE PROCEDURE specification name. [T
ESTVDPN]
module procedure testvdpn
-------------------------^
我在做什麼錯?是否不允許使用selected_real_kind()重載函數?我感謝任何幫助!
啊,當然,我忘了通過使用聲明的訪問。現在好像工作正常,謝謝! – Charlie
不,函數結果的類型在通用分辨率中不起作用!只有論據是重要的。 –
@VladimirF上下文應該是結果沒有考慮,但我希望澄清,現在的答案。 – francescalus