Index: /trunk/src/check_field_structure.m
===================================================================
--- /trunk/src/check_field_structure.m	(revision 157)
+++ /trunk/src/check_field_structure.m	(revision 158)
@@ -50,4 +50,6 @@
 nbdim=0;
 Data.ListDimName={};
+
+%% main loop on the list of variables
 for ivar=1:nbfield
     VarName=Data.ListVarName{ivar};
@@ -64,5 +66,6 @@
         return
     end
-    nbcoord=numel(sizvar);%nbre of coordiantes for variable named VarName
+    nbcoord=numel(sizvar);%nbre of coordinates for variable named VarName
+    testrange=0;
     if numel(DimCell)==0
         errormsg=['empty declared dimension .VarDimName{' num2str(ivar) '} for ' VarName];
@@ -79,4 +82,7 @@
                 return
             end
+            if sizvar(1)==2 && isequal(VarName,DimCell{1})
+                testrange=1;% test for a dimension variable representing a range 
+            end
         else
             errormsg=['1 dimension declared in .VarDimName{' num2str(ivar) '} inconsistent with the nbre of dimensions =' num2str(nbcoord) ' of the variable ' VarName];
@@ -85,5 +91,5 @@
     else
         if numel(DimCell)>nbcoord
-            DimCell=DimCell(end-nbcoord+1:end);%first singleton diemnsions omitted,
+            DimCell=DimCell(end-nbcoord+1:end);%first singleton diemensions omitted,
         elseif nbcoord > numel(DimCell)
             errormsg=['nbre of declared dimensions in .VarDimName{' num2str(ivar) '} smaller than the nbre of dimensions =' num2str(nbcoord) ' of the variable ' VarName];
@@ -97,4 +103,5 @@
         if isempty(iprev)% append the dimension name to the current list
             nbdim=nbdim+1;
+            RangeTest(nbdim)=0; %default
             if sizvar(idim)==2 && strcmp(DimName,VarName)%case of a coordinate defined by the two end values (regular spacing)
                 RangeTest(nbdim)=1; %to be updated for a later variable  
@@ -105,7 +112,9 @@
         else % DimName is detected in the current list of dimension names
             if ~isequal(Data.DimValue(iprev),sizvar(idim))
+                        RangeTest(iprev)
+            Data.DimValue(iprev)
                 if isequal(Data.DimValue(iprev),2)&& RangeTest(iprev)  % the dimension has been already detected as a range [min max]
                     Data.DimValue(iprev)=sizvar(idim); %update with actual value
-                else
+                elseif ~testrange                
                     errormsg=['dimension declaration inconsistent with the size =[' num2str(sizvar) '] for ' VarName];
                     return
Index: /trunk/src/geometry_calib.m
===================================================================
--- /trunk/src/geometry_calib.m	(revision 157)
+++ /trunk/src/geometry_calib.m	(revision 158)
@@ -1181,5 +1181,5 @@
 Data.AY=[npxy(1)-0.5 0.5];
 Data.AX=[0.5 npxy(2)];
-Data.CoordType='px';
+Data.CoordUnit='pixel';
 Calib.GeometryCalib=GeometryCalib;
 DataOut=phys(Data,Calib);
Index: /trunk/src/mouse_motion.m
===================================================================
--- /trunk/src/mouse_motion.m	(revision 157)
+++ /trunk/src/mouse_motion.m	(revision 158)
@@ -172,17 +172,17 @@
                     end
                     %coordinate transform if proj_coord differs from menu_coord A REVOIR
-                    if isfield(Field,'CoordType')
-                        mouse.CoordType=Field.CoordType;
-                    end
                     if isfield(Field,'CoordUnit')
                         mouse.CoordUnit=Field.CoordUnit;
                     end
