On 12-01-15 5:34 PM, David Stevens wrote:
I successfully used .Fortran to load and execute my fortran procedures
under WinXP and 32 bit R. Alas, the same isn't true with my next Windows
7/64 machine, R 2.14.1 (64 bit) and the gnu gfortran (64) compiler
(mingw64 v. 4.6.1). Though I'm able to compile the routines from the
command line using gfortran '...', .Fortran('foo2') results in an error
saying the Fortran symbol name "foo2" not in load table.

foo.f90:

Module foo
contains
   Subroutine foo2(x)

     real(kind=8),intent(inout) :: x
     x = x + 2

end subroutine foo2

end module foo

c:\mingw64\bin\gfortran --shared -Wall -pedantic -g -o foo.dll foo.f90

ff = "d:/Fortran folders/Fortran Multiresponse/foo.dll"
x= dyn.load(ff)
.Fortran('foo2',as.double(1))

Error in .Fortran("foo", as.double(1)) :
    Fortran symbol name "foo" not in load table

Can someone point me in the direction of a solution?

Some or all of these might help:

1. Get R to do the compiling for you: it knows the compiler arguments that produce compatible code. (Use R CMD shlib for this.)

2.  Use a compiler supplied with the Rtools collection.

3. Find out what name got exported, and use .C instead of .Fortran to call that.

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to