gpt4 book ai didi

FORTRAN 中子程序的指针

转载 作者:行者123 更新时间:2023-12-04 23:28:25 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




9年前关闭。




Possible Duplicate:
Function pointer arrays in Fortran
How to alias a function name in Fortran



在 FORTRAN 中,如何创建和使用指向子例程的指针?

此外,是否有可能在各种子例程中指向一个空洞的指针数组?

我知道这些东西可以用 C 轻松实现,但是 FORTRAN 呢?

编辑

我尝试使用以下命令:
PROCEDURE (), POINTER :: pMYSUB => NULL()

我使 pMYSUB 指针指向子程序:
pMYSUB => MYSUB 

我还把 MYSUB 子程序放到了 INTERFACE 中:
INTERFACE 
SUBROUTINE MYSUB
END SUBROUTINE
END INTERFACE

MYSUB 子程序没有参数。问题是,当我使用:
call pMYSUB

我收到链接错误:未解析的外部符号 _pMYSUB。
我做错了什么?
命令:
POINTER(pMYSUB, MYSUB)

是使点 pMYSUB 指向子程序 MYSUB 的另一种方法吗?

最佳答案

Fortran 中的函数指针称为“过程指针”,是 Fortran 2003 标准的一部分。现在许多现代编译器都支持它们。还有一种非常有限的函数指针形式,至少可以追溯到 F77,在那里你可以有一个过程参数,它是一个过程;但是在 F2003 之前你不能有普通的函数指针变量。如果您在基于上述内容进行谷歌搜索后仍有问题,请发布您正在编写的一些代码,我相信有人会帮助您。

写的。一个指针数组,由于某种原因是不允许的。常见的解决方法是使用指针组件创建派生类型,然后创建这些派生类型的数组。

关于FORTRAN 中子程序的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8734533/

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