[Rd] registering Fortran routines in R packages

Berend Hasselman bhh at xs4all.nl
Wed May 10 08:58:47 CEST 2017


> On 10 May 2017, at 08:48, Berend Hasselman <bhh at xs4all.nl> wrote:
> 
> Christophe, 
> 
>> On 10 May 2017, at 08:08, Christophe Dutang <dutangc at gmail.com> wrote:
>> 
>> Thanks for your email.
>> 
>> I try to change the name in lowercase but it conflicts with a C implementation also named halton. So I rename the C function halton2() and sobol2() while the Fortran function are HALTON() and SOBOL() (I also try lower case in the Fortran code). Unfortunately, it does not help since I get
>> 
>> init.c:97:25: error: use of undeclared identifier 'halton_'; did you mean 'halton2'?
>>  {"halton", (DL_FUNC) &F77_SUB(halton),  7},
>> 
>> My current solution is to comment FortEntries array and use R_useDynamicSymbols(dll, TRUE) for a dynamic search of Fortran routines.
> 
> Have a look at my package geigen and its init.c.
> Could it be that you are missing extern declarations for the Fortran routines?

I ran a development version of R some time ago with this 

tools:::package_native_routine_registration_skeleton("geigen",con="./geigen_report.txt")

to generate a skeleton init.c. I used that without modification.

Berend



More information about the R-devel mailing list