diff --git a/@tsg_nc/tsg_platform.csv b/@tsg_nc/tsg_platform.csv
index 45ef28b4369b8b13122e485f94a7262f62dae865..8c0114d923066361c24185cccccbc409c65ce0d2 100644
--- a/@tsg_nc/tsg_platform.csv
+++ b/@tsg_nc/tsg_platform.csv
@@ -1,4 +1,4 @@
-% tsg_platform.csv:  14 members & 3 lines with data
+% tsg_platform.csv:  14 members & 4 lines with data
 % $Id$
 %
 id;PLATFORM_NAME;SHIP_CALL_SIGN;SHIP_MMSI;TSG_TYPE;TSG_NUMBER;TINT_TYPE;TINT_NUMBER;SAMPLING_PERIOD;SSPS_DEPH;SSPS_DEPH_MIN;SSPS_DEPH_MAX;SSTP_DEPH;SSTP_DEPH_MIN;SSTP_DEPH_MAX;DATE_TSG;endl
@@ -6,3 +6,4 @@ char;char;char;char;char;char;char;char;integer;integer;integer;integer;integer;
 #;PASTEUR;ELWT7;228288228;SBE21;3197;SBE38;;300;5;3;6;;;;;#
 #;ANTEA;FNUR;228111000;SBE21;2725;NA;;30;3;3;3;3;3;3;;#
 #;TOUCAN;FNAV;227278000;SBE21;2725;NA;;30;;;;;;;;#
+#;COLIBRI;;;SBE21;;SBE38;;;;;;;;;;#
diff --git a/tsg_io/readTsgDataTsg.m b/tsg_io/readTsgDataTsg.m
deleted file mode 100644
index 7d8044cac08fc44b6f9a308b298b263a8b8b2392..0000000000000000000000000000000000000000
--- a/tsg_io/readTsgDataTsg.m
+++ /dev/null
@@ -1,156 +0,0 @@
-function [error] = readTsgDataTsg( hMainFig, filename)
-% Function to read the TSG data. Should be a NetCDF file
-%
-% Input
-% -----
-% hMainFig ............ Handle to the main user interface
-% filename ........... Data filename
-%
-% Output
-% ------
-% error .............. 1: OK - -1 : an error occured
-%
-% The data are store using setappdata - Variable name : 'tsg_data'
-%
-% Caution : replace the fill-value with NaN
-% $Id: readTsgDataTxt.m 297 2008-03-20 16:33:37Z ygouriou $
-
-% Get the data from the application GUI
-% -------------------------------------
-tsg = getappdata( hMainFig, 'tsg_data');
-
-% Get the fieldnames of tsg structure
-% -----------------------------------
-tsgNames     = fieldnames(tsg);
-nbFieldNames = length( tsgNames );
-
-% Display read file info on console
-% ---------------------------------
-fprintf('\nREAD_ASCII_FILE\n'); tic;
-
-% Open the file
-% -------------
-fid = fopen( filename, 'r' );
-
-% Check file
-% -----------
-if fid == -1
-  msg_error = ['TSG_GOSUD file_lecture : Open file error : ' filename];
-  warndlg( msg_error, 'ASCII error dialog');
-  sprintf('...cannot locate %s\n', filename);
-  error = -1;
-  return;
-end
-
-% Display more info about read file on console
-% --------------------------------------------
-fprintf('...reading %s : ', filename);
-
-% Read the header till the header line has been read
-% --------------------------------------------------
-OK = 0;
-while ~OK
-  
-  % Read every line
-  % ---------------
-  line = fgetl( fid );
-  c = textscan( line, '%s');
-  
-  switch char( c{1}(1) )
-
-    case '%HEADER'
-
-      % Read the header then quit the while loop
-      % ----------------------------------------
-      header = c{1}(2:end);
-      nHeader = length( header );
-      OK = 1;
-
-    otherwise
-
-      % Get the paramete Name (Delete '%')
-      % ----------------------------------
-      Para = char( strtok(c{1}(1), '%') );
-      
-      % Read the parameter value
-      % ------------------------
-      ind = strmatch( Para, tsgNames);
-      if ~isempty( ind )
-        tsg.(Para) = char( c{1}(2) );
-      end
-      
-  end
-end
-
-% Read the data in a cell
-% -----------------------
-cellData = textscan( fid, '%f' );
-
-% Convert the data to double
-% --------------------------
-nCol  = nHeader;
-mLine = length( cellData{:} )/nCol;
-data = NaN * ones( mLine, nCol );
-ind = 0;
-for i = 1:mLine
-  for j = 1:nCol
-    ind = ind + 1;
-    data(i,j) = cellData{1}(ind);
-  end
-end
-
-clear cellData
-
-% Date (y m d h m s) in the first 6 elements in data
-% --------------------------------------------------
-tsg.DAYD = datenum(data(:,1), data(:,2),data(:,3),data(:,4),data(:,5),data(:,6));
-
-% Loop over the header. Skip the 6 first elements
-% -----------------------------------------------
-for i = 7 : nHeader
-  
-  % QC should be converted in int8
-  % ------------------------------
-  if ~isempty( strfind(char(header(i)), '_QC'))
-    tsg.(char(header(i))) = int8( data(:,i) );
-  else
-    tsg.(char(header(i))) = data(:,i);
-  end
-end
-
-% populate tsg.file structure
-% ---------------------------
-[tsg.file.pathstr, tsg.file.name, tsg.file.ext, tsg.file.versn] = ...
-                                                         fileparts(filename);
-%tsg.file.name = filename;
-tsg.file.type = 'ASCII';
-
-% Keep somme information for the log file
-% ---------------------------------------
-tsg.report.tsgfile = filename;
-
-% Save the data in the application GUI
-% ------------------------------------
-setappdata( hMainFig, 'tsg_data', tsg );
-
-% Perform somme automatic tests
-% -----------------------------
-automaticQC( hMainFig );
-
-% Close the file
-% --------------
-fclose( fid );
-
-% Clear the Workspace
-% -------------------
-clear data
-
-% Display time to read file on console
-% ------------------------------------
-t = toc; fprintf('...done (%6.2f sec).\n\n',t);
-
-% Everything OK
-% -------------
-error = 1;
-
-end
diff --git a/tsg_io/readTsgDataTxt.m b/tsg_io/readTsgDataTxt.m
deleted file mode 100644
index 0f1fed8550466daf5b6fce92bb75f8a1c7881501..0000000000000000000000000000000000000000
--- a/tsg_io/readTsgDataTxt.m
+++ /dev/null
@@ -1,100 +0,0 @@
-function [error] = readTsgDataTxt( hMainFig, filename)
-% Function to read the TSG data. Should be a NetCDF file
-%
-% Input
-% -----
-% hMainFig ............ Handle to the main user interface
-% filename ........... Data filename
-%
-% Output
-% ------
-% error .............. 1: OK - -1 : an error occured
-%
-% The data are store using setappdata - Variable name : 'tsg_data'
-%
-%
-% Caution : replace the fill-value with NaN
-% $Id$
-
-% Get the data from the application GUI
-% -------------------------------------
-tsg = getappdata( hMainFig, 'tsg_data');
-
-% Display read file info on console
-% ---------------------------------
-fprintf('\nREAD_ASCII_FILE\n'); tic;
-
-% Open the file
-% -------------
-fid = fopen( filename, 'r' );
-
-% Check file
-% -----------
-if fid == -1
-  msg_error = ['TSG_GOSUD file_lecture : Open file error : ' filename];
-  warndlg( msg_error, 'ASCII error dialog');
-  sprintf('...cannot locate %s\n', filename);
-  error = -1;
-  return;
-end
-
-% Display more info about read file on console
-% --------------------------------------------
-fprintf('...reading %s : ', filename);
-
-% Read the file
-% -------------
-tsgData = fscanf(fid, '%d/%d/%d %d:%d:%d %f %f %f %f %d %f %f', [13 Inf])';
-
-% Every variable are put in a structure
-% -------------------------------------
-tsg.DAYD = datenum(tsgData(:,3), tsgData(:,2),tsgData(:,1), ...
-                   tsgData(:,4),tsgData(:,5),tsgData(:,6));
-
-% save original date
-% ------------------
-tsg.DATE                = datestr(  tsg.DAYD, 'yyyymmddHHMMSS' );
-tsg.LATX                = tsgData(:,7);
-tsg.LONX                = tsgData(:,8);
-tsg.SSJT                = tsgData(:,9);
-tsg.SSPS                = tsgData(:,10);
-tsg.SSPS_QC             = tsgData(:,11);
-tsg.SSPS_ADJUSTED       = tsgData(:,12);
-tsg.SSPS_ADJUSTED_ERROR = tsgData(:,13);
-
-tsg.SSJT_QC             = tsg.SSPS_QC;
-
-% populate tsg.file structure
-% ---------------------------
-[tsg.file.pathstr, tsg.file.name, tsg.file.ext, tsg.file.versn] = ...
-                                                         fileparts(filename);
-%tsg.file.name = filename;
-tsg.file.type = 'ASCII';
-
-% Keep somme information for the log file
-% ---------------------------------------
-tsg.report.tsgfile = filename;
-
-% Save the data in the application GUI
-% ------------------------------------
-setappdata( hMainFig, 'tsg_data', tsg );
-
-% Perform somme automatic tests
-% -----------------------------
-automaticQC( hMainFig );
-
-% Close the file
-% --------------
-fclose( fid );
-
-% Clear the Workspace
-% -------------------
-clear tsgdata
-
-% Display time to read file on console
-% ------------------------------------
-t = toc; fprintf('...done (%6.2f sec).\n\n',t);
-
-% Everything OK
-% -------------
-error = 1;
diff --git a/tsg_util/plot_Validation.m b/tsg_util/plot_Validation.m
index bcf46d84d9590b13e30eb3afa77e77d68d1cf754..43c097f6346432d21cc1969575e346571f55fb95 100644
--- a/tsg_util/plot_Validation.m
+++ b/tsg_util/plot_Validation.m
@@ -16,8 +16,9 @@ switch nPlot
                 PARA,'','none','*',2);
     end
 
-    % Plot Salinity bucket
-    % --------------------
+    % Plot PARA bucket
+    % -----------------------------
+    
     if ~isempty( tsg.([PARA '_SPL']) )
       ind = find( tsg.([PARA '_SPL_TYPE']) == 1 );
       if ~isempty(ind)
diff --git a/tsg_util/tsg_initialisation.m b/tsg_util/tsg_initialisation.m
index 12dd7442b8ac7de9df30314c4b3d1a2208d369e7..2144101d6aaa9ce1a1ab89c2f6f93c857b698591 100644
--- a/tsg_util/tsg_initialisation.m
+++ b/tsg_util/tsg_initialisation.m
@@ -94,6 +94,9 @@ tsg.SSPS_SPL_TYPE = [];
 tsg.SSTP_SPL      = [];
 tsg.SSTP_SPL_QC   = [];
 tsg.SSTP_SPL_TYPE = [];
+tsg.SSJT_SPL      = [];
+tsg.SSJT_SPL_QC   = [];
+tsg.SSJT_SPL_TYPE = [];
 
 % -------------------------------------------------------------------------
 %%              Constants for the quality control procedure
diff --git a/tsgqc.m b/tsgqc.m
index 314649dd2f4dc1d780c9294a243238b795b0c358..9c0e4535d3f5d2f09105752518f3450d327b3712 100644
--- a/tsgqc.m
+++ b/tsgqc.m
@@ -2893,19 +2893,6 @@ end
       % ------------------
       set( hInfoFileText, 'String', strcat(tsg.file.name, tsg.file.ext));
       
-      % Write a TXT file
-      % ----------------
-      fileName = strcat(tsg.file.name, '_w.txt');
-      error    = writeTsgDataTxt(hMainFig, strcat(pathName, fileName));
-
-      % Check for TxT writing error - must to be rewriting
-      % --------------------------------------------------
-      if error == -1
-        warning('tsgqc:SaveMenuCallback', ...
-                'TxT writing error: %s %s', pathName, fileName);
-        return;
-      end
-
       % enable Quality Control mode
       % ---------------------------
       hdl_pushtool = findobj('Tag', 'QC');