-                    if isfield(mouse,'CoordType')
-                        if isequal(mouse.CoordType,'px')
-                            mouse.CoordUnit='px';
-                        end
-                    else
-                        mouse.CoordUnit='';%default
-                    end
+%                     if isfield(Field,'CoordUnit')
+%                         mouse.CoordUnit=Field.CoordUnit;
+%                     end
+%                     if isfield(mouse,'CoordType')
+%                         if isequal(mouse.CoordType,'px')
+%                             mouse.CoordUnit='px';
+%                         end
+%                     else
+%                         mouse.CoordUnit='';%default
+%                     end
                     if test_piv 
                        par=civ('read_param_civ1',hhciv);
Index: /trunk/src/proj_field.m
===================================================================
--- /trunk/src/proj_field.m	(revision 157)
+++ /trunk/src/proj_field.m	(revision 158)
@@ -87,9 +87,17 @@
 end
 %introduce default field properties (reading old standards)
-if ~isfield(ObjectData,'Style')||~isfield(ObjectData,'Coord')||~isfield(ObjectData,'ProjMode')
+if ~isfield(ObjectData,'Style')||~isfield(ObjectData,'ProjMode')
     ProjData=FieldData;
     return
 end
-
+if ~isfield(ObjectData,'Coord')
+    if strcmp(ObjectData.Style,'plane')
+        ObjectData.Coord=[0 0 0];%default
+    else
+        ProjData=FieldData;
+        return
+    end
+end
+        
 % OBSOLETE
 if isfield(ObjectData,'XMax') && ~isempty(ObjectData.XMax)
@@ -112,9 +120,4 @@
 end
 %%%%%%%%%%
-
-% FieldData=document_field(FieldData);%transform FieldData to the standard format
-% if ~isfield(FieldData,'VarAttribute')
-%     FieldData.VarAttribute={};
-% end
 switch ObjectData.Style
     case 'points'
@@ -138,7 +141,5 @@
         [ProjData,errormsg] = proj_volume(FieldData,ObjectData);
 end
-% if exist('IndexObj','var')
-%     ProjData.IndexObj=IndexObj;%transfer object index
-% end
+
 
 %-----------------------------------------------------------------
@@ -1004,5 +1005,5 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%group the variables (fields of 'FieldData') in cells of variables with the same dimensions
+%% group the variables (fields of 'FieldData') in cells of variables with the same dimensions
 %-----------------------------------------------------------------
 idimvar=0;
@@ -1012,5 +1013,6 @@
     return
 end
-%LOOP ON GROUPS OF VARIABLES SHARING THE SAME DIMENSIONS
+
+% LOOP ON GROUPS OF VARIABLES SHARING THE SAME DIMENSIONS
 % CellVarIndex=cells of variable index arrays
 ivar_new=0; % index of the current variable in the projected field
@@ -1036,5 +1038,4 @@
     ivar_FF=VarType.errorflag;
     testX=~isempty(ivar_X) && ~isempty(ivar_Y);
-    %DimIndices=FieldData.VarDimIndex{VarIndex(1)};%indices of the dimensions of the first variable (common to all variables in the cell)
     DimCell=FieldData.VarDimName{VarIndex(1)};
     if ischar(DimCell)
@@ -1042,5 +1043,5 @@
     end
 
-%case of input fields with unstructured coordinates
+%% case of input fields with unstructured coordinates
     if testX
         XName=FieldData.ListVarName{ivar_X};
@@ -1066,8 +1067,6 @@
             indcut=find(abs(fieldZ) <= width);
             for ivar=VarIndex
-                 VarName=FieldData.ListVarName{ivar};
-%                 eval(['size(FieldData.' VarName ')'])
-                eval(['FieldData.' VarName '=FieldData.' VarName '(indcut);'])
-%                 end      
+                VarName=FieldData.ListVarName{ivar};
+                eval(['FieldData.' VarName '=FieldData.' VarName '(indcut);'])  
                     % A VOIR : CAS DE VAR STRUCTUREE MAIS PAS GRILLE REGULIERE : INTERPOLER SUR GRILLE REGULIERE              
             end
@@ -1217,5 +1216,6 @@
             end
         end
-%case of input fields defined on a structured  grid 
+        
+%% case of input fields defined on a structured  grid 
     else  
         AYName=FieldData.ListVarName{VarType.coord(1)};%name of input x coordinate (name preserved on projection)
