On 30/11/2014 06:46, Michael Hahsler wrote:
Dear R Developers,

For package seriation I use Fortran code. I recently got a request to add

#if defined(__ICC) || defined(__INTEL_COMPILER)
       USE IFPORT
#endif

to the code since the Intel Fortran compiler otherwise has problems with
rand(). However, to enable the FPP preprocessor I have to either add a

'Writing R Extensions' advises you not to use system RNGs, so this is a good time to comply. §6.6 of 'Writing R Extensions' describes how to use the R RNG from Fortran.

compiler flag (-cpp for gFortran) which is possibly not portable or
change the extension to .F, .fpp, .FPP (and a few others) which
automatically invokes the preprocessor (hopefully on all platforms). I

Many compilers do not know about .fpp or .FPP, and .F is not portable to case-independent file systems.

tried .fpp and added the following to Makevars:

OBJECTS=arsa.o bburcg.o bbwrcg.o bea.o criterion.o dist.o fprintf.o
greedy.o optimal.o stress.o

%.o: %.fpp
         $(F77) $(ALL_FFLAGS) -c $< -o $@

It seems to work (I tried Linux and Windows) but R CMD check gives me:

* checking if this is a source package ... WARNING
Subdirectory ‘src’ contains:
   arsa.fpp bburcg.fpp

Is there a different preferred method to do this? Is it possible to add
support for Fortran with the fpp preprocessor (.fpp files) to the R
package building process?

The support is as described in 'Writing R Extensions' §1.1.5.

You could add flags in PKG_FFLAGS, but you would have to use a configure script to find the right one (-xpp=fpp is also used).

--
Brian D. Ripley,                  rip...@stats.ox.ac.uk
Emeritus Professor of Applied Statistics, University of Oxford
1 South Parks Road, Oxford OX1 3TG, UK

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to