diff --git a/tsgqc_GUI.m b/tsgqc_GUI.m
deleted file mode 100644
index 00abece14291b23c435254ebbd8451a4a6404c3a..0000000000000000000000000000000000000000
--- a/tsgqc_GUI.m
+++ /dev/null
@@ -1,2933 +0,0 @@
-function tsgqc_GUI
-% tsgqc_GUI
-%
-% TSG (Thermosalinograph) Quality Control software
-%
-% $Id$
-%
-
-%% COPYRIGHT & LICENSE
-%  Copyright 2007 - IRD US191, all rights reserved.
-%
-%  This file is part of tsgqc_GUI.
-%
-%    Datagui is free software; you can redistribute it and/or modify
-%    it under the terms of the GNU General Public License as published by
-%    the Free Software Foundation; either version 2 of the License, or
-%    (at your option) any later version.
-%
-%    tsgqc_GUI is distributed in the hope that it will be useful,
-%    but WITHOUT ANY WARRANTY; without even the implied warranty of
-%    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-%    GNU General Public License for more details.
-%
-%    You should have received a copy of the GNU General Public License
-%    along with Datagui; if not, write to the Free Software
-%    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-
-
-%%  Initialization tasks
-%   ********************
-
-% Clear Command Window display, giving up a "clean screen."
-% ---------------------------------------------------------
-clc;
-
-% Define global variable VERSION number
-% -------------------------------------
-global VERSION
-
-VERSION = '0.2f';
- 
-% Find program directory.
-% functions (icons) should be store at a lower level
-% add directories to Matlab search path, works on UNIX
-% and Windows host
-% ---------------------------------------------------
-tsgqcname = mfilename;
-fulltsgqcname = mfilename('fullpath');
-DEFAULT_PATH_FILE = strrep(fulltsgqcname, tsgqcname, '') ;
-p = [pathsep,...
-  DEFAULT_PATH_FILE,[filesep 'tsg_util' pathsep],...
-  DEFAULT_PATH_FILE,[filesep 'tsg_data' pathsep],...
-  DEFAULT_PATH_FILE,[filesep 'tsg_io' pathsep]
-  ];
-addpath( p, '-END' );
-rehash;
-
-% define 'HandleVisibility' property for all objects
-% --------------------------------------------------
-handleVisibility = 'on';
-
-% get screen dimensions (pixels)
-% ------------------------------
-set(0,'Units','pixels');
-screenSize = get(0,'ScreenSize');
-
-% define default font size based on screen resolution
-% ---------------------------------------------------
-if screenSize(3) <= 1024
-  tsg.fontSize = 9;
-end
-
-% Screen limits for the GUI
-% -------------------------
-set(0,'Units','normalized');
-guiLimits = get(0,'ScreenSize');
-guiLimits(1) = guiLimits(1) + 0.01;
-guiLimits(2) = guiLimits(2) + 0.05;
-guiLimits(3) = guiLimits(3) - 0.02;
-guiLimits(4) = guiLimits(4) - 0.15;
-
-
-%% Main TSGQC GUI
-% ---------------
-
-% Check if main TSGQC figure exist
-% --------------------------------
-hMainFig = findobj('Tag', 'TAG_TSG-QC_GUI');
-
-% if TSGQC figure exist and still running, don't create a new instance
-% --------------------------------------------------------------------
-if ~isempty(hMainFig)
-
-  % display error dialog box and quit 
-  % ---------------------------------
-  errordlg({'An instance of TSGQC is still running !!!', ...
-    'Open it from you task bar'}, 'Warning TSGQC');
-  return;
-  
-end
-    
-% Create and then hide the GUI as it is being constructed.
-% --------------------------------------------------------
-hMainFig = figure(...
-  'Name', 'TSG Validation', ...
-  'NumberTitle', 'off', ...
-  'Resize', 'on', ...
-  'Menubar','none', ...
-  'Toolbar', 'none', ...
-  'UserData', 'ButtonMotionOff', ...
-  'WindowButtonMotionFcn', @MouseMotion, ...
-%{
-   CloseRequestFcn is remove at this time
-   use use block comments, see:
-   http://blogs.mathworks.com/loren/2006/08/30/commenting-code/
-   --------------------------------------
-  'CloseRequestFcn', @QuitMenuCallback,...
-%}
-'HandleVisibility', handleVisibility,...
-  'Visible','on',...
-  'Tag','TAG_TSG-QC_GUI',...
-  'Units', 'normalized',...
-  'Position',guiLimits, ...
-  'Color', get( 0, 'DefaultUIControlBackgroundColor' ));
-
-
-
-%% Initialize tsg structure with tsg_preference function
-% -----------------------------------------------------
-tsg_preferences(hMainFig, tsgqcname, DEFAULT_PATH_FILE);
-
-% Retrieve named application data
-% -------------------------------
-tsg = getappdata( hMainFig, 'tsg_data');
-
-%%  Menu File
-%   -----------------------------------------------------------------------
-hFileMenu = uimenu(...
-  'Parent', hMainFig,...
-  'HandleVisibility', handleVisibility,...
-  'Label', 'File');
-hOpenMenu = uimenu(...
-  'Parent', hFileMenu,...
-  'Label','Open',...
-  'Accelerator','O',...
-  'HandleVisibility', handleVisibility,...
-  'UserData', 'off',...
-  'Callback', @OpenMenuCallback);
-hSaveMenu = uimenu(...
-  'Parent', hFileMenu,...
-  'Label','Save',...
-  'Accelerator','S',...
-  'Enable', 'off',...
-  'UserData', 'off',...
-  'HandleVisibility', handleVisibility,...
-  'Callback',@SaveMenuCallback);
-hExportMenu = uimenu(...
-  'Parent', hFileMenu,...
-  'Label','Export',...
-  'Accelerator','E',...
-  'Enable', 'off',...
-  'UserData', 'off',...
-  'HandleVisibility', handleVisibility,...
-  'Callback',@ExportMenuCallback);
-hQuitMenu = uimenu(...
-  'Parent',hFileMenu,...
-  'Label','Quit',...
-  'Separator','on',...
-  'Accelerator','Q',...
-  'HandleVisibility', handleVisibility,...
-  'Callback',@QuitMenuCallback);
-
-%%  Menu Edit with Undo/Redo submenu 
-% ---------------------------------
-hEditMenu = uimenu(hMainFig,'Label','Edit');
-uimenu(hEditMenu,'Label','Undo',...
-  'Accelerator','Z',...
-  'Tag','UIMENU_UNDO',...
-  'Enable', 'off',...
-  'Callback',@UndoMenuCallback);
-uimenu(hEditMenu,'Label','Redo',...
-  'Accelerator','R',...
-  'Tag','UIMENU_REDO',...
-  'Enable', 'off',...
-  'Callback',@RedoMenuCallback);
-
-%%  Menu Climatology with Annual/Seasonal/Monthly submenu
-% --------------------------------------------------------
-
-% define structure s stored in userdata
-% -------------------------------------
-s = struct('type', 'annual', 'time', 1);
-
-hClimatoMenu = uimenu(hMainFig,'Label','Climatology', ...
-  'Tag', 'TAG_UIMENU_CLIMATO_MAIN', ...
-  'UserData', s);
-
-% by defautl at startup, select climatology to annual
-% ---------------------------------------------------
-uimenu(hClimatoMenu,'Label','Annual',...
-  'Checked','on',...
-  'Tag','TAG_UIMENU_CLIMATO_ANNUAL',...
-  'Enable', 'on',...
-  'Callback', {@ClimatoSelectMenuCallback, 'annual', 1});
-
-% declare top-level seasonal menu
-% -------------------------------
-hClimatoSeasonalMenu = uimenu(hClimatoMenu,'Label','Seasonal');
-
-% declare label for seasonal submenu
-% ----------------------------------
-label = {'jan-feb-mar','apr-may-jun','jul-aug-sept','oct-nov-dec'};
-
-% loop over the four submenu
-% --------------------------
-for i=1:4
-uimenu(hClimatoSeasonalMenu,'Label',label{i},...
-  'Checked','off',...
-  'Tag',['TAG_UIMENU_CLIMATO_SEASONAL_' i],...
-  'Enable', 'on',...
-  'Callback',{@ClimatoSelectMenuCallback, 'seasonal', i});
-end
-
-% declare top-level monthly menu
-% -------------------------------
-hClimatoMonthlyMenu = uimenu(hClimatoMenu,'Label','Monthly');
-
-% declare label for monthly submenu
-% ----------------------------------
-label = {'january','february','march','april','may','june','july','august',...
-         'september','october','november','december'};
-
-% loop over the four submenu
-% --------------------------
-for i=1:12
-uimenu(hClimatoMonthlyMenu,'Label',label{i},...
-  'Checked','off',...
-  'Tag',['TAG_UIMENU_CLIMATO_MONTHLY_' i],...
-  'Enable', 'on',...
-  'Callback',{@ClimatoSelectMenuCallback, 'monthly', i});
-end
-
-
-%%  Menu Option with Preferences submenu
-% --------------------------------------------------------
-hOptionMenu = uimenu(hMainFig,'Label','Option');
-uimenu(hOptionMenu,'Label','Preferences',...
-  'Checked', tsg.preference.autoload,...
-  'Tag','TAG_UIMENU_OPTION_PREFERENCES',...
-  'Enable', 'on',...
-  'Callback', {@PreferencesMenuCallback});
-
-%%  Toolbar pushbuttons
-%   -----------------------------------------------------------------------
-hToolbar       =   uitoolbar(...   % Toolbar for Open and Print buttons
-  'Parent',hMainFig, ...
-  'HandleVisibility','on');
-hOpenPushtool  =   uipushtool(...   % Opendoc toolbar button
-  'Parent',hToolbar,...
-  'TooltipString','Open file',...
-  'CData', iconRead(fullfile(matlabroot, ...
-  '/toolbox/matlab/icons/opendoc.mat')),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_OPEN',...
-  'UserData', 'off',...
-  'Enable', 'on',...
-  'ClickedCallback', @OpenMenuCallback);
-hSavePushtool  =   uipushtool(...   % Open Save toolbar button
-  'Parent',hToolbar,...
-  'TooltipString','Save NetCDF file',...
-  'CData',iconRead( ...
-  [DEFAULT_PATH_FILE 'tsg_icon' filesep 'savedoc.mat']),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_SAVE',...
-  'Enable', 'off',...
-  'ClickedCallback', @SaveMenuCallback);
-hPrintFigPushtool  =   uipushtool(...   % Open Save toolbar button
-  'Parent',hToolbar,...
-  'TooltipString','Print figures',...
-  'CData',iconRead( ...
-  [DEFAULT_PATH_FILE 'tsg_icon' filesep 'printdoc.mat']),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_PRINTFIG',...
-  'Enable', 'off',...
-  'ClickedCallback', @PrintFigMenuCallback);
-hZoomToggletool  =   uitoggletool(...   % Open Zoom toolbar button
-  'Parent',hToolbar,...
-  'Separator', 'on', ...
-  'TooltipString','Zoom',...
-  'CData', iconRead(fullfile(matlabroot, ...
-  '/toolbox/matlab/icons/zoom.mat')),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_ZOOM',...
-  'Enable', 'off',...
-  'OffCallback', @Zoom_OffMenuCallback,...
-  'ONCallback',  @Zoom_OnMenuCallback);
-hPanToggletool  =   uitoggletool(...   % Open Pan toolbar button
-  'Parent',hToolbar,...
-  'TooltipString','Pan',...
-  'CData',iconRead(fullfile(matlabroot, ...
-  '/toolbox/matlab/icons/pan.mat')),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_PAN',...
-  'Enable', 'off',...
-  'OffCallback', @Pan_OffMenuCallback,...
-  'OnCallback',  @Pan_OnMenuCallback);
-hQCToggletool  =   uitoggletool(...   % Open QC toolbar button
-  'Parent',hToolbar,...
-  'TooltipString','Validation codes',...
-  'Separator', 'on', ...
-  'CData',iconRead(...
-  [DEFAULT_PATH_FILE 'tsg_icon' filesep 'qcicon.mat']),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_QC',...
-  'UserData', 'off',...
-  'Enable', 'off',...
-  'OffCallback', @QC_OffMenuCallback,...
-  'OnCallback',  @QC_OnMenuCallback);
-hTimelimitToggletool  = uitoggletool(...   
-  'Parent',hToolbar,...
-  'TooltipString','Select time limit',...
-  'CData',iconRead(...
-  [DEFAULT_PATH_FILE 'tsg_icon' filesep 'selecttime.mat']),...
-  'HandleVisibility','on', ...
-  'Tag', 'CORRECT_STARTTIME', ...
-  'UserData', 'off',...
-  'Enable', 'off',...
-  'OffCallback', @SelectTime_OffMenuCallback,...
-  'OnCallback',  @SelectTime_OnMenuCallback);
-hMapToggletool  =   uitoggletool(...   % Open Map toolbar button
-  'Parent',hToolbar,...
-  'TooltipString','Map and ship track',...
-  'Separator', 'on', ...
-  'CData',iconRead(...
-  [DEFAULT_PATH_FILE 'tsg_icon' filesep 'mapicon.mat']),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_MAP',...
-  'UserData', 'off', ...
-  'Enable', 'off',...
-  'OffCallback', @Map_OffMenuCallback,...
-  'OnCallback',  @Map_OnMenuCallback);
-hClimToggletool  =   uitoggletool(...   % Open Climatology toolbar button
-  'Parent',hToolbar,...
-  'TooltipString','Climatology',...
-  'CData',iconRead(...
-  [DEFAULT_PATH_FILE 'tsg_icon' filesep 'climicon.mat']),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_CLIM',...
-  'UserData', 'off',...
-  'Enable', 'off',...
-  'OffCallback', @Clim_OffMenuCallback,...
-  'OnCallback',  @Clim_OnMenuCallback);
-hCalToggletool  =   uitoggletool(...   % 
-  'Parent',hToolbar,...
-  'TooltipString','Calibration sensors',...
-  'Separator', 'on', ...
-  'CData',iconRead(...
-  [DEFAULT_PATH_FILE 'tsg_icon' filesep 'outils.mat']),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_CAL',...
-  'UserData', 'off',...
-  'Enable', 'off',...
-  'OffCallback', @Cal_OffMenuCallback,...
-  'OnCallback',  @Cal_OnMenuCallback);
-hInterpToggletool  =   uitoggletool(...   % 
-  'Parent',hToolbar,...
-  'TooltipString','Interpolate missing position',...
-  'CData',iconRead(...
-  [DEFAULT_PATH_FILE 'tsg_icon' filesep 'interp.mat']),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_INTERP',...
-  'UserData', 'off',...
-  'Enable', 'off',...
-  'OffCallback', @Inter_OffMenuCallback,...
-  'OnCallback',  @Inter_OnMenuCallback);
-hBottleToggletool  = uitoggletool(...   % Correction module toolbar button
-  'Parent',hToolbar,...
-  'TooltipString','Correct the SSS TSG data',...
-  'CData',iconRead(...
-  [DEFAULT_PATH_FILE 'tsg_icon' filesep 'bottleicon.mat']),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_BOTTLE',...
-  'UserData', 'off',...
-  'Enable', 'off',...
-  'OffCallback', @Bottle_OffMenuCallback,...
-  'OnCallback',  @Bottle_OnMenuCallback);
-
-hHeaderPushtool  = uipushtool(...   % Open headerForm button
-  'Parent',hToolbar,...
-  'TooltipString','Fill the header form',...
-  'Separator', 'on', ...
-  'CData',iconRead(...
-  [DEFAULT_PATH_FILE 'tsg_icon' filesep 'hdricon.mat']),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_HEADER',...
-  'Enable', 'off',...
-  'ClickedCallback', @HeaderMenuCallback);
-
-hReportPushtool  = uipushtool(...   % Open Report saving button
-  'Parent',hToolbar,...
-  'TooltipString','Save a report',...
-  'CData',iconRead(...
-  [DEFAULT_PATH_FILE 'tsg_icon' filesep 'reporticon.mat']),...
-  'HandleVisibility','on', ...
-  'Tag','PUSHTOOL_REPORT',...
-  'Enable', 'off',...
-  'ClickedCallback', @ReportMenuCallback);
-
-%% Dynamic text area
-%   -----------------------------------------------------------------------
-%  Dynamic text area that displays the loaded filename, date, position and
-%  salinity, temperature
-%  ------------------------------------------------------------------------
-
-% Create an uipanel
-% -----------------
-hInfoPanel = uipanel( ...
-  'Parent', hMainFig, ...
-  'Units', 'normalized', ...
-  'BorderType', 'none',...
-  'Visible', 'on', ...
-  'Position',[.01, .96, .98, .04]);
-
-% Dynamic text area that displays the date
-% ----------------------------------------
-uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Units', 'normalized', ...
-  'Style', 'Text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Fontweight', 'bold', ...
-  'HorizontalAlignment', 'left', ...
-  'Position',[.01, .25, .04, .6], ...
-  'String', 'File:');
-hInfoFileText = uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Style', 'text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Visible','on',...
-  'Units', 'normalized',...
-  'HorizontalAlignment', 'left', ...
-  'String', 'No file loaded', ...
-  'Position', [.05, .25, .1, .6]);
-
-% Text area that displays the date
-% --------------------------------
-uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Units', 'normalized', ...
-  'Style', 'Text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Fontweight', 'bold', ...
-  'HorizontalAlignment', 'left', ...
-  'Position',[.15, .25, .04, .6], ...
-  'String', 'Date:');
-hInfoDateText = uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Style', 'text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Visible','on',...
-  'Units', 'normalized',...
-  'HorizontalAlignment', 'left', ...
-  'String', 'N/A', ...
-  'Position', [.20, .25, .13, .6]);
-
-% Text area that displays the latitude
-% ------------------------------------
-uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Units', 'normalized', ...
-  'Style', 'Text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Fontweight', 'bold', ...
-  'HorizontalAlignment', 'left', ...
-  'Position',[.33, .25, .06, .6], ...
-  'String', 'Latitude:');
-hInfoLatText = uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Style', 'text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Visible','on',...
-  'Units', 'normalized',...
-  'HorizontalAlignment', 'left', ...
-  'String', 'N/A', ...
-  'Position', [.4, .25, .9, .6]);
-
-% Text area that displays the longitude
-% -------------------------------------
-uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Units', 'normalized', ...
-  'Style', 'Text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Fontweight', 'bold', ...
-  'HorizontalAlignment', 'left', ...
-  'Position',[.495, .25, .08, .6], ...
-  'String', 'Longitude:');
-hInfoLongText = uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Style', 'text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Visible','on',...
-  'Units', 'normalized',...
-  'HorizontalAlignment', 'left', ...
-  'String', 'N/A', ...
-  'Position', [.585, .25, .09, .6]);
-
-% Text area that display salinity and temperature
-% -----------------------------------------------
-uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Units', 'normalized', ...
-  'Style', 'Text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Fontweight', 'bold', ...
-  'HorizontalAlignment', 'left', ...
-  'Position', [.68, .25, .05, .6], ...
-  'String', 'SSPS:');
-hInfoSSPSText = uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Style', 'text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Visible','on',...
-  'Units', 'normalized',...
-  'HorizontalAlignment', 'left', ...
-  'String', 'N/A', ...
-  'Position', [.73, .25, .05, .6]);
-uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Units', 'normalized', ...
-  'Style', 'Text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Fontweight', 'bold', ...
-  'HorizontalAlignment', 'left', ...
-  'Position',[.785, .25, .05, .6], ...
-  'String', 'SSJT:');
-hInfoSSJTText = uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Style', 'text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Visible','on',...
-  'Units', 'normalized',...
-  'HorizontalAlignment', 'left', ...
-  'String', 'N/A', ...
-  'Position', [.835, .25, .05, .6]);
-uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Units', 'normalized', ...
-  'Style', 'Text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Fontweight', 'bold', ...
-  'HorizontalAlignment', 'left', ...
-  'Position',[.89, .25, .05, .6], ...
-  'String', 'SSTP:');
-hInfoSSTPText = uicontrol(...
-  'Parent', hInfoPanel, ...
-  'Style', 'text', ...
-  'Fontsize', tsg.fontSize, ...
-  'Visible','on',...
-  'Units', 'normalized',...
-  'HorizontalAlignment', 'left', ...
-  'String', 'N/A', ...
-  'Position', [.94, .25, .05, .6]);
-
-%% Plot axes
-%   -----------------------------------------------------------------------
-% The axes 1,2 and 3 will be plot in a uipanel
-% axe 1 as propertie 'HandleVisibility' set to 'on' to prevent hidden 
-% visibility when first plot is empty
-%--------------------------------------------------------------------
-hPlotsPanel = uipanel( ...
-  'Parent', hMainFig, ...
-  'Units', 'normalized', ...
-  'BorderType', 'etchedin',...
-  'Visible', 'on',...
-  'Position',[0.15, 0.0, .85, .95]); 
-hPlotAxes(1) = axes( 'Parent', hPlotsPanel, 'Visible', 'off', ...
-  'box', 'on', 'Units', 'normalized','Tag', 'TAG_AXES_1', ...
-  'HandleVisibility','on', 'Position',[.05, .64, .93, .35]);
-hPlotAxes(2) = axes( 'Parent', hPlotsPanel, 'Visible', 'off',...
-  'box', 'on', 'Units', 'normalized', 'Tag', 'TAG_AXES_2', ...
-  'HandleVisibility','on', 'Position',[.05, .33, .93, .27]);
-hPlotAxes(3) = axes('Parent', hPlotsPanel, 'Visible', 'off',...
-  'box', 'on', 'Units', 'normalized', 'Tag', 'TAG_AXES_3', ...
-  'HandleVisibility','on', 'Position',[.05, .02, .93, .27]);
-
-% The map will be plot in a uipanel
-hMapPanel = uipanel( ...
-  'Parent', hMainFig, ...
-  'Units', 'normalized', ...
-  'Visible', 'off', ...
-  'Position',[0.15, 0, .85, .58]);
-hPlotAxes(4) = axes(...     % the axes for plotting ship track map
-  'Parent', hMapPanel, ...
-  'Units', 'normalized', ...
-  'Visible', 'off', ...
-  'Tag', 'TAG_AXES_MAP', ...  
-  'Color', 'none', ...
-  'UserData', 'off', ...
-  'HandleVisibility','on', ...
-  'Position',[.05, .05, .9, .9]);
-
-%% uipanel for Quality Control Buttons - uibutton group 
-%   -----------------------------------------------------------------------
-hbgQc = uibuttongroup(...
-  'Parent', hMainFig, ...
-  'Title', 'Validation Codes', ...
-  'FontSize', tsg.fontSize-1, 'Fontweight', 'bold', ...
-  'tag', 'TAG_QC_DISPLAY_PANEL',...
-  'HandleVisibility','on',...
-  'Visible', 'off',...
-  'BorderType', 'etchedin',...
-  'Units', 'normalized', 'Position', [.0, .71, .15, .25]);
-
-% Initialize CallBack for button group properties
-% ----------------------------------------------- 
-set(hbgQc,'SelectionChangeFcn',@RadiobuttonQc);
-
-%% Context Menu and RadioButtons for Quality control
-%   -----------------------------------------------------------------------
-hQcCmenu = uicontextmenu(...
-  'Parent', hMainFig, ...
-  'HandleVisibility','on' );
-
-% get list of keys from hashtable tsg.qc.hash, defined inside
-% tsg_initialisation.m
-% -----------------------------------------------------------
-qc_list = get(tsg.qc.hash);
-
-% internal loop count with state to on
-% ------------------------------------
-count = 0;
-
-% iterate (loop) on each key store inside hastable
-% ------------------------------------------------
-for i=1:numel(qc_list)
-  
-  % get key and some values in hashtable
-  % ------------------------------------
-  key   = qc_list{i};
-  label = get(tsg.qc.hash, key, 'label');
-  color = get(tsg.qc.hash, key, 'color');
-  state = get(tsg.qc.hash, key, 'state');
-  
-  % construct context menu with only code set to 'on' (valid)
-  % ---------------------------------------------------------
-  if strcmp( state, 'on')
-    
-    % add menu to hQcCmenu uicontextmenu
-    % ----------------------------------
-    uimenu(...
-      'Parent', hQcCmenu,...
-      'HandleVisibility','on', ...
-      'Label', label,...
-      'ForegroundColor', color,...
-      'Callback', {@Qc, key});
-    
-    % add button QC to hbgQc uibuttongroup
-    % ------------------------------------
-    uicontrol(...
-      'Parent', hbgQc,...
-      'Style', 'radiobutton',...
-      'Fontsize', tsg.fontSize-1, 'ForegroundColor', color,...
-      'HorizontalAlignment', 'left', ...
-      'HandleVisibility','on', ...
-      'String', label,...
-      'Tag', ['TAG_QC_RADIO_' key], ...
-      'Units', 'normalized', 'Position', [.01, .85-count*.12, .6, 0.09]);
-    
-    % add text QC display statistic on hQcPanel
-    % -----------------------------------------
-    uicontrol(...
-      'Parent', hbgQc,...
-      'Style', 'text',...
-      'Fontsize', tsg.fontSize-1, 'ForegroundColor', color,...
-      'HorizontalAlignment', 'right', ...
-      'HandleVisibility','on', ...
-      'String', 'N/A ',...
-      'Tag', ['TAG_QC_TEXT_' key],...
-      'Units', 'normalized', 'Position', [.61, .85-count*.12, .37, 0.09]);
-    
-    % increment count
-    % ---------------
-    count = count + 1;
-  end
-end
-
-%% uibutton group panel - Choose the parameter (SSPS - SSTP - SSJT)
-%   -----------------------------------------------------------------------
-hbgParameter = uibuttongroup(...
-  'Parent', hMainFig, ...
-  'Title', 'TSG Parameter', ...
-  'FontSize', tsg.fontSize-1, 'Fontweight', 'bold', ...
-  'tag', 'TAG_PARA_DISPLAY_PANEL',...
-  'HandleVisibility','on',...
-  'Visible', 'off',...
-  'BorderType', 'etchedin',...
-  'Units', 'normalized', 'Position', [.0, .81, .15, .15]);
-
-para    = [ 'SSPS'; 'SSJT'; 'SSTP' ];
-strPara = [ ['Salinity ' para(1,:) '   ']; ...
-            ['Temperature ' para(2,:)]; ...
-            ['Temperature ' para(3,:)] ];  
-for i = 1:3
-
-  % add button QC to hbgParameter uibuttongroup
-  % -------------------------------------------
-  uicontrol(...
-    'Parent', hbgParameter,...
-    'Style', 'radiobutton',...
-    'Fontsize', tsg.fontSize-1, 'ForegroundColor', color,...
-    'HorizontalAlignment', 'left', ...
-    'HandleVisibility','on', ...
-    'String', strPara(i, :),...
-    'Tag', ['TAG_PARA_RADIO_' para(i,:)], ...
-    'Units', 'normalized', 'Position', [.05, .8-(i-1)*.30, .90, 0.12]);
-
-end
-
-% Initialize CallBack for button group properties
-% ----------------------------------------------- 
-set(hbgParameter,'SelectionChangeFcn',@RadiobuttonParameter);
-
-
-%% uiButtonGroup set to choose the Correction method
-% -------------------------------------------------------------------------
-
-% Create the button group
-hbgCorMethod = uibuttongroup( ...
-  'Parent',hMainFig, ...
-  'Title','Correction Method', ...
-  'Units', 'normalized', ...
-  'FontSize',tsg.fontSize-1, 'Fontweight', 'bold',...
-  'Visible', 'off', ...
-  'Position',[.0, .25, .15, .18]);
-
-% Create 2 radio buttons in the button group
-hrbCorCancel = uicontrol( ...
-  'Style','pushbutton', ...
-  'Parent',hbgCorMethod, ...
-  'Units', 'normalized', ...
-  'String','Cancel the adjustment',...
-  'FontSize',tsg.fontSize-1,...
-  'Tag', 'CORRECT_CANCEL_PUSH', ...
-  'pos',[.05 .08 .9 .25],...
-  'HandleVisibility', handleVisibility, ...
-  'Callback', @CorCancelCallback);
-hrbCorLinear = uicontrol( ...
-  'Style','pushbutton', ...
-  'Parent',hbgCorMethod, ...
-  'Units', 'normalized', ...
-  'String','Linear adjustment',...
-  'FontSize',tsg.fontSize-1,...
-  'Tag', 'CORRECT_LINEAR_PUSH', ...
-  'pos',[.05 .38 .9 .25], ...
-  'HandleVisibility', handleVisibility, ...
-  'Callback', @CorLinearCallback);
-hrbCorMedian = uicontrol( ...
-  'Style','pushbutton', ...
-  'Parent',hbgCorMethod, ...
-  'Units', 'normalized', ...
-  'String','Running median filter',...
-  'FontSize',tsg.fontSize-1,...
-  'Tag', 'CORRECT_MEDIAN_PUSH', ...
-  'pos',[.05 .68 .9 .25], ...
-  'HandleVisibility', handleVisibility, ...
-  'Callback', @CorMedianCallback);
-
-%% uiPanel for the Date limits used in the Correction module
-
-% Choose the date limits for the correction
-% --------------------------------------------------
-% Create the uipanel
-hpDateLimit = uipanel( ...
-  'Parent', hMainFig, ...
-  'Title', 'Date Limits', ...
-  'Units', 'normalized', ...
-  'FontSize', tsg.fontSize-1, 'Fontweight', 'bold', ...
-  'Visible', 'off', ...
-  'Position', [.0, .46, .15, .18]);
-
-htDateMin = uicontrol( ...
-  'Parent', hpDateLimit, ...
-  'Style', 'Text', ...
-  'String', 'Min : yyyy-mm-dd hh:mm:ss', ...
-  'HorizontalAlignment', 'left', ...
-  'Units', 'normalized', ...
-  'FontSize', tsg.fontSize-1, ...
-  'Position',[.01 .8 .95 .15]);
-hetDateMin = uicontrol( ...
-  'Parent', hpDateLimit, ...
-  'Style', 'edit', ...
-  'Units', 'normalized', ...
-  'BackgroundColor', 'white',...
-  'FontSize', tsg.fontSize, ...
-  'Tag', 'CORRECT_DATEMIN_EDIT',...
-  'Position',[.01 .6 .95 .17]);
-
-htDateMax = uicontrol( ...
-  'Parent', hpDateLimit, ...
-  'Style', 'Text', ...
-  'String', 'Max : yyyy-mm-dd hh:mm:ss', ...
-  'HorizontalAlignment', 'left', ...
-  'Units', 'normalized', ...
-  'FontSize', tsg.fontSize-1, ...
-  'Position',[.01 .35 .95 .15]);
-hetDateMax = uicontrol( ...
-  'Parent', hpDateLimit, ...
-  'Style', 'edit', ...
-  'Units', 'normalized', ...
-  'BackgroundColor', 'white',...
-  'FontSize', tsg.fontSize, ...
-  'Tag', 'CORRECT_DATEMAX_EDIT',...
-  'Position',[.01 .15 .95 .17]);
-
-%% uiPanel for the Calibration coefficient used the Correction module
-
-% Create the uipanel
-hpCalCoef = uipanel( ...
-  'Parent', hMainFig, ...
-  'Title', 'Calibration', ...
-  'FontSize', tsg.fontSize-1, 'Fontweight', 'bold', ...
-  'Visible', 'off', ...
-  'Units', 'normalized','Position', [.0, .46, .15, .50]);
-
- htCalCNDC1 = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'Text', 'String', 'Conductivity : C = A*C + B', ...
-   'HorizontalAlignment', 'left', 'FontSize', tsg.fontSize-1, ...
-   'Units', 'normalized', 'Position',[.01 .925 .95 .05]);
- htCalCNDC2 = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'Text', 'String', 'A', ...
-   'HorizontalAlignment', 'left', 'FontSize', tsg.fontSize-1, ...
-   'Units', 'normalized', 'Position',[.01 .85 .08 .05]);
- hetCalCNDCSlope = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'edit', ...
-   'FontSize', tsg.fontSize, 'BackgroundColor', 'white',...
-   'Tag', 'CORRECT_CAL_CNDC_A',...
-   'HandleVisibility','on', ...
-   'Units', 'normalized', 'Position',[.1 .85 .85 .05]);
- htCalCNDC3 = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'Text', 'String', 'B', ...
-   'HorizontalAlignment', 'left',  'FontSize', tsg.fontSize-1, ...
-   'Units', 'normalized', 'Position',[.01 .775 .08 .05]);
- hetCalCNDCOffset = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'edit', ...
-   'FontSize', tsg.fontSize, 'BackgroundColor', 'white',...
-   'HandleVisibility','on', ...
-   'Tag', 'CORRECT_CAL_CNDC_B',...
-   'Units', 'normalized', 'Position',[.1 .775 .85 .05]);
-
- htCalSSJT1 = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'Text', 'String', 'SSJT : T = A*T + B', ...
-   'HorizontalAlignment', 'left', 'FontSize', tsg.fontSize-1, ...
-   'Units', 'normalized', 'Position',[.01 .675 .95 .05]);
- htCalSSJT2 = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'Text', 'String', 'A', ...
-   'HorizontalAlignment', 'left', 'FontSize', tsg.fontSize-1, ...
-   'Units', 'normalized', 'Position',[.01 .6 .08 .05]);
- hetCalSSJTSlope = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'edit', ...
-   'BackgroundColor', 'white',...
-   'FontSize', tsg.fontSize, ...
-   'HandleVisibility','on', ...
-   'Tag', 'CORRECT_CAL_SSJT_A',...
-   'Units', 'normalized', 'Position',[.1 .6 .85 .05]);
- htCalSSJT3 = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'Text', 'String', 'B', ...
-   'HorizontalAlignment', 'left', 'FontSize', tsg.fontSize-1, ...
-   'Units', 'normalized', 'Position',[.01 .525 .08 .05]);
- hetCalSSJTOffset = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'edit', ...
-   'FontSize', tsg.fontSize, 'BackgroundColor', 'white',...
-   'HandleVisibility','on', ...
-   'Tag', 'CORRECT_CAL_SSJT_B',...
-   'Units', 'normalized', 'Position',[.1 .525 .85 .05]);
-
- htCalSSTP1 = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'Text', 'String', 'SSPT : T = A*T + B', ...
-   'HorizontalAlignment', 'left', 'FontSize', tsg.fontSize-1, ...
-   'Units', 'normalized', 'Position',[.01 .425 .95 .05]);
- htCalSSTP2 = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'Text', 'String', 'A', ...
-   'HorizontalAlignment', 'left', 'FontSize', tsg.fontSize-1, ...
-   'Units', 'normalized', 'Position',[.01 .35 .08 .05]);
- hetCalSSTPSlope = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'edit', ...
-   'BackgroundColor', 'white',...
-   'FontSize', tsg.fontSize, ...
-   'HandleVisibility','on', ...
-   'Tag', 'CORRECT_CAL_SSJT_A',...
-   'Units', 'normalized', 'Position',[.1 .35 .85 .05]);
- htCalSSTP3 = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'Text', 'String', 'B', ...
-   'HorizontalAlignment', 'left', 'FontSize', tsg.fontSize-1, ...
-   'Units', 'normalized', 'Position',[.01 .275 .08 .05]);
- hetCalSSTPOffset = uicontrol( ...
-   'Parent', hpCalCoef, ...
-   'Style', 'edit', ...
-   'FontSize', tsg.fontSize, 'BackgroundColor', 'white',...
-   'HandleVisibility','on', ...
-   'Tag', 'CORRECT_CAL_SSJT_B',...
-   'Units', 'normalized', 'Position',[.1 .275 .85 .05]);
-
- hrbCal = uicontrol( ...
-  'Style','pushbutton', 'Parent',hpCalCoef, ...
-  'String','Calibrate',...
-  'FontSize',tsg.fontSize-1,...
-  'Tag', 'CORRECT_CAL_PUSH', ...
-  'Units', 'normalized','pos',[.05 .15 .9 .075], ...
-  'HandleVisibility', handleVisibility, ...
-  'Callback', @CalibrateCallback);
- hrbCancelCal = uicontrol( ...
-  'Style','pushbutton', 'Parent',hpCalCoef, ...
-  'String','Cancel calibration',...
-  'FontSize',tsg.fontSize-1,...
-  'Tag', 'CORRECT_CAL_PUSH', ...
-  'Units', 'normalized','pos',[.05 .05 .9 .075], ...
-  'HandleVisibility', handleVisibility, ...
-  'Callback', @CancelCalibrationCallback);
-
-
-%% uiPanel for Interpolation of position
-
-% Create the uipanel
-hpInterpPos = uipanel( ...
-  'Parent', hMainFig, ...
-  'Title', 'Lat-Lon interpolation', ...
-  'FontSize', tsg.fontSize-1, 'Fontweight', 'bold', ...
-  'Visible', 'off', ...
-  'Units', 'normalized','Position', [.0, .75, .15, .21]);
-hrbInterpLinear = uicontrol( ...
-  'Style','pushbutton', 'Parent',hpInterpPos, ...
-  'String','Linear interpolation',...
-  'FontSize',tsg.fontSize-1,...
-  'Tag', 'TAG_PUSH_INTERP_LINEAR', ...
-  'Units', 'normalized','pos',[.05 .65 .9 .25], ...
-  'HandleVisibility', handleVisibility, ...
-  'Callback', @InterpPosLinearCallback);
-hrbInterpOther = uicontrol( ...
-  'Style','pushbutton', 'Parent',hpInterpPos, ...
-  'String','Other method',...
-  'FontSize',tsg.fontSize-1,...
-  'Tag', 'TAG_PUSH_INTERP_OTHER', ...
-  'Units', 'normalized','pos',[.05 .35 .9 .25], ...
-  'HandleVisibility', handleVisibility, ...
-  'Callback', @InterpPosOtherCallback);
-hrbInterpCancel = uicontrol( ...
-  'Style','pushbutton', 'Parent',hpInterpPos, ...
-  'String','Cancel interpolation',...
-  'FontSize',tsg.fontSize-1,...
-  'Tag', 'TAG_PUSH_INTERP_CANCEL', ...
-  'Units', 'normalized','pos',[.05 .05 .9 .25], ...
-  'HandleVisibility', handleVisibility, ...
-  'Callback', @InterpPosCancelCallback);
-
-
-%% test if user preference autoload field is checked (on)
-% -------------------------------------------------------
-if strcmp(tsg.preference.autoload, 'on')
-  
-  % A TSG file has been open and read
-  % ---------------------------------
-  set( hOpenMenu, 'UserData', 'on' );
-
-  % Show handles marked as hidden with HandleVisibility property set to
-  % callback or off
-  % -------------------------------------------------------------------
-  set(0, 'ShowHiddenHandles', 'on');
-  
-  % enable toolbar menu pushtool
-  % ----------------------------
-  hdl_pushtool = findobj('-regexp','Tag', 'PUSHTOOL_');
-  set(hdl_pushtool, 'Enable', 'on');
-
-  % enable Save menu
-  % ----------------
-  set(hSaveMenu, 'Enable', 'on');
-
-  % update the filename display
-  % ---------------------------
-  set( hInfoFileText, 'String', strcat(tsg.file.name, tsg.file.ext));
-
-  % update some fields in tsg structure
-  % -----------------------------------
-  updateTsgStruct( hMainFig );
-
-  % Get application data for the test
-  % ---------------------------------
-  tsg = getappdata( hMainFig, 'tsg_data');
-  
-  % Get the default parameter
-  % -------------------------
-  PARA = tsg.preference.parameter;
-  
-  % The smooth TSG time series (tsg_moveaverage) is
-  % no more computed : too long
-  % We now computed a smooth value only at the position of the sample
-  % in diffTsgSample
-  % -----------------------------------------------------------------
-  %tsg_moveaverage( hMainFig, PARA );
-
-  % Merge sample from different origins : WS and EXT
-  % ------------------------------------------------
-  tsg_mergesample( hMainFig, PARA );
-  
-  % Draw the 3 plots of the validation figure
-  % The plots need to be re-initialize because of a bug with
-  % the zoom function. When you open a new TSG file and you
-  % have used the zoom funtion with the preceding file.
-  % The zoom function keep the X and Y limits of the preceding file
-  % ---------------------------------------------------------------
-  delete( hPlotAxes(1) );
-  delete( hPlotAxes(2) );
-  delete( hPlotAxes(3) );
-
-  hPlotAxes(1) = axes( 'Parent', hPlotsPanel, 'Visible', 'off', ...
-    'box', 'on', 'Units', 'normalized','Tag', 'TAG_AXES_1', ...
-    'HandleVisibility','on', 'Position',[.05, .64, .93, .35]);
-  hPlotAxes(2) = axes( 'Parent', hPlotsPanel, 'Visible', 'off',...
-    'box', 'on', 'Units', 'normalized', 'Tag', 'TAG_AXES_2', ...
-    'HandleVisibility','on', 'Position',[.05, .33, .93, .27]);
-  hPlotAxes(3) = axes('Parent', hPlotsPanel, 'Visible', 'off',...
-    'box', 'on', 'Units', 'normalized', 'Tag', 'TAG_AXES_3', ...
-    'HandleVisibility','on', 'Position',[.05, .02, .93, .27]);
-  
-  resetAxes( hMainFig, hPlotAxes );
-  
-  plot_Validation( hMainFig, hPlotAxes, 1, PARA );
-  plot_Validation( hMainFig, hPlotAxes, 2, 'SSJT' );
-  plot_Validation( hMainFig, hPlotAxes, 3, 'SPDC' );
- 
-  % Draw the map with the ship track
-  % --------------------------------
-  plot_map( hMainFig, hPlotAxes);
-
-  % The callback to detect the mouse motion can be set to on
-  % --------------------------------------------------------
-  set( hMainFig, 'UserData', 'ButtonMotionOn');
-
-  % Hide handles marked as hidden with HandleVisibility property set to
-  % callback or off
-  % -------------------------------------------------------------------
-  set(0, 'ShowHiddenHandles', 'off');
-  
-end
-
-
-%% *************************** CALLBACKS **********************************
-
-%% OpenMenuCallback
-  %----------------------------------------------------------------------
-  % Callback function run when the Open menu item is selected
-  %----------------------------------------------------------------------
-  function OpenMenuCallback(hObject, eventdata)
-      
-    % Activate or desactivate uipanels
-    % --------------------------------
-    set( hpCalCoef,            'Visible', 'off' );
-    set( hpDateLimit,          'Visible', 'off' );
-    set( hpInterpPos,          'Visible', 'off' );
-%    set( hbgParameter,         'Visible', 'off');
-    
-    % Toggle button
-    % -------------
-    set( hBottleToggletool,    'state', 'off' );
-    set( hCalToggletool,       'state', 'off' );
-    set( hClimToggletool,      'state', 'off' );
-    set( hInterpToggletool,    'state', 'off' );
-    set( hPanToggletool,       'state', 'off' );
-    set( hQCToggletool,        'state', 'off' );
-    set( hTimelimitToggletool, 'state', 'off' );
-    set( hZoomToggletool,      'state', 'off' );
-    
-    set( hHeaderPushtool,      'enable', 'off' );
-
-    % Open standard dialog box for retrieving files
-    % ---------------------------------------------
-    [fileName, pathname, filterIndex] = uigetfile( ...
-      {'*.tsg';'*.xml';'*.nc';'*.lbv';'*.btl'; '*.arg'}, 'Pick a file');
-
-    % flushes the event queue and updates the closed uigetfile window
-    % ---------------------------------------------------------------
-     drawnow;
-    
-    % if the user clicks the Cancel button or closes the dialog window, 
-    % FileName and PathName are set to 0.
-    % -----------------------------------------------------------------
-    if ~isequal(fileName, 0)
-      
-      % Pointer set to watch during reading and plotting
-      % ------------------------------------------------
-      set( hMainFig, 'Pointer', 'watch' );
-
-      % construct valid and full file path
-      % -----------------------------------
-      fullFileName = strcat(pathname, fileName);
-
-      % Read the data
-      % -------------
-      errTsg = -2;
-      errSpl = -2;
-      switch filterIndex
-
-        case 1                      % read  TSG text file *.txt
-          tsg_initialisation(hMainFig);
-errTsg = readTsgDataTsg( hMainFig, fullFileName);
-          %errTsg = readTsgDataTxt(     hMainFig, fullFileName );
-
-        case 2                      % read TSG XML file *.xml
-          tsg_initialisation(hMainFig);
-          errTsg = readTsgDataXML(     hMainFig, fullFileName );
-
-        case 3                      % read TSG netcdf file *.nc
-          tsg_initialisation(hMainFig);
-          errTsg = readTsgDataNetCDF(  hMainFig, fullFileName );
-          
-        case 4                      % read TSG labview file *.lbv          
-          tsg_initialisation(hMainFig);
-          errTsg = readTsgDataLabview( hMainFig, fullFileName );
-
-        case 5                      % Read bucket file *.btl
-          if ~isempty( tsg.SSPS )
-            errSpl = readBucketData(     hMainFig, fullFileName );
-          else
-            msgbox( 'Load a TSG file before a Water sample file', 'Read Bucket');
-          end
-
-        case 6                       % Read Argo file *.arg (G. Reverdin format)
-          if ~isempty( tsg.SSPS )
-            errSpl = readCoriolisData(   hMainFig, fullFileName );
-          else
-            msgbox( 'Load a TSG file before a Water sample file', 'Read Bucket');
-          end
-
-        otherwise
-
-          % Reset pointer to arrow
-          % ----------------------
-          set( hMainFig, 'Pointer', 'arrow' );
-          
-          % diplay warning msgbox
-          % ---------------------
-          msgbox( {['Invalid TSG file: ' fileName],...
-            'Please select another file'},...
-            'Warning open file', 'warn', 'modal' );
-          
-          return;
-          
-      end    % switch filterIndex
-      
-      % Get the tsg structure
-      % ---------------------
-      tsg = getappdata( hMainFig, 'tsg_data');
-      
-      % Default parameter
-      % -----------------
-      PARA = tsg.preference.parameter;
-
-      % A TSG file has been read
-      % ------------------------
-      if errTsg > 0
-        
-        % set WindowButtonMotionFcn on
-        % ----------------------------
-        set( hMainFig, 'WindowButtonMotionFcn', @MouseMotion);
-
-        % A TSG file has been open and read
-        % ---------------------------------
-        set( hOpenMenu, 'UserData', 'on' );
-        
-        % enable toolbar menu pushtool
-        % ----------------------------
-        hdl_pushtool = findobj('-regexp','Tag', 'PUSHTOOL_');
-        set(hdl_pushtool, 'Enable', 'on');
-        
-        set( hbgParameter, 'Visible', 'on');
-        
-        % Enable Save and Export menu
-        % ---------------------------
-        set(hSaveMenu,   'Enable', 'on');
-        set(hExportMenu, 'Enable', 'on');
-        
-        % update some fields in tsg structure and restore tsg
-        % ---------------------------------------------------
-        updateTsgStruct(hMainFig );
-
-        % update the filename display
-        % ---------------------------
-        set( hInfoFileText, 'String', strcat(tsg.file.name, tsg.file.ext));
-        
-        % The smooth TSG time series (tsg_moveaverage) is
-        % no more computed : too long
-        % We now computed a smooth value only at the position of the sample
-        % in diffTsgSample
-        % -----------------------------------------------------------------
-        %tsg_moveaverage(hMainFig, PARA);
-        
-        % The callback to detect the mouse motion can be set to on
-        % --------------------------------------------------------
-        set( hMainFig, 'UserData', 'ButtonMotionOn');
-        
-        % Update QC statistics
-        % --------------------
-        display_QC( hMainFig, hPlotAxes);
-        
-      elseif errTsg > -2
-        
-        % Problem to read the file or
-        % Choice of parameters for Labview file canceled by the user
-        % TSG structure has been reinitialize       
-        % Disable toolbar menu pushtool except the open file button
-        % ----------------------------------------------------------
-        hdl_pushtool = findobj('-regexp','Tag', 'PUSHTOOL_');
-        set(hdl_pushtool, 'Enable', 'off');
-        
-        set( hOpenPushtool, 'Enable', 'on' );
-
-      end    %if errTsg > 0
-      
-      % Merge sample from different origins : WS and EXT
-      % ------------------------------------------------
-      tsg_mergesample( hMainFig, PARA );
-
-      % Draw the 3 plots of the validation figure
-      % The plots need to be re-initialize because of a bug with
-      % the zoom function. When you open a new TSG file and you
-      % have used the zoom funtion with the preceding file. 
-      % The zoom function keep the X and Y limits of the preceding file
-      % ---------------------------------------------------------------
-      delete( hPlotAxes(1) );
-      delete( hPlotAxes(2) );
-      delete( hPlotAxes(3) );
-      
-      hPlotAxes(1) = axes( 'Parent', hPlotsPanel, 'Visible', 'off', ...
-        'box', 'on', 'Units', 'normalized','Tag', 'TAG_AXES_1', ...
-        'HandleVisibility','on', 'Position',[.05, .64, .93, .35]);
-      hPlotAxes(2) = axes( 'Parent', hPlotsPanel, 'Visible', 'off',...
-        'box', 'on', 'Units', 'normalized', 'Tag', 'TAG_AXES_2', ...
-        'HandleVisibility','on', 'Position',[.05, .33, .93, .27]);
-      hPlotAxes(3) = axes('Parent', hPlotsPanel, 'Visible', 'off',...
-        'box', 'on', 'Units', 'normalized', 'Tag', 'TAG_AXES_3', ...
-        'HandleVisibility','on', 'Position',[.05, .02, .93, .27]);
-
-      resetAxes( hMainFig, hPlotAxes )
-     
-      plot_Validation( hMainFig, hPlotAxes, 1, PARA );
-      plot_Validation( hMainFig, hPlotAxes, 2, 'SSJT' );
-      plot_Validation( hMainFig, hPlotAxes, 3, 'SPDC' );
-
-      % Pointer reset to arrow
-      % ----------------------
-      set( hMainFig, 'Pointer', 'arrow' );
-
-    end    % if ~isequal(fileName, 0)
-
-  end
-
-%% Inter_OnMenuCallback ................................... Interpolation
-  %----------------------------------------------------------------------
-  % Callback function run when 
-  %
-  function Inter_OnMenuCallback( hObject, eventdata)
-
-    % Activate or desactivate uipanels
-    % --------------------------------
-    set( hpDateLimit,          'Visible', 'on' );
-    set( hpInterpPos,          'Visible', 'on' );
-    set( hpCalCoef,            'Visible', 'off');
-    set( hbgQc,                'Visible', 'off');
-    set( hbgParameter,         'Visible', 'off');
-    
-    % Toggle button
-    % -------------
-    set( hBottleToggletool,    'state', 'off', 'enable', 'off');
-    set( hCalToggletool,       'state', 'off', 'enable', 'off');
-    set( hClimToggletool,      'state', 'off', 'enable', 'off');
-    set( hPanToggletool,       'state', 'off', 'enable', 'on' );
-    set( hQCToggletool,        'enable', 'off');
-    set( hTimelimitToggletool, 'state', 'off', 'enable', 'on' );
-    set( hZoomToggletool,      'state', 'off', 'enable', 'on' );
-    
-    set( hHeaderPushtool,      'enable', 'off' );
-    
-    % Get application data TSG
-    % ------------------------
-    tsg = getappdata( hMainFig, 'tsg_data');
-    
-    % Get the information on time limits of the time series
-    % Write them in the uipanel
-    % -----------------------------------------------------
-    noNaN = tsg.DAYD(~isnan( tsg.DAYD ));
-    set( hetDateMin, 'String', datestr(noNaN(1), 31));
-    set( hetDateMax, 'String', datestr(noNaN(end), 31));
-   
-    % Draw the 3 plots of the interpolation figure 
-    % --------------------------------------------
-     plot_Interpolation( hMainFig, hPlotAxes, 1 );
-     plot_Interpolation( hMainFig, hPlotAxes, 2 );
-     plot_Interpolation( hMainFig, hPlotAxes, 3 );
-    
-  end
-
-%% Inter_OffMenuCallback .................................. Interpolation
-  %----------------------------------------------------------------------
-  % Callback function run when 
-  %
-  function Inter_OffMenuCallback( hObject, eventdata)
-    
-    % Activate or desactivate uipanels
-    % --------------------------------
-    set( hpCalCoef,            'Visible', 'off' );
-    set( hpDateLimit,          'Visible', 'off' );
-    set( hpInterpPos,          'Visible', 'off' );
-    set( hbgParameter,         'Visible', 'on'  );
-    
-    % Enable Pushbuttons
-    % ------------------
-    set( hBottleToggletool,    'state', 'off', 'enable', 'on' );
-    set( hCalToggletool,       'state', 'off', 'enable', 'on'  );
-    set( hClimToggletool,      'state', 'off', 'enable', 'on'  );
-    set( hPanToggletool,       'state', 'off', 'enable', 'on'  );
-    set( hQCToggletool,        'state', 'off', 'enable', 'on'  );
-    set( hTimelimitToggletool, 'state', 'off', 'enable', 'off' );
-    set( hZoomToggletool,      'state', 'off', 'enable', 'on'  );
-
-    set( hHeaderPushtool,      'enable', 'on' );
-
-    % Get tsg structure
-    % -----------------
-    tsg = getappdata( hMainFig, 'tsg_data' );
-    
-    % Draw the 3 plots of the validation figure 
-    % -----------------------------------------
-    plot_Validation( hMainFig, hPlotAxes, 1, tsg.preference.parameter );
-    plot_Validation( hMainFig, hPlotAxes, 2, 'SSJT' );
-    plot_Validation( hMainFig, hPlotAxes, 3, 'SPDC' );
-    
-    % Set the pointer
-    % ---------------
-    set( hMainFig, 'Pointer', 'arrow');
-
-  end
-
-%% InterpLinearCallback ...............................Interpolation Linear
-  %------------------------------------------------------------------------
-  % Callback function run when 
-  %----------------------------------------------------------------------
-  function InterpPosLinearCallback( hObject, eventdata)
-
-    % Get the time limits for the correction A TESTER
-    % --------------------------------------
-    dateMin = datenum(get( hetDateMin, 'String'), 'yyyy-mm-dd HH:MM:SS');
-    dateMax = datenum(get( hetDateMax, 'String'), 'yyyy-mm-dd HH:MM:SS');
-    
-    error = interpPosLinear( hMainFig, dateMin, dateMax );
-    
-    switch error
-
-      case 1
-
-        % Plot in the 3 axes
-        % ------------------
-        plot_Interpolation( hMainFig, hPlotAxes, 2 );
-        plot_Interpolation( hMainFig, hPlotAxes, 3 );
-
-      case -1
-        msgbox( 'Date limits are not correct',...
-          'Correction module', 'warn', 'modal');
-    end
-
-
-  end
-
-%% InterpOtherCallback ...............................Interpolation OTher
-  %----------------------------------------------------------------------
-  % Callback function run when 
-  %----------------------------------------------------------------------
-  function InterpPosOtherCallback( hObject, eventdata)
-
-    msgbox( 'Method not yet implemented', ...
-            'Function InterpOtherCallback', ...
-            'warn',...
-            'modal' );
-  end
-
-%% InterpPosCancelCallback ..........................Cancel Interpolation
-  %----------------------------------------------------------------------
-  function InterpPosCancelCallback(hObject, eventdata)
-    % Callback function run when
-    
-    % Get tsg application data
-    % ------------------------
-    tsg = getappdata( hMainFig, 'tsg_data' );
-    
-    % Get NO_CONTROL and INTERPOLATED_VALUE codes
-    % -------------------------------------------
-    NO_CONTROL         = get(tsg.qc.hash, 'NO_CONTROL', 'code');
-    INTERPOLATED_VALUE = get(tsg.qc.hash, 'INTERPOLATED_VALUE', 'code');
-
-    if ~isempty( tsg.POSITION_QC )
-      iINTERP = find(  tsg.POSITION_QC == INTERPOLATED_VALUE);
-      tsg.LATX( iINTERP ) = NaN * ones( size( iINTERP), 1 );
-      tsg.LONX( iINTERP ) = NaN * ones( size( iINTERP), 1 );
-      tsg.POSITION_QC = [];
-    end
-    
-    % Save tsg application data
-    % --------------------------
-    setappdata( hMainFig, 'tsg_data', tsg );
-    
-    % Refresh plots
-    % -------------
-    plot_Interpolation( hMainFig, hPlotAxes, 1 );
-    plot_Interpolation( hMainFig, hPlotAxes, 2 );
-    plot_Interpolation( hMainFig, hPlotAxes, 3 );
-
-  end
-
-
-%% Cal_OnMenuCallback ..................................... Calibration
-  %----------------------------------------------------------------------
-  % Callback function run when 
-  %----------------------------------------------------------------------
-  function Cal_OnMenuCallback( hObject, eventdata)
-   
-    % Activate or desactivate uipanels
-    % --------------------------------
-    set( hpCalCoef,         'Visible', 'on' );
-    set( hbgParameter,      'Visible', 'off');
-    set( hbgQc,             'Visible', 'off');
-    
-    % Pushbutton
-    % ----------
-    set( hQCToggletool,     'enable', 'off' );
-    set( hClimToggletool,   'enable', 'off', 'state', 'off' );
-    set( hBottleToggletool, 'enable', 'off' );
-    set( hInterpToggletool, 'enable', 'off' );
-    set( hHeaderPushtool,   'enable', 'off' );
-
-    set( hPanToggletool,       'state', 'off', 'enable', 'on' );
-    set( hTimelimitToggletool, 'state', 'off', 'enable', 'off' );
-    set( hZoomToggletool,      'state', 'off', 'enable', 'on' );
-        
-    % Get tsg application data
-    % ------------------------
-    tsg = getappdata( hMainFig, 'tsg_data' );
-   
-    % Draw the 3 plots of the validation figure 
-    % -----------------------------------------
-    plot_Calibration( hMainFig, hPlotAxes, 1, 'SSPS' );
-    plot_Calibration( hMainFig, hPlotAxes, 2, 'SSJT' );
-    plot_Calibration( hMainFig, hPlotAxes, 3, 'SSTP' );
-    
-    % Write the Cal Coef in the Editable uicontrol
-    % --------------------------------------------
-    set( hetCalCNDCSlope,  'String', num2str(tsg.CNDC_LINCOEF(1)));
-    set( hetCalCNDCOffset, 'String', num2str(tsg.CNDC_LINCOEF(2)));
-    set( hetCalSSJTSlope,  'String', num2str(tsg.SSJT_LINCOEF(1)));
-    set( hetCalSSJTOffset, 'String', num2str(tsg.SSJT_LINCOEF(2)));
-    set( hetCalSSTPSlope,  'String', num2str(tsg.SSTP_LINCOEF(1)));
-    set( hetCalSSTPOffset, 'String', num2str(tsg.SSTP_LINCOEF(2)));
-
-  end
-
-
-%% Cal_OffMenuCallback ..................................... Calibration
-  %----------------------------------------------------------------------
-  % Callback function run when 
-  %----------------------------------------------------------------------
-  function Cal_OffMenuCallback( hObject, eventdata)
-  
-    % Activate or desactivate uipanels
-    % --------------------------------
-    set( hpCalCoef,         'Visible', 'off' );
-    set( hbgParameter,      'Visible', 'on');
-    
-    % Enable Pushbuttons
-    % ------------------
-    set( hClimToggletool,   'enable', 'on' );
-    set( hBottleToggletool, 'enable', 'on' );
-    set( hInterpToggletool, 'enable', 'on' );
-    set( hHeaderPushtool,   'enable', 'on' );
-    set( hQCToggletool,        'state', 'off', 'enable', 'on'  );
-    set( hPanToggletool,       'state', 'off', 'enable', 'on' );
-    set( hTimelimitToggletool, 'state', 'off', 'enable', 'on' );
-    set( hZoomToggletool,      'state', 'off', 'enable', 'on' );
-        
-    % Get tsg application data
-    % ------------------------
-    tsg = getappdata( hMainFig, 'tsg_data' );
-    
-    % Save the calibration coefficient
-    % --------------------------------
-    tsg.CNDC_LINCOEF(1) = str2num(get( hetCalCNDCSlope,  'String'));
-    tsg.CNDC_LINCOEF(2) = str2num(get( hetCalCNDCOffset, 'String'));
-    tsg.SSJT_LINCOEF(1) = str2num(get( hetCalSSJTSlope,  'String'));
-    tsg.SSJT_LINCOEF(2) = str2num(get( hetCalSSJTOffset, 'String'));
-    tsg.SSTP_LINCOEF(1) = str2num(get( hetCalSSTPSlope,  'String'));
-    tsg.SSTP_LINCOEF(2) = str2num(get( hetCalSSTPOffset, 'String'));
-        
-    % Save tsg application data
-    % --------------------------
-    setappdata( hMainFig, 'tsg_data', tsg );
-    
-    % Draw the 3 plots of the validation figure 
-    % -----------------------------------------
-    plot_Validation( hMainFig, hPlotAxes, 1, tsg.preference.parameter );
-    plot_Validation( hMainFig, hPlotAxes, 2, 'SSJT' );
-    plot_Validation( hMainFig, hPlotAxes, 3, 'SPDC' );
-   
-  end
-
-%% CalibrateCallback .......................................... Calibration
-  function CalibrateCallback(hObject, eventdata)
-    % Callback function run when
-    
-    % Get tsg application data
-    % ------------------------
-    tsg = getappdata( hMainFig, 'tsg_data' );
-    
-    % Get the calibration coefficients. 
-    % They will be used in the function calibration
-    % ---------------------------------------------
-    tsg.CNDC_LINCOEF(1) = str2num(get( hetCalCNDCSlope,  'String'));
-    tsg.CNDC_LINCOEF(2) = str2num(get( hetCalCNDCOffset, 'String'));
-    tsg.SSJT_LINCOEF(1) = str2num(get( hetCalSSJTSlope,  'String'));
-    tsg.SSJT_LINCOEF(2) = str2num(get( hetCalSSJTOffset, 'String'));
-    tsg.SSTP_LINCOEF(1) = str2num(get( hetCalSSTPSlope,  'String'));
-    tsg.SSTP_LINCOEF(2) = str2num(get( hetCalSSTPOffset, 'String'));
-        
-    % Save tsg application data
-    % --------------------------
-    setappdata( hMainFig, 'tsg_data', tsg );
-
-    % Calibrate the sensors
-    % ---------------------
-    calibration( hMainFig );
-    
-    % Update the Adjusted variables (SSPS - SSJT) with calibrated records
-    % -------------------------------------------------------------------
-    updateAdjustedVariable( hMainFig );
-    
-    % Refresh plot #1
-    % ---------------
-    plot_Calibration( hMainFig, hPlotAxes, 1, 'SSPS' );
-    plot_Calibration( hMainFig, hPlotAxes, 2, 'SSJT' );
-    plot_Calibration( hMainFig, hPlotAxes, 3, 'SSTP' );
-    
-    % As soon as a modification took place the data should be saved
-    % -------------------------------------------------------------
-    set( hSaveMenu, 'UserData', 'on' );
-
-  end
-
-%% CancelCalibrationCallback .................................. Calibration
-  function CancelCalibrationCallback(hObject, eventdata)
-    % Callback function run when
-    
-    % Get tsg application data
-    % ------------------------
-    tsg = getappdata( hMainFig, 'tsg_data' );
-        
-    % Emptied the CAL variables
-    % -------------------------
-    tsg.CNDC_CAL = [];
-    tsg.SSPS_CAL = [];
-    tsg.SSJT_CAL = [];
-    tsg.SSTP_CAL = [];
-    
-    % Save tsg application data
-    % --------------------------
-    setappdata( hMainFig, 'tsg_data', tsg );
-    
-    % Update the Adjusted variables 
-    % -----------------------------
-    updateAdjustedVariable( hMainFig );
-    
-    % Refresh plot #1
-    % ---------------
-    plot_Calibration( hMainFig, hPlotAxes, 1, 'SSPS' );
-    plot_Calibration( hMainFig, hPlotAxes, 2, 'SSJT' );
-    plot_Calibration( hMainFig, hPlotAxes, 3, 'SSTP' );
-    
-    % As soon as a modification took place the data should be saved
-    % -------------------------------------------------------------
-    set( hSaveMenu, 'UserData', 'on' );
-
-  end
-
-%% Zoom_OffMenuCallback
-  %----------------------------------------------------------------------
-  % Callback function run when the zoom toggle toolbar is released
-  %----------------------------------------------------------------------
-  function Zoom_OffMenuCallback(hObject, eventdata)
-    
-    % turns interactive zooming off
-    % -----------------------------
-    zoom off;
- 
-    % Set the right limit and interval to the 3 axes
-    % ----------------------------------------------
-    for iaxe = 1:3
-      set(hPlotAxes(iaxe),'XTickMode','auto')
-      datetick(hPlotAxes(iaxe),'x','keeplimits')
-    end
-    
-    % Turns off the automatic adaptation of date ticks
-    % ------------------------------------------------
-    zoomAdaptiveDateTicks('off');
-    
-  end
-
-%% Zoom_OnMenuCallback
-  %----------------------------------------------------------------------
-  % Callback function run when the zoom toggle toolbar is released
-  %----------------------------------------------------------------------
-  function Zoom_OnMenuCallback(hObject, eventdata)
-    
-    % cursor back to normal
-    % ---------------------
-    set(hMainFig,'Pointer','arrow');
-    
-    % returns a zoom mode object for the figure hMainFig handle
-    % --------------------------------------------------------
-    hZoom = zoom(hMainFig);
-    
-    % Disallows a zoom operation on the MAP axes objects
-    % --------------------------------------------------
-    setAllowAxesZoom(hZoom, hPlotAxes(4), false);
-
-    % turns on interactive zooming (same effect than zoom on) but prevent
-    % side effect on another figure
-    % -------------------------------------------------------------------
-    set(hZoom, 'enable', 'on');
-    %zoom on;
-    
-    % Turns on the automatic adaptation of date ticks
-    % -----------------------------------------------
-    zoomAdaptiveDateTicks('on');
- 
-    % Desactivate some toggle buttons
-    % -------------------------------
-    set( hQCToggletool,        'state', 'off' );
-    set( hPanToggletool,       'state', 'off' );
-    set( hTimelimitToggletool, 'state', 'off' );
-   
-  end
-
-%% Pan_OffMenuCallback
-  %----------------------------------------------------------------------
-  % Callback function run when the pan toggle toolbar is released
-  %----------------------------------------------------------------------
-  function Pan_OffMenuCallback(hObject, eventdata)
-    
-    % turns interactive pan off
-    % -------------------------
-    pan off;
-    
-    % Set the right limit and interval to the 3 axes
-    % ----------------------------------------------
-    for iaxe = 1:3
-      set(hPlotAxes(iaxe), 'XTickMode', 'auto')
-      datetick(hPlotAxes(iaxe), 'x', 'keeplimits')
-    end
- 
-    % Turns off the automatic adaptation of date ticks
-    % ------------------------------------------------
-    panAdaptiveDateTicks('off');
-    
-  end
-
-%% Pan_OnMenuCallback
-  %----------------------------------------------------------------------
-  % Callback function run when the pan toggle toolbar is selected
-  %----------------------------------------------------------------------
-  function Pan_OnMenuCallback(hObject, eventdata)
-    
-    % cursor back to normal
-    % ---------------------
-    set(hMainFig, 'Pointer', 'arrow');
-    
-    % Returns a pan mode object for the figure handle
-    % -----------------------------------------------
-    hPan = pan(hMainFig);
-    
-    % Disallows a pan operation on the MAP axes objects
-    % --------------------------------------------------
-    setAllowAxesPan(hPan, hPlotAxes(4), false);
-
-    % turns on interactive pan (same effect than pan on) but prevent
-    % side effect on another figure
-    % --------------------------------------------------------------
-    set(hPan, 'enable', 'on');
-    
-    % Turns on the automatic adaptation of date ticks
-    % -----------------------------------------------
-    panAdaptiveDateTicks('on');
-   
-    % Desactivate some toggle buttons
-    % -------------------------------
-    set( hQCToggletool,   'state', 'off' );
-    set( hZoomToggletool, 'state', 'off' );
-    set( hTimelimitToggletool, 'state', 'off' );
-    
-  end
-
-%% QC_OnMenuCallback ............................... Quality Control Module
-  %----------------------------------------------------------------------
-  % Callback function run when the QC toggle tool is pressed
-  %----------------------------------------------------------------------
-  function QC_OnMenuCallback(gcbo, eventdata)
-    
-    PARA = tsg.preference.parameter;
- 
-    % Make the QC code uipanel visible
-    % --------------------------------
-    set( hbgQc,                'Visible' ,'on');
-    set( hbgParameter,         'Visible', 'off');
-    
-    % Desactivate toggletools.
-    % ------------------------
-    set( hZoomToggletool,       'state', 'off' );
-    set( hPanToggletool,        'state', 'off' );
-    set( hTimelimitToggletool,  'state', 'off' );
-    set( hCalToggletool,        'state', 'off', 'enable', 'off'  );
-    set( hInterpToggletool,     'state', 'off', 'enable', 'off' );
- 
-    % Activate right clic context menu on first axes (salinity)
-    % ---------------------------------------------------------
-    set(hPlotAxes(1),'UIContextMenu', hQcCmenu);
-
-    % Activate clic mouse menu on first axes (salinity) for next rbbox
-    % ----------------------------------------------------------------
-    set(hPlotAxes(1),'ButtonDownFcn', @QC_SelectCallback);
-   
-    % change cursor to crosshair aspect
-    % ---------------------------------
-    set( hMainFig, 'Pointer', 'crosshair');
-    
-    % -------------------------------------------------------------
-    % nested function on mouse clic when QC toggle tool is selected
-    % -------------------------------------------------------------
-    function QC_SelectCallback(gcbo, eventdata)
-      
-      % disable ButtonMotion on main fig during select
-      % prevent drawing to map
-      % ----------------------------------------------
-      set( hMainFig, 'WindowButtonMotionFcn', []);
-
-      % Retrieve named application data
-      % -------------------------------
-      tsg = getappdata( hMainFig, 'tsg_data');
-
-      % Selection of the data within the figure
-      % ---------------------------------------
-      point1    = get(gca,'CurrentPoint');    % button down detected
-      finalRect = rbbox;                      % return figure units
-      point2    = get(gca,'CurrentPoint');    % button up detected
-
-      point1 = point1(1,1:2);                 % extract x and y
-      point2 = point2(1,1:2);
-
-      p1 = min(point1,point2);
-      p2 = max(point1,point2);                % calculate locations
-
-      % The following code is only executed if the left mouse button is clicked.
-      % If the right mouse button is clicked, this code must not be
-      % executed as the variable 'ind' will be emptied. And this variable
-      % is used when the context menu (callback 'Qc') is called
-      % -----------------------------------------------------------------
-      if ~strcmp( get(gcf, 'SelectionType'), 'alt')
-
-        % The QC is applied either on TSG data either on Sample data.
-        % it depends if the Botte Toggle button has been cliked on
-        % -----------------------------------------------------------
-        if strcmp( get(hBottleToggletool, 'state'), 'on')
-
-          % get index on selected zone
-          % --------------------------
-          ind = find(tsg.DAYD_SPL            > p1(1,1) &...
-                     tsg.DAYD_SPL            < p2(1,1) & ...
-                     tsg.([PARA '_SPL_DIF']) > p1(1,2) &...
-                     tsg.([PARA '_SPL_DIF']) < p2(1,2));
-
-          % Keep the information on the indices of the selected zone
-          % --------------------------------------------------------
-          tsg.rbboxind = ind .* ones(size(ind));
-          
-          % Modifiy the QC
-          % --------------
-          tsg.([PARA '_SPL_QC'])(ind) = tsg.qc.active.Code;
-
-          % Save the modifications
-          % ----------------------
-          setappdata( hMainFig, 'tsg_data', tsg);
-          
-          % Update sample QC in the _WS and _EXT records
-          % --------------------------------------------
-          updateSampleQC( hMainFig, PARA );
-
-          % plot selected data with selected code
-          % --------------------------------------
-          plot_Correction( hMainFig, hPlotAxes, PARA);
-
-        else
-
-          % get index on selected zone
-          % ---------------------------
-          ind = find(tsg.DAYD   > p1(1,1) & tsg.DAYD   < p2(1,1) & ...
-                     tsg.(PARA) > p1(1,2) & tsg.(PARA) < p2(1,2));
-
-          % Keep the information on the indices of the selected zone
-          % --------------------------------------------------------
-          tsg.rbboxind = ind .* ones(size(ind));
-          
-          % Modifiy the QC
-          % --------------
-          tsg.([PARA '_QC'])(ind) = tsg.qc.active.Code;
-
-          % put last SSPS_QC in queue (Undo/Redo)
-          % -------------------------------------
-          tsg.queue = push( tsg.queue, tsg.([PARA '_QC']));
-
-          % store QC in queue object, for undo
-          % ----------------------------------
-          tsg.queue = push(tsg.queue, tsg.([PARA '_QC']));
-
-          % Save the modifications
-          % ----------------------
-          setappdata( hMainFig, 'tsg_data', tsg);
-
-          % Draw plot 1 of the validation figure 
-          % ------------------------------------
-          plot_Validation( hMainFig, hPlotAxes, 1, PARA );
-
-          % refresh QC statistic panel
-          % --------------------------
-          display_QC( hMainFig, hPlotAxes );
-
-          % enable undo menu
-          % ----------------
-          set(findobj('tag','UIMENU_UNDO'),'enable','on');
-        end
-
-        % As soon as a modification took place the data should be saved
-        % -------------------------------------------------------------
-        set( hSaveMenu, 'UserData', 'on' );
-
-      end
-
-      % enable ButtonMotion on main fig after select QC area
-      % ----------------------------------------------------
-      set( hMainFig, 'WindowButtonMotionFcn', @MouseMotion);
-
-    end
-  end
-
-%% QC_OffMenuCallback .............................. Quality Control Module
-  %----------------------------------------------------------------------
-  % Callback function run when the QC toggle tool is released
-  %----------------------------------------------------------------------
-  function QC_OffMenuCallback(gcbo, eventdata)
-
-    % Desactive right clic menu on first axes (salinity)
-    % ---------------------------------------------------
-    set(hPlotAxes(1),'UIContextMenu', []);
-    
-    % Desactive clic mouse menu (zoom) on first axes (salinity)
-    % ----------------------------------------------------------
-    set(hPlotAxes(1),'ButtonDownFcn', []);
-    
-    % Uipanel visible or not
-    % -----------------------
-    set( hbgQc,        'Visible', 'off' );
-    
-    set( hTimelimitToggletool,  'state', 'off' );
-    set( hCalToggletool,        'state', 'off', 'enable', 'on'  );
-    set( hInterpToggletool,     'state', 'off', 'enable', 'on' );
-
-    % uibuttongroup uipanel used to choose a parameter is set to
-    % on only if the Correction screen (bottle toggletool) is off
-    % -----------------------------------------------------------
-    if  strcmp( get( hBottleToggletool, 'state'), 'off')
-      set( hbgParameter, 'Visible', 'on');
-    end
-    % cursor back to normal
-    % ---------------------
-    set(hMainFig,'Pointer','arrow');
-    
-  end
-
-%% Qc context menu selected ........................ Quality Control Module
-  %-----------------------------------------------------------
-  % Callback function run when the QC context menu is selected
-  %
-  % Context menu used to attribute a QC to the TSG time series
-  %
-  %-----------------------------------------------------------
-  function Qc(hObject, eventdata, key)
-
-    % Retrieve Default Quality Code and Color
-    % ---------------------------------------
-    tsg    = getappdata( hMainFig, 'tsg_data');
-    
-    % Get the parameter (SSPS, SSJT or SSTP)
-    % --------------------------------------
-    PARA = tsg.preference.parameter;
-
-    % get key and some values in hashtable
-    % ------------------------------------
-    code  = get(tsg.qc.hash, key, 'code');
-    color = get(tsg.qc.hash, key, 'color');
-
-    % set active code and color from selected context menu
-    % ----------------------------------------------------
-    tsg.qc.active.Code  = code;
-    tsg.qc.active.Color = color;
-    
-    % Modify and plot the last selected tsg data
-    % ------------------------------------------
-    if ~isempty( tsg.rbboxind )
-
-      if strcmp( get(hBottleToggletool, 'state'), 'on')
-
-        tsg.([PARA '_SPL_QC'])(tsg.rbboxind) = tsg.qc.active.Code;
-
-        % Save tsg.SSPS_QC and tsg.qc.active.Code 
-        % in the application data
-        % ----------------------------------------
-        setappdata( hMainFig, 'tsg_data', tsg );
-
-        % Draw the 3 plots of the Correction figure
-        % -----------------------------------------
-        plot_Correction( hMainFig, hPlotAxes, PARA );
-
-      else
-        tsg.([PARA '_QC'])(tsg.rbboxind) = tsg.qc.active.Code;
-
-        % Save tsg.SSPS_QC in the application data
-        % ----------------------------------------
-        setappdata( hMainFig, 'tsg_data', tsg );
-     
-        % Draw plot 1 of the validation figure
-        % ------------------------------------
-        plot_Validation( hMainFig, hPlotAxes, 1, PARA );
-        
-      end
-
-    end
-
-    % Update the radio button corresponding to the selected
-    % QC context menu (rbg : RadioButtonGroup)
-    % -----------------------------------------------------
-    radioTag     = ['TAG_QC_RADIO_' key];        % Build the TAG of the CODE
-    hbgChildren  = get(hbgQc,'Children');        % Get the handles of the rbg
-    hbgTagCell   = get(hbgChildren, 'tag');      % get the TAG of the rbg
-    ind          = strcmp(radioTag, hbgTagCell); % Compare the TAG
-    hRadioButton = hbgChildren( ind == 1 );      % Get the handle of the button
-    set(hbgQc, 'SelectedObject', hRadioButton);  % Make this button active
-
-    setappdata( hMainFig, 'tsg_data', tsg );
-
-  end
-
-%% Radiobutton Quality Control ..................... Quality Control Module
-  % ---------------------------------------------------------------
-  % Callback to select CODE and COLOR QC from the RadioButton Group
-  % ---------------------------------------------------------------
-  function RadiobuttonQc(source, eventdata)
-        
-      % Retrieve Default Quality Code and Color
-      % ---------------------------------------
-      tsg = getappdata( hMainFig, 'tsg_data');
-     
-      % Retrieve the key from the active RadioButton
-      % --------------------------------------------
-      rbTag = get(eventdata.NewValue,'Tag');
-      key = strrep(rbTag, 'TAG_QC_RADIO_', '');
-
-      % store his handle to uibuttongroup userdata
-      % ------------------------------------------
-      set(hbgQc,'Userdata', eventdata.NewValue);
-      
-      % get key and some values in hashtable
-      % ------------------------------------
-      code  = get(tsg.qc.hash, key, 'code');
-      color = get(tsg.qc.hash, key, 'color');
-       
-      % set active code and color from selected context menu
-      % ----------------------------------------------------
-      tsg.qc.active.Code  = code;
-      tsg.qc.active.Color = color;
-
-      setappdata( hMainFig, 'tsg_data', tsg );
-
-  end
-
-%% Radiobutton Parameter choice ..................... Parameter choice
-  % ---------------------------------------------------------------
-  % Callback to select CODE and COLOR QC from the RadioButton Group
-  % ---------------------------------------------------------------
-  function RadiobuttonParameter(source, eventdata)
-
-    % If the map is visible, hide it
-    % ------------------------------
-    set( hMapPanel,       'visible', 'off' );
-    set( hMapToggletool,  'state',   'off');
-    set( hClimToggletool, 'state',   'off'); 
-    
-    % Retrieve Default Quality Code and Color
-    % ---------------------------------------
-    tsg = getappdata( hMainFig, 'tsg_data');
-
-    % Retrieve the key from the active RadioButton
-    % --------------------------------------------
-    rbTag_Old = get(eventdata.OldValue,'Tag');
-    rbTag     = get(eventdata.NewValue,'Tag');
-    PARA = strrep(rbTag, 'TAG_PARA_RADIO_', '');
-
-    % Test if PARA exists
-    % -------------------
-    ind = find( isnan(tsg.(PARA)) == 0 );
-    if ~isempty( tsg.(PARA) ) & ~isempty (ind )
-
-      % store his handle to uibuttongroup userdata
-      % ------------------------------------------
-      set(hbgParameter,'Userdata', eventdata.NewValue);
-
-      tsg.preference.parameter = PARA;
-
-      setappdata( hMainFig, 'tsg_data', tsg );
-
-      % Get sample data
-      % ---------------
-      tsg_mergesample( hMainFig, PARA );
-
-      % The smooth TSG time series (tsg_moveaverage) is
-      % no more computed : too long
-      % We now computed a smooth value only at the position of the sample
-      % in diffTsgSample
-      % -----------------------------------------------------------------
-      %tsg_moveaverage(hMainFig, PARA);
-
-      % Draw the 3 plots of the validation figure
-      % -----------------------------------------
-      resetAxes( hMainFig, hPlotAxes )
-
-      plot_Validation( hMainFig, hPlotAxes, 1, PARA );
-      plot_Validation( hMainFig, hPlotAxes, 2, 'SSJT' );
-      plot_Validation( hMainFig, hPlotAxes, 3, 'SPDC' );
-
-    else
-      msgbox( ['No ' PARA ' data in the file'], 'Parameter choice', 'warn', 'modal');
-
-      % Set the old radio-button active
-      % -------------------------------
-      hbgChildren  = get(hbgParameter,'Children');        % Get the handles of the rbg
-      hbgTagCell   = get(hbgChildren, 'tag');             % get the TAG of the rbg
-      ind          = strcmp(rbTag_Old, hbgTagCell);       % Compare the TAG
-      hRadioButton = hbgChildren( ind == 1 );             % Get the handle of the button
-      set(hbgParameter, 'SelectedObject', hRadioButton);  % Make this button active
-
-    end
-
-  end
-
-%% preQcPanCallback .................................Quality Control Module
-  % ---------------------------------------------------------------
-  % Callback function ... to be completed
-  % ---------------------------------------------------------------
-  function preQcPanCallback(obj, evd)
-
-    set(hQCToggletool, 'state', 'off' );
-
-  end
-
-%% postQcPanCallback ............................... Quality Control Module
-  % ---------------------------------------------------------------
-  % Callback function ... to be completed
-  % ---------------------------------------------------------------
-  function postQcPanCallback(obj, evd)
-
-    set(hQCToggletool, 'state', 'on' );
-
-    % Set the right limit and interval to the 3 axes
-    % ----------------------------------------------
-    for iaxe = 1:3
-      set(hPlotAxes(iaxe),'XTickMode','auto')
-      datetick(hPlotAxes(iaxe),'x','keeplimits')
-    end
-
-  end
-
-%% MouseMotion
-  %---------------------------------------------------------------------
-  % Callback function run when mouse pointer is moving on temperature plot
-  % draw corresponding measurement position on map
-  %---------------------------------------------------------------------
-  function MouseMotion(hObject, eventdata)
-
-    % Test if the callback can be activated
-    % -------------------------------------
-    if strcmp( get( hMainFig, 'UserData'), 'ButtonMotionOn')
-
-      % Retrieve named application data
-      % -------------------------------
-      tsg = getappdata( hMainFig, 'tsg_data');
-
-      % Get current position of cusor and return its coordinates in
-      % axes with handle h_axes
-      % -----------------------------------------------------------
-      a = get(hPlotAxes(1), 'CurrentPoint');
-      x = a(2,1);
-      y = a(2,2);
-      
-      % Get the Limits of axes 1
-      % ------------------------
-      limx = get(hPlotAxes(1), 'XLim');
-      limy = get(hPlotAxes(1), 'YLim');
-
-      % Code to Activate the PAN function when QC mode is active
-      % A PAN zone is defined in the bottom (10%) of PlotAxes(1)
-      % 2 callback are needed : 
-      %    1 - one to desactivate QC when Pan is set to on.
-      %    2 - one to reactivate QC once the pan has been used.
-      % ---------------------------------------------------------
-      qcState = get(hQCToggletool,   'state' );
-      if strcmp(qcState, 'on' );
-        
-        % Suppose that Y axes is increasing from the bottom to the top
-        % ------------------------------------------------------------
-        limy2 = limy(1) + (limy(2)-limy(1)) * 0.10;
-
-        if  x > limx(1) && x < limx(2) &&  y <= limy2 && y >= limy(1)
-          hPan = pan(hMainFig);
-          set(hPan,'ActionPreCallback',  @preQcPanCallback);
-          set(hPan,'ActionPostCallback', @postQcPanCallback);
-          set(hPan,'Enable','on');
-        else
-          pan off
-        end
-      end
-      
-      % Dynamically display data in uicontrol
-      % -------------------------------------
-      if x > tsg.DAYD(1) && x < tsg.DAYD(end)
-      %if  x > limx(1) && x < limx(2)
-
-        indCursor = find( tsg.DAYD > x);
-        set( hInfoDateText, 'String',...
-          datestr(tsg.DAYD(indCursor(1)),'dd/mm/yyyy   HH:MM'));
-        set( hInfoLatText,  'String', dd2dm(tsg.LATX(indCursor(1)),0));
-        set( hInfoLongText, 'String', dd2dm(tsg.LONX(indCursor(1)),1));
-        set( hInfoSSPSText, 'String', tsg.SSPS(indCursor(1)));
-        set( hInfoSSJTText, 'String', tsg.SSJT(indCursor(1)));
-        if ~isempty(tsg.SSTP)
-          set( hInfoSSTPText, 'String', tsg.SSTP(indCursor(1)));
-        end
-
-        % Plot the position on the map if this one is active
-        % --------------------------------------------------
-        if strcmp( get(hMapPanel, 'Visible'), 'on')
-
-          % Select the map axes
-          % -------------------
-          axes( hPlotAxes(4));
-
-          if isempty( get(hMapPanel, 'UserData'))
-            if ~isnan( tsg.LONX(indCursor(1)) )
-              hMarker = m_line( tsg.LONX(indCursor(1)), tsg.LATX(indCursor(1)),...
-                'Marker','o','MarkerSize',5, ...
-                'Color','r', 'MarkerFaceColor','r');
-              set(hMapPanel, 'UserData', hMarker);
-            end
-          else
-            if ~isnan( tsg.LONX(indCursor(1)) )
-
-              delete(get(hMapPanel, 'UserData'));
-              hMarker = m_line( ...
-                tsg.LONX(indCursor(1)), tsg.LATX(indCursor(1)),...
-                'Marker','o','MarkerSize',5, ...
-                'Color','r', 'MarkerFaceColor','r');
-              set(hMapPanel, 'UserData', hMarker);
-            end
-          end
-          
-        end
-      end
-    end
-  end
-
-%% Map_OffMenuCallback
-  %---------------------------------------------------------------------
-  % Callback function run when the Map tool bar item is unselected
-  %---------------------------------------------------------------------
-  function Map_OffMenuCallback(hObject, eventdata)
-    
-   % Make the earth map invisible
-    % ----------------------------
-    set(hMapPanel, 'Visible', 'off' ); 
-
-  end
-
-%% Map_OnMenuCallback
-  %---------------------------------------------------------------------
-  % Callback function run when the Map tool bar item is selected
-  %---------------------------------------------------------------------
-  function Map_OnMenuCallback(hObject, eventdata)
-     
-    % Desactivate Zoom and Pan toggle buttons
-    % may be change in the futur ...
-    % ---------------------------------------
-    set(hZoomToggletool,  'state', 'off' );
-    set(hPanToggletool,  'state', 'off' );
-
-    % Make the earth map visible
-    % --------------------------
-    set(hMapPanel, 'Visible', 'on' );
-    
-    erase_Line( hPlotAxes, 4 );
-
-    plot_map( hMainFig, hPlotAxes)
-    
-  end
-
-%% Bottle_OnMenuCallback ................................ Correction Module
-  %---------------------------------------------------------------------
-  % Callback function run when the bootle push tool is selected
-  %---------------------------------------------------------------------
-  function Bottle_OnMenuCallback(hObject, eventdata)
-    % Callback function run when the Bottle tool bar item is selected
-
-    % Get the tsg structure
-    % ---------------------
-    tsg = getappdata(hMainFig, 'tsg_data');
-    
-    % Get the parameter we are working on (SSPS, SSJT, SSTP)
-    % ------------------------------------------------------
-    PARA = tsg.preference.parameter;
-    
-    % Switch somme buttons
-    % --------------------
-    set( hZoomToggletool,       'state',  'off' );
-    set( hQCToggletool,         'state',  'off' );
-    set( hPanToggletool,        'state',  'off' );
-    set( hMapToggletool,        'state',  'off' ); 
-    set( hClimToggletool,       'state', 'off', 'enable', 'off');
-    set( hCalToggletool,        'enable', 'off' );
-    set( hInterpToggletool,     'enable', 'off' );
-    set( hTimelimitToggletool,  'enable', 'on' );
-
-    % Activate ord desactivate uipanels
-    % ---------------------------------
-    set( hpDateLimit,           'Visible', 'on' );
-    set( hbgCorMethod,          'Visible', 'on' );
-    set( hbgParameter,          'Visible', 'off');
-    set( hbgQc,                 'Visible', 'off');
-
-    % Test if tsg and sample data have been loaded
-    % --------------------------------------------
-    if ~isempty( tsg.([PARA '_SPL']) )
-        
-%       % Running average of TSG time series
-%       % ----------------------------------
-%       tsg_moveaverage(hMainFig, PARA);
-      
-      % Compute the sample-TSG differences
-      % ----------------------------------
-      diffTsgSample( hMainFig, PARA );
-      
-      % Plot in the 3 axes
-      % ------------------
-      plot_Correction( hMainFig, hPlotAxes, PARA );
-
-      % Get the information on time limits of the time series
-      % Write them in the uipanel
-      % -----------------------------------------------------
-      noNaN = tsg.DAYD(~isnan( tsg.DAYD ));
-      set( hetDateMin, 'String', datestr(noNaN(1), 31));
-      set( hetDateMax, 'String', datestr(noNaN(end), 31)); 
-
-    else
-
-      % Desactivate the corretion module
-      % --------------------------------
-      set( hBottleToggletool, 'state', 'off' );
-      
-      msgbox('Sample data not loaded in the program', 'modal');
-
-    end
-  end
-
-%% Bottle_OffMenuCallback ............................... Correction module
-  %---------------------------------------------------------------------
-  % Callback function run when the bootle push tool is selected
-  %---------------------------------------------------------------------
-  function Bottle_OffMenuCallback(hObject, eventdata)
-    
-    % If necessary toggle off some buttons
-    % ------------------------------------
-    set( hZoomToggletool,      'state',  'off' );
-    set( hQCToggletool,        'state',  'off' );
-    set( hPanToggletool,       'state',  'off' );
-    set( hMapToggletool,       'state',  'off' ); 
-    set( hClimToggletool,      'enable', 'on');
-    set( hCalToggletool,       'enable', 'on'  );
-    set( hInterpToggletool,    'enable', 'on' );
-    set( hTimelimitToggletool, 'enable', 'off' );
-    
-    % Activate or Desactivate uipanel
-    % --------------------------------
-    set( hpDateLimit,          'Visible', 'off' );
-    set( hbgCorMethod,         'Visible', 'off' );
-    set( hbgParameter,         'Visible', 'on');
-
-    % Desactivate Click Mouse on figure
-    % ---------------------------------
-    set( hMainFig, 'WindowButtonDownFcn', []);
-    
-    % Get tsg structure
-    % -----------------
-    tsg  = getappdata( hMainFig, 'tsg_data' );
-    
-    % Get the parameter (SSPS, SSJT, SSTP)
-    % ------------------------------------
-    PARA = tsg.preference.parameter;
-     
-    % Drawing only necessary if the Correction moduel has been activated
-    % ------------------------------------------------------------------
-    if ~isempty( tsg.([PARA '_SPL']) )
-
-      % Draw the 3 plots of the validation figure
-      % -----------------------------------------
-      plot_Validation( hMainFig, hPlotAxes, 1,  PARA );
-      plot_Validation( hMainFig, hPlotAxes, 2, 'SSJT' );
-      plot_Validation( hMainFig, hPlotAxes, 3, 'SPDC' );
-    end
-    
-    % Set the pointer
-    % ---------------
-    set( hMainFig, 'Pointer', 'arrow');
-
-  end
-
-%% CorCancelCallback .................................... Correction Module
-  function CorCancelCallback(hObject, eventdata)
-    % Callback function run when ...
-    
-    % Desactivate somme Toggle button
-    % -------------------------------
-    set( hZoomToggletool,       'state', 'off' );
-    set( hPanToggletool,        'state', 'off' );
-    set( hQCToggletool,         'state', 'off' );
-    set( hTimelimitToggletool,  'state', 'off' );
-
-    % Get tsg application data
-    % ------------------------
-    tsg = getappdata(hMainFig, 'tsg_data');
-
-    % Get parameter we are working on (SSPS, SSJT, SSTP)
-    % --------------------------------------------------
-    PARA = tsg.preference.parameter;
-
-    % To cancel the correction set the ERROR to [] then
-    % call updateAdjustedVariable.
-    % --------------------------------------------------
-    tsg.([PARA '_ADJUSTED_ERROR']) = [];
-
-    % Save tsg data
-    % -------------
-    setappdata(hMainFig, 'tsg_data', tsg);
-
-    % Set the ADJUSTED variable either to the raw variable or to
-    % the calibrated variable
-    % ----------------------------------------------------------
-    updateAdjustedVariable( hMainFig );
-
-    % Plot in the 3 axes
-    % ------------------
-    plot_Correction( hMainFig, hPlotAxes, PARA );
-
-  end
-
-%% CorLinearCallback .................................... Correction Module
-  function CorLinearCallback(hObject, eventdata)
-    % Callback function run when
-
-    % Desactivate somme Toggle button
-    % -------------------------------
-    set( hZoomToggletool,       'state', 'off' );
-    set( hPanToggletool,        'state', 'off' );
-    set( hQCToggletool,         'state', 'off' );
-    set( hTimelimitToggletool,  'state', 'off' );
-
-    % Get the time limits for the correction A TESTER
-    % -----------------------------------------------
-    dateMin = datenum(get( hetDateMin, 'String'), 'yyyy-mm-dd HH:MM:SS');
-    dateMax = datenum(get( hetDateMax, 'String'), 'yyyy-mm-dd HH:MM:SS');
-    
-    % Get the parameter (SSPS, SSJT, or SSTP)
-    % ---------------------------------------
-    tsg  = getappdata(hMainFig, 'tsg_data');
-    PARA = tsg.preference.parameter;
-
-    % Compute the sample-TSG differences
-    % ----------------------------------
-    diffTsgSample( hMainFig, PARA );
-
-    % Correction
-    % ----------
-    error = corTsgLinear(hMainFig, PARA, dateMin, dateMax);
-
-    switch error
-
-      case 1
-
-        % Plot in the 3 axes
-        % ------------------
-        plot_Correction( hMainFig, hPlotAxes, PARA );
-
-      case -1
-        msgbox( 'Date limits are not correct',...
-          'Correction module', 'warn', 'modal');
-    end
-
-  end
-
-%% CorMedianCallback .................................... Correction Module
-  function CorMedianCallback(hObject, eventdata)
-    % Callback function run when
-
-    % Desactivate somme Toggle button
-    % -------------------------------
-    set( hZoomToggletool,       'state', 'off' );
-    set( hPanToggletool,        'state', 'off' );
-    set( hQCToggletool,         'state', 'off' );
-    set( hTimelimitToggletool,  'state', 'off' );
-
-    % Get the time limits for the correction A TESTER
-    % --------------------------------------
-    dateMin = datenum(get( hetDateMin, 'String'), 'yyyy-mm-dd HH:MM:SS');
-    dateMax = datenum(get( hetDateMax, 'String'), 'yyyy-mm-dd HH:MM:SS');
-    
-    % Get the parameter (SSPS, SSJT, or SSTP)
-    % ---------------------------------------
-    tsg  = getappdata(hMainFig, 'tsg_data');
-    PARA = tsg.preference.parameter;
-
-    % Compute the sample-TSG differences
-    % ----------------------------------
-    diffTsgSample( hMainFig, PARA );
-
-    % Correction
-    % ----------
-    error = corTsgMedian(hMainFig, PARA, dateMin, dateMax);
-
-    switch error
-
-      case 1
-
-        % Plot in the 3 axes
-        % ------------------
-        plot_Correction( hMainFig, hPlotAxes, PARA );
-
-      case -1
-        msgbox( 'Date limits are not correct',...
-                'Correction module', 'warn', 'modal');
-    end
-
-  end
-
-%% SelectTime_OnMenuCallback
-%---------------------------
-  function SelectTime_OnMenuCallback(hObject, eventdata)
-    % Callback function run when the ....
-            
-    % Desactivate Zoom and Pan functions.
-    % ----------------------------------
-    set( hZoomToggletool, 'state', 'off' );
-    set( hQCToggletool,   'state', 'off' );
-    set( hPanToggletool,  'state', 'off' );
-    
-    % Create a pointer to select the time limits
-    % ------------------------------------------
-    selTimePointer = ones(16)+1;
-    selTimePointer(1,:)       = 1; selTimePointer(16,:)      = 1;
-    selTimePointer(:,1)       = 1; selTimePointer(:,16)      = 1;
-    selTimePointer(1:4,8:9)   = 1; selTimePointer(13:16,8:9) = 1;
-    selTimePointer(8:9,1:4)   = 1; selTimePointer(8:9,13:16) = 1;
-    selTimePointer(5:12,5:12) = NaN; % Create a transparent region in the center
-    
-    % Activate clic mouse menu on second axes (salinity) for next rbbox
-    % ----------------------------------------------------------------
-    set(hMainFig,'WindowButtonDownFcn', @Time_SelectCallback);
-
-    % change cursor
-    % ---------------
-    set( hMainFig, 'Pointer', 'custom',...
-      'PointerShapeCData', selTimePointer, 'PointerShapeHotSpot',[9 9]);
-
-    % ----------------------------------------------------------------------
-    % nested function on mouse clic when Select Time toggle tool is selected
-    % ----------------------------------------------------------------------
-    function Time_SelectCallback(gcbo, eventdata)
-
-      % disable ButtonMotion on main fig during select
-      % prevent drawing to map
-      % ----------------------------------------------
-      set( hMainFig, 'WindowButtonMotionFcn', []);
-
-      % Retrieve named application data
-      % -------------------------------
-      tsg = getappdata( hMainFig, 'tsg_data');
-
-      % Selection of the data within the figure
-      % ---------------------------------------
-      point1    = get(gca,'CurrentPoint');    % button down detected
-      finalRect = rbbox;                      % return figure units
-      point2    = get(gca,'CurrentPoint');    % button up detected
-
-      point1 = point1(1,1:2);                 % extract x and y
-      point2 = point2(1,1:2);
-
-      p1 = min(point1,point2);
-      p2 = max(point1,point2);                % calculate locations
-
-      % get index on selected zone - Only on X axes (time)
-      % --------------------------------------------------
-      ind = find(tsg.DAYD >= p1(1,1) & tsg.DAYD <= p2(1,1));
-
-      % Write the date in the Editable uicontrol
-      % ----------------------------------------
-      set( hetDateMin, 'String', datestr(tsg.DAYD(ind(1)),   31));
-      set( hetDateMax, 'String', datestr(tsg.DAYD(ind(end)), 31));
-
-      % enable ButtonMotion on main fig after select QC area
-      % ----------------------------------------------------
-      set( hMainFig, 'WindowButtonMotionFcn', @MouseMotion);
-    end
-  end
-
-%% SelectTime_OffMenuCallback
-%----------------------------
-  function SelectTime_OffMenuCallback(hObject, eventdata)
-  % Callback function run when the ....
-  
-  % Desactivate time limit buttons
-  % ------------------------------
-  set( hTimelimitToggletool, 'state', 'off');
-
-  set( hMainFig, 'WindowButtonDownFcn', []);
-
-  set( hMainFig, 'Pointer', 'arrow');
-
-  end
-
-%% Clim_OffMenuCallback
-  %------------------------------------------------------------------------
-  % Callback function run when the Levitus climatology toolbar is unselected
-  %------------------------------------------------------------------------
-  function Clim_OffMenuCallback(hObject, eventdata)
-
-    % Get lines handles from tag
-    % --------------------------
-    hLines = findobj('-regexp', 'Tag', 'TAG_LINE_CLIMATO_');
-    
-    % Delete climatology lines on axes
-    % ---------------------------------
-    delete(hLines);
-    
-  end
-
-%% Clim_OnMenuCallback
-  %------------------------------------------------------------------------
-  % Callback function run when the Levitus climatology toolbar is unselected
-  %------------------------------------------------------------------------
-  function Clim_OnMenuCallback(hObject, eventdata)
-
-    % Test if the TSG and bucket files have been read
-    % -----------------------------------------------
-    if strcmp( get(hOpenMenu, 'UserData'), 'on' )
-
-      % plot climatology
-      % ----------------
-      plot_Climatology(hMainFig, hPlotAxes);
-      
-    end
-  end
-
-%% ClimatoSelectMenuCallback
-  % -------------------------------------------------------------------
-  % Callback function run when climato submenu is selected
-  % -------------------------------------------------------------------
-  function ClimatoSelectMenuCallback(hObject, eventdata, climato, time)
-    
-    % find all climato submenu and set 'checked' property to 'off'
-    % ------------------------------------------------------------
-    hdl = findobj( '-regexp', 'tag', 'TAG_UIMENU_CLIMATO');
-    set(hdl, 'checked', 'off');
-    
-    % set current climato submenu checked
-    % -----------------------------------
-    set(hObject, 'checked', 'on');
-    
-    % memorize action on climatology menu for next use
-    % ------------------------------------------------
-    s.type = climato;
-    s.time = time;
-    set(hClimatoMenu, 'userdata', s);
-    
-    % check if climatology toggle button is set
-    % -----------------------------------------
-    if strcmp(get(hClimToggletool, 'state'), 'on')
-      
-      % clear last plotted climatology
-      % ------------------------------
-      Clim_OffMenuCallback;
-      
-      % plot and read (eventually) new climatology
-      % ------------------------------------------
-      plot_Climatology(hMainFig, hPlotAxes);
-    end
-    
-  end
-
-%% PreferencesMenuCallback
-  % -------------------------------------------------------------------
-  % Callback function run when Option/Preference is selected
-  % -------------------------------------------------------------------
-  function PreferencesMenuCallback(hObject, eventdata)
-    
-    % Test if the preference menu is allready checked
-    % -----------------------------------------------
-    if strcmp( get(hObject, 'checked'), 'on' )
-      
-      % set preference autoload off (unchecked)
-      % ---------------------------------------
-      tsg.preference.autoload = 'off';
-      
-    else
-      
-      % set preference autoload on (checked)
-      % ------------------------------------
-      tsg.preference.autoload = 'on';
-      
-    end
-
-     % set current option/preference submenu state
-     % -------------------------------------------
-     set(hObject, 'checked', tsg.preference.autoload);
-    
-  end
-
-
-%% HeaderMenuCallback
-% -------------------------------------------------------------------
-% Callback function run when the headerForm tool bar item is selected
-% -------------------------------------------------------------------
-  function HeaderMenuCallback(hObject, eventdata)
-
-    % call header form function
-    % -------------------------
-    headerForm(hMainFig);
-
-  end
-
-%% PrintFigMenuCallback
-% -------------------------------------------------------------------
-% Callback function run when the Report tool bar item is selected
-% -------------------------------------------------------------------
-  function PrintFigMenuCallback(hObject, eventdata)
-      
-      % disable ButtonMotion on main fig during select
-      % prevent drawing to map
-      % ----------------------------------------------
-      set( hMainFig, 'WindowButtonMotionFcn', []);
-      
-      msgbox( 'Function not yet implemented', 'warn', 'modal');
-
-% printpreview(hMainFig);
-   
-%printdlg;
-%dlg = pagesetupdlg(hMainFig);
-
-%waitfor(dlg)
-      % enable ButtonMotion on main fig after select QC area
-      % ----------------------------------------------------
-      set( hMainFig, 'WindowButtonMotionFcn', @MouseMotion);
-
-  end
-
-
-%% ReportMenuCallback
-% -------------------------------------------------------------------
-% Callback function run when the Report tool bar item is selected
-% -------------------------------------------------------------------
-  function ReportMenuCallback(hObject, eventdata)
-
-    % call report function
-    % --------------------
-    saveReport(hMainFig);
-
-  end
-
-%% SaveMenuCallback
-% -------------------------------------------------------------------
-% Callback function run when the Save menu item is selected
-% -------------------------------------------------------------------
-  function SaveMenuCallback(hObject, eventdata)
-
-    % Retrieve named application data
-    % -------------------------------
-    tsg = getappdata( hMainFig, 'tsg_data');
-
-    % fill or append header form
-    % -------------------------
-    error = headerForm(hMainFig);
-
-    % if user press continue button, ask for netcdf file
-    % ------------------------------------------------
-    if error ~= -1
-      [fileName, pathName, filterindex] = uiputfile('*.nc', ...
-        'Save file name', strcat(tsg.file.name, '.nc'));
-
-      % if user press cancel button, all var are set to zero
-      % ----------------------------------------------------
-      if filterindex == 0
-        return;
-      end
-
-      % Pointer set to watch during reading and plotting
-      % ------------------------------------------------
-      set( hMainFig, 'Pointer', 'watch' );
-
-      % flushes the event queue and updates the closed uiputfile window
-      % ---------------------------------------------------------------
-      drawnow;
-
-      % write netcdf file
-      % -----------------
-      error = writeTSGDataNetCDF(hMainFig, strcat(pathName, fileName));
-
-      % Pointer reset to arrow
-      % ----------------------
-      set( hMainFig, 'Pointer', 'arrow' );
-
-      % Check for NetCDF writing error 
-      % must to be rewriting
-      % ------------------------------
-      if error == -1
-        warning('tsgqc_GUI:SaveMenuCallback', ...
-                'NetCDF writing error: %s %s', pathName, fileName);
-        return;
-      end
-
-      % update the display
-      % ------------------
-      set( hInfoFileText, 'String', strcat(tsg.file.name, tsg.file.ext));
-      
-      % Write a TXT file
-      % ----------------
-      fileName = strcat(tsg.file.name, '_w.txt');
-      error    = writeTsgDataTxt(hMainFig, strcat(pathName, fileName));
-
-      % Check for TxT writing error - must to be rewriting
-      % --------------------------------------------------
-      if error == -1
-        warning('tsgqc_GUI:SaveMenuCallback', ...
-                'TxT writing error: %s %s', pathName, fileName);
-        return;
-      end
-
-      % enable Quality Control mode
-      % ---------------------------
-      hdl_pushtool = findobj('Tag', 'QC');
-      set(hdl_pushtool, 'Enable', 'on');
-    end
-
-  end
-
-%% ExportMenuCallback
-% -------------------------------------------------------------------
-% Callback function run when the Export menu item is selected
-% -------------------------------------------------------------------
-  function ExportMenuCallback(hObject, eventdata)
-
-    % Retrieve named application data
-    % -------------------------------
-    tsg = getappdata( hMainFig, 'tsg_data');
-
-    %
-    % ------------------------------------------------
-    [fileName, pathName, filterindex] = uiputfile('*.tsg', ...
-      'Save file name', strcat(tsg.file.name, '.tsg'));
-
-    % if user press cancel button, all var are set to zero
-    % ----------------------------------------------------
-    if filterindex == 0
-      return;
-    end
-
-    % Pointer set to watch during reading and plotting
-    % ------------------------------------------------
-    set( hMainFig, 'Pointer', 'watch' );
-
-    % update the display
-    % ------------------
-    set( hInfoFileText, 'String', strcat(tsg.file.name, tsg.file.ext));
-
-    % Write a .TSG (ascii)  file
-    % --------------------------
-    error = writeTsgDataTsg(hMainFig, strcat(pathName, fileName));
-
-    % Check for .TSG writing error - must to be rewriting
-    % --------------------------------------------------
-    if error == -1
-      warning('tsgqc_GUI:SaveMenuCallback', ...
-        'TSG writing error: %s %s', pathName, fileName);
-      return;
-    end
-
-    % Pointer reset to arrow
-    % ----------------------
-    set( hMainFig, 'Pointer', 'arrow' );
-
-    % enable Quality Control mode
-    % ---------------------------
-    hdl_pushtool = findobj('Tag', 'QC');
-    set(hdl_pushtool, 'Enable', 'on');
-
-  end
-
-%% UndoMenuCallback
-  % -----------------------------------------------------------------------
-  % Callback function run when the Edit/Undo menu item is selected (Ctrl+Z)
-  % -----------------------------------------------------------------------
-  function UndoMenuCallback(hObject, eventdata)  
- 
-    % Undo module not yet implemented
-    % -------------------------------
-    % msgbox('Undo module not yet implemented', 'modal');
-    
-    tsg.queue = undo(tsg.queue);
-    tsg.SSPS_QC = get(tsg.queue);
-   
-    % Make the Salinity, temperature and velocity plot
-    % ------------------------------------------------
-    plot_SalTempVel( hMainFig, hPlotAxes );
-
-  end
-
-%% RedoMenuCallback
-  % -----------------------------------------------------------------------
-  % Callback function run when the Edit/Redo menu item is selected (Ctrl+R)
-  % -----------------------------------------------------------------------
-  function RedoMenuCallback(hObject, eventdata)  
- 
-    % Redo module not yet implemented
-    % -------------------------------
-    msgbox('Redo module not yet implemented', 'modal');
-    
-  end
-
-%% QuitMenuCallback
-  % -----------------------------------------------------------------
-  % Callback function run when the Quit menu item is selected
-  % -----------------------------------------------------------------
-  function QuitMenuCallback(hObject, eventdata)  
-
-    % save config mat file in prefdir
-    % -------------------------------
-    config_file = [prefdir, filesep, tsgqcname, '.mat'];
-
-    % set tsg.levitus empty before save preferences in mat file
-    % ---------------------------------------------------------
-    tsg.levitus = [];
-
-    % save preference mat file
-    % ------------------------
-    save( config_file, 'tsg');
-
-    % If the data have been modified and not save, the program
-    % ask to save the data
-    % --------------------------------------------------------
-    if  strcmp( get( hSaveMenu, 'UserData' ), 'on')
-      selection = ...
-        questdlg('The file has been modified.  Do you want to save it ?',...
-        'Save before Quit?',...
-        'Yes', 'No', 'Yes');
-      
-      if strcmp(selection, 'Yes')
-        
-        % call File/Save Menu Callback before before quit
-        % -----------------------------------------------
-        SaveMenuCallback;
-             
-      end
-      
-      % quit program
-      % ------------
-      quitProgram(hMainFig, DEFAULT_PATH_FILE);
-      
-    else
-      selection = ...
-        questdlg(['Quit ' get(hMainFig, 'Name') '?'],...
-        ['Quit ' get(hMainFig, 'Name') '?'],...
-        'Yes', 'No', 'Yes');
-      if strcmp(selection, 'No')
-        return;
-      else
-        quitProgram(hMainFig, DEFAULT_PATH_FILE);
-      end
-    end
-
-  end
-
-% end of tsgqc_GUI
-% ----------------
-end