From 8f54a4851a9720abf81877e41b96deb692e8850d Mon Sep 17 00:00:00 2001
From: Jacques Grelet <jacques.grelet@ird.fr>
Date: Tue, 23 Feb 2010 15:31:41 +0000
Subject: [PATCH] corrige un bug avec la version native de netcdf sous Matlab >
 2008b, les variables DAYD n etaient pas convertit avec datenum2julian et
 julian2datenum

---
 tsg_io/readTsgDataNetCDF.m  | 17 ++++++++++++-----
 tsg_io/writeTSGDataNetCDF.m | 16 +++++++++++++++-
 2 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/tsg_io/readTsgDataNetCDF.m b/tsg_io/readTsgDataNetCDF.m
index 6c9930d..5da4b81 100644
--- a/tsg_io/readTsgDataNetCDF.m
+++ b/tsg_io/readTsgDataNetCDF.m
@@ -107,10 +107,6 @@ automaticQC( hMainFig )
       %     value(value == fillval(nc{i})) = NaN;
       %   end
       
-      % assign netcdf variables in base workspace
-      % -----------------------------------------
-      assignin('base', variable, nv(:));
-      
       % populate tsg structure with netcdf variables
       % --------------------------------------------
       tsg.(variable) = nv(:);
@@ -120,7 +116,12 @@ automaticQC( hMainFig )
       if strmatch('DAYD', variable)
         tsg.(variable) = julianToDatenum(tsg.(variable));
       end
-    end
+      
+      % assign netcdf variables in base workspace
+      % -----------------------------------------
+      assignin('base', variable, nv(:));
+      
+    end % end of variables loop
     
     % Keep somme information for the log file
     % ---------------------------------------
@@ -172,6 +173,12 @@ automaticQC( hMainFig )
       var = char(key);
       tsg.(var) = nc.VARIABLES.(var).data__;
       
+      % transforme julian days variables to Matlab datenum
+      % --------------------------------------------------
+      if strmatch('DAYD', var)
+        tsg.(var) = julianToDatenum(tsg.(var));
+      end
+      
       % assign variable in base workspace
       % -------------------------------------------
       assignin('base', var , tsg.(var));
diff --git a/tsg_io/writeTSGDataNetCDF.m b/tsg_io/writeTSGDataNetCDF.m
index 3617c42..9430bc0 100644
--- a/tsg_io/writeTSGDataNetCDF.m
+++ b/tsg_io/writeTSGDataNetCDF.m
@@ -360,8 +360,22 @@ end
     % -----------------------------------------------------------------
     for key = keys(nc.VARIABLES)
       var = char(key);
-      nc.VARIABLES.(var).data__ = tsg.(var);
+      if strmatch('DAYD', var)
+        nc.VARIABLES.(var).data__ = datenumToJulian(tsg.(var));
+      else
+        nc.VARIABLES.(var).data__ = tsg.(var);
+      end
     end
+      
+%     % Convert Matlab julian days (datenum) to 1950 reference
+%     % ------------------------------------------------------
+%     ncv_keys = keys(nc.VARIABLES);
+%     d = strmatch('DAYD', ncv_keys);
+%     for i=1:numel(d)
+%       tsg.(ncv_keys{d(i)}) = datenumToJulian(tsg.(ncv_keys{d(i)}));
+%     end
+    
+ 
     
     % loop over all global attributes and get associated value in tsg 
     % structure
-- 
GitLab