下面的代码展示了isnan函数的重载。功能:支持复数运算
module overload
interface isnan !// 重载函数isnan的接口
module procedure cmplx_isnan
end interface
contains
logical function cmplx_isnan (x) !// 重载函数isnan
complex(8) :: x
cmplx_isnan = isnan(real(x)) .or. isnan(imag(x))
end function cmplx_isnan
end module overload
program test
use overload
implicit none
complex(8) :: x
x = cmplx(3.d0,4.d0)
print*, x !// 双精度
print*, cmplx(3.d0,4.d0) !// 单精度
print*, isnan( x )
end program test