Math_kv - 1 month ago 5x

R Question

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

I compile with the command

`R CMD SHLIB realtest.f`

`dyn.load("realtest.so")`

res <- .Fortran("realtest",lol= as.numeric(1.2))

The resulting value of

`lol`

Answer

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
```

From R,

```
dyn.load("realtest.so")
res <- .Fortran("realtest", x = as.double(1.2))
res
# $x
# [1] 10
```

Source (Stackoverflow)

Comments