diff --git a/amh.for b/amh.for
index a4950555cf1d904a65423c7bc37157f78bee6979..d4bd92bea2c3043edd84170807d1f1bb4e68db3f 100644
--- a/amh.for
+++ b/amh.for
@@ -107,7 +107,7 @@ C LOCALS
 	id1   = max(1,d(1))
 	Z0    = Z
 	delta = 1.D-3
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/amh2.for b/amh2.for
index ba31c9c2d4d4a117c00215498b58c4cdc424faae..83218e3136bf55e6f9fc04782ba8e29d591f6345 100644
--- a/amh2.for
+++ b/amh2.for
@@ -107,7 +107,7 @@ C LOCALS
 	id1   = max(d(1),1)
 	Z0    = Z
 	delta = 1.D-3
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/checkdesign.for b/checkdesign.for
index 2af5c18b6893ca483470bf2ccea19b8a85525146..2638169adfb45696e2a14edb6fc7a76273b792d1 100644
--- a/checkdesign.for
+++ b/checkdesign.for
@@ -70,7 +70,7 @@ C EXTERNAL SUBROUTINES
 	ALLOCATE(c(ny,max(nz,1),ns(1)),H(ny,nx,ns(2)),
 	1 G(ny,nu,ns(3)),a(nx,ns(4)),F(nx,nx,ns(5)),R(nx,nu,ns(6))) !,HRG(ny,nu),HRGRH(ny,ny))
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/chi2inv.for b/chi2inv.for
index ae62afc755615ffa39fb5430f7715a83f3ddb74f..40c4b7ed162746602c7d843224b97b48c67f4743 100644
--- a/chi2inv.for
+++ b/chi2inv.for
@@ -430,13 +430,13 @@ C LOCALS
       DATA T(198,6:10)/199.8400, 205.0857, 211.0344, 218.6401, 231.8292/
       DATA T(199,6:10)/200.8463, 206.1051, 212.0684, 219.6922, 232.9118/
       DATA T(200,6:10)/201.8526,207.1244, 213.1022, 220.7441, 233.9943/
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
       CHARACTER(len=200) :: MEXPRINT
       INTEGER*4 mexPrintf
       INTEGER*4 mpfout
 #endif
       IF (V.GT.200) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
          WRITE(MEXPRINT,*) 'CHI2INV: Too many degrees of freedom'
          mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
