diff --git a/tsg_util/tsg_readTsgDataTxt.m b/tsg_util/tsg_readTsgDataTxt.m
index 127f843baba85471b9c117834af807e30d42607a..d73df09b679c41d4fccf28956f1fb59ddb1cdf79 100644
--- a/tsg_util/tsg_readTsgDataTxt.m
+++ b/tsg_util/tsg_readTsgDataTxt.m
@@ -3,7 +3,7 @@ function [error] = tsg_readTsgDataTxt( hTsgGUI, filename)
 %
 % Input
 % -----
-% hTsgGUI ............ Handel to the main user interface
+% hTsgGUI ............ Handle to the main user interface
 % filename ........... Data filename
 %
 % Output
@@ -12,47 +12,94 @@ function [error] = tsg_readTsgDataTxt( hTsgGUI, filename)
 %
 % 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( hTsgGUI, 'tsg_data');
+
+% Display read file info on console
+% ---------------------------------
+fprintf('\nREAD_ASCII_FILE\n'); tic;
+
 % Open the file
 % -------------
 fid = fopen( filename, 'r' );
 
-error = -1;
-if fid ~= -1
-
-    % 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.TIME       = datenum(tsgData(:,3), tsgData(:,2),tsgData(:,1), ...
-                             tsgData(:,4),tsgData(:,5),tsgData(:,6));
-    tsg.LATITUDE   = tsgData(:,7);
-    tsg.LONGITUDE  = tsgData(:,8);
-    tsg.TEMP_TSG   = tsgData(:,9);
-    tsg.PSAL       = tsgData(:,10);
-    tsg.PSAL_QC    = tsgData(:,11);
-    tsg.PSAL_ADJ   = tsgData(:,12);
-    tsg.PSAL_ERR   = tsgData(:,13);
-    
-    % Save the data in the application GUI
-    % ------------------------------------
-    setappdata( hTsgGUI, 'tsg_data', tsg );
-    
-    % Clear the Workspace
-    % -------------------
-    clear tsgdata
-    
-    % Close the file
-    % --------------
-    fclose( fid );
-    
-    % Everything OK
-    % -------------
-    error = 1;
+% 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' );
+
+% convert with julian day with origin 1950
+% -----------------------------------------
+%% a supprimer !!!!!!!
+% tsg.TIME_TSG = datenumToJulian(tsg.TIME_TSG);
+
+tsg.LATX       = tsgData(:,7);
+tsg.LONX       = tsgData(:,8);
+tsg.SSJT       = tsgData(:,9);
+tsg.SSPS       = tsgData(:,10);
+tsg.SSPS_QC    = tsgData(:,11);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+tsg.SSPS_ADJ   = tsgData(:,12);
+tsg.SSPS_ERR   = tsgData(:,13);
+
+% Compute ship velocity from positions if sog not available
+% ---------------------------------------------------------
+if isempty(tsg.SPDC)
+  range = m_lldist(tsg.LONX,tsg.LATX);
+  ind = size(tsg.DAYD);
+  tsg.SPDC = zeros(size(ind));
+  for i=1:length(tsg.DAYD)-1
+    tsg.SPDC(i) = range(i) / ((tsg.DAYD(i+1)-tsg.DAYD(i)) * 24 * 1.854);
+  end
+  tsg.SPDC = [tsg.SPDC';0];
+end
+
+
+% Save the data in the application GUI
+% ------------------------------------
+setappdata( hTsgGUI, 'tsg_data', tsg );
+
+% Clear the Workspace
+% -------------------
+clear tsgdata
+
+% Close the file
+% --------------
+fclose( fid );
+
+% Display time to read file on console
+% ------------------------------------
+t = toc; fprintf('...done (%6.2f sec).\n\n',t);
+
+% Everything OK
+% -------------
+error = 1;