@@ -1256,5 +1256,5 @@
                     DCoord_max=max(DCoord);
                 %    test_direct(idim)=DCoord_max>0;% =1 for increasing values, 0 otherwise
-                    if ~isequal(DCoord_max,DCoord_min(idim)>0)
+                    if abs(DCoord_max-DCoord_min(idim))>abs(DCoord_max/1000) 
                         msgbox_uvmat('ERROR',['non monotonic dimension variable # ' num2str(idim)  ' in proj_field.m'])
                                 return
@@ -1367,9 +1367,11 @@
                 ProjData.ListVarName=[ProjData.ListVarName VarName];
                 ProjData.VarDimName=[ProjData.VarDimName {DimCell}];
-                if length(FieldData.VarAttribute)>=ivar
+                if isfield(FieldData,'VarAttribute') && length(FieldData.VarAttribute)>=ivar
                     ProjData.VarAttribute{length(ProjData.ListVarName)}=FieldData.VarAttribute{ivar};
                 end
                 eval(['ProjData.' VarName '=FieldData.' VarName '(min_ind1:max_ind1,min_ind2:max_ind2) ;']);
-            end         
+            end  
+            eval(['ProjData.' AYName '=FieldData.' AYName ';']) %record the new (projected ) y coordinates
+            eval(['ProjData.' AXName '=FieldData.' AXName ';']) %record the new (projected ) x coordinates
         else       % case with rotation and/or interpolation
             if isempty(Coord_z) %2D case
@@ -1452,5 +1454,6 @@
         end
     end
-    %projection of  velocity components in the rotated coordinates
+    
+    %% projection of  velocity components in the rotated coordinates
     if ~isequal(Phi,0) && length(ivar_U)==1
         if isempty(ivar_V)
@@ -2082,10 +2085,10 @@
     end
 end
-if isfield(FieldData,'CoordType')
-    if isfield(ObjectData,'CoordType')&~isequal(FieldData.CoordType,ObjectData.CoordType)
-        errormsg=[ObjectData.Style ' in ' ObjectData.CoordType ' coordinates, while field in ' FieldData.CoordType ' coordinates'];
+if isfield(FieldData,'CoordUnit')
+    if isfield(ObjectData,'CoordUnit')&~isequal(FieldData.CoordUnit,ObjectData.CoordUnit)
+        errormsg=[ObjectData.Style ' in ' ObjectData.CoordUnit ' coordinates, while field in ' FieldData.CoordUnit ];
         return
     else
-         ProjData.CoordType=FieldData.CoordType;
+         ProjData.CoordUnit=FieldData.CoordUnit;
     end
 end
Index: /trunk/src/read_civxdata.m
===================================================================
--- /trunk/src/read_civxdata.m	(revision 157)
+++ /trunk/src/read_civxdata.m	(revision 158)
@@ -154,5 +154,5 @@
     end
 end
-Field.CoordType='px';% TODO: abandon, use COORdUnit instead ? (to adapt 'px' and 'phys')
+%Field.CoordType='px';% TODO: abandon, use COORdUnit instead ? (to adapt 'px' and 'phys')
 Field.CoordUnit='pixel';
 
Index: /trunk/src/read_set_object.m
===================================================================
--- /trunk/src/read_set_object.m	(revision 157)
+++ /trunk/src/read_set_object.m	(revision 158)
@@ -22,7 +22,7 @@
 	value=get(handles.ProjMode,'Value');
 	data.ProjMode=menu{value};
-	menu=get(handles.MenuCoord,'String');
-	value=get(handles.MenuCoord,'Value');
-	data.CoordType=menu{value};
+% 	menu=get(handles.CoordUnit,'String');
+% 	value=get(handles.MenuCoord,'Value');
+	data.CoordUnit=get(handles.CoordUnit,'String');
     testcalib=0;
 else %default
@@ -33,20 +33,20 @@
 %Euler angles and projection ranges
 if ~testcalib
-	if isequal(get(handles.Phi,'Visible'),'on')
+    if isequal(get(handles.Phi,'Visible'),'on')
         data.Phi=str2num(get(handles.Phi,'String'));
