与R一起在Fortran中处理实数 [英] Handling reals in Fortran together with R
本文介绍了与R一起在Fortran中处理实数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在处理与R一起使用的Fortran中的实数时遇到麻烦.以下代码用Fortran编写:
I am having trouble handling reals in Fortran, which I use together with R. The following code is written in Fortran:
Subroutine realtest(lol)
implicit none
Real lol
lol = 10.0
End
我用命令R CMD SHLIB realtest.f
进行编译.如果我在R中以以下方式运行共享库:
I compile with the command R CMD SHLIB realtest.f
. If I run the shared object in R as:
dyn.load("realtest.so")
res <- .Fortran("realtest",lol= as.numeric(1.2))
lol
的结果值为1.2,但应该为10.如果我用Integers进行整件事,我会得到正确的值10.
The resulting value of lol
is 1.2, but it should have been 10. If I do the whole thing with Integers instead, I get the correct value 10.
推荐答案
尝试使用double precision
代替real
;以下对我有用:
Try using double precision
instead of real
; the following works for me:
! realtest.f90
!
subroutine realtest(x)
implicit none
double precision, intent(inout) :: x
x = 10.0
end subroutine realtest
从R
dyn.load("realtest.so")
res <- .Fortran("realtest", x = as.double(1.2))
res
# $x
# [1] 10
这篇关于与R一起在Fortran中处理实数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文