[R] Calling R (GAMM) from Fortran

Charlie Sharpsteen chuck at sharpsteen.net
Thu Nov 19 21:38:57 CET 2009


On Thu, Nov 19, 2009 at 12:14 PM, Paul Warren Simonin
<Paul.Simonin at uvm.edu> wrote:
>
>
>   Hello,
>
>     I am currently working on a modeling project using Fortran to run
> large repetitive loops (many DO loops). As part of this process I
> would like to use a model fit in R and currently stored as an R
> object. This is a rather complex model, a GAMM, and I am curious
> whether there is a way to call this model from Fortran. I am not sure
> "call" is correct terminology, but I would basically like to use this
> GAMM to make a prediction as part of each DO loop. Is this possible? I
> have found instructions, etc. for calling Fortran from R but not vice
> versa.
>
>     Thank you for any information or advice. General advice to
> address this situation is also welcome.
>
>   Thanks again!
>
>   -Paul Simonin


The R library and interpreter are written in C and available using a C
interface.  Therefore, it  would be theoretically possible to call
this interface from Fortran-- however there are details that probably
make a direct call impossible in practice.  This is because
interfacing with R requires passing representations of R objects
(SEXPs) which are far removed from the basic C variable types
supported by standardized C--Fortran interfaces.

 It may be that the only plausible way to approach this problem may
involve writing a set of bindings in C that interface with R and
extract the information you are interested in and then express it
using basing C variables that Fortran can understand.  With such a
system in place your Fortran program would call a set of routines
written in C that called routines from the R libraries and then
reformatted the results and returned them to Fortran.

This is a conclusion based on my limited experience-- not any formal
expertise.  There are definitely others on this list that could
provide a better qualified answer.

Good luck!

-Charlie




More information about the R-help mailing list