Mex Fortran с nagfor, только вызывает функции
Я пытаюсь что-то, что не поддерживается. Я хочу использовать компилятор NAG Fortran (выпуск 5.3.1) для изменения файла Fortran.
Используя команду:
nagfor -ideclient -abi=64 -compatible -fpp -I"C:\Program Files\MATLAB\R2013b\extern\include" -Wl,-shared -thread_safe -L"C:\Program Files\MATLAB\R2013b\bin\win64" timesto.F -lmx -lmex -lmat -o timesto.mexw64
Я могу скомпилировать и связать адаптированную версию timestwo.F
Пример с Фортрана.
Я использовал очень простой код ниже, и это хорошо работает.
#include "fintrf.h"
subroutine mexFunction(nlhs, plhs, nrhs, prhs)
C Declarations
implicit none
C mexFunction arguments:
mwPointer plhs(*), prhs(*)
integer nlhs, nrhs
call mexEvalString('why')
end
Заметить, что mexEvalString
это функция.
Если я сейчас поменяю
call mexEvalString('why')
в
call mexErrMsgTxt('why')
Компиляция все еще работает. Тем не менее, Matlab вылетает без указания причины.
Единственное различие, которое я вижу между обоими утверждениями, состоит в том, что один содержит подпрограмму вместо функции.
Что идет не так и как я могу это исправить?