从 R 解释器编译 Fortran 代码

Compiling Fortran code from the R interpreter

我正在研究 运行 我的 Fortran R 代码中的关键循环。我找到了大量关于在 R 中调用已编译的 Fortran 子例程 的资源,但没有关于从 R 中调用 Fortran 代码编译 的资源。

我问的原因是我正在为充斥着数组的方程构建一个高效的 ODE 求解器;所以我需要以一种或另一种方式将模型方程式提供给 Fortran 求解器。我考虑过尝试将带有模型方程的字符串传递给 Fortran 子例程以进行评估,但后来我发现 this post 说这非常困难,因此我宁愿尽可能找到不同的解决方案。

欢迎任何其他有创意的解决方案。

您可以使用 inline 包。从 cfunction() 的示例部分开始:

## A simple Fortran example
code <- "
      integer i
      do 1 i=1, n(1)
    1 x(i) = x(i)**3
"
cubefn <- cfunction(signature(n="integer", x="numeric"), 
                    code, convention=".Fortran")

cubefn(n, x)$x