Index: /trunk/src/get_field.m
===================================================================
--- /trunk/src/get_field.m	(revision 751)
+++ /trunk/src/get_field.m	(revision 752)
@@ -34,5 +34,5 @@
 function varargout = get_field(varargin)
 
-% Last Modified by GUIDE v2.5 21-Apr-2014 15:03:19
+% Last Modified by GUIDE v2.5 24-Apr-2014 22:45:34
 
 % Begin initialization code - DO NOT EDIT
@@ -640,5 +640,5 @@
     set(handles.Coord_x,'String',ListCoord)
 end
-if  get(handles.CheckDimensionY,'Value')
+if  get(handles.CheckDimensionX,'Value')
     set(handles.Coord_y,'Value',1)
     set(handles.Coord_y,'String',dim_var')
@@ -647,5 +647,5 @@
     set(handles.Coord_y,'String',ListCoord)
 end
-if  get(handles.CheckDimensionZ,'Value')
+if  get(handles.CheckDimensionX,'Value')
     set(handles.Coord_z,'Value',1)
     set(handles.Coord_z,'String',dim_var')
@@ -909,4 +909,5 @@
         set(handles.TimeName, 'String',Field.Display.ListDimName)
 end
+TimeName_Callback(hObject, [], handles)
 
 %-----------------------------------------------------------------------
@@ -985,11 +986,42 @@
 % --- Executes on selection change in TimeName.
 function TimeName_Callback(hObject, eventdata, handles)
+Field=get(handles.get_field,'UserData');
 index=get(handles.SwitchVarIndexTime,'Value');
-if index==3 ; % TimeName is used to chose a variable
-    index=get(handles.TimeName,'Value');
-    string=get(handles.TimeName,'String');
-    VarName=string{index};
-end
-update_field(handles,VarName)
+switch index
+    case 1
+        set(handles.num_TimeDimension,'String','')
+        set(handles.TimeUnit,'String','index')
+    case 2
+        set(handles.num_TimeDimension,'String','')
+        attr_index=strcmpi(TimeUnit,Field.ListGlobalAttribute);
+        if ~isempty(attr_index)
+            AttrName=Field.ListGlobalAttribute{attr_index};
+            set(handles.TimeUnit,'String',Field.(AttrName))
+        end
+    case {3 ,4}
+        MenuIndex=get(handles.TimeName,'Value');
+        string=get(handles.TimeName,'String');
+        if index==3  % TimeName is used to chose a variable
+            VarName=string{MenuIndex};
+            VarIndex=name2index(VarName,Field.ListVarName);
+            DimName=Field.VarDimName{VarIndex};
+            DimIndex=name2index(DimName,Field.ListDimName);
+            DimValue=Field.DimValue(DimIndex);
+            set(handles.num_TimeDimension,'String',num2str(DimValue))
+            unit='';
+            if isfield(Field,'VarAttribute')&& isfield(Field.VarAttribute{VarIndex},'Unit')
+                unit=Field.VarAttribute{VarIndex}.Unit;
+            end
+            set(handles.TimeUnit,'String',unit)
+            update_field(handles,VarName)
+        elseif index==4% TimeName is used to chose a dimension
+            DimName=string{MenuIndex};
+            DimIndex=name2index(DimName,Field.ListDimName);
+            DimValue=Field.DimValue(DimIndex);
+            set(handles.num_TimeDimension,'String',num2str(DimValue))
+            set(handles.TimeUnit,'String','index')
+            
+        end
+end
 
 
@@ -1002,8 +1034,6 @@
 end
 set(handles.Coord_z,'Visible',status)
-set(handles.CheckDimensionZ,'Visible',status)
+% set(handles.CheckDimensionZ,'Visible',status)
 set(handles.Z_title,'Visible',status)
 set(handles.vector_z,'Visible',status)
 set(handles.W_title,'Visible',status)   
-
-
Index: /trunk/src/get_file_type.m
===================================================================
--- /trunk/src/get_file_type.m	(revision 751)
+++ /trunk/src/get_file_type.m	(revision 752)
@@ -55,22 +55,22 @@
                     error_nc=0;
                     try
-                        Data=nc2struct(fileinput,'ListGlobalAttribute','absolut_time_T0','Conventions',...
-                            'CivStage','patch2','fix2','civ2','patch','fix');
-                        if isfield(Data,'Txt') && ~isempty(Data.Txt)
+                        [Data,tild,tild,errormsg]=nc2struct(fileinput,'ListGlobalAttribute','absolut_time_T0','Conventions',...
+                            'CivStage','patch2','fix2','civ2','patch','fix','hart');
+                        if ~isempty(errormsg)
                             error_nc=1;
                         else
-                            if ~isempty(Data.absolut_time_T0')
+                            if ~isempty(Data.absolut_time_T0') && ~isempty(Data.hart)
                                 FileType='civx'; % test for civx velocity fields
-                                if ~isempty(Data.patch2) && isequal(Data.patch2,1)
+                                if isequal(Data.patch2,1)
                                     FileInfo.CivStage=6;
-                                elseif ~isempty(Data.fix2) && isequal(Data.fix2,1)
+                                elseif isequal(Data.fix2,1)
                                     FileInfo.CivStage=5;
-                                elseif ~isempty(Data.civ2) && isequal(Data.civ2,1);
+                                elseif  isequal(Data.civ2,1)
                                     FileInfo.CivStage=4;
-                                elseif ~isempty(Data.patch) && isequal(Data.patch,1);
+                                elseif isequal(Data.patch,1)
                                     FileInfo.CivStage=3;
-                                elseif ~isempty(Data.fix) && isequal(Data.fix,1);
+                                elseif isequal(Data.fix,1)
                                     FileInfo.CivStage=2;
-                                elseif ~isempty(Data.absolut_time_T0) && ~isempty(Data.hart)
+                                else
                                     FileInfo.CivStage=1;
                                 end
Index: /trunk/src/series.m
===================================================================
--- /trunk/src/series.m	(revision 751)
+++ /trunk/src/series.m	(revision 752)
@@ -2001,5 +2001,5 @@
 
 %% Detect the types of input files
-SeriesData=get(handles.series,'UserData');
+SeriesData=get(handles.series,'UserData');% info on the input file series
 iview_civ=[];nb_netcdf=0;
 if ~isempty(SeriesData)&&isfield(SeriesData,'FileType')
@@ -2007,5 +2007,5 @@
     nb_netcdf=numel(find(strcmp('netcdf',SeriesData.FileType)));
 end
-if numel(iview_civ)>=1
+if numel(iview_civ)>=1 && ~isempty(iview_civ(1))
     menu=set_veltype_display(SeriesData.FileInfo{iview_civ(1)}.CivStage,SeriesData.FileType{iview_civ(1)});
     set(handles.VelType,'String',[{'*'};menu])
Index: /trunk/src/uvmat.m
===================================================================
--- /trunk/src/uvmat.m	(revision 751)
+++ /trunk/src/uvmat.m	(revision 752)
@@ -3198,4 +3198,10 @@
                     set(handles.RootFile,'String',[get(handles.RootFile,'String') get(handles.FileIndex,'String')])
                     set(handles.i1,'String','1')% set counter to 1 (now the time index in the input matrix)
+                    MaxIndex_i=get(handles.MaxIndex_i,'String');
+                    MaxIndex_i{1}=num2str(GetFieldData.Time.TimeDimension);
+                    set(handles.MaxIndex_i,'String',MaxIndex_i)%TODO: record time unit
+                    UvData=get(handles.uvmat,'UserData');
+                    UvData.TimeUnit=GetFieldData.Time.TimeUnit;
+                    set(handles.uvmat,'UserData',UvData);
                     set(handles.FileIndex,'String','')
                     ParamIn.TimeVarName=GetFieldData.Time.TimeName;
@@ -3203,6 +3209,12 @@
                     set(handles.TimeName,'String',['dim:' GetFieldData.Time.TimeName]);
                     set(handles.NomType,'String','*')
-                    set(handles.RootFile,'String',[get(handles.RootFile,'String') get(handles.FileIndex,'String')])
+                    set(handles.RootFile,'String',[get(handles.RootFile,'String') get(handles.FileIndex,'String')])             
                     set(handles.i1,'String','1')% set counter to 1 (now the time index in the input matrix)
+                    MaxIndex_i=get(handles.MaxIndex_i,'String');
+                    MaxIndex_i{1}=num2str(GetFieldData.Time.TimeDimension);
+                    set(handles.MaxIndex_i,'String',MaxIndex_i)%TODO: record time unit
+                    UvData=get(handles.uvmat,'UserData');
+                    UvData.TimeUnit=GetFieldData.Time.TimeUnit;
+                    set(handles.uvmat,'UserData',UvData);
                     set(handles.FileIndex,'String','')
                     ParamIn.TimeDimName=GetFieldData.Time.TimeName;
@@ -3810,7 +3822,12 @@
     CoordUnitPrev=UvData.Field.CoordUnit;
 end
-if ~isempty(list_path{ichoice}) 
-    if nargin(transform_handle)>1 && isfield(UvData,'XmlData')&&~isempty(UvData.XmlData)
-        DataOut=feval(transform_handle,'*',UvData.XmlData{1});% execute the transform fct to get the required conditions
+if ~isempty(list_path{ichoice})
+    if nargin(transform_handle)>1 %&& isfield(UvData,'XmlData')&&~isempty(UvData.XmlData)
+        XmlData=[];
+        if isfield(UvData,'XmlData')&&~isempty(UvData.XmlData)
+            XmlData=UvData.XmlData{1};
+        end
+        UvData.Field.Action.RUN=0;% indicate that the transform fct is called only to get input param
+        DataOut=feval(transform_handle,UvData.Field,XmlData);% execute the transform fct to get the required conditions
         if isfield(DataOut,'CoordUnit')% set the requested coord unit (info used to possibly delete the current projection objects)
             CoordUnit=DataOut.CoordUnit;
@@ -4592,9 +4609,10 @@
 %------------------------------------------------------------------------
 hfig=figure;
-copyobj(handles.PlotAxes,hfig);
+hc=copyobj(handles.PlotAxes,hfig);
+set(hc,'Position',[0.1 0.1 0.8 0.8])
 h=findobj(handles.PlotAxes,'tag','ima'); %look for image in the plot
 if ~isempty(h)
     map=colormap(handles.PlotAxes);
-    colormap(map);%transmit the current colormap to the zoom fig
+    colormap(map);%transmit the current colormap to the new fig
     colorbar
 end
@@ -5669,4 +5687,2 @@
     set(handles.TableDisplay,'Visible','off')
 end
-
-
Index: /trunk/src/view_field.m
===================================================================
--- /trunk/src/view_field.m	(revision 751)
+++ /trunk/src/view_field.m	(revision 752)
@@ -317,5 +317,7 @@
 %-------------------------------------------------------------------
 hfig=figure;
-copyobj(handles.PlotAxes,hfig);
+hc=copyobj(handles.PlotAxes,hfig);
+set(hc,'Position',[0.1 0.1 0.8 0.8])
+h=findobj(handles.PlotAxes,'tag','ima'); %look for image in the plot
 if ~isempty(h)
     h=findobj(handles.PlotAxes,'tag','ima'); %look for image in the plot
