From cd4a76a55cdcee5c850518775d4622f7ec7b1d3e Mon Sep 17 00:00:00 2001
From: Camille Mazoyer <camille.mazoyer@ird.fr>
Date: Wed, 19 Feb 2025 17:18:23 +0100
Subject: [PATCH] support for matlab 20xx versions, in particular 2024 and more
 recent versions,...

---
 CHANGELOG.md                                              | 2 ++
 UTILITIES/mexcdf/mexnc/mexcdf.m                           | 4 +++-
 UTILITIES/mexcdf/netcdf_toolbox/netcdf/ncutility/mexcdf.m | 4 +++-
 UTILITIES/mexcdf/netcdf_toolbox/netcdf/ncutility/ncmex.m  | 4 +++-
 UTILITIES/netcdf_matlab_60/ncutility/ncclose.m            | 4 +++-
 UTILITIES/netcdf_matlab_60/ncutility/tnc4ml5.m            | 4 +++-
 6 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 70015d9f..cda1eb22 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,8 @@ Release changelog are available here : https://gitlab.inria.fr/croco-ocean/croco
 
 ## Fixed
 
+- Preprocessing_tools : fix in mexcdf functionality for matlab 20xx versions (in particular matlab 2024), see issue [#50](https://gitlab.inria.fr/croco-ocean/croco_tools/-/issues/50)  
+
 ## Changed
 
 ## Removed
diff --git a/UTILITIES/mexcdf/mexnc/mexcdf.m b/UTILITIES/mexcdf/mexnc/mexcdf.m
index 399405a7..0c21295a 100644
--- a/UTILITIES/mexcdf/mexnc/mexcdf.m
+++ b/UTILITIES/mexcdf/mexnc/mexcdf.m
@@ -95,7 +95,9 @@ if nargin < 1, help(mfilename), return, end
 % Mex-file gateway.
 
 v = version;
-if eval(v(1)) > 4
+matversion=version('-release');
+myversion=str2num(matversion(1:2));
+if eval(v(1)) > 4 || myversion >= 20
 	fcn = 'mexcdf53';   % Matlab-5 or 6.
 elseif eval(v(1)) == 4
 	fcn = 'mexcdf4';    % Matlab-4 only.
diff --git a/UTILITIES/mexcdf/netcdf_toolbox/netcdf/ncutility/mexcdf.m b/UTILITIES/mexcdf/netcdf_toolbox/netcdf/ncutility/mexcdf.m
index 399405a7..0c21295a 100644
--- a/UTILITIES/mexcdf/netcdf_toolbox/netcdf/ncutility/mexcdf.m
+++ b/UTILITIES/mexcdf/netcdf_toolbox/netcdf/ncutility/mexcdf.m
@@ -95,7 +95,9 @@ if nargin < 1, help(mfilename), return, end
 % Mex-file gateway.
 
 v = version;
-if eval(v(1)) > 4
+matversion=version('-release');
+myversion=str2num(matversion(1:2));
+if eval(v(1)) > 4 || myversion >= 20
 	fcn = 'mexcdf53';   % Matlab-5 or 6.
 elseif eval(v(1)) == 4
 	fcn = 'mexcdf4';    % Matlab-4 only.
diff --git a/UTILITIES/mexcdf/netcdf_toolbox/netcdf/ncutility/ncmex.m b/UTILITIES/mexcdf/netcdf_toolbox/netcdf/ncutility/ncmex.m
index 5bd46cf7..82d8ffe5 100644
--- a/UTILITIES/mexcdf/netcdf_toolbox/netcdf/ncutility/ncmex.m
+++ b/UTILITIES/mexcdf/netcdf_toolbox/netcdf/ncutility/ncmex.m
@@ -113,7 +113,9 @@ end
 % Mex-file gateway.
 
 v = version;
-if eval(v(1)) > 4
+matversion=version('-release');
+myversion=str2num(matversion(1:2));
+if eval(v(1)) > 4 || myversion >= 20
 	fcn = 'mexcdf53';   % Matlab-5 or 6.
 elseif eval(v(1)) == 4
 	fcn = 'mexcdf4';    % Matlab-4 only.
diff --git a/UTILITIES/netcdf_matlab_60/ncutility/ncclose.m b/UTILITIES/netcdf_matlab_60/ncutility/ncclose.m
index 65d86d56..247893f8 100644
--- a/UTILITIES/netcdf_matlab_60/ncutility/ncclose.m
+++ b/UTILITIES/netcdf_matlab_60/ncutility/ncclose.m
@@ -18,7 +18,9 @@ end
 theNCid = -sort(-theNCid);
 
 v = version;
-if v(1) == '6'
+matversion=version('-release');
+myversion=str2num(matversion(1:2));
+if v(1) == '6' || myversion >= 20
    fcn = 'mexcdf60';   % Matlab-6 only.
 elseif v(1) == '5'
    fcn = 'mexcdf53';   % Matlab-5 only.
diff --git a/UTILITIES/netcdf_matlab_60/ncutility/tnc4ml5.m b/UTILITIES/netcdf_matlab_60/ncutility/tnc4ml5.m
index 2234cfb6..8608a0d4 100644
--- a/UTILITIES/netcdf_matlab_60/ncutility/tnc4ml5.m
+++ b/UTILITIES/netcdf_matlab_60/ncutility/tnc4ml5.m
@@ -12,7 +12,9 @@ function tnc4ml5
 % Version of 15-Apr-1997 09:50:05.
 
 v = version;
-if v(1) == '6'
+matversion=version('-release');
+myversion=str2num(matversion(1:2));
+if v(1) == '6' || myversion >= 20
    fcn = 'mexcdf60';   % Matlab-6 only.
 elseif v(1) == '5'
    fcn = 'mexcdf53';   % Matlab-5 only.
-- 
GitLab