-	end
-	if isequal(get(handles.Theta,'Visible'),'on')
+    end
+    if isequal(get(handles.Theta,'Visible'),'on')
         data.Theta=str2num(get(handles.Theta,'String'));
-	end
-	if isequal(get(handles.Psi,'Visible'),'on')
+    end
+    if isequal(get(handles.Psi,'Visible'),'on')
         data.Psi=str2num(get(handles.Psi,'String'));
-    end	
-	if isequal(get(handles.DX,'Visible'),'on')
+    end
+    if isequal(get(handles.DX,'Visible'),'on')
         data.DX=str2num(get(handles.DX,'String'));
-	end
-	if isequal(get(handles.DY,'Visible'),'on')
+    end
+    if isequal(get(handles.DY,'Visible'),'on')
         data.DY=str2num(get(handles.DY,'String'));
-	end
-	if isequal(get(handles.DZ,'Visible'),'on')
+    end
+    if isequal(get(handles.DZ,'Visible'),'on')
         data.DZ=str2num(get(handles.DZ,'String'));
     end
@@ -55,28 +55,22 @@
         ZMin=str2num(get(handles.ZMin,'String'));
         if ~isempty(ZMin)
-           data.RangeZ(1)=ZMin;
-           dimrange=[2 3];
+            data.RangeZ(1)=ZMin;
+            dimrange=[2 3];
         end
     end
-	if isequal(get(handles.ZMax,'Visible'),'on')
-        ZMax=str2num(get(handles.ZMax,'String'));
-        if isempty(ZMax)
+    if isequal(get(handles.ZMax,'Visible'),'on')
+        ZMax=str2double(get(handles.ZMax,'String'));
+        if isnan(ZMax)
             if dimrange(1)>1
-%                 set(handles.ZMax,'String',get(handles.ZMin,'String'))
                 data.RangeZ(1)=ZMax;
             end
-        else 
-           data.RangeZ(2)=ZMax;
-           dimrange=[dimrange(1) 3];
+        else
+            data.RangeZ(2)=ZMax;
+            dimrange=[dimrange(1) 3];
         end
     end
     if isequal(get(handles.YMin,'Visible'),'on')
-        YMin=str2num(get(handles.YMin,'String'));
-        if isempty(YMin) 
-%             if dimrange(2)>2
-% %                 set(handles.YMin,'String','0')
-%                 data.RangeY(2)=0;
-%             end
-        else
+        YMin=str2double(get(handles.YMin,'String'));
+        if ~isnan(YMin)
             data.RangeY(2)=YMin;
             dimrange=[2 max(dimrange(2),2)];
@@ -84,17 +78,6 @@
     end
     if isequal(get(handles.YMax,'Visible'),'on')
-%         data.YMax=str2num(get(handles.YMax,'String'));
-        YMax=str2num(get(handles.YMax,'String'));
-        if isempty(YMax) 
-%             if dimrange(1)>1
-% %                 set(handles.YMax,'String',get(handles.YMin,'String'))
-%                 if ~isempty(YMin)
-%                 data.RangeY(1)=YMin;
-%                 end
-%             elseif dimrange(2)>2
-% %                 set(handles.YMax,'String',get(handles.ZMin,'String'))
-%                 data.RangeY(2)=ZMin;
-%             end
-        else
+        YMax=str2double(get(handles.YMax,'String'));
+        if ~isnan(YMax)
             data.RangeY(1)=YMax;
             dimrange=[dimrange(1) max(dimrange(2),2)];
@@ -102,33 +85,14 @@
     end
     if isequal(get(handles.XMin,'Visible'),'on')
-        XMin=str2num(get(handles.XMin,'String'));
-        if isempty(XMin) 
-%             if ~isempty(YMin)
-%                 if dimrange(2)>1
-% %                     set(handles.XMin,'String',get(handles.YMin,'String'))
-%                     data.RangeX(2)=YMin;
-%                     XMin=YMin;
-%                 end
-%             end
-        else
+        XMin=str2double(get(handles.XMin,'String'));
+        if ~isnan(XMin)
             data.RangeX(2)=XMin;
