Index: /issm/trunk-jpl/src/m/classes/geometry.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/geometry.m	(revision 16334)
+++ /issm/trunk-jpl/src/m/classes/geometry.m	(revision 16335)
@@ -26,8 +26,4 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
-			if strcmp(meshtype(md.mesh),'2Dvertical'),
-				return;
-			end
-
 			if (solution==TransientSolutionEnum() & md.transient.isgia) | (solution==GiaSolutionEnum()),
 				md = checkfield(md,'geometry.thickness','forcing',1,'NaN',1,'>=',0);
@@ -55,7 +51,4 @@
 		end % }}}
 		function marshall(obj,md,fid) % {{{
-			if strcmp(meshtype(md.mesh),'2Dvertical'),
-				return;
-			end
 			WriteData(fid,'data',obj.surface,'format','DoubleMat','mattype',1,'enum',SurfaceEnum());
 			WriteData(fid,'data',obj.thickness,'format','DoubleMat','mattype',1,'enum',ThicknessEnum(),'forcinglength',md.mesh.numberofvertices+1);
Index: /issm/trunk-jpl/src/m/classes/mesh2dvertical.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh2dvertical.m	(revision 16334)
+++ /issm/trunk-jpl/src/m/classes/mesh2dvertical.m	(revision 16335)
@@ -18,4 +18,5 @@
 
 		vertexonboundary            = NaN
+		vertexonbed                 = NaN
 
 		edges                       = NaN
@@ -25,7 +26,4 @@
 		elementconnectivity         = NaN
 		average_vertex_connectivity = 0;
-
-		extractedvertices           = NaN
-		extractedelements           = NaN
 	end
 	methods
@@ -58,4 +56,5 @@
 			md = checkfield(md,'mesh.numberofelements','>',0);
 			md = checkfield(md,'mesh.numberofvertices','>',0);
+			md = checkfield(md,'mesh.vertexonbed','size',[md.mesh.numberofvertices 1],'values',[0 1]);
 			md = checkfield(md,'mesh.average_vertex_connectivity','>=',9,'message','''mesh.average_vertex_connectivity'' should be at least 9 in 2d');
 
@@ -66,5 +65,5 @@
 		end % }}}
 		function disp(obj) % {{{
-			disp(sprintf('   2d Mesh:')); 
+			disp(sprintf('   2d vertical Mesh:')); 
 
 			disp(sprintf('\n      Elements and vertices:'));
@@ -79,4 +78,5 @@
 			disp(sprintf('\n      Properties:'));
 			fielddisplay(obj,'vertexonboundary','vertices on the boundary of the domain flag list');
+			fielddisplay(obj,'vertexonbed','vertices on the bed of the domain flag list');
 			fielddisplay(obj,'segments','edges on domain boundary (vertex1 vertex2 element)');
 			fielddisplay(obj,'segmentmarkers','number associated to each segment');
@@ -102,8 +102,14 @@
 			WriteData(fid,'object',obj,'class','mesh','fieldname','numberofelements','format','Integer');
 			WriteData(fid,'object',obj,'class','mesh','fieldname','numberofvertices','format','Integer');
+			WriteData(fid,'object',obj,'class','mesh','fieldname','vertexonbed','format','BooleanMat','mattype',1);
 			WriteData(fid,'object',obj,'class','mesh','fieldname','average_vertex_connectivity','format','Integer');
 		end % }}}
 		function t = meshtype(obj) % {{{
 			t = '2Dvertical';
+		end % }}}
+		function flags = vertexflags(self,value) % {{{
+			flags = zeros(self.numberofvertices,1);
+			pos   = self.segments(find(self.segmentmarkers==value),1:2);
+			flags(pos) = 1;
 		end % }}}
 		function [data datatype] = processdata(self,md,data,options) % {{{
@@ -129,15 +135,4 @@
 			if datasize(2)>1,
 				datatype=3;
-
-				%check number of columns, add zeros if necessary,
-				if (md.mesh.dimension==3)
-					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 ((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
 
Index: /issm/trunk-jpl/src/m/mesh/bamg.m
===================================================================
--- /issm/trunk-jpl/src/m/mesh/bamg.m	(revision 16334)
+++ /issm/trunk-jpl/src/m/mesh/bamg.m	(revision 16335)
@@ -102,4 +102,9 @@
 		count=count+nods;
 	end
+	if getfieldvalue(options,'vertical',0),
+		if numel(getfieldvalue(options,'Markers',[]))~=size(bamg_geometry.Edges,1),
+			error(['for 2d vertical mesh, ''Markers'' option is required, and should be of size ' num2str(size(bamg_geometry.Edges,1))]);
+		end
+	end
 	if numel(getfieldvalue(options,'Markers',[]))==size(bamg_geometry.Edges,1),
 		bamg_geometry.Edges(:,3)=getfieldvalue(options,'Markers');
