У меня есть R-пакет, который использует множество подпрограмм Fortran для вложенных циклов рекурсивных вычислений линейной алгебры (в зависимости от BLAS и LAPACK-подпрограмм). В качестве интерфейса с Fortran я использую функцию .Fortran
. Я просто прочитал сообщение Джонатана Каллахана об использовании .Call
вместо .C
в случае подпрограмм, написанных на C/С++, и это заставило меня думать, что это будет лучше использовать интерфейс .Call
также при использовании подпрограмм Fortran, написав простую оболочку в C, которая затем вызывает подпрограммы Fortran?
Как сказано, мои коды Fortran довольно просты в том смысле, что я просто играю с многомерными массивами типа double или integer. Но я узнал, что я должен написать довольно много проверок на стороне R, чтобы гарантировать, что все не сбой из-за того, что я случайно забыл изменить режим хранения какой-либо матрицы на целое число или размеры какой-либо матрицы были изменены и т.д.
Подпрограммы записываются как F90/95.