在 Fortranmodule
中,我试图将初始值分配给其组件是过程指针的派生数据类型,但收到错误消息:意外指针分配。
在 amodule
中,如何将初始值赋给包含过程指针的派生类型?
module pointer_mod
use legendrePolynomials
implicit none
interface
function func (z)
real*8 :: func
real*8, intent (in) :: z
end function func
end interface
type proc_ptr
procedure (func), pointer, nopass :: f_ptr
end type proc_ptr
type(proc_ptr), dimension(6) :: basis
basis(1) % f_ptr => Legendre0 ! or basis(1) % f_ptr => null()
end module pointer_mod
在哪里:
function Legendre0(x) result(y)
real, intent(in) :: x
real :: y
y = 1
end function