-            %dimrange=[2 max(dimrange(2),1)];
         end
-	end
-	if isequal(get(handles.XMax,'Visible'),'on')
-         XMax=str2num(get(handles.XMax,'String'));
-         if isempty(XMax) 
-%             if dimrange(1)>1
-% %                 set(handles.XMax,'String',get(handles.XMin,'String'))
-%                 if ~isempty(XMin)
-%                 data.RangeX(2)=XMin;
-%                 end
-%             elseif dimrange(2)>1
-% %                 set(handles.XMax,'String',get(handles.YMax,'String'))
-%                 data.RangeX(1)=YMax;
-%             end
-        else
+    end
+    if isequal(get(handles.XMax,'Visible'),'on')
+        XMax=str2double(get(handles.XMax,'String'));
+        if ~isnan(XMax)
             data.RangeX(1)=XMax;
-         end
+        end
     end
 end
Index: /trunk/src/series.m
===================================================================
--- /trunk/src/series.m	(revision 157)
+++ /trunk/src/series.m	(revision 158)
@@ -2092,9 +2092,9 @@
         transform_menu=get(handles.transform_fct,'String');
         ichoice=get(handles.transform_fct,'Value');
-        if isequal(transform_menu{ichoice},'px');
-            data.CoordType='px';
-        else
-            data.CoordType='phys';
-        end
+%         if isequal(transform_menu{ichoice},'px');
+%             data.CoordType='px';
+%         else
+%             data.CoordType='phys';
+%         end
         data.desable_plot=1;
         [SeriesData.hset_object,SeriesData.sethandles]=set_object(data);% call the set_object interface
Index: /trunk/src/series/aver_stat.m
===================================================================
--- /trunk/src/series/aver_stat.m	(revision 157)
+++ /trunk/src/series/aver_stat.m	(revision 158)
@@ -342,5 +342,5 @@
                     Data{iview}.AX=[0.5 npx-0.5];
                     Data{iview}.A=double(A);
-                    Data{iview}.CoordType='px';
+                    Data{iview}.CoordUnit='pixel';
                 elseif testcivx
                     [Data{iview},VelTypeOut]=read_civxdata(filename,FieldName,VelType);
Index: /trunk/src/series/merge_proj.m
===================================================================
--- /trunk/src/series/merge_proj.m	(revision 157)
+++ /trunk/src/series/merge_proj.m	(revision 158)
@@ -278,5 +278,5 @@
                 Field{iview}.AX=[0.5 npxy(2)-0.5]; % coordinates of the first and last pixel centers
                 Field{iview}.AY=[npxy(1)-0.5 0.5];
-                Field{iview}.CoordType='px'; 
+                Field{iview}.CoordUnit='pixel'; 
                 Field{iview}.AName='image';
                 timeread(iview)=0;
Index: /trunk/src/series/time_series.m
===================================================================
--- /trunk/src/series/time_series.m	(revision 157)
+++ /trunk/src/series/time_series.m	(revision 158)
@@ -349,5 +349,5 @@
                     Data{iview}.AX=[0.5 npx-0.5];
                     Data{iview}.A=double(A);
-                    Data{iview}.CoordType='px';
+                    Data{iview}.CoordUnit='pixel';
                 elseif testcivx
                     [Data{iview},VelTypeOut]=read_civxdata(filename,FieldName,VelType);
Index: /trunk/src/set_object.m
===================================================================
--- /trunk/src/set_object.m	(revision 157)
+++ /trunk/src/set_object.m	(revision 158)
@@ -84,5 +84,5 @@
 end
 set(hObject,'KeyPressFcn',{'keyboard_callback',handles})%set keyboard action function (allow action on uvmat when set_object is in front)
-set(handles.MenuCoord,'ListboxTop',1)
+%set(handles.MenuCoord,'ListboxTop',1)
 % if ~exist('PlotHandles','var')
 %      PlotHandles=[];
@@ -241,11 +241,14 @@
         set(handles.DZ,'String',data.DZ)
     end
