[R-pkg-devel] R, BLAS, and FCLEN
gor@n@bro@trom @end|ng |rom umu@@e
Wed Sep 11 13:36:40 CEST 2019
A followup question: Is it possible to call a BLAS/LAPACK subroutine,
where one parameter is character, from FORTRAN (77) code called by
.Fortran? (No problem "in the past".)
And if yes, how? Documentation describes calls from C to Fortran and
vice versa, but not this situation (AFAICS).
Yes, I know that .Fortran is not well seen these days, but my fortran
code is ancient, from the before-R era, and I would like to leave it as-is.
Den 2019-09-01 kl. 21:46, skrev Göran Broström:
> On 2019-08-31 18:47, Göran Broström wrote:
>> I'm having difficulties updating my package eha: When I run standard
>> checks 'at home' everything is fine, but 'CRAN-submissions' reports
>> (among other things):
>> geomsup.f:324:9: warning: type of ‘dgemv’ does not match original
>> declaration [-Wlto-type-mismatch]
>> 324 | & one, score, ione)
>> | ^
>> /home/tmp/R-d-gcc-LTO/include/R_ext/BLAS.h:107:1: note: type mismatch
>> in parameter 12
>> 107 | F77_NAME(dgemv)(const char *trans, const int *m, const int *n,
>> | ^
>> This is odd since the LAPACK subroutine dgemv takes only 11
>> parameters. However, in include/R_ext/BLAS.h we have
>> F77_NAME(dgemv)(const char *trans, const int *m, const int *n,
>> const double *alpha, const double *a, const int *lda,
>> const double *x, const int *incx, const double *beta,
>> double *y, const int *incy FCLEN);
>> with a 12th parameter FCLEN?? How am I supposed to fix this, and what
>> the ... is FCLEN? googling leads to nothing useful (for me). It seems
>> as if R is redefining some standard LAPACK routines.
>> Also a note I do not understand (in this context):
>> note: type ‘void’ should match type ‘long int’
>> Any help is much appreciated.
>> Best, Göran
>> PS. How can I trigger these Warnings 'at home'?
> See https://www.stats.ox.ac.uk/pub/bdr/LTO/README.txt (thanks to Uwe
> Another relevant document seems to be (2019-05-15):
> First sentence:
> "Recent version of the GNU Fortran compiler (7, 8, 9) include
> optimizations that break interoperability between C and Fortran code
> with BLAS/LAPACK."
> And later:
> "For the time being, everyone should use -fno-optimize-sibling-calls
> with GFortran version 7 and newer."
>> R-package-devel using r-project.org mailing list
> R-package-devel using r-project.org mailing list
More information about the R-package-devel