Index: /issm/trunk-jpl/src/m/classes/model.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/model.m	(revision 20321)
+++ /issm/trunk-jpl/src/m/classes/model.m	(revision 20322)
@@ -513,5 +513,5 @@
 
 			%recreate segments
-			if isa(md1.mesh,'mesh2d'),
+			if isa(md1.mesh,'mesh2d') | isa(md1.mesh','mesh3dsurface'),
 				md2.mesh.vertexconnectivity=NodeConnectivity(md2.mesh.elements,md2.mesh.numberofvertices);
 				md2.mesh.elementconnectivity=ElementConnectivity(md2.mesh.elements,md2.mesh.vertexconnectivity);
Index: /issm/trunk-jpl/src/m/classes/slr.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/slr.m	(revision 20321)
+++ /issm/trunk-jpl/src/m/classes/slr.m	(revision 20322)
@@ -56,5 +56,6 @@
 
 			if ~ismember(SealevelriseAnalysisEnum(),analyses), return; end
-			md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
+			md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofelements 1]);
+			%md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
 			md = checkfield(md,'fieldname','slr.sealevel','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
 			md = checkfield(md,'fieldname','slr.love_h','NaN',1,'Inf',1);
@@ -69,4 +70,12 @@
 			if (size(self.love_h,1) ~= size(self.love_k,1)),
 				error('slr error message: love numbers should be provided at the same level of accuracy');
+			end
+
+			%cross check that whereever we have an ice load, the mask is <0 on each vertex: 
+			pos=find(self.deltathickness);
+			maskpos=md.mask.ice_levelset(md.mesh.elements(pos,:)); 
+			[els,vertices]=find(maskpos>0);
+			if length(els),
+				error('slr checkconsistency fail: there are elements with ice loads where some vertices are not on the ice!');
 			end
 
@@ -94,5 +103,6 @@
 		end % }}}
 		function marshall(self,md,fid) % {{{
-			WriteData(fid,'object',self,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',1);
+			WriteData(fid,'object',self,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',2);
+			%WriteData(fid,'object',self,'class','sealevelrise','fieldname','deltathickness','format','DoubleMat','mattype',1);
 			WriteData(fid,'data',self.sealevel,'mattype',1,'format','DoubleMat','enum',SealevelEnum(),'timeserieslength',md.mesh.numberofvertices+1);
 			WriteData(fid,'object',self,'class','sealevelrise','fieldname','reltol','format','Double');
