Index: /issm/trunk-jpl/src/m/classes/sealevelmodel.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/sealevelmodel.m	(revision 24164)
+++ /issm/trunk-jpl/src/m/classes/sealevelmodel.m	(revision 24165)
@@ -22,4 +22,5 @@
 		mergedcaps       = 0;
 		transitions      = {};
+		eltransitions      = {};
 		%}}}
 	end
@@ -85,9 +86,10 @@
 			slm.earth             = {};
 			slm.miscellaneous     = miscellaneous();
-			slm.settings          = settings();
+			slm.settings          = issmsettings();
 			slm.private           = private();
 			slm.cluster           = generic();
 			slm.range             = {};
 			slm.transitions       = {};
+			slm.eltransitions       = {};
 		end
 		%}}}
@@ -152,12 +154,23 @@
 		force=getfieldvalue(options,'force',0);
 
+		%for elements:
+		xe=self.earth.mesh.x(self.earth.mesh.elements)*[1;1;1]/3;
+		ye=self.earth.mesh.y(self.earth.mesh.elements)*[1;1;1]/3;
+		ze=self.earth.mesh.z(self.earth.mesh.elements)*[1;1;1]/3;
+
 		for i=1:length(self.icecaps),
 			mdi=self.icecaps{i};
 			mdi=TwoDToThreeD(mdi);
-		
+	
+			%for elements: 
+			xei=mdi.mesh.x(mdi.mesh.elements)*[1;1;1]/3;
+			yei=mdi.mesh.y(mdi.mesh.elements)*[1;1;1]/3;
+			zei=mdi.mesh.z(mdi.mesh.elements)*[1;1;1]/3;
+	
 			disp(sprintf('Computing vertex intersections for basin %s',self.basins{i}.name));
 		
 			self.transitions{end+1}=meshintersect3d(self.earth.mesh.x,self.earth.mesh.y,self.earth.mesh.z,mdi.mesh.x,mdi.mesh.y,mdi.mesh.z,'force',force);
 
+			self.eltransitions{end+1}=meshintersect3d(xe,ye,ze,xei,yei,zei,'force',force);
 		end
 
@@ -335,4 +348,21 @@
 			disp(sprintf('Earth: %i/%g',mvi,timei));
 		end % }}}
+		function transfer(self,string) % {{{
+			%Recover field size in one icecap: 
+			eval(['n=length(self.icecaps{1}.' string ');']);
+			if n==self.icecaps{1}.mesh.numberofvertices,
+				eval(['self.earth.' string '=zeros(self.earth.mesh.numberofvertices,1);']);
+				for i=1:length(self.icecaps),
+					eval(['self.earth.' string '(self.transitions{' num2str(i) '})=self.icecaps{' num2str(i) '}.' string ';']);
+				end
+			elseif n==self.icecaps{1} .mesh.numberofelements,
+				eval(['self.earth.' string '=zeros(self.earth.mesh.numberofelements,1);']);
+				for i=1:length(self.icecaps),
+					eval(['self.earth.' string '(self.eltransitions{' num2str(i) '})=self.icecaps{' num2str(i) '}.' string ';']);
+				end
+			else
+				error('not supported yet');
+			end
+		end % }}}
 		function self=homogeneize(self,noearth) % {{{
 			if nargin==1,