-    if isfield(data,'CoordType')&& isequal(data.CoordType,'px')
-%         if isequal(data.CoordType,'phys')
-%             set(handles.MenuCoord,'Value',1)
-%         elseif isequal(data.CoordType,'px')
-             set(handles.MenuCoord,'Value',2)
-%         end
-    end
+    if isfield(data,'CoordUnit')
+        set(handles.CoordUnit,'String',data.CoordUnit)
+    end
+%     if isfield(data,'CoordType')&& isequal(data.CoordType,'px')
+% %         if isequal(data.CoordType,'phys')
+% %             set(handles.MenuCoord,'Value',1)
+% %         elseif isequal(data.CoordType,'px')
+%              set(handles.MenuCoord,'Value',2)
+% %         end
+%     end
 end
 if enable_plot
@@ -582,13 +585,13 @@
 
 ProjMode_Callback(hObject, eventdata, handles);%visualize the appropriate edit boxes
-if isfield(s,'CoordType')
-    if isequal(s.CoordType,'phys')
-        set(handles.MenuCoord,'Value',1)
-    elseif isequal(s.CoordType,'px')
-        set(handles.MenuCoord,'Value',2)
-    else
-        warndlg('unknown CoordType (px or phys) in set_object.m')
-    end
-end
+% if isfield(s,'CoordType')
+%     if isequal(s.CoordType,'phys')
+%         set(handles.MenuCoord,'Value',1)
+%     elseif isequal(s.CoordType,'px')
+%         set(handles.MenuCoord,'Value',2)
+%     else
+%         warndlg('unknown CoordType (px or phys) in set_object.m')
+%     end
+% end
 if isfield(s,'XMax')
     set(handles.XMax,'String',s.XMax)
@@ -873,7 +876,7 @@
 ObjectName=get(handles.TITLE,'String');
 if ~isempty(ObjectName)&&~strcmp(ObjectName,'')
-    def={fullfile(dir_save,[ObjectName Object.CoordType '.xml'])};
+    def={fullfile(dir_save,[ObjectName '.xml'])};
 else
-    def={fullfile(dir_save,[Object.Style Object.CoordType '.xml'])};
+    def={fullfile(dir_save,[Object.Style '.xml'])};
 end
 options.Resize='on';
Index: /trunk/src/transform_field/phys.m
===================================================================
--- /trunk/src/transform_field/phys.m	(revision 157)
+++ /trunk/src/transform_field/phys.m	(revision 158)
@@ -99,10 +99,10 @@
 
 DataOut=Data;%default
-DataOut.CoordType='phys'; %put flag for physical coordinates
+DataOut.CoordUnit=Calib.CoordUnit; %put flag for physical coordinates
 if isfield(Calib,'SliceCoord')
     DataOut.PlaneCoord=Calib.SliceCoord;%to generalise for any plane 
 end
 % The transform ACTS ONLY IF .CoordType='px'and Calib defined
-if isfield(Data,'CoordType')&& isequal(Data.CoordType,'px')&& ~isempty(Calib)
+if isfield(Data,'CoordUnit')%&& isequal(Data.CoordType,'px')&& ~isempty(Calib)
     if isfield(Calib,'CoordUnit')
         DataOut.CoordUnit=Calib.CoordUnit;
Index: /trunk/src/uvmat.m
===================================================================
--- /trunk/src/uvmat.m	(revision 157)
+++ /trunk/src/uvmat.m	(revision 158)
@@ -1528,9 +1528,4 @@
             end
         end
-%         if mdetect==0
-%             msgbox_uvmat('ERROR','no mask file detected (format ..._xxmask_ii.png needed), use the menu bar Tools/Make mask')
-%             set(handles.mask_test,'Value',0)
-%             return
-%         end
     end
     errormsg=[];%default
@@ -1610,5 +1605,5 @@
         Mask.AX=[0.5 npxy(2)-0.5];
         Mask.AY=[npxy(1)-0.5 0.5 ];
