Index: /issm/trunk-jpl/src/m/plot/plot_highlightelements.m
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_highlightelements.m	(revision 17473)
+++ /issm/trunk-jpl/src/m/plot/plot_highlightelements.m	(revision 17474)
@@ -15,4 +15,5 @@
 
 %plot
+pos=getfieldvalue(options,'highlight',[]);
 if is2d
 	%plot mesh 
@@ -25,20 +26,35 @@
 	patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData', [0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
 else
-	%plot mesh 
-	A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4); E=elements(:,5); F=elements(:,6);
-	patch( 'Faces', [A B C],  'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black');
-	patch( 'Faces', [D E F],  'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black');
-	patch( 'Faces', [A B E D],'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black');
-	patch( 'Faces', [B E F C],'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black');
-	patch( 'Faces', [C A D F],'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black');
+	if size(elements,2)==6, %prisms
+		%plot mesh 
+		A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4); E=elements(:,5); F=elements(:,6);
+		patch( 'Faces', [A B C],  'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black');
+		patch( 'Faces', [D E F],  'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black');
+		patch( 'Faces', [A B E D],'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black');
+		patch( 'Faces', [B E F C],'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black');
+		patch( 'Faces', [C A D F],'Vertices', [x y z],'FaceVertexCData', [1 1 1],'FaceColor','none','EdgeColor','black');
 
