Index: /trunk/src/get_field.m
===================================================================
--- /trunk/src/get_field.m	(revision 973)
+++ /trunk/src/get_field.m	(revision 974)
@@ -158,4 +158,5 @@
 end
 set(handles.SwitchVarIndexTime,'String',ListSwitchVarIndexTime)
+set(handles.SwitchVarIndexTime,'UserData',ListSwitchVarIndexTime); % keep string in memory for check3D
 set(handles.get_field,'UserData',Field);% record the finput field structure
 SwitchVarIndexTime_Callback([], [], handles)
@@ -1045,22 +1046,29 @@
 else% fields studied as 2D
     status='off';
- 
-end
+end
+
 set(handles.Coord_z,'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)   
-if strcmp(status,'on')
-   Field=get(handles.get_field,'UserData');
-    if Field.MaxDim>=3% for 3D fields, propose to use the third variable as time
+set(handles.W_title,'Visible',status)
+if strcmp(status,'on')% ask for 3D input    
+    Field=get(handles.get_field,'UserData');
+    if Field.MaxDim>3% for 4D fields, propose to use the fourth variable as time
+        %set(handles.Time,'Visible','on')
         menu=get(handles.SwitchVarIndexTime,'String');
         val=find(strcmp('variable',menu));
         if ~isempty(val)
             set(handles.SwitchVarIndexTime,'Value',val)
-            SwitchVarIndexTime_Callback(handles.SwitchVarIndexTime,[], handles)
-        end
-    end
-end 
+        end
+    else
+        set(handles.SwitchVarIndexTime,'Value',1)
+        set(handles.SwitchVarIndexTime,'String',{'file index'})
+    end
+else
+   set(handles.SwitchVarIndexTime,'String',get(handles.SwitchVarIndexTime,'UserData'))
+end
+SwitchVarIndexTime_Callback(handles.SwitchVarIndexTime,[], handles)
+
 %------------------------------------------------------------------------
 % --- Executes on button press in OK.
Index: /trunk/src/series/aver_synchro.m
===================================================================
--- /trunk/src/series/aver_synchro.m	(revision 973)
+++ /trunk/src/series/aver_synchro.m	(revision 974)
@@ -200,8 +200,10 @@
 sigma_sub=pi/Param.ActionInput.WavePeriod;%subharmonic
 sinsub_V=0;
+NbField=0;
 vec_C=0;
  
 %%%%%%%%%%%%%%%% loop on field indices %%%%%%%%%%%%%%%%
 for index=1:nbfield
+    index
     update_waitbar(WaitbarHandle,index/nbfield)
     if ~isempty(RUNHandle)&& ~strcmp(get(RUNHandle,'BusyAction'),'queue')
@@ -220,4 +222,8 @@
     end
     %update average
+    FF=isnan(Data.U)|isnan(Data.V);% chceck NaN values
+    Data.U(FF)=0;% set to zero the NaN values
+    Data.V(FF)=0;
+    NbField=NbField+~FF;%count the NaN values
     MeanU=MeanU+Data.U;
     MeanV=MeanV+Data.V;
@@ -248,5 +254,5 @@
 %%%%%%%%%%%%%%%%%%%%%%%%
 Data.ListVarName={'coord_x','coord_y','MeanU','MeanV','cos1_U','cos1_V','a1_U','a1_V','a2_U','a2_V','a3_U','a3_V','asub_U','asub_V',...
-    'phase1_U','phase1_V','phase2_U','phase2_V','phase3_U','phase3_V'};
+    'phase1_U','phase1_V','phase2_U','phase2_V','phase3_U','phase3_V','phasesub_U','phasesub_V'};
 %Data.ListVarName=[{'coord_y','coord_x'} Data.ListVarName];
 %Data.VarDimName={'coord_y', 'coord_x'};
@@ -255,24 +261,26 @@
  %   Data.VarDimName{ilist}='nb_vectors';
 end
