首页 > 解决方案 > 如何从 fortran 中的引用中获取值?

问题描述

我正在尝试更新一段 fortran 代码,该代码根据 IDL 例程的输入进行计算。当 IDL 例程调用 fortran 时,它会传递每个变量的引用(IDL CALL_EXTERNAL 文档)。fortran 代码当前尝试将输入数组中的每个引用与 %VAL() 标记一起传递给不同的子例程。

subroutine full_calc(argc, argv)

 implicit none

 integer*8 :: argc
 integer*8, dimension(24) :: argv

 call map_gen(%VAL(argv(1)), %VAL(argv(2)), ...)

end subroutine full_calc

这与之前的代码配合得很好,因为它的编译方式使其有用;但是,新编译器会发出警告,提示我传递的是 INTEGER(8) 而不是正确类型的变量。此外,根据this,使用 %VAL 有点可疑。

如果这可能会导致问题,我可以使用什么来获取不会在任何地方引发警告的值,不需要我有一个简单的例程来传递引用,或者至少可以在任何编译器上工作?

另外,如果有人能澄清这里到底发生了什么或为什么,我也会很感激。

标签: referencefortran

解决方案


推荐阅读