diff --git a/design.for b/design.for
index 69fcbbf1e7f9a72762a80e72564639ff2399260b..76ede64648428e64191e580a743711bedbaddd09 100644
--- a/design.for
+++ b/design.for
@@ -218,7 +218,7 @@ C
       IF (engEvalString(ep, 'clear success;'//
      &   '[C,H,G,A,F,R]='//TRIM(mfile)//'( ny,nz,nx,'//
      &   'nu,ns,theta);'//'success=1;') .ne. 0) then ! engEvalString failed
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 		 CALL GETERRSTR(matlaberror)
 #else
 #endif
@@ -244,7 +244,7 @@ C
 #endif
       IF (C_ptr .eq. 0) then ! engEvalString failed
           buffer=buffer1
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 		 CALL GETERRSTR(matlaberror)
 #else
 #endif
diff --git a/drawtheta.for b/drawtheta.for
index 6f669b3e584cea02249dc914f53f1d129b935578..475fb179d648b6aaadb08165dff164ccb5eaef19 100644
--- a/drawtheta.for
+++ b/drawtheta.for
@@ -105,7 +105,7 @@ C CHEK theta
 	   IF (NN.LE.1000) THEN
 	     GOTO 7777
 	   ELSE
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nReduce skcriterium or use Slice sampling\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' '
diff --git a/drawtheta2.for b/drawtheta2.for
index c729eb8af70de05b02630d7a99151e5250a739dc..f8c1a30bf2a2dd67058e182a92a918afe1c91785 100644
--- a/drawtheta2.for
+++ b/drawtheta2.for
@@ -105,7 +105,7 @@ C CHEK theta
 	   IF (NN.LE.1000) THEN
 	     GOTO 7777
 	   ELSE
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nReduce skcriterium or use Slice sampling\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' '
diff --git a/findinput.for b/findinput.for
index 4fffd80bdf889c44bca56738b63b20b2b9657deb..adfee8dfb973cdabe727bb6429c25056ead50aba 100644
--- a/findinput.for
+++ b/findinput.for
@@ -48,7 +48,7 @@ C LOCALS
 	ERRMSG = 'INPUT ERROR: '// STR2 //' is not set'
 	IPOS = INDEX(TRIM(STR1),STR2)
 	IF (IPOS.EQ.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt(ERRMSG)
 #else
 	 WRITE(*,*) ERRMSG
@@ -70,7 +70,7 @@ C LOCALS
 	  READ(STR1(IPOS:IPOS2-2),'(F20.10)') NUM
 	  READ(STR1(IPOS:IPOS2-2),*) NUM
 	 ELSE
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt(ERRMSG)
 #else
 	  WRITE(*,*) ERRMSG
diff --git a/forecast.for b/forecast.for
index b9e5a19f067f9d3ab5b97895beee9e1e091a3411..5a34b5dc798bc1914f80e8134821b842358b41bc 100644
--- a/forecast.for
+++ b/forecast.for
@@ -73,7 +73,7 @@ C EXTERNAL SUBROUTINES
 	ALLOCATE(R(nx,nu,ns(6)),c(ny,max(nz,1),ns(1)),H(ny,nx,ns(2)),
 	1 G(ny,nu,ns(3)),a(nx,ns(4)),F(nx,nx,ns(5)))
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/gck.for b/gck.for
index 291e235f7f794c05cbfc91b29d4d46220dc5ab0e..a07ef50157c5bc520168af8ea010de3ee59f0226 100644
--- a/gck.for
+++ b/gck.for
@@ -110,7 +110,7 @@ C LOCALS
 	DATA EPS/1.D-14/,ONE/1.0D0/,ZERO/0.0D0/
 	DOUBLE PRECISION genunf,LEMMA4,MARKOVP
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/gck2.for b/gck2.for
index 0f264cb8fe28a9274bc2b86e6c26be9a5e0310da..cddb24b31839e00d1e861cd1ae6cd02b89d20034 100644
--- a/gck2.for
+++ b/gck2.for
@@ -101,7 +101,7 @@ C LOCALS
 	DATA EPS/1.D-14/,ONE/1.0D0/,ZERO/0.0D0/
 	DOUBLE PRECISION genunf,LEMMA4,MARKOVP
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/innov.for b/innov.for
index 27a0231a75dd528b95eaeb68e9f120405a4fa4da..f0196f6e7b9a0cdfb7948d50f2f904e70c6ba1fb 100644
--- a/innov.for
+++ b/innov.for
@@ -72,7 +72,7 @@ C LOCALS
      1 Xdd(max(d(1),1),nx),Pdd(max(d(1),1),nx,nx),LIKE(max(d(1),1)),
      1 XT(nx),PT(nx,nx),INN0(ny))
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
       CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/innov2.for b/innov2.for
index c5082d128fb3d1f6f29f703a94fe5089a8978a6f..b55116e3b4d1b252f38ee24a1a6c24eebf51c8de 100644
--- a/innov2.for
+++ b/innov2.for
@@ -71,7 +71,7 @@ C LOCALS
      1 Xdd(max(d(1),1),nx),Pdd(max(d(1),1),nx,nx),LIKE(max(d(1),1)),
      1 XT(nx),PT(nx,nx))
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
       CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/input.for b/input.for
index 86d07095b66a982fbf74e7ec09e5c47d2227b943..7918dd421edfa9e41dfc481aa496c4f3e174179c 100644
--- a/input.for
+++ b/input.for
@@ -106,7 +106,7 @@ C FIND namelist ssm
 #endif
 	CLOSE(1)
 	IF (IFAIL.EQ.-1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nNamelist ssm not found\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Namelist ssm not found'
@@ -136,7 +136,7 @@ C READ namelist ssm
 	estimation = 'BA'
 	READ(1,NML=ssm,END=5001,ERR=5001)
 	IF (nx.LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck nx in namelist ssm\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
 	 WRITE(*,*) ' Check nx in namelist ssm'
@@ -149,7 +149,7 @@ C READ namelist ssm
 	 STOP
 	ENDIF
 	IF(nu.LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck nu in namelist ssm\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check nu in namelist ssm'
@@ -162,7 +162,7 @@ C READ namelist ssm
 	 STOP
 	ENDIF
 	IF((d(1).LT.0).OR.(d(2).LT.0).OR.(d(2).GT.nx)) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck d in namelist ssm\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check d in namelist ssm'
@@ -175,7 +175,7 @@ C READ namelist ssm
 	 STOP
 	ENDIF
 	IF((nv.LT.0).OR.(nv.GT.6)) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck nv in namelist ssm\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check nv in namelist ssm'
@@ -188,7 +188,7 @@ C READ namelist ssm
 	 STOP
       ENDIF
       IF(dllname.EQ.'') THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck dllname in namelist ssm\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
          WRITE(*,*) ' Check dllname in namelist ssm'
@@ -226,7 +226,7 @@ C FIND namelist S1
 #endif
 	 CLOSE(1)
 	 IF (IFAIL.EQ.-1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nNamelist S1 not found\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Namelist S1 not found'
@@ -248,7 +248,7 @@ C READ namelist S1
 	 READ(1,NML=S1,END=5002,ERR=5002)
 
 	 IF ((dynS1.NE.'I').AND.(dynS1.NE.'M'))THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck dynS1 in namelist S1\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check dynS1 in namelist S1'
@@ -262,7 +262,7 @@ C READ namelist S1
 	 ENDIF
 
 	 IF (ns1.LT.2) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck ns1 in namelist S1\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check ns1 in namelist S1'
@@ -278,7 +278,7 @@ C READ namelist S1
 	 IF (dynS1.EQ.'I') THEN
         DO J = 1,ns1
 	   IF (hypS1(J,1).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS1 in namelist S1\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS1 in namelist S1'
@@ -295,7 +295,7 @@ C READ namelist S1
 	  DO J = 1,ns1
 	  DO K = 1,ns1
 	   IF (hypS1(J,K).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS1 in namelist S1\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS1 in namelist S1'
@@ -315,7 +315,7 @@ C READ namelist S1
      #	  .AND.(matS1(1).NE.'H').AND.(matS1(1).NE.'G')
      #	  .AND.(matS1(1).NE.'c').AND.(matS1(1).NE.'F')
      #	  .AND.(matS1(1).NE.'R'))) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS1 in namelist S1\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check matS1 in namelist S1'
@@ -332,7 +332,7 @@ C READ namelist S1
      #	  .AND.(matS1(I).NE.'H').AND.(matS1(I).NE.'G')
      #	  .AND.(matS1(I).NE.'c').AND.(matS1(I).NE.'F')
      #	  .AND.(matS1(I).NE.'R')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS1 in namelist S1\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
          WRITE(*,*) ' Check matS1 in namelist S1'
@@ -367,7 +367,7 @@ C FIND namelist S2
 #endif
 	 CLOSE(1)
 	 IF (IFAIL.EQ.-1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nNamelist S2 not found\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Namelist S2 not found'
@@ -388,7 +388,7 @@ C READ namelist S2
 	 READ(1,NML=S2,END=5003,ERR=5003)
 
 	 IF ((dynS2.NE.'I').AND.(dynS2.NE.'M'))THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck dynS2 in namelist S2\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check dynS2 in namelist S2'
@@ -402,7 +402,7 @@ C READ namelist S2
 	 ENDIF
 
 	 IF (ns2.LT.2) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck ns2 in namelist S2\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check ns2 in namelist S2'
@@ -418,7 +418,7 @@ C READ namelist S2
 	 IF (dynS2.EQ.'I') THEN
         DO J = 1,ns2
 	   IF (hypS2(J,1).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS2 in namelist S2\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS2 in namelist S2'
@@ -435,7 +435,7 @@ C READ namelist S2
 	  DO J = 1,ns2
 	  DO K = 1,ns2
 	   IF (hypS2(J,K).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS2 in namelist S2\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS2 in namelist S2'
@@ -455,7 +455,7 @@ C READ namelist S2
      #	  .AND.(matS2(I).NE.'H').AND.(matS2(I).NE.'G')
      #	  .AND.(matS2(I).NE.'c').AND.(matS2(I).NE.'F')
      #	  .AND.(matS2(I).NE.'R'))) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS2 in namelist S2\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check matS2 in namelist S2'
@@ -472,7 +472,7 @@ C READ namelist S2
      #	  .AND.(matS2(I).NE.'H').AND.(matS2(I).NE.'G')
      #	  .AND.(matS2(I).NE.'c').AND.(matS2(I).NE.'F')
      #	  .AND.(matS2(I).NE.'R')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS2 in namelist S2\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check matS2 in namelist S2'
@@ -506,7 +506,7 @@ C FIND namelist S3
 #endif
 	 CLOSE(1)
 	 IF (IFAIL.EQ.-1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck S3 in namelist S3\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Namelist S3 not found'
@@ -528,7 +528,7 @@ C READ namelist S3
 	 READ(1,NML=S3,END=5004,ERR=5004)
 
 	 IF ((dynS3.NE.'I').AND.(dynS3.NE.'M'))THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck dynS3 in namelist S3\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check dynS3 in namelist S3'
@@ -542,7 +542,7 @@ C READ namelist S3
 	 ENDIF
 
 	 IF (ns3.LT.2) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck ns3 in namelist S3\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check ns3 in namelist S3'
@@ -558,7 +558,7 @@ C READ namelist S3
 	 IF (dynS3.EQ.'I') THEN
         DO J = 1,ns3
 	   IF (hypS3(J,1).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS3 in namelist S3\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS3 in namelist S3'
@@ -575,7 +575,7 @@ C READ namelist S3
 	  DO J = 1,ns3
 	  DO K = 1,ns3
 	   IF (hypS3(J,K).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS3 in namelist S3\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS3 in namelist S3'
@@ -595,7 +595,7 @@ C READ namelist S3
      #	  .AND.(matS3(1).NE.'H').AND.(matS3(1).NE.'G')
      #	  .AND.(matS3(1).NE.'c').AND.(matS3(1).NE.'F')
      #	  .AND.(matS3(1).NE.'R'))) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS3 in namelist S3\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check matS3 in namelist S3'
@@ -612,7 +612,7 @@ C READ namelist S3
      #	  .AND.(matS3(I).NE.'H').AND.(matS3(I).NE.'G')
      #	  .AND.(matS3(I).NE.'c').AND.(matS3(I).NE.'F')
      #	  .AND.(matS3(I).NE.'R')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS3 in namelist S3\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
          WRITE(*,*) ' Check matS3 in namelist S3'
@@ -646,7 +646,7 @@ C FIND namelist S4
 #endif
 	 CLOSE(1)
 	 IF (IFAIL.EQ.-1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nNamelist S4 not found\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Namelist S4 not found'
@@ -668,7 +668,7 @@ C READ namelist S4
 	 READ(1,NML=S4,END=5005,ERR=5005)
 
 	 IF ((dynS4.NE.'I').AND.(dynS4.NE.'M'))THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck dynS4 in namelist S4\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check dynS4 in namelist S4'
@@ -682,7 +682,7 @@ C READ namelist S4
 	 ENDIF
 
 	 IF (ns4.LT.2) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck ns4 in namelist S4\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check ns4 in namelist S4'
@@ -698,7 +698,7 @@ C READ namelist S4
 	 IF (dynS4.EQ.'I') THEN
         DO J = 1,ns4
 	   IF (hypS4(J,1).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS4 in namelist S4\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS4 in namelist S4'
@@ -715,7 +715,7 @@ C READ namelist S4
 	  DO J = 1,ns4
 	  DO K = 1,ns4
 	   IF (hypS4(J,K).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS4 in namelist S4\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS4 in namelist S4'
@@ -735,7 +735,7 @@ C READ namelist S4
      #	  .AND.(matS4(1).NE.'H').AND.(matS4(1).NE.'G')
      #	  .AND.(matS4(1).NE.'c').AND.(matS4(1).NE.'F')
      #	  .AND.(matS4(1).NE.'R'))) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS4 in namelist S4\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check matS4 in namelist S4'
@@ -752,7 +752,7 @@ C READ namelist S4
      #	  .AND.(matS4(I).NE.'H').AND.(matS4(I).NE.'G')
      #	  .AND.(matS4(I).NE.'c').AND.(matS4(I).NE.'F')
      #	  .AND.(matS4(I).NE.'R')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS4 in namelist S4\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
          WRITE(*,*) ' Check matS4 in namelist S4'
@@ -786,7 +786,7 @@ C FIND namelist S5
 #endif
 	 CLOSE(1)
 	 IF (IFAIL.EQ.-1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nNamelist S5 not found\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Namelist S5 not found'
@@ -808,7 +808,7 @@ C READ namelist S5
 	 READ(1,NML=S5,END=5006,ERR=5006)
 
 	 IF ((dynS5.NE.'I').AND.(dynS5.NE.'M'))THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck dynS5 in namelist S5\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check dynS5 in namelist S5'
@@ -822,7 +822,7 @@ C READ namelist S5
 	 ENDIF
 
 	 IF (ns5.LT.2) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck ns5 in namelist S5\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check ns5 in namelist S5'
@@ -838,7 +838,7 @@ C READ namelist S5
 	 IF (dynS5.EQ.'I') THEN
         DO J = 1,ns5
 	   IF (hypS5(J,1).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS5 in namelist S5\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS5 in namelist S5'
@@ -855,7 +855,7 @@ C READ namelist S5
 	  DO J = 1,ns5
 	  DO K = 1,ns5
 	   IF (hypS5(J,K).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS5 in namelist S5\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS5 in namelist S5'
@@ -875,7 +875,7 @@ C READ namelist S5
      #	  .AND.(matS5(1).NE.'H').AND.(matS5(1).NE.'G')
      #	  .AND.(matS5(1).NE.'c').AND.(matS5(1).NE.'F')
      #	  .AND.(matS5(1).NE.'R'))) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS5 in namelist S5\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check matS5 in namelist S5'
@@ -892,7 +892,7 @@ C READ namelist S5
      #	  .AND.(matS5(I).NE.'H').AND.(matS5(I).NE.'G')
      #	  .AND.(matS5(I).NE.'c').AND.(matS5(I).NE.'F')
      #	  .AND.(matS5(I).NE.'R')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS5 in namelist S5\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
          WRITE(*,*) ' Check matS5 in namelist S5'
@@ -926,7 +926,7 @@ C FIND namelist S6
 #endif
 	 CLOSE(1)
 	 IF (IFAIL.EQ.-1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nNamelist S6 not found\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Namelist S6 not found'
@@ -948,7 +948,7 @@ C READ namelist S6
 	 READ(1,NML=S6,END=5007,ERR=5007)
 
 	 IF ((dynS6.NE.'I').AND.(dynS6.NE.'M'))THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck dynS6 in namelist S6\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check dynS6 in namelist S6'
@@ -962,7 +962,7 @@ C READ namelist S6
 	 ENDIF
 
 	 IF (ns6.LT.2) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck ns6 in namelist S6\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check ns6 in namelist S6'
@@ -978,7 +978,7 @@ C READ namelist S6
 	 IF (dynS6.EQ.'I') THEN
         DO J = 1,ns6
 	   IF (hypS6(J,1).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS6 in namelist S6\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS6 in namelist S6'
@@ -995,7 +995,7 @@ C READ namelist S6
 	  DO J = 1,ns6
 	  DO K = 1,ns6
 	   IF (hypS6(J,K).LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hypS6 in namelist S6\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
           WRITE(*,*) ' Check hypS6 in namelist S6'
@@ -1015,7 +1015,7 @@ C READ namelist S6
      #	  .AND.(matS6(1).NE.'H').AND.(matS6(1).NE.'G')
      #	  .AND.(matS6(1).NE.'c').AND.(matS6(1).NE.'F')
      #	  .AND.(matS6(1).NE.'R'))) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS6 in namelist S6\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
         WRITE(*,*) ' Check matS6 in namelist S6'
@@ -1032,7 +1032,7 @@ C READ namelist S6
      #	  .AND.(matS6(I).NE.'H').AND.(matS6(I).NE.'G')
      #	  .AND.(matS6(I).NE.'c').AND.(matS6(I).NE.'F')
      #	  .AND.(matS6(I).NE.'R')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck matS6 in namelist S6\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
          WRITE(*,*) ' Check matS6 in namelist S6'
@@ -1065,7 +1065,7 @@ C FIND namelist prior
 #endif
 	CLOSE(1)
 	IF (IFAIL.EQ.-1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nNamelist prior not found\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Namelist prior not found'
@@ -1084,7 +1084,7 @@ C READ namelist prior
 	hyptheta(:,:) = -1
 	READ(1,NML = prior,END=5008,ERR=5008)
 	IF (nt.LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck nt in namelist prior\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check nt in namelist prior'
@@ -1097,7 +1097,7 @@ C READ namelist prior
 	 STOP
       ENDIF
 	IF (nt.GT.200) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nnt is too large\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' nt is too large '
@@ -1114,7 +1114,7 @@ C READ namelist prior
 	  WRITE(IC,'(I3)') I
 	  IF ((pdftheta(I).NE.'BE').AND.(pdftheta(I).NE.'NT').AND.
      #     (pdftheta(I).NE.'IG')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck pdftheta('//IC//') in namelist prior\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
          WRITE(*,*) ' Check pdftheta('//IC//') in namelist prior'
@@ -1127,7 +1127,7 @@ C READ namelist prior
 	   STOP
 	  ENDIF
 	  IF (hyptheta(3,I).GT.hyptheta(4,I)) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hyptheta('//IC//') in namelist prior\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
          WRITE(*,*) ' Check hyptheta('//IC//') in namelist prior'
@@ -1143,7 +1143,7 @@ C READ namelist prior
 	   IF (hyptheta(3,I).LT.hyptheta(4,I)) THEN
 	    IF ((hyptheta(1,I).LE.0.).OR.(hyptheta(2,I).LE.0.).OR.
      #       (hyptheta(3,I).GT.hyptheta(4,I))) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hyptheta('//IC//') in namelist prior\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
            WRITE(*,*) ' Check hyptheta('//IC//') in namelist prior'
@@ -1160,7 +1160,7 @@ C READ namelist prior
 	   IF (hyptheta(3,I).LT.hyptheta(4,I)) THEN
 	    IF ((hyptheta(2,I).LE.0.).OR.(hyptheta(3,I).GT.hyptheta(4,I)))
      #     THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hyptheta('//IC//') in namelist prior\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
            WRITE(*,*) ' Check hyptheta('//IC//') in namelist prior'
@@ -1177,7 +1177,7 @@ C READ namelist prior
  	   IF (hyptheta(3,I).LT.hyptheta(4,I)) THEN
 	    IF ((hyptheta(1,I).LE.0.).OR.(hyptheta(2,I).LE.0.).OR.
      #    (hyptheta(3,I).GT.hyptheta(4,I)).OR.(hyptheta(3,I).LT.0.))THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hyptheta('//IC//') in namelist prior\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
            WRITE(*,*) ' Check hyptheta('//IC//') in namelist prior'
@@ -1196,7 +1196,7 @@ C READ namelist prior
        DO I = 1,nt  ! ML check
         WRITE(IC,'(I3)') I
         IF (hyptheta(3,I).GT.hyptheta(4,I)) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hyptheta('//IC//') in namelist prior\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
            WRITE(*,*) ' Check hyptheta('//IC//') in namelist prior'
@@ -1229,7 +1229,7 @@ C FIND namelist mcmc
 #endif
 	CLOSE(1)
 	IF (IFAIL.EQ.-1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nNamelist mcmc not found\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Namelist mcmc not found'
@@ -1254,7 +1254,7 @@ C READ namelist mcmc
 	MargLik      = 'N'
 	READ(1,NML=mcmc,END=5009,ERR=5009)
 	IF ((seed.LT.0).OR.(seed.GT.999)) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck seed in namelist mcmc\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check seed in namelist mcmc'
@@ -1267,7 +1267,7 @@ C READ namelist mcmc
 	 STOP
 	ENDIF
 	IF (thin.LT.1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck thin in namelist mcmc\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check thin in namelist mcmc'
@@ -1280,7 +1280,7 @@ C READ namelist mcmc
 	 STOP
 	ENDIF
 	IF (burnin.LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck burnin in namelist mcmc\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check burnin in namelist mcmc'
@@ -1293,7 +1293,7 @@ C READ namelist mcmc
 	 STOP
 	ENDIF
 	IF (simulrec.LE.1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck simulrec in namelist mcmc\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check simulrec in namelist mcmc'
@@ -1306,7 +1306,7 @@ C READ namelist mcmc
 	 STOP
 	ENDIF
 	IF ((sampler.NE.'SL').AND.(sampler.NE.'MH')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck sampler in namelist mcmc\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check sampler in namelist mcmc'
@@ -1352,7 +1352,7 @@ C FIND namelist dataset
 #endif
 	CLOSE(1)
 	IF (IFAIL.EQ.-1) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nNamelist dataset not found\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Namelist dataset not found'
@@ -1372,7 +1372,7 @@ C READ namelist dataset
 	datasim = 'N'
 	READ(1,NML=dataset,END=5010,ERR=5010)
 	IF ((T.LE.0).OR.(T.GT.3000)) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck T in namelist dataset\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check T in namelist dataset (T<=3000)'
@@ -1385,7 +1385,7 @@ C READ namelist dataset
 	 STOP
 	ENDIF
 	IF (ny.LE.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck ny in namelist dataset\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check ny in namelist dataset'
@@ -1398,7 +1398,7 @@ C READ namelist dataset
 	 STOP
 	ENDIF
 	IF (nz.LT.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck nz in namelist dataset\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check nz in namelist dataset'
@@ -1411,7 +1411,7 @@ C READ namelist dataset
 	 STOP
 	ENDIF
 	IF (nf.LT.0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck nf in namelist dataset\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check nf in namelist dataset'
@@ -1424,7 +1424,7 @@ C READ namelist dataset
 	 STOP
 	ENDIF
 	IF (T.LT.hbl) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nCheck hbl in namelist mcmc (hbl > T)\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' Check hbl in namelist mcmc (hbl > T)'
@@ -1544,7 +1544,7 @@ C -----------------------------------------------------------------------
 	ENDIF
 
 	GO TO 7777
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
  5000 CALL mexErrMsgTxt('\nInput file not found\nProgram aborting\n')
  5001 CALL mexErrMsgTxt('\nInput error in namelist ssm\nProgram aborting\n')
  5002 CALL mexErrMsgTxt('\nInput error in namelist S1\nProgram aborting\n')
diff --git a/kim.for b/kim.for
index 3c6f1a7c50b44ae0657239cdc18f0d5348c34672..1b27eed70d2dfbad4ddd167fba8120380c180b8f 100644
--- a/kim.for
+++ b/kim.for
@@ -136,7 +136,7 @@ C X-filter initialization
 
         ENDDO
       ELSE
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nERROR: d(1)=2 not implemeted yet\n')
 #endif
         WRITE(*,*) 'ERROR: d(1)=2 not implemeted yet'
diff --git a/lyapunov.for b/lyapunov.for
index 8e2cb48e5df7b5424708096019e01dd6149d5c16..f271a9cad9cbb010ec30afebb877553c5cd97c31 100644
--- a/lyapunov.for
+++ b/lyapunov.for
@@ -63,7 +63,7 @@ C	CALL F02EAF('V',nx,T,nx,WR,WI,Z,nx,WORK,LWORK,IFAIL) ! F = ZTZ'
      #           BWORK,IFAIL)
 	DO I = 1,nx
 	IF (WI(I)**2+WR(I)**2.GE.1.D0) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nLYAPUNOV SUBROUTINE: Some parameters out of\nstationary region. Check hyptheta in namelist prior.\nProgram aborting')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' '
diff --git a/main.for b/main.for
index 0c52eaf2b6532139e309b5002dc44efc61e2e15d..5ecac7fe469bc59cab2596ae8a19ecbc69ec8cfc 100644
--- a/main.for
+++ b/main.for
@@ -34,7 +34,7 @@ C
 C You should have received a copy of the GNU General Public License
 C along with DMM.  If not, see <http://www.gnu.org/licenses/>.
 C --------------------------------------------------------------------------------------
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 #include "fintrf.h"
       SUBROUTINE DMMMAIN(FILEIN)
 #else
@@ -81,7 +81,7 @@ C LOCALS
 #ifndef __GFORTRAN__
       CHARACTER*200 DMMTITLE
 #endif
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
       CHARACTER(len=200) :: MEXPRINT
       INTEGER*4 mexPrintf
       INTEGER*4 mpfout
@@ -105,13 +105,13 @@ C TIME
      1                   DATE_ITIME)
       IT1(1:3) = DATE_ITIME(1:3)
       IT1(4:7) = DATE_ITIME(5:8)
-#if !defined(MEX)
+#if !(defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE))
 C GET the namelist specified by FILEIN
       CALL GETARG(1,FILEIN)     ! load name of input file
 #endif
 C CHECK FILEIN
 	IF (TRIM(FILEIN).EQ.'') THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nNo input file provided\nProgram Aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' '
@@ -150,12 +150,12 @@ C Assign the name of the matlab file
        ALLOCATE( c(ny,max(nz,1),ns(1)),H(ny,nx,ns(2)),
 	1  G(ny,nu,ns(3)),a(nx,ns(4)),F(nx,nx,ns(5)),R(nx,nu,ns(6)),
      1  theta(nt))
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL SETFILEM(mfile,pathmfile) ! ONLY THE FIRST TIME
 #endif
 
        theta(:) = 1.D0
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #endif
        DEALLOCATE(c,H,G,a,F,R,theta)
@@ -371,7 +371,7 @@ C SIMULATION of DATA and UNOBSERVABLES
 C MAXIMUM LIKELIHOOD ESTIMATION
 	IF ((estimation.EQ.'ML').OR.(estimation.EQ.'ml').OR.
      &    (estimation.EQ.'Ml').OR.(estimation.EQ.'mL')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        CALL mexErrMsgTxt('\nMaximum Likelihood inference not allowed\nProgram aborting\n')
 #elif defined(__GFORTRAN__)
        WRITE(*,*) ' '
@@ -494,7 +494,7 @@ C MCMC BURN-IN
 #if defined(__CYGWIN32__) || defined(_WIN32)
 	   CALL system('cls')
 #endif
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        WRITE(MEXPRINT,1113) jjj,ntf,IMIN(1)/dfloat(jjj),IMAX(1)/dfloat(jjj)
        mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
@@ -530,7 +530,7 @@ C MCMC BURN-IN
 #if defined(__CYGWIN32__) || defined(_WIN32)
 	   CALL system('cls')
 #endif
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        WRITE(MEXPRINT,1113) jjj,ntf,IMIN(1)/dfloat(jjj),IMAX(1)/dfloat(jjj)
        mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
@@ -614,14 +614,14 @@ C MCMC RECORDING phase
 #if defined(__CYGWIN32__) || defined(_WIN32)
 	   CALL system('cls')
 #endif
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        WRITE(MEXPRINT,1113) BURNIN,ntf,lastl,lasth
        mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
 	   WRITE(6,1113) BURNIN,ntf,lastl,lasth
 #endif
 	   IF ((HBL.EQ.1).OR.(nv.EQ.0)) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
           WRITE(MEXPRINT,1114) jjj,ntf,IMIN(1)/dfloat(jjj),IMAX(1)/dfloat(jjj)
           mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
@@ -629,7 +629,7 @@ C MCMC RECORDING phase
      #           IMAX(1)/dfloat(jjj)
 #endif
          ELSEIF ((HBL.GT.1).AND.(nv.GT.0)) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
             WRITE(MEXPRINT,1115) jjj,ntf,IMIN(1)/dfloat(jjj),IMAX(1)/dfloat(jjj),SUM(1.D0-ACCRATE(1:nobs)/DFLOAT(jjj))/DFLOAT(nobs)
             mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
@@ -733,14 +733,14 @@ C MCMC RECORDING phase
 #if defined(__CYGWIN32__) || defined(_WIN32)
 	   CALL system('cls')
 #endif
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        WRITE(MEXPRINT,1113) BURNIN,ntf,lastl,lasth
        mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
 	   WRITE(6,1113) BURNIN,ntf,lastl,lasth
 #endif
 	   IF ((HBL.EQ.1).OR.(nv.EQ.0)) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
           WRITE(MEXPRINT,1114) jjj,ntf,IMIN(1)/dfloat(jjj),IMAX(1)/dfloat(jjj)
           mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
@@ -748,7 +748,7 @@ C MCMC RECORDING phase
      #           IMAX(1)/dfloat(jjj)
 #endif
          ELSEIF ((HBL.GT.1).AND.(nv.GT.0)) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
             WRITE(MEXPRINT,1115) jjj,ntf,IMIN(1)/dfloat(jjj),IMAX(1)/dfloat(jjj),SUM(1.D0-ACCRATE(1:nobs)/DFLOAT(jjj))/DFLOAT(nobs)
             mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
@@ -821,7 +821,7 @@ C MCMC RECORDING phase
 
 C MARGINAL LIKELIHOOD
 	IF ((MargLik.EQ.'Y').OR.(MargLik.EQ.'y')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        WRITE(MEXPRINT,*) ' '
        mpfout = mexPrintf(MEXPRINT//achar(13))
        WRITE(MEXPRINT,*) 'Computing the marginal likelihood. Please wait ...'
@@ -834,7 +834,7 @@ C MARGINAL LIKELIHOOD
 	  CALL HARMONIC(GGG,nobs,d,ny,nz,nx,nu,nv,ns,nstot,nt,np,
 	1                INFOS,yk(1:nobs,:),IYK(1:nobs,:),gibtheta,gibZ,
      2                thetaprior,psiprior,pdftheta,MLHM)
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        WRITE(MEXPRINT,*) 'Modified harmonic mean: done!'
        mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
@@ -843,7 +843,7 @@ C MARGINAL LIKELIHOOD
 	  CALL MENGWONG(GGG,nobs,d,ny,nz,nx,nu,nv,ns,nstot,nt,np,
 	1                INFOS,yk(1:nobs,:),IYK(1:nobs,:),gibtheta,gibZ,
      2                thetaprior,psiprior,pdftheta,MLHM(5,1),MLMW)
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        WRITE(MEXPRINT,*) 'Bridge sampling: done!'
        mpfout = mexPrintf(MEXPRINT//achar(13))
        WRITE(MEXPRINT,*) ' '
@@ -856,7 +856,7 @@ C MARGINAL LIKELIHOOD
 	  CALL HARMONIC2(GGG,nobs,d,ny,nz,nx,nu,nv,ns,nstot,nt,np,
 	1                 INFOS,yk(1:nobs,:),gibtheta,gibZ,thetaprior,
      2                 psiprior,pdftheta,MLHM)
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        WRITE(MEXPRINT,*) 'Modified harmonic mean: done!'
        mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
@@ -865,7 +865,7 @@ C MARGINAL LIKELIHOOD
 	  CALL MENGWONG2(GGG,nobs,d,ny,nz,nx,nu,nv,ns,nstot,nt,np,
 	1                 INFOS,yk(1:nobs,:),gibtheta,gibZ,thetaprior,
      2                 psiprior,pdftheta,MLHM(5,1),MLMW)
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        WRITE(MEXPRINT,*) 'Bridge sampling: done!'
        mpfout = mexPrintf(MEXPRINT//achar(13))
        WRITE(MEXPRINT,*) ' '
@@ -905,7 +905,7 @@ C MARGINAL LIKELIHOOD
       IT2(4:7) = DATE_ITIME(5:8)
 	IT=(IT2(4)-IT1(4))*3600+(IT2(5)-IT1(5))*60+(IT2(6)-IT1(6))
       IF ((check.EQ.'Y').OR.(check.EQ.'y')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
        WRITE(MEXPRINT,1117) TRIM(PATH)
        mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
@@ -913,7 +913,7 @@ C MARGINAL LIKELIHOOD
 #endif
       ELSE
           IF ((datasim.EQ.'Y').OR.(datasim.EQ.'y')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
              WRITE(MEXPRINT,1118) TRIM(PATH)
              mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
@@ -922,14 +922,14 @@ C MARGINAL LIKELIHOOD
           ELSE
             IF ((estimation.EQ.'ML').OR.(estimation.EQ.'ml').OR.
      &          (estimation.EQ.'Ml').OR.(estimation.EQ.'mL')) THEN
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
                WRITE(MEXPRINT,1119) IT,TRIM(PATH)
                mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
               WRITE(6,1119) IT,TRIM(PATH)
 #endif
             ELSE
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
                WRITE(MEXPRINT,1116) IT,TRIM(PATH)
                mpfout = mexPrintf(MEXPRINT//achar(13))
 #else
@@ -944,7 +944,7 @@ C MARGINAL LIKELIHOOD
 1111  FORMAT((<4>(F25.12)), '  ',A2)
 1112  FORMAT(I10,(<np(3)>(F25.12)), '  ',I2)
 #endif
-#if defined(MEX)
+#if defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 1113  FORMAT(' Burn-in draws = ',I8,'\n',
      #       ' Parameters sampled by SLICE ',I5,'\n',
      #       ' SLICE likelihood eval. Min/Max = ',F6.2, ' / ',F6.2,'\n')
diff --git a/missing.for b/missing.for
index ff60de9fe209748a1a433373c775c770619522a9..e84805bef76277ab61cc2ce67abcb3a40a458d4a 100644
--- a/missing.for
+++ b/missing.for
@@ -46,7 +46,7 @@ C LOCALS
 
 	ALLOCATE(R(nx,nu,ns(6)),c(ny,max(nz,1),ns(1)),H(ny,nx,ns(2)),
 	1 G(ny,nu,ns(3)),a(nx,ns(4)),F(nx,nx,ns(5)))
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/opg.for b/opg.for
index d73b492496f9c1ff0c44d699ef8f86bef9732dcf..60c3ae1ac298622e45ab468194fd80c95825ac3b 100644
--- a/opg.for
+++ b/opg.for
@@ -85,7 +85,7 @@ C Using Hessian from E04UCF
      1 XT(0:nobs,nx),PT(0:nobs,nx,nx),Xdd(max(d(1),1),nx),
      1 Pdd(max(d(1),1),nx,nx))
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
@@ -123,7 +123,7 @@ C Using Hessian from E04UCF
 	DO 1000 I=1,NFREE
 	 THETAV(I) = THETAV(I) + P(I)
        theta(IFREE(I)) = THETAV(I)
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	   CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/opgh.for b/opgh.for
index 071e35ba40c6558f46c2cfd22f741c31b229483a..fa3ca697b2c79da22d4f3a07f3fe87d07e256225 100644
--- a/opgh.for
+++ b/opgh.for
@@ -88,7 +88,7 @@ C ------------------------------------------------------------
       IFAIL = 0
       CALL SYMINV(LTR,NFREE,LTR,W,J,IFAIL,RMAX)
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
       CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
@@ -135,7 +135,7 @@ C -----------
         ELSE
          psi(I-NFT) = PAR(I)
         ENDIF
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/opgkim.for b/opgkim.for
index 2a9a72f5eae4d9b895723c5bdced8dbfd26cff75..014afe7ad155a418781af85ca8a2ed256829c5d0 100644
--- a/opgkim.for
+++ b/opgkim.for
@@ -87,7 +87,7 @@ C ------------------------------------------------------------
       IFAIL = 0
       CALL SYMINV(LTR,NFREE,LTR,W,J,IFAIL,RMAX)
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
       CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
@@ -135,7 +135,7 @@ C -----------
         ELSE
          psi(I-NFT) = PAR(I)
         ENDIF
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
         CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/ptheta.for b/ptheta.for
index 294416476cb0a41f6fdaab01c5175f8ff0c4765d..537b16809afd126aa37887a24a910b4f1f6a32b8 100644
--- a/ptheta.for
+++ b/ptheta.for
@@ -49,7 +49,7 @@ C LOCALS
      3 Pdd(max(d(1),1),nx,nx))
 
 C computes the log-posterior
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/ptheta2.for b/ptheta2.for
index 29dc96b5d0216604a637a6cf31837fee1e1dd57b..c1e44ed5f5ffb52daa8c5b3c5f65ae4d1e64278a 100644
--- a/ptheta2.for
+++ b/ptheta2.for
@@ -49,7 +49,7 @@ C LOCALS
 
 
 C computes the log-posterior
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/simdata.for b/simdata.for
index fb9190c6e7f0976e5160e3be7350eb7c020948d7..4c88df50b18246b5867ae0d84f6c32d0a7bc847a 100644
--- a/simdata.for
+++ b/simdata.for
@@ -92,7 +92,7 @@ C EXTERNAL SUBROUTINES
      3 Xdd(MAX(d(1),1),nx),Pdd(MAX(d(1),1),nx,nx),
      3 WORK((nx+2)*(nx+1)/2),FP(nx,nx),WORK1(64*nx),UP(nu) )
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/simstate.for b/simstate.for
index 7fc14056e823a6eeba6d080a78cb417b31f83706..f46a772d456c9f35d74a25ff16af85b8e51df236 100644
--- a/simstate.for
+++ b/simstate.for
@@ -77,7 +77,7 @@ C EXTERNAL FUNCTIONS
      3 Xdd(MAX(d(1),1),nx),Pdd(MAX(d(1),1),nx,nx),
      3 WORK((nx+2)*(nx+1)/2),FP(nx,nx),WORK1(64*nx),UP(nu) )
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
       CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif
diff --git a/simstate2.for b/simstate2.for
index ad7a1d9a8059c8dcf84dd4519d7ad08f84b7e461..1c4e8e9f65a8446bf11d004a599aabb81f197339 100644
--- a/simstate2.for
+++ b/simstate2.for
@@ -76,7 +76,7 @@ C EXTERNAL FUNCTIONS
      3 Xdd(MAX(d(1),1),nx),Pdd(MAX(d(1),1),nx,nx),
      3 WORK((nx+2)*(nx+1)/2),FP(nx,nx),WORK1(64*nx),UP(nu) )
 
-#if defined(ORIGDLL) || defined(MEX)
+#if defined(ORIGDLL) || defined(MATLAB_MEX_FILE) || defined(OCTAVE_MEX_FILE)
 	  CALL DESIGN(ny,nz,nx,nu,ns,nt,theta,c,H,G,a,F,R)
 #else
 #endif