On 13/08/18 20:45, Henrik Bengtsson wrote:

On Mon, Aug 13, 2018 at 3:51 AM Rolf Turner <r.tur...@auckland.ac.nz> wrote:


OK everybody!  You can relax.  :-) I managed to spot the loony.  After
mucking around with valgrind, and before trying gdb, I had one more look
at my code and *finally* saw the stupid thing that I had been doing.

In the call to .Fortran() I had a line

      nphi=as.integer(nphi),

but "nphi" was nowhere defined (!!!) in the R code.  The name "nphi"
appeared as an argument in the Fortran subroutine in question, but was
nowhere actually *used*!!!

Didn't R CMD check pick this up, that is, didn't it report that 'nphi'
is a "global" variable?

No it didn't. The name only appears in the call to .Fortran(). I think if it appeared in a call to an ordinary garden-variety R function then a warning would have been issued.

Such a lapse would be hard for R CMD check to pick up.  E.g

   nphi=integer(1),

would be OK in a call to .Fortran (which would allow a value of nphi, calculated within the called subroutine, to be *returned*) whereas

   nphi=as.integer(nphi),

causes trouble when nphi has never been defined (as I found out after a great expenditure of time and torn-out hair). In the former instance it doesn't matter an FTCF whether nphi has been defined or not.

cheers,

Rolf

--
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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