-4
在R,当我尝试下面的代码.Fortran()返回任何结果
.Fortran("add", x= as.double(2),y= as.double(3))
[R仅返回论点,但没有结果!
$x
[1] 2
$y
[1] 3
add
是唯一的简单函数I写入Fortran源文件test.f90:
function add (x,y) result (f_result)
real:: x,y,f_result
f_result = x+y
end function add
和我使用:
gfortran -shared -o test.dll test.f90
以获得加载到test.dll
R通过
dyn.load("test.dll")
在上述所有流程中,我没有收到任何错误或警告消息。所以我无法弄清楚问题出在哪里。我搜查了很多,但找不到解决方案。任何帮助?
顺便说一句,我用的windows7(X86),R3.0.2,GNU的Fortran(GCC)4.7.0
出自[编写R扩展,第5.2节](http://cran.r-project.org/doc/manuals/R-exts.html#Interface-functions-_002eC-and-_002eFortran),“请注意,编译后的代码不应该返回任何东西,除非通过它的参数:C函数应该是void类型,FORTRAN子程序应该是子例程。“ –
同时发布添加功能 – Peter