Index: /issm/trunk-jpl/src/m/mesh/bamg.m
===================================================================
--- /issm/trunk-jpl/src/m/mesh/bamg.m	(revision 24864)
+++ /issm/trunk-jpl/src/m/mesh/bamg.m	(revision 24865)
@@ -26,5 +26,6 @@
 %                         1 -> use Green formula
 %   - KeepVertices :      try to keep initial vertices when adaptation is done on an existing mesh (default 1)
-%   - NoBoundaryRefinment: do not refine boundary, only follow contour provided (default 0)
+%   - NoBoundaryRefinement: do not refine boundary, only follow contour provided (default 0). Allow subdomain boundary refinement though.
+%   - NoBoundaryRefinementAllBoundaries: do not refine boundary, only follow contour provided (default 0)
 %   - maxnbv :            maximum number of vertices used to allocate memory (default is 10^6)
 %   - maxsubdiv :         maximum subdivision of exisiting elements (default is 10)
@@ -155,7 +156,16 @@
 		end
 
+		%Flag how many edges we have so far: 
+		edge_length=length(bamg_geometry.Edges);
+
 		%Add all points to bamg_geometry
 		bamg_geometry.Vertices=[bamg_geometry.Vertices; [domain(i).x(1:nods) domain(i).y(1:nods) ones(nods,1)]];
 		bamg_geometry.Edges   =[bamg_geometry.Edges;    [transpose(count+1:count+nods) transpose([count+2:count+nods count+1])  1*ones(nods,1)]];
+
+		%Flag how many edges we have now, that way we know which edges belong to the domain, will 
+		%be used later for required edges when NoBoundaryRefinement is one: 
+		new_edge_length=length(bamg_geometry.Edges);
+		edges_required=(edge_length+1):new_edge_length;
+
 		if i>1,
 			bamg_geometry.SubDomains=[bamg_geometry.SubDomains; 2 count+1 1 -subdomain_ref]; subdomain_ref = subdomain_ref+1;
@@ -216,6 +226,7 @@
 		bamg_geometry.Vertices=[bamg_geometry.Vertices; [subdomains(i).x(1:nods) subdomains(i).y(1:nods) ones(nods,1)]];
 		bamg_geometry.Edges   =[bamg_geometry.Edges;    [transpose(count+1:count+nods) transpose([count+2:count+nods count+1])  1.*ones(nods,1)]];
+		
 		bamg_geometry.SubDomains=[bamg_geometry.SubDomains; 2 count+1 1 subdomain_ref]; subdomain_ref = subdomain_ref+1;
-
+		
 		%update counter
 		count=count+nods;
@@ -404,5 +415,7 @@
 
 	%Deal with RequiredEdges
-	if getfieldvalue(options,'NoBoundaryRefinment',0)==1,
+	if getfieldvalue(options,'NoBoundaryRefinement',0)==1,
+		bamg_geometry.RequiredEdges=edges_required';
+	elseif getfieldvalue(options,'NoBoundaryRefinementAllBoundaries',0)==1,
 		bamg_geometry.RequiredEdges=[1:size(bamg_geometry.Edges,1)]';
 	end