-Data.MeanU=MeanU/nbfield;
-Data.MeanV=MeanV/nbfield;
-Data.cos1_U=cos1_U/nbfield;
-Data.cos1_V=cos1_V/nbfield;
-sin1_U=sin1_U/nbfield;
-sin1_V=sin1_V/nbfield;
-cos2_U=cos2_U/nbfield;
-cos2_V=cos2_V/nbfield;
-sin2_U=sin2_U/nbfield;
-sin2_V=sin2_V/nbfield;
-cos3_U=cos3_U/nbfield;
-cos3_V=cos3_V/nbfield;
-sin3_U=sin3_U/nbfield;
-sin3_V=sin3_V/nbfield;
-cossub_U=cossub_U/nbfield;
-cossub_V=cossub_V/nbfield;
-sinsub_U=sinsub_U/nbfield;
-sinsub_V=sinsub_V/nbfield;
-Data.a1_U=sqrt(2)*sqrt(Data.cos1_U.*Data.cos1_U+sin1_U.*sin1_U);
-Data.a1_V=-sqrt(2)*sqrt(Data.cos1_V.*Data.cos1_V+sin1_V.*sin1_V);
+Data.MeanU=MeanU./NbField;
+Data.MeanV=MeanV./NbField;
+cos1_U=cos1_U./NbField;
+cos1_V=cos1_V./NbField;
+sin1_U=sin1_U./NbField;
+sin1_V=sin1_V./NbField;
+cos2_U=cos2_U./NbField;
+cos2_V=cos2_V./NbField;
+sin2_U=sin2_U./NbField;
+sin2_V=sin2_V./NbField;
+cos3_U=cos3_U./NbField;
+cos3_V=cos3_V./NbField;
+sin3_U=sin3_U./NbField;
+sin3_V=sin3_V./NbField;
+cossub_U=cossub_U./NbField;
+cossub_V=cossub_V./NbField;
+sinsub_U=sinsub_U./NbField;
+sinsub_V=sinsub_V./NbField;
+Data.cos1_U=cos1_U;
+Data.cos1_V=cos1_V;
+Data.a1_U=sqrt(2)*sqrt(cos1_U.*cos1_U+sin1_U.*sin1_U);
+Data.a1_V=-sqrt(2)*sqrt(cos1_V.*cos1_V+sin1_V.*sin1_V);
 Data.a2_U=sqrt(2)*sqrt(cos2_U.*cos2_U+sin2_U.*sin2_U);
 Data.a2_V=-sqrt(2)*sqrt(cos2_V.*cos2_V+sin2_V.*sin2_V);
@@ -281,6 +289,7 @@
 Data.asub_U=sqrt(2)*sqrt(cossub_U.*cossub_U+sinsub_U.*sinsub_U);
 Data.asub_V=-sqrt(2)*sqrt(cossub_V.*cossub_V+sinsub_V.*sinsub_V);
-clear i
+% clear i
 Data.phase1_U=(angle(cos1_U+i*sin1_U));
+
 Data.phase1_V=angle(cos1_V+i*sin1_V);
 Data.phase2_U=(angle(cos2_U+i*sin2_U));
Index: /trunk/src/update_waitbar.m
===================================================================
--- /trunk/src/update_waitbar.m	(revision 973)
+++ /trunk/src/update_waitbar.m	(revision 974)
@@ -28,6 +28,9 @@
 pos=get(hwaitbar,'Position');%read waitbar position in pixels
 set(hwaitbar,'Units','normalized')%set back to normalize(the waitbar scales with the GUI)
-CData=ones(floor(pos(4)),floor(pos(3)),3);
-CData(:,:,3)=0 ;% initial color yellow (rgb=[1 1 0])
+% CData=ones(floor(pos(4)),floor(pos(3)),3);
+% CData(:,:,3)=0 ;% initial color yellow (rgb=[1 1 0])
+CData=zeros(floor(pos(4)),floor(pos(3)),3);
+CData(:,:,3)=1 ;% initial color blue(rgb=[1 1 0])
+
 CData(:,1:floor(advance_ratio*size(CData,2)),2)=0; % advancement part in red (suppress the second color component green)
 set(hwaitbar,'CData',CData)
