Index: /issm/trunk/src/m/classes/public/mesh/findsegments.m
===================================================================
--- /issm/trunk/src/m/classes/public/mesh/findsegments.m	(revision 3114)
+++ /issm/trunk/src/m/classes/public/mesh/findsegments.m	(revision 3115)
@@ -1,19 +1,28 @@
-function segments=findsegments(md)
+function segments=findsegments(md,varargin)
 %FINDSEGMENTS - build segments model field
 %
+%   Optional inputs:
+%      'elementconnectivity'
+%
 %   Usage:
-%      segments=findsegments(md);
+%      segments=findsegments(md,varargin);
 
-%Now, build the connectivity tables for this mesh.
-if size(md.nodeconnectivity,1)~=md.numberofgrids,
-	md.nodeconnectivity=NodeConnectivity(md.elements,md.numberofgrids);
-end
+%get options
+options=pairoptions(varargin{:});
+
+%Get connectivity
+elementconnectivity=getfieldvalue(options,'elementconnectivity',md.elementconnectivity);
+
+%Now, build the connectivity tables for this mesh if not correclty done
 if size(md.elementconnectivity,1)~=md.numberofelements,
-	md.elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
+	if exist(options,'elementconnectivity'),
+		error(' ''elementconnectivity'' option does not have thge right size.');
+	else
+		elementconnectivity=ElementConnectivity(md.elements,md.nodeconnectivity);
+	end
 end
 
 %Recreate the segments
-elementconnectivity=md.elementconnectivity;
-elementonboundary=double(elementconnectivity(:,end)==0);
+elementonboundary=double(elementconnectivity(:,3)==0);
 pos=find(elementonboundary);
 num_segments=length(pos);
