从R解释器编译Fortran代码

时间:2015-03-05 12:26:20

标签: r fortran ode

我正在考虑在Fortran的R代码中运行关键循环。我在R中调用了很多资源来调用编译好的Fortran子程序,但是没有关于从R调用Fortran代码编译的资源。

我问的原因是我正在构建一个有效的ODE求解器,用于充满阵列的方程式;所以我需要以某种方式将模型方程式提供给Fortran求解器。我考虑过将一个带有模型方程的字符串传递给Fortran子程序而不是评估,但后来我发现this post说这很难,所以如果可能的话我宁愿找到不同的解决方案。

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

1 个答案:

答案 0 :(得分:4)

您可以使用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