Index: /issm/trunk/src/m/partition/flagedges.m
===================================================================
--- /issm/trunk/src/m/partition/flagedges.m	(revision 2918)
+++ /issm/trunk/src/m/partition/flagedges.m	(revision 2919)
@@ -1,18 +1,36 @@
-flags=zeros(md.numberofgrids,1);
+function flags=flagedges(partition,adjacencymatrix);
+%FLAGEDGES return a vector of boolean flags that indicate whether a node is on the edge of a partition.
+%          needs partition vector and adjacencymatrix in inputs.
+%
+%
+%         Usage: flags=flagedges(partition,adjacencymatrix);
+%
 
-for i=1:md.numberofgrids,
+%number of grids
+numberofgrids=length(partition);
 
+%initialize flags
+flags=zeros(numberofgrids,1);
+
+%go through grids, and figure out which grid is connected to a grid belonging to another partition, flag it.
+for i=1:numberofgrids,
+
+	%some feedback
+	if i==1,
+		fprintf('    progress report: %5.2f %s',i/numberofgrids*100,'%');
+	elseif mod(i,1000),
+		fprintf('\b\b\b\b\b\b\b');
+		fprintf('%5.2f %s',i/numberofgrids*100,'%');
+	end
+
+	%already flag, move on
 	if flags(i),
 		continue;
 	end
-	if mod(i,100),
-		disp([num2str(i) 'vs' num2str(md.numberofgrids)]);
-	end
-
-	grids=adj_mat(i,:);
-	grids=find(grids);
 	
-	part_i=maptab(i,2);
-	part_connected=maptab(grids,2);
+	grids=adjacencymatrix(i,:); grids=find(grids);
+	
+	part_i=partition(i);
+	part_connected=partition(grids);
 
 	index=find(part_i~=part_connected);
@@ -20,6 +38,5 @@
 		grids_on_edge=grids(index);
 		flags(grids_on_edge)=1;
-		%flags(i)=1;
+		%flags(i)=1; do not flag i, otherwise, edges are doubled, results in ugly plots.
 	end
-
 end
