Index: /issm/trunk/src/m/model/bamg.m
===================================================================
--- /issm/trunk/src/m/model/bamg.m	(revision 6344)
+++ /issm/trunk/src/m/model/bamg.m	(revision 6345)
@@ -10,5 +10,4 @@
 %   - hminVertices: minimum edge length for each vertex (mesh)
 %   - hmaxVertices: maximum edge length for each vertex (mesh)
-%   - prescribedVertices:  vertices that should be kept by bamg. [x,y,marker]; marker is optional
 %
 %   - anisomax    : maximum ration between the smallest and largest edges (default is 10^30)
@@ -41,4 +40,5 @@
 %   - toltip: tolerance to move tip on an existing point of the domain outline
 %   - tracks: followed by an ARGUS file that prescribes the tracks that the mesh will stick to
+%   - RequiredVertices: mesh vertices that are required. [x,y,ref]; ref is optional
 %   - tol:    if the distance between 2 points of the domain outline is less than tol, they
 %             will be merged
@@ -207,53 +207,44 @@
 	if exist(options,'tracks'),
 
-		%Check that file exists
-		trackfile=getfieldvalue(options,'tracks');
-		if ~exist(trackfile,'file')
-			error(['bamg error message: file ' trackfile ' not found ']);
-		end
-		track=expread(trackfile);
-
-		for i=1:length(track),
-
-			%Add all points to bamg_geometry
-			nods=track(i).nods;
-			bamg_geometry.Vertices=[bamg_geometry.Vertices; [track(i).x(1:nods) track(i).y(1:nods) 3*ones(nods,1)]];
-			bamg_geometry.Edges=[bamg_geometry.Edges; [transpose(count+1:count+nods-1) transpose([count+2:count+nods])  3*ones(nods-1,1)]];
-
-			%update counter
-			count=count+nods;
-		end
+		%read tracks
+		track=getfieldvalue(options,'tracks');
+		if all(ischar(track)),
+			A=expread(track); 
+			track=[A.x A.y];
+		else
+			track=double(track); %for some reason, it is of class "single"
+		end
+		if(size(track,2)==2), track=[track 3*ones(size(track,1),1)]; end
+
+		%only keep those inside
+		flags=ContourToNodes(track(:,1),track(:,2),domainfile,0);
+		track=track(find(flags),:);
+
+		%Add all points to bamg_geometry
+		nods=size(track,1);
+		bamg_geometry.Vertices=[bamg_geometry.Vertices; track];
+		bamg_geometry.Edges=[bamg_geometry.Edges; [transpose(count+1:count+nods-1) transpose([count+2:count+nods])  3*ones(nods-1,1)]];
+
+		%update counter
+		count=count+nods;
 	end
 
 	%Deal with vertices that need to be kept by mesher
-	if exist(options,'prescribedVertices'),
-
-		%recover xvertices yvertices
-		prescribedVertices=getfieldvalue(options,'prescribedVertices');
-		xvertices=prescribedVertices(:,1);
-		yvertices=prescribedVertices(:,2);
-		if(size(prescribedVertices,2)==3),
-			markers=prescribedVertices(:,3);
-		else 
-			markers=[];
-		end
+	if exist(options,'RequiredVertices'),
+
+		%recover RequiredVertices
+		requiredvertices=double(getfieldvalue(options,'RequiredVertices')); %for some reason, it is of class "single"
+		if(size(requiredvertices,2)==2), requiredvertices=[requiredvertices 4*ones(size(requiredvertices,1),1)]; end
 	
 		%only keep those inside
-		flags=ContourToNodes(xvertices,yvertices,domain(1),0);
-		pos=find(flags);
-		xvertices=xvertices(pos);
-		yvertices=yvertices(pos);
-		if ~isempty(markers),
-			markers=markers(pos);
-		end
+		flags=ContourToNodes(requiredvertices(:,1),requiredvertices(:,2),domain(1),0);
+		requiredvertices=requiredvertices(find(flags),:);
 
 		%Add all points to bamg_geometry
-		nods=length(xvertices);
-		if isempty(markers),
-			markers=4*ones(nods,1);
-		end
-
-		bamg_geometry.Vertices=[bamg_geometry.Vertices; [xvertices yvertices markers]]; 
-
+		nods=size(requiredvertices,1);
+		bamg_geometry.Vertices=[bamg_geometry.Vertices; requiredvertices];
+
+		%update counter
+		count=count+nods;
 	end
 
Index: /issm/trunk/src/m/model/ismodelselfconsistent.m
===================================================================
--- /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 6344)
+++ /issm/trunk/src/m/model/ismodelselfconsistent.m	(revision 6345)
@@ -319,9 +319,9 @@
 
 	%SPC				 
-	if ~md.prognostic_DG,
-		if any(md.spcthickness(find(md.gridonboundary))~=1),		 
-			error(['model not consistent: model ' md.name ' should have all the nodes on boundary constrained in field spcthickness']);			 
-		end 
-	end
+%	if ~md.prognostic_DG,
+%		if any(md.spcthickness(find(md.gridonboundary))~=1),		 
+%			error(['model not consistent: model ' md.name ' should have all the nodes on boundary constrained in field spcthickness']);			 
+%		end 
+%	end
 
 	%Triangle with zero velocity
@@ -358,5 +358,5 @@
 	checksize(md,fields,[md.nsteps num_controls]);
 	fields={'cm_min','cm_max'};
-	checksize(md,fields,[num_controls 1]);
+	checksize(md,fields,[1 num_controls]);
 
 	%RESPONSES
