Here's a solution that took a while to find; I wanted to write it to the list so it'll be available for people in the future. Summary: In external Fortran code, use SUBROUTINEs, don't use FUNCTIONs. A colleague had bizarre things happening in uniroot() (a root finding routine), which she used to call an R function that called a Fortran routine to do some calculations. For example, the function sometimes worked, but didn't work when a print() statement was added to it. We eventually tracked down the problem to the fact that she had declared the Fortran routine to be a real*8 function, instead of a subroutine. Apparently it was returning a value in some way that R didn't expect, and this was causing R to act strangely. This is mentioned in the R Extensions manual, but most of the examples there are in C, so it wasn't obvious. Duncan Murdoch -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._