我有一个R包,它使用大量的Fortran子程序来进行递归线性代数计算的嵌套循环(严重依赖于BLAS和LAPACK例程).作为Fortran的接口,我使用了.Fortran函数.我刚刚阅读了Jonathan Callahan关于使用的博文,.Call而不是.C用C/C++编写的子程序,它让我觉得.Call在使用Fortran子程序时使用接口更好,通过在C中编写一个简单的包装然后调用Fortran子程序?
如上所述,我的Fortran代码非常简单,因为我只使用double或integer类型的多维数组.但是我已经知道我必须在R端编写相当多的检查,以确保一切都不会崩溃,因为我不小心忘记将某些矩阵的存储模式更改为整数或某些矩阵的维度已更改等.
子程序写为F90/95.