Berwin A Turlach wrote: > >> Remko Duursma wrote: > [...] >> > I.e, my code looks something like this: >> > >> > subroutine f(x,y,z) >> > >> > call g(x,y,z) >> > >> > end >> > >> > subroutine g(x,y,z) >> > >> > z = x*y >> > >> > end >> > >> > >> > calling this from R shows that subroutine g is not called. The code >> > compiled as executable works fine. >> >> There are no such limitations imposed by R. I'd suggest your >> diagnosis of the problem is wrong. If you can't spot the problem, >> please post a real example (simplified if possible, but not as much >> as the one above). > > Actually, it turns out that this example is simplified enough. :) > > I put this snippet into a file, compiled it via "R CMD SHLIB", loaded > it into R and then was very surprised about the result of ".Fortran("f", > x=1.1, y=2.2, z=0.0)". > > Eventually it dawned to me, Remko needs to read the table in section > 5.2 of "Writing R Extensions". The simple fix in this case is to put > a "double precision x, y, z" at the beginning of each subroutine. The > default precision in FORTRAN is not double precision, that's why the > code seems to work when compiled as stand alone but not when called > from R. > > In general, I would recommend to start each subroutine with "implicit > none" (o.k., I know that this is not standard FORTRAN77 but most > compiler support that construct; the alternative, that would confrom > with the FORTRAN77 standard, is to declare everything to be implicitly > of type character and then let the fun begin) and then to explicitly > declare all variables to be of the appropriate type. >
I alway look for a command line option for the fortran compiler to achieve the "implicit none". gfortran has the option -fimplicit-none. I try to always use it. For R package building I start out with using the implicit-none option and comment it out in the makevars only in the final stage when R warns me about non standard options. Berend -- View this message in context: http://r.789695.n4.nabble.com/R-Fortran-question-multiple-subroutines-tp3009729p3010385.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ 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.