-	%Highlight
-	pos=getfieldvalue(options,'highlight',[]);
-	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],'FaceVertexCData', [0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
-	patch( 'Faces', [D E F],  'Vertices', [x y z],'FaceVertexCData', [0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
-	patch( 'Faces', [A B E D],'Vertices', [x y z],'FaceVertexCData', [0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
-	patch( 'Faces', [B E F C],'Vertices', [x y z],'FaceVertexCData', [0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
-	patch( 'Faces', [C A D F],'Vertices', [x y z],'FaceVertexCData', [0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
+		%Highlight
+		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],'FaceVertexCData', [0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
+		patch( 'Faces', [D E F],  'Vertices', [x y z],'FaceVertexCData', [0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
+		patch( 'Faces', [A B E D],'Vertices', [x y z],'FaceVertexCData', [0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
+		patch( 'Faces', [B E F C],'Vertices', [x y z],'FaceVertexCData', [0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
+		patch( 'Faces', [C A D F],'Vertices', [x y z],'FaceVertexCData', [0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
+	elseif size(elements,2)==4, %tetras
+		A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4);
+		patch( 'Faces',[A B C],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor','black');
+		patch( 'Faces',[A B D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor','black');
+		patch( 'Faces',[B C D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor','black');
+		patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor','black');
+		%Highlight
+		A=elements(pos,1); B=elements(pos,2); C=elements(pos,3); D=elements(pos,4);
+		patch( 'Faces',[A B C],'Vertices', [x y z],'FaceVertexCData',[0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
+		patch( 'Faces',[A B D],'Vertices', [x y z],'FaceVertexCData',[0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
+		patch( 'Faces',[B C D],'Vertices', [x y z],'FaceVertexCData',[0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
+		patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',[0.9 0.5 0.5],'FaceColor','flat','EdgeColor','black');
+	else
+		error('Not supported');
+	end
 end
 
Index: /issm/trunk-jpl/src/m/plot/plot_mesh.m
===================================================================
--- /issm/trunk-jpl/src/m/plot/plot_mesh.m	(revision 17473)
+++ /issm/trunk-jpl/src/m/plot/plot_mesh.m	(revision 17474)
@@ -22,5 +22,5 @@
 	patch( 'Faces', [A B C], 'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
 else
-	if ~isplanet,
+	if size(elements,2)==6, %prisms
 		A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4); E=elements(:,5); F=elements(:,6);
 		patch( 'Faces', [A B C],  'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
@@ -29,5 +29,11 @@
 		patch( 'Faces', [B E F C],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
 		patch( 'Faces', [C A D F],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
-	else
+	elseif size(elements,2)==4, %tetras
+		A=elements(:,1); B=elements(:,2); C=elements(:,3); D=elements(:,4);
+		patch( 'Faces',[A B C],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+		patch( 'Faces',[A B D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+		patch( 'Faces',[B C D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+		patch( 'Faces',[C A D],'Vertices', [x y z],'FaceVertexCData',zeros(size(x)),'FaceColor','none','EdgeColor',edgecolor,'linewidth',linewidth);
+	else %triangles (planet)
 		A=elements(:,1); B=elements(:,2); C=elements(:,3); 
 		if (size(elements,2)==4), D=elements(:,4); else D=C; end
Index: /issm/trunk-jpl/src/m/plot/processdata.m
===================================================================
--- /issm/trunk-jpl/src/m/plot/processdata.m	(revision 17473)
+++ /issm/trunk-jpl/src/m/plot/processdata.m	(revision 17474)
@@ -56,5 +56,5 @@
 
 %check length
-if datasize(1)~=md.mesh.numberofvertices & datasize(1)~=md.mesh.numberofelements & datasize(1)~=md.mesh.numberofvertices*6 & (md.mesh.dimension==3 & ~(datasize(1)==numberofelements2d | datasize(1)==numberofvertices2d))
+if datasize(1)~=md.mesh.numberofvertices & datasize(1)~=md.mesh.numberofelements & datasize(1)~=md.mesh.numberofvertices*6 & (strcmp(md.mesh.meshtype(),'3D') & ~(datasize(1)==numberofelements2d | datasize(1)==numberofvertices2d))
 	error('plotmodel error message: data not supported yet');
 end
@@ -65,5 +65,5 @@
 
 	%check number of columns, add zeros if necessary,
-	if (md.mesh.dimension==3)
+	if (strcmp(md.mesh.meshtype(),'3D'))
 		if datasize(2)==2,
 			data=[data, zeros(datasize(1),1)];
@@ -71,6 +71,4 @@
 			error('plotmodel error message: data provided should have 2 or 3 columns for quiver plot, and 1 for regular plot');
 		end
-		%elseif ((md.mesh.dimension==2) & datasize(2)~=2),
-		%	error('plotmodel error message: data provided should have 2 columns for quiver plot, and 1 for regular plot');
 	end
 end
@@ -87,5 +85,5 @@
 
 %treat the case datasize(1)=nodes2d
-if (md.mesh.dimension==3 & datasize(1)==numberofvertices2d),
+if (strcmp(md.mesh.meshtype(),'3D') & datasize(1)==numberofvertices2d),
 	data=project3d(md,'vector',data,'type','node');
 	datasize(1)=md.mesh.numberofvertices;
@@ -94,5 +92,5 @@
 
 %treat the case datasize(1)=nodes2d
-if (md.mesh.dimension==3 & datasize(1)==numberofelements2d),
+if (strcmp(md.mesh.meshtype(),'3D') & datasize(1)==numberofelements2d),
 	data=project3d(md,'vector',data,'type','element');
 	datasize(1)=md.mesh.numberofelements;
Index: /issm/trunk-jpl/src/m/plot/processmesh.m
===================================================================
--- /issm/trunk-jpl/src/m/plot/processmesh.m	(revision 17473)
+++ /issm/trunk-jpl/src/m/plot/processmesh.m	(revision 17474)
@@ -45,7 +45,7 @@
 
 %is it a 2d plot?
-if (md.mesh.dimension==2);
+if ~strcmp(md.mesh.meshtype(),'3D');
 	is2d=1;
-elseif (md.mesh.dimension==3),
+else
 	if getfieldvalue(options,'layer',0)>=1,
 		is2d=1;
@@ -53,6 +53,4 @@
 		is2d=0;
 	end
-else
-	error(['dim = ' num2str(md.mesh.dimension) ' not supported yet']);
 end
 
