2 C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 SUBROUTINE mexFunction
( nlhs
, plhs
, nrhs
, prhs
)
4 C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 C Matlab Gateway for the Derivative Function Fun
6 C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9 INTEGER plhs
(*), prhs
(*)
10 INTEGER mxGetPr
, mxCreateFull
, mxGetM
, mxgetN
11 INTEGER VPtr
, FPtr
, RPtr
, VdotPtr
12 KPP_REAL V
(KPP_NVAR
), F
(KPP_NFIX
), RCT
(KPP_NREACT
)
13 KPP_REAL Vdot
(KPP_NVAR
)
15 C Check for the right number of input arguments
16 IF ( nrhs
.ne
. 3 ) THEN
17 CALL mexErrMsgTxt
('Fun requires 3 input vectors:
18 &V(KPP_NVAR), F(KPP_NFIX), RCT(KPP_NREACT)')
20 C Check for the right number of output arguments
21 IF ( nlhs
.ne
. 1 ) THEN
22 CALL mexErrMsgTxt
('Fun requires 1 output vector:
26 plhs
(1) = mxCreateDoubleMatrix
(KPP_NVAR
,1,0)
28 VPtr
= mxGetPr
(prhs
(1))
29 CALL mxCopyPtrToReal8
(VPtr
,V
,KPP_NVAR
)
31 FPtr
= mxGetPr
(prhs
(2))
32 CALL mxCopyPtrToReal8
(FPtr
,F
,KPP_NFIX
)
34 RPtr
= mxGetPr
(prhs
(3))
35 CALL mxCopyPtrToReal8
(RPtr
,RCT
,KPP_NREACT
)
37 VdotPtr
= mxGetPr
(plhs
(1))
39 CALL Fun
( V
, F
, RCT
, Vdot
)
41 CALL mxCopyReal8ToPtr
(Vdot
, VdotPtr
, KPP_NVAR
)