gpt4 book ai didi

function - 过程指针不能指向基本函数

转载 作者:行者123 更新时间:2023-12-04 15:13:01 28 4
gpt4 key购买 nike

我正在尝试使用过程指针(Fortran 2003 中的新功能)指向一个基本函数,但它不起作用。我真的需要函数是 ELEMENTAL并且需要一个指向它的指针。在 Fortran 中指向一个基本函数真的不可能吗?

    module elemfunc
implicit none

contains
elemental function fun111(x) result(y)
real*8, intent(in) :: x
real*8 :: y

y = x**2+1

end function fun111
end module elemfunc


program testptr
use elemfunc
implicit none

interface
elemental function func (z)
real*8 :: func
real*8, intent (in) :: z
end function func
end interface

procedure (func), pointer :: ptr
ptr => fun111

print *, ptr( (/1.0d0,2.0d0/) )

end program testptr

错误信息:
main.f90:12.7:ptr=>fun111
1
Nonintrinstic elemental procedure pointer 'func111' is invalid in procedure pointer assignment at (1)

最佳答案

7.4.2 Pointer Assignment 段在 fortran 2003 标准中明确指出这是不允许的:

C728 (R742) The proc-target shall not be a nonintrinsic elemental procedure

(这个约束仍然存在于 fortran 2008 标准中,所以它没有放宽。)

关于function - 过程指针不能指向基本函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15225007/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com