Index: /trunk/src/find_field_cells.m
===================================================================
--- /trunk/src/find_field_cells.m	(revision 1023)
+++ /trunk/src/find_field_cells.m	(revision 1024)
@@ -79,9 +79,4 @@
     end
 end
-% if ~check_var &&  ~(isfield(Data,'ListDimName')&& isfield(Data,'DimValue')&& isequal(numel(Data.ListDimName),numel(Data.DimValue)))
-%     errormsg=['missing dimension values'];
-%     return
-% end
-
 
 %% role of variables and list of requested operations
@@ -122,5 +117,5 @@
     % look for variables sharing dimension(s) with ivar_coord_x(icell)
     check_cell=zeros(numel(DimCell),nbvar);
-    for idim=1:numel(DimCell)
+    for idim=1:numel(DimCell);% for each variable with role coord_x, look at which other variables contain the same dimension
         for ivar=1:nbvar
             check_cell(idim,ivar)=max(strcmp(DimCell{idim},Data.VarDimName{ivar}));
Index: /trunk/src/proj_field.m
===================================================================
--- /trunk/src/proj_field.m	(revision 1023)
+++ /trunk/src/proj_field.m	(revision 1024)
@@ -1113,4 +1113,5 @@
 
 %% group the variables (fields of 'FieldData') in cells of variables with the same dimensions
+
 [CellInfo,NbDimArray,errormsg]=find_field_cells(FieldData);
 
@@ -1119,11 +1120,11 @@
     return
 end
+
 check_grid=zeros(size(CellInfo));% =1 if a grid is needed , =0 otherwise, for each field cell
-
 ProjMode=cell(size(CellInfo));
 for icell=1:numel(CellInfo)
     ProjMode{icell}=ObjectData.ProjMode;% projection mode of the plane object
 end
-    icell_grid=[];% field cell index which defines the grid
+icell_grid=[];% field cell index which defines the grid
 if ~strcmp(ObjectData.ProjMode,'projection')&& ~strcmp(ObjectData.Type,'plane_z')% TODO:rationalize
     %% define the new coordinates in case of interpolation on a imposed grid
@@ -1154,5 +1155,5 @@
             check_grid(icell)=1;
         end
-        if strcmp(CellInfo{icell}.CoordType,'grid')&&NbDimArray(icell)>=2
+        if strcmp(CellInfo{icell}.CoordType,'grid') && NbDimArray(icell)>=2
             if ~testangle && isempty(icell_grid)% if the input gridded data is not modified, choose the first one in case of multiple gridded field cells
                 icell_grid=icell;
Index: /trunk/src/read_field.m
===================================================================
--- /trunk/src/read_field.m	(revision 1023)
+++ /trunk/src/read_field.m	(revision 1024)
@@ -294,4 +294,7 @@
     Field.AName='image';
     Field.ListVarName={'Coord_y','Coord_x','A'}; %
+    Field.VarAttribute{1}.Unit='pixel';
+    Field.VarAttribute{2}.Unit='pixel';
+    Field.VarAttribute{3}.Role='scalar';
     if ndims(A)==3
         if Npz==1;%color
Index: /trunk/src/sub_field.m
===================================================================
--- /trunk/src/sub_field.m	(revision 1023)
+++ /trunk/src/sub_field.m	(revision 1024)
@@ -136,5 +136,5 @@
 for ilist=1:numel(Field_1.VarAttribute)
     % case of variable with a single dimension
-    if ~isempty(Field_1.VarAttribute{ilist}) && ~isempty(regexp(Field_1.VarAttribute{ilist}.Role,'^coord'))% if variable with Role coord... is found.
+    if ~isempty(Field_1.VarAttribute{ilist}) && isfield(Field_1.VarAttribute{ilist},'Role')&&~isempty(regexp(Field_1.VarAttribute{ilist}.Role,'^coord'))% if variable with Role coord... is found.
         OldDimName=Field_1.VarDimName{ilist};
         if ischar(OldDimName), OldDimName={OldDimName}; end% transform char string to cell if relevant
Index: /trunk/src/uvmat.m
===================================================================
--- /trunk/src/uvmat.m	(revision 1023)
+++ /trunk/src/uvmat.m	(revision 1024)
@@ -3333,4 +3333,5 @@
         end
     case {'video','mmreader','rdvision','cine_phantom'}
+        FieldName='image';
         ParamIn=UvData.MovieObject{1}; % movie object
         if strcmp(NomType,'*')
@@ -3340,4 +3341,5 @@
         end
     case 'multimage'
+        FieldName='image';
         if ~strcmp(NomType,'*')
             MaxIndex_j_cell=get(handles.MaxIndex_j,'String');
@@ -3365,4 +3367,6 @@
             return
         end
+    case 'image'
+        FieldName='image';     
 end
 if isstruct (ParamIn)
@@ -3372,5 +3376,5 @@
     ParamIn.Coord_y=get(handles.Coord_y,'String');
     ParamIn.Coord_z=get(handles.Coord_z,'String');
-    ParamIn.CheckCoordIndex=strcmp(get(handles.SwitchCoordIndex,'String'),'dim');
+    %ParamIn.CheckCoordIndex=strcmp(get(handles.SwitchCoordIndex,'String'),'dim');
     TimeName=get(handles.TimeName,'String');
     r=regexp(TimeName,'^(?<type>(dim:)|(var:))','names');%look for 'var:' or 'dim:' at the beginning of time name
@@ -3421,5 +3425,5 @@
                 FieldName_1=FieldName;% if blank reproduce the field name of the first field
             end
-            if ~isempty(regexp(FieldName_1,'^vel'))&& strcmp(get(handles.ColorCode,'Visible'),'on')
+            if ~isempty(regexp(FieldName_1,'^vel', 'once'))&& strcmp(get(handles.ColorCode,'Visible'),'on')
                 list_code=get(handles.ColorCode,'String');% list menu fields
                 index_code=get(handles.ColorCode,'Value');% selected string index
@@ -3596,5 +3600,5 @@
             TimeUnit='';
         end
-    elseif  ~isempty(regexp(TimeName,'^var:'))
+    elseif  ~isempty(regexp(TimeName,'^var:', 'once'))
         abstime=Field{1}.(TimeName(5:end));%the time is a variale selected by get_file
         % TODO: look for time unit attribute
@@ -4449,7 +4453,7 @@
             if isfield(GetFieldData,'Coordinates')
                 XName=GetFieldData.Coordinates.Coord_x;
-                set(handles.SwitchCoordIndex,'String','var'); % variable used as coordinate
-            else
-                set(handles.SwitchCoordIndex,'String','dim'); % matrix index used a coordinate
+%                set(handles.SwitchCoordIndex,'String','var'); % variable used as coordinate
+%             else
+%                 set(handles.SwitchCoordIndex,'String','dim'); % matrix index used a coordinate
             end
             TimeNameStr=GetFieldData.Time.SwitchVarIndexTime;
