Index: /issm/trunk/src/m/classes/public/plot/plot_basaldrag.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_basaldrag.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_basaldrag.m	(revision 1740)
@@ -39,9 +39,9 @@
 	%process data and model
 	[x y z elements is2d]=processmesh(md,options_structure);
-	[basal_drag isongrid]=processdata(md,drag,options_structure);
+	[basal_drag isongrid isquiver]=processdata(md,drag,options_structure);
 
 	%plot basaldrag
 	subplot(width,width,i); 
-	plot_unit(x,y,z,elements,basal_drag,isongrid,is2d,options_structure);
+	plot_unit(x,y,z,elements,basal_drag,isongrid,is2d,isquiver,options_structure);
 
 	%apply options
Index: /issm/trunk/src/m/classes/public/plot/plot_contour.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_contour.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_contour.m	(revision 1740)
@@ -9,5 +9,5 @@
 %process data and model
 [x y z index is2d]=processmesh(md,options_structure);
-[data isongrid]=processdata(md,data,options_structure);
+[data isongrid isquiver]=processdata(md,data,options_structure);
 
 %check is2d
Index: /issm/trunk/src/m/classes/public/plot/plot_drivingstress.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_drivingstress.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_drivingstress.m	(revision 1740)
@@ -12,10 +12,10 @@
 %process data and model
 [x y z elements is2d]=processmesh(md,options_structure);
-[dstress isongrid]=processdata(md,s,options_structure);
+[dstress isongrid isquiver]=processdata(md,s,options_structure);
 dstress=dstress/1000;
 
 %plot mesh quivervel
 subplot(width,width,i); 
-plot_unit(x,y,z,elements,dstress,isongrid,is2d,options_structure)
+plot_unit(x,y,z,elements,dstress,isongrid,is2d,isquiver,options_structure)
 
 %apply options
Index: /issm/trunk/src/m/classes/public/plot/plot_elementstype.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_elementstype.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_elementstype.m	(revision 1740)
@@ -9,6 +9,6 @@
 %process data and model
 [x y z elements is2d]=processmesh(md,options_structure);
-[data1 isongrid]=processdata(md,md.elements_type(:,1),options_structure);
-[data2 isongrid]=processdata(md,md.elements_type(:,2),options_structure);
+[data1 isongrid isquiver]=processdata(md,md.elements_type(:,1),options_structure);
+[data2 isongrid isquiver]=processdata(md,md.elements_type(:,2),options_structure);
 data=[data1 data2];
 
Index: /issm/trunk/src/m/classes/public/plot/plot_gridnumbering.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_gridnumbering.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_gridnumbering.m	(revision 1740)
@@ -9,5 +9,5 @@
 %process data and model
 [x y z elements is2d]=processmesh(md,options_structure);
