-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