[Rd] Replace isnan and lgamma in Fortran subroutine in R package
Berend Hasselman
bhh at xs4all.nl
Tue Sep 23 07:43:13 CEST 2014
On 23-09-2014, at 00:33, Wang, Zhu <Zwang at connecticutchildrens.org> wrote:
> Hello,
>
> I submitted a package which used Fortran functions isnan and lgamma. However, I was told that:
>
> isnan and lgamma are not Fortran 95 functions.
>
> I was asked to write 'cross-platform portable code' and so should not be writing GNU extensions to Fortran.
>
> See http://cran.r-project.org/web/checks/check_results_mpath.html, which will shortly show installation failures under Solaris.
>
> I will appreciate advice on how to replace these two functions to avoid failure on some platforms.
>
I don’t know about lgamma.
Instead of isnan you could use Lapack’s logical function disnan to test for NaN (it’s in lapack 3.4.2; I don’t know about earlier versions).
Another way would be to write a C function using functions provided by R to test for NaN.
That function should be declared with F77_NAME so that it can be called from a Fortran routine.
I haven’t tried this so I don’t know if this would be foolproof or is the best way to do it..
Berend
More information about the R-devel
mailing list