-[gridnumbers isongrid]=processdata(md,[1:md.numberofgrids]',options_structure);
+[gridnumbers isongrid isquiver]=processdata(md,[1:md.numberofgrids]',options_structure);
 
 %plot
Index: /issm/trunk/src/m/classes/public/plot/plot_highlightgrids.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_highlightgrids.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_highlightgrids.m	(revision 1740)
@@ -9,5 +9,5 @@
 %process data and model
 [x y z elements is2d]=processmesh(md,options_structure);
-[gridnumbers isongrid]=processdata(md,[1:md.numberofgrids]',options_structure);
+[gridnumbers isongrid isquiver]=processdata(md,[1:md.numberofgrids]',options_structure);
 
 %plot
Index: /issm/trunk/src/m/classes/public/plot/plot_manager.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_manager.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_manager.m	(revision 1740)
@@ -126,9 +126,9 @@
 %process data and model
 [x y z elements is2d]=processmesh(md,options_structure);
-[data isongrid]=processdata(md,data,options_structure);
+[data isongrid isquiver]=processdata(md,data,options_structure);
 
 %standard plot:
 subplot(width,width,i);
-plot_unit(x,y,z,elements,data,isongrid,is2d,options_structure);
+plot_unit(x,y,z,elements,data,isongrid,is2d,isquiver,options_structure);
 
 %apply all options
Index: /issm/trunk/src/m/classes/public/plot/plot_overlay.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_overlay.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_overlay.m	(revision 1740)
@@ -21,5 +21,5 @@
 	%process mesh and data
 	[x y z elements is2d]=processmesh(md,options_structure);
-	[data isongrid]=processdata(md,data,options_structure);
+	[data isongrid isquiver]=processdata(md,data,options_structure);
 
 	%apply caxis if required
@@ -72,5 +72,5 @@
 	%process mesh and data
 	[x y z elements is2d]=processmesh(md,options_structure);
-	[data isongrid]=processdata(md,data,options_structure);
+	[data isongrid isquiver]=processdata(md,data,options_structure);
 
 	%get previous result
Index: /issm/trunk/src/m/classes/public/plot/plot_quiver.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_quiver.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_quiver.m	(revision 1740)
@@ -9,6 +9,6 @@
 %process data and model
 [x y z elements is2d]=processmesh(md,options_structure);
-[vx isongrid]=processdata(md,md.vx,options_structure);
-[vy isongrid]=processdata(md,md.vy,options_structure);
+[vx isongrid isquiver]=processdata(md,md.vx,options_structure);
+[vy isongrid isquiver]=processdata(md,md.vy,options_structure);
 
 %plot mesh quivervel
Index: /issm/trunk/src/m/classes/public/plot/plot_quiver3.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_quiver3.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_quiver3.m	(revision 1740)
@@ -9,7 +9,7 @@
 %process data and model
 [x y z elements is2d]=processmesh(md,options_structure);
-[vx isongrid]=processdata(md,md.vx,options_structure);
-[vy isongrid]=processdata(md,md.vy,options_structure);
-[vz isongrid]=processdata(md,md.vz,options_structure);
+[vx isongrid isquiver]=processdata(md,md.vx,options_structure);
+[vy isongrid isquiver]=processdata(md,md.vy,options_structure);
+[vz isongrid isquiver]=processdata(md,md.vz,options_structure);
 
 %plot mesh quivervel3
Index: /issm/trunk/src/m/classes/public/plot/plot_quivervel.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_quivervel.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_quivervel.m	(revision 1740)
@@ -9,8 +9,8 @@
 %process data and model
 [x y z elements is2d]=processmesh(md,options_structure);
-[vx isongrid]=processdata(md,md.vx,options_structure);
-[vy isongrid]=processdata(md,md.vy,options_structure);
+[vx isongrid isquiver]=processdata(md,md.vx,options_structure);
+[vy isongrid isquiver]=processdata(md,md.vy,options_structure);
 if ~isnan(md.vz)
-	[vz isongrid]=processdata(md,md.vz,options_structure);
+	[vz isongrid isquiver]=processdata(md,md.vz,options_structure);
 end
 
@@ -28,5 +28,5 @@
 subplot(width,width,i); 
 colormap('default')
-plot_unit(x,y,z,elements,sqrt(vx.^2+vy.^2),isongrid,is2d,options_structure)
+plot_unit(x,y,z,elements,sqrt(vx.^2+vy.^2),isongrid,is2d,isquiver,options_structure)
 
 if is2d
Index: /issm/trunk/src/m/classes/public/plot/plot_section.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_section.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_section.m	(revision 1740)
@@ -22,5 +22,5 @@
 %process data and model
 [x_m y_m z_m elements_m is2d]=processmesh(md,options_structure);
-[data isongrid]=processdata(md,data,options_structure);
+[data isongrid isquiver]=processdata(md,data,options_structure);
 
 %replug x and y onto model so that SectionValue treats the problem correctly
@@ -62,5 +62,5 @@
 		%plot section only with labels
 		subplot(width,width,index2)
-		plot_unit(x_m,y_m,z_m,elements_m,data,isongrid,is2d,options_structure)
+		plot_unit(x_m,y_m,z_m,elements_m,data,isongrid,is2d,isquiver,options_structure)
 		hold on
 		text(x(1),y(1),'1','backgroundcolor',[0.8 0.9 0.8])
@@ -98,5 +98,5 @@
 			%plot section only with labels
 			subplot(width,width,index2)
-			plot_unit(x_m,y_m,z_m,elements_m,data,isongrid,is2d,options_structure)
+			plot_unit(x_m,y_m,z_m,elements_m,data,isongrid,is2d,isquiver,options_structure)
 			hold on
 			text(x(1),y(1),'1','backgroundcolor',[0.8 0.9 0.8])
@@ -132,5 +132,5 @@
 			%plot section only with labels
 			subplot(width,width,index2)
-			plot_unit(x_m,y_m,z_m,elements_m,data,isongrid,is2d,options_structure)
+			plot_unit(x_m,y_m,z_m,elements_m,data,isongrid,is2d,isquiver,options_structure)
 			hold on
 			text(x(1),y(1),'1','backgroundcolor',[0.8 0.9 0.8])
Index: /issm/trunk/src/m/classes/public/plot/plot_streamlines.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_streamlines.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_streamlines.m	(revision 1740)
@@ -11,6 +11,6 @@
 %process data and model
 [x y z index is2d]=processmesh(md,options_structure);
-[u isongrid]=processdata(md,md.vx,options_structure);
-[v isongrid]=processdata(md,md.vy,options_structure);
+[u isongrid isquiver]=processdata(md,md.vx,options_structure);
+[v isongrid isquiver]=processdata(md,md.vy,options_structure);
 
 %some checks
Index: /issm/trunk/src/m/classes/public/plot/plot_tensor_components.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_tensor_components.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_tensor_components.m	(revision 1740)
@@ -25,41 +25,41 @@
 %process data and model
 [x y z elements is2d]=processmesh(md,options_structure);
-[tensor.xx isongrid]=processdata(md,tensor.xx,options_structure);
-[tensor.yy isongrid]=processdata(md,tensor.yy,options_structure);
-[tensor.xy isongrid]=processdata(md,tensor.xy,options_structure);
+[tensor.xx isongrid isquiver]=processdata(md,tensor.xx,options_structure);
+[tensor.yy isongrid isquiver]=processdata(md,tensor.yy,options_structure);
+[tensor.xy isongrid isquiver]=processdata(md,tensor.xy,options_structure);
 if  strcmpi(md.type,'3d')
-	[tensor.xz isongrid]=processdata(md,tensor.xz,options_structure);
-	[tensor.yz isongrid]=processdata(md,tensor.yz,options_structure);
-	[tensor.zz isongrid]=processdata(md,tensor.zz,options_structure);
+	[tensor.xz isongrid isquiver]=processdata(md,tensor.xz,options_structure);
+	[tensor.yz isongrid isquiver]=processdata(md,tensor.yz,options_structure);
+	[tensor.zz isongrid isquiver]=processdata(md,tensor.zz,options_structure);
 end
 
 if (strcmpi(md.type,'2d')),
 	subplot(2*width,2*width,index1),
-	plot_unit(x,y,z,elements,tensor.xx,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.xx,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'xx')
 	subplot(2*width,2*width,index2),
-	plot_unit(x,y,z,elements,tensor.yy,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.yy,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'yy')
 	subplot(2*width,2*width,index3),
-	plot_unit(x,y,z,elements,tensor.xy,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.xy,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'xy')
 else
 	subplot(3*width,3*width,index1),
-	plot_unit(x,y,z,elements,tensor.xx,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.xx,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'xx')
 	subplot(3*width,3*width,index2),
-	plot_unit(x,y,z,elements,tensor.yy,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.yy,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'yy')
 	subplot(3*width,3*width,index3),
-	plot_unit(x,y,z,elements,tensor.zz,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.zz,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'zz')
 	subplot(3*width,3*width,index4),
-	plot_unit(x,y,z,elements,tensor.xy,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.xy,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'xy')
 	subplot(3*width,3*width,index5),
-	plot_unit(x,y,z,elements,tensor.xz,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.xz,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'xz')
 	subplot(3*width,3*width,index6),
-	plot_unit(x,y,z,elements,tensor.yz,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.yz,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'yz')
 end
Index: /issm/trunk/src/m/classes/public/plot/plot_tensor_principal.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_tensor_principal.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_tensor_principal.m	(revision 1740)
@@ -38,26 +38,26 @@
 %now plot principal values
 [x y z elements is2d]=processmesh(md,options_structure);
-[tensor.principalvalue1 isongrid]=processdata(md,tensor.principalvalue1,options_structure);
-[tensor.principalvalue2 isongrid]=processdata(md,tensor.principalvalue2,options_structure);
+[tensor.principalvalue1 isongrid isquiver]=processdata(md,tensor.principalvalue1,options_structure);
+[tensor.principalvalue2 isongrid isquiver]=processdata(md,tensor.principalvalue2,options_structure);
 if  strcmpi(md.type,'3d')
-	[tensor.principalvalue3 isongrid]=processdata(md,tensor.principalvalue3,options_structure);
+	[tensor.principalvalue3 isongrid isquiver]=processdata(md,tensor.principalvalue3,options_structure);
 end
 
 if (strcmpi(md.type,'2d')),
 	subplot(2*width,2*width,index3)
-	plot_unit(x,y,z,elements,tensor.principalvalue1,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.principalvalue1,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'principal value 1')
 	subplot(2*width,2*width,index4)
-	plot_unit(x,y,z,elements,tensor.principalvalue2,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.principalvalue2,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'principal value 2')
 else
 	subplot(3*width,3*width,index4)
-	plot_unit(x,y,z,elements,tensor.principalvalue1,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.principalvalue1,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'principal value 1')
 	subplot(3*width,3*width,index5)
-	plot_unit(x,y,z,elements,tensor.principalvalue2,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.principalvalue2,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'principal value 2')
 	subplot(3*width,3*width,index6)
-	plot_unit(x,y,z,elements,tensor.principalvalue3,isongrid,is2d,options_structure)
+	plot_unit(x,y,z,elements,tensor.principalvalue3,isongrid,is2d,isquiver,options_structure)
 	Apply_options_tensor(md,options_structure,type,'principal value 3')
 end
Index: /issm/trunk/src/m/classes/public/plot/plot_tensor_principalaxis.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_tensor_principalaxis.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_tensor_principalaxis.m	(revision 1740)
@@ -16,13 +16,13 @@
 	eval(['Vx=tensor.principalaxis' type(end) '(:,1); Vy=tensor.principalaxis' type(end) '(:,2);'])
 	eval(['value=tensor.principalvalue' type(end) ';']);
-	[Vx isongrid]=processdata(md,Vx,options_structure);
-	[Vy isongrid]=processdata(md,Vy,options_structure);
-	[value isongrid]=processdata(md,value,options_structure);
+	[Vx isongrid isquiver]=processdata(md,Vx,options_structure);
+	[Vy isongrid isquiver]=processdata(md,Vy,options_structure);
+	[value isongrid isquiver]=processdata(md,value,options_structure);
 else
 	eval(['Vx=tensor.principalaxis' type(end) '(:,1); Vy=tensor.principalaxis' type(end) '(:,2); Vz=tensor.principalaxis' type(end) '(:,3);'])
-	[Vx isongrid]=processdata(md,Vx,options_structure);
-	[Vy isongrid]=processdata(md,Vy,options_structure);
-	[Vz isongrid]=processdata(md,Vz,options_structure);
-	[value isongrid]=processdata(md,value,options_structure);
+	[Vx isongrid isquiver]=processdata(md,Vx,options_structure);
+	[Vy isongrid isquiver]=processdata(md,Vy,options_structure);
+	[Vz isongrid isquiver]=processdata(md,Vz,options_structure);
+	[value isongrid isquiver]=processdata(md,value,options_structure);
 end
 
Index: /issm/trunk/src/m/classes/public/plot/plot_transient_movie.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_transient_movie.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_transient_movie.m	(revision 1740)
@@ -24,7 +24,7 @@
 
 		%process data
-		[data isongrid]=processdata(md,data,options_structure);
+		[data isongrid isquiver]=processdata(md,data,options_structure);
 		titlestring=[field ' at time ' num2str(md.results.transient(i).time/md.yts) ' year'];
-		plot_unit(x,y,z,elements,data,isongrid,is2d,options_structure)
+		plot_unit(x,y,z,elements,data,isongrid,is2d,isquiver,options_structure)
 		apply_options_movie(md,options_structure,titlestring);
 		
Index: /issm/trunk/src/m/classes/public/plot/plot_unit.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/plot_unit.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/plot_unit.m	(revision 1740)
@@ -1,7 +1,7 @@
-function plot_unit(x,y,z,elements,data,isongrid,is2d,options_structure)
+function plot_unit(x,y,z,elements,data,isongrid,is2d,isquiver,options_structure)
 %PLOT_UNIT - unit plot, display data
 %
 %   Usage:
-%      plot_unit(x,y,z,elements,data,isongrid,is2d,options_structure);
+%      plot_unit(x,y,z,elements,data,isongrid,is2d,isquiver,options_structure);
 %
 %   See also: PLOTMODEL, PLOT_MANAGER
@@ -14,25 +14,25 @@
 end
 
-%element data
-if ~isongrid
-	pos=find(~isnan(data)); %needed fpr element on water
-	if is2d
-		A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 
-		patch( 'Faces', [A B C], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
-	else
-		A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
-		patch( 'Faces', [A B C], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
-		patch( 'Faces', [D E F], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
-		patch( 'Faces', [A B E D], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
-		patch( 'Faces', [B E F C ], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
-		patch( 'Faces', [C A D F ], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
-	end
-%grid data
-elseif isongrid
-	if is2d
-		A=elements(:,1); B=elements(:,2); C=elements(:,3); 
-		patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
-	else
-		if options_structure.layer>=1,
+%regular plot
+if ~isquiver,
+
+	%element data
+	if ~isongrid
+		pos=find(~isnan(data)); %needed fpr element on water
+		if is2d,
+			A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); 
+			patch( 'Faces', [A B C], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+		else
+			A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4); E=elements(pos,5); F=elements(pos,6);
+			patch( 'Faces', [A B C], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+			patch( 'Faces', [D E F], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+			patch( 'Faces', [A B E D], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+			patch( 'Faces', [B E F C ], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+			patch( 'Faces', [C A D F ], 'Vertices', [x y z],'CData', data(pos),'FaceColor','flat','EdgeColor',edgecolor);
+		end
+
+	%grid data
+	elseif isongrid
+		if is2d,
 			A=elements(:,1); B=elements(:,2); C=elements(:,3); 
 			patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData', data(:),'FaceColor','interp','EdgeColor',edgecolor);
@@ -46,3 +46,17 @@
 		end
 	end
+
+%quiver
+elseif isquiver,
+
+	%grid data
+	if isongrid,
+		if is2d,
+			quivercolor(x,y,data(:,1),data(:,2));
+		else
+			quivercolor3(x,y,z,data(:,1),data(:,2),data(:,3));
+		end
+	else
+		error('plot_unit error message: element quiver not implemented yet')
+	end
 end
Index: /issm/trunk/src/m/classes/public/plot/processdata.m
===================================================================
--- /issm/trunk/src/m/classes/public/plot/processdata.m	(revision 1739)
+++ /issm/trunk/src/m/classes/public/plot/processdata.m	(revision 1740)
@@ -1,34 +1,56 @@
-function [data isongrid]=processdata(md,data,options_structure);
+function [data isongrid isquiver]=processdata(md,data,options_structure);
 %PROCESSDATA - process data to be plotted
 %
 %   Usage:
-%      [data isongrid]=processdata(md,data,options_structure);
+%      [data isongrid isquiver]=processdata(md,data,options_structure);
 %
 %   See also: PLOTMODEL, PROCESSMESH
 
 %check format
-if (iscell(data) | isempty(data)),
+if (iscell(data) | isempty(data) | isnan(data)),
 	error('plotmodel error message: data provided is empty');
 end
 
-%make a column out of data
-data=data(:);
+%transpose data if necessary
+if (size(data,2) > size(data,1)),
+	data=data';
+end
+datasize=size(data);
 
 %check length
-if length(data)~=md.numberofgrids & length(data)~=md.numberofelements & length(data)~=md.numberofgrids*6 & (strcmpi(md.type,'2d') | length(data)~=md.numberofgrids2d)
+if datasize(1)~=md.numberofgrids & datasize(1)~=md.numberofelements & datasize(1)~=md.numberofgrids*6 & (strcmpi(md.type,'2d') | datasize(1)~=md.numberofgrids2d)
 	error('plotmodel error message: data not supproted yet')
 end
 
-%treat the case length(data)=6*grids
-if length(data)==6*md.numberofgrids
+%isquiver?
+if datasize(2)>1,
+	isquiver=1;
+
+	%check number of columns, add zeros if necessary,
+	if (strcmpi(md.type,'3d'))
+		if datasize(2)==2,
+			data=[data, zeros(datasize(1),1)];
+		elseif datasize(2)~=3,
+			error('plotmodel error message: data provided should have 2 or 3 columns for quiver plot, and 1 for regular plot');
+		end
+	elseif (strcmpi(md.type,'2d') & datasize(2)~=2),
+		error('plotmodel error message: data provided should have 2 columns for quiver plot, and 1 for regular plot');
+	end
+
+else
+	isquiver=0;
+end
+
+%treat the case datasize(1)=6*grids
+if datasize(1)==6*md.numberofgrids
 	%keep the only norm of data
-	data1=data(1:6:md.numberofgrids*6);
-	data2=data(2:6:md.numberofgrids*6);
+	data1=data(1:6:md.numberofgrids*6,:);
+	data2=data(2:6:md.numberofgrids*6,:);
 	data=sqrt(data1.^2+data2.^2);
 	%---> go to grid data
 end
 
-%treat the case length(data)=grids2d
-if (strcmpi(md.type,'3d') & length(data)==md.numberofgrids2d),
+%treat the case datasize(1)=grids2d
+if (strcmpi(md.type,'3d') & datasize(1)==md.numberofgrids2d),
 	data=project3d(md,data,'node');
 	%---> go to grid data
@@ -42,18 +64,18 @@
 
 %element data
-if length(data)==md.numberofelements;
+if datasize(1)==md.numberofelements;
 	isongrid=0;
 
 	%ice sheet only?
 	if ~isnan(options_structure.noiceshelf) & options_structure.noiceshelf,
-		data(find(md.elementoniceshelf))=NaN;
+		data(find(md.elementoniceshelf),:)=NaN;
 	end
 	%ice shelf only?
 	if ~isnan(options_structure.noicesheet) & options_structure.noicesheet,
-		data(find(~md.elementoniceshelf))=NaN;
+		data(find(~md.elementoniceshelf),:)=NaN;
 	end
 	%no water?
 	if ~isnan(options_structure.nowater) & options_structure.nowater,
-		data(find(md.elementonwater))=NaN;
+		data(find(md.elementonwater),:)=NaN;
 	end
 	%log?
@@ -65,20 +87,20 @@
 
 %grid data
-if length(data)==md.numberofgrids
+if datasize(1)==md.numberofgrids
 	isongrid=1;
 	%ice sheet only?
 	if ~isnan(options_structure.noiceshelf) & options_structure.noiceshelf,
 		pos=find(md.gridoniceshelf);
-		data(pos)=NaN;
+		data(pos,:)=NaN;
 	end
 	%ice shelf only?
 	if ~isnan(options_structure.noiceshelf) & options_structure.noicesheet,
 		pos=find(md.gridonicesheet);
-		data(pos)=NaN;
+		data(pos,:)=NaN;
 	end
 	%no water?
 	if ~isnan(options_structure.nowater) & options_structure.nowater,
 		pos=find(md.gridonwater);
-		data(pos)=NaN;
+		data(pos,:)=NaN;
 	end
 	%log?