-        Mask.CoordType='px';
+        Mask.CoordUnit='pixel';
         if isequal(get(handles.slices,'Value'),1)
            NbSlice=str2num(get(handles.nb_slice,'String'));
@@ -1944,5 +1939,5 @@
     Field_b.ZIndex=mod(num_i2-1,nbslice)+1;
 end
-Field_b.CoordType='px';
+Field_b.CoordUnit='pixel';
 %determine the input file type
 if (test_1 && isfield(UvData,'MovieObject_1'))||(~test_1 && isfield(UvData,'MovieObject'))
@@ -2243,5 +2238,5 @@
     Field{1}.AX=Rangx;
     Field{1}.A=A;
-    Field{1}.CoordType='px'; %used for mouse_motion
+   % Field{1}.CoordType='px'; %used for mouse_motion
     Field{1}.CoordUnit='pixel'; %used for mouse_motion
 end
@@ -2490,5 +2485,5 @@
 UvData.ZMax=0;
 UvData.ZMin=0;%default
-UvData.Mesh=1; %default
+%UvData.Mesh=1; %default
 [UvData.Field,errormsg]=check_field_structure(UvData.Field);
 if ~isempty(errormsg)
@@ -2542,12 +2537,14 @@
     end    
     if test_z
-         UvData.Mesh=((UvData.XMax-UvData.XMin)*(UvData.YMax-UvData.YMin)*(UvData.ZMax-UvData.ZMin))/nbvec;% volume per vector
-         UvData.Mesh=(UvData.Mesh)^(1/3);
+         Field.Mesh=((UvData.XMax-UvData.XMin)*(UvData.YMax-UvData.YMin)*(UvData.ZMax-UvData.ZMin))/nbvec;% volume per vector
+         Field.Mesh=(Field.Mesh)^(1/3);
     else
-        UvData.Mesh=sqrt((UvData.XMax-UvData.XMin)*(UvData.YMax-UvData.YMin)/nbvec);%2D
+        Field.Mesh=sqrt((UvData.XMax-UvData.XMin)*(UvData.YMax-UvData.YMin)/nbvec);%2D
     end
 end
 
 %case of structured coordinates
+'TESTfield'
+UvData.Field
 if isfield(UvData.Field,'AX') && isfield(UvData.Field,'AY')&& isfield(UvData.Field,'A')
     UvData.XMax=max(UvData.Field.AX);
@@ -2556,5 +2553,5 @@
     UvData.YMin=min(UvData.Field.AY);
     np_A=size(UvData.Field.A);
-    UvData.Mesh=sqrt((UvData.XMax-UvData.XMin)*(UvData.YMax-UvData.YMin)/((np_A(1)-1) * (np_A(2)-1))) ; 
+    Field.Mesh=sqrt((UvData.XMax-UvData.XMin)*(UvData.YMax-UvData.YMin)/((np_A(1)-1) * (np_A(2)-1))) ; 
 end
 if  isempty(coord_x) && ~isempty(CellVarIndex)
@@ -2582,5 +2579,5 @@
             end
         end
-        UvData.Mesh=(UvData.ZMax-UvData.ZMin)/(nbpoints-1); 
+        Field.Mesh=(UvData.ZMax-UvData.ZMin)/(nbpoints-1); 
     elseif NbDim==2
         nbpoints_y=UvData.Field.DimValue(DimIndex(1));       
@@ -2612,5 +2609,5 @@
         end
         DX=(UvData.XMax-UvData.XMin)/(nbpoints_x-1);
-        UvData.Mesh= sqrt(DX*DY); 
+        Field.Mesh= sqrt(DX*DY); 
     end
 end
@@ -2628,5 +2625,5 @@
 if NbDim==3 && UvData.NewSeries
     UvData.Object{1}.NbDim=UvData.NbDim;%test for 3D objects
-    UvData.Object{1}.RangeZ=UvData.Mesh;%main plotting plane
+    UvData.Object{1}.RangeZ=Field.Mesh;%main plotting plane
     UvData.Object{1}.Coord(1,3)=(UvData.ZMin+UvData.ZMax)/2;%section at a middle plane chosen
     UvData.Object{1}.Phi=0;
@@ -2754,6 +2751,6 @@
             [PlotType,PlotParamOut]=plot_field(ObjectData,haxes(imap),PlotParam{imap},keeplim(imap),PosColorbar{imap});
             write_plot_param(plot_handles{imap},PlotParamOut) %update the auto plot parameters
-            if isfield(UvData,'Mesh')&&~isempty(UvData.Mesh)
-                ObjectData.Mesh=UvData.Mesh; % gives an estimated mesh size (useful for mouse action on the plot)
+            if isfield(Field,'Mesh')&&~isempty(Field.Mesh)
+                ObjectData.Mesh=Field.Mesh; % gives an estimated mesh size (useful for mouse action on the plot)
             end
             if imap==1            
@@ -5063,23 +5060,26 @@
 transform_list=get(handles.transform_fct,'String');
 val=get(handles.transform_fct,'Value');
-data.CoordType=transform_list{val};
-% if isfield(UvData,'CoordType')
-%     data.CoordType=UvData.CoordType;
-% end
-if isfield(UvData,'Mesh')&&~isempty(UvData.Mesh)
-    data.RangeX=UvData.Mesh;
-    data.RangeY=UvData.Mesh;
-    data.DX=UvData.Mesh;
-    data.DY=UvData.Mesh;
-elseif isfield(UvData.Field,'AX')&& isfield(UvData.Field,'AY')&& isfield(UvData.Field,'A')%only image
-    np=size(UvData.Field.A);
-    meshx=(UvData.Field.AX(end)-UvData.Field.AX(1))/np(2);
-    meshy=abs(UvData.Field.AY(end)-UvData.Field.AY(1))/np(1);
-    data.RangeY=max(meshx,meshy);
-    data.RangeX=max(meshx,meshy);
-    data.DX=max(meshx,meshy);
-end 
-if isfield(UvData,'NbDim')
-    data.NbDim=UvData.NbDim;
+%data.CoordType=transform_list{val};
+if isfield(UvData,'Field')
+    Field=UvData.Field;
+    if isfield(Field,'Mesh')&&~isempty(Field.Mesh)
+        data.RangeX=Field.Mesh;
+        data.RangeY=Field.Mesh;
+        data.DX=Field.Mesh;
+        data.DY=Field.Mesh;
+    elseif isfield(Field,'AX')&& isfield(Field,'AY')&& isfield(Field,'A')%only image
+        np=size(Field.A);
+        meshx=(Field.AX(end)-Field.AX(1))/np(2);
+        meshy=abs(Field.AY(end)-Field.AY(1))/np(1);
+        data.RangeY=max(meshx,meshy);
+        data.RangeX=max(meshx,meshy);
+        data.DX=max(meshx,meshy);
+    end
+    if isfield(Field,'NbDim')
+        data.NbDim=Field.NbDim;
+    end
+    if isfield(Field,'CoordUnit')
+        data.CoordUnit=Field.CoordUnit;
+    end
 end
 data.Coord=[0 0 0]; %default
@@ -5091,5 +5091,4 @@
     end
 end
-%data.ParentButton=handles.create;
 if ishandle(handles.UVMAT_title)
     delete(handles.UVMAT_title)%delete the initial display of uvmat if no field has been entered
@@ -5098,5 +5097,4 @@
 set_object(data,PlotHandles);% call the set_object interface
 set(handles.MenuObject,'checked','on')
-%UvData.MouseAction='create_object';
 set(handles.uvmat,'UserData',UvData)
 set(handles.zoom,'Value',0)
Index: /trunk/src/view_field.m
===================================================================
--- /trunk/src/view_field.m	(revision 157)
+++ /trunk/src/view_field.m	(revision 158)
@@ -145,5 +145,5 @@
         Mask.AX=[0.5 npxy(2)-0.5];
         Mask.AY=[npxy(1)-0.5 0.5 ];
-        Mask.CoordType='px';
+        Mask.CoordUnit='pixel';
         if isequal(get(handles.slices,'Value'),1)
            NbSlice=str2num(get(handles.nb_slice,'String'));
