Index: /issm/trunk-jpl/src/m/classes/mask.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mask.m	(revision 15595)
+++ /issm/trunk-jpl/src/m/classes/mask.m	(revision 15596)
@@ -61,7 +61,4 @@
 			WriteData(fid,'object',obj,'fieldname','vertexongroundedice','format','DoubleMat','mattype',1);
 			WriteData(fid,'object',obj,'fieldname','vertexonwater','format','DoubleMat','mattype',1);
-			icelevelset=ones(md.mesh.numberofvertices,1);
-			pos=md.diagnostic.icefront(:,1:end-2);
-			icelevelset(pos(:))=0;
 			WriteData(fid,'object',obj,'fieldname','icelevelset','format','DoubleMat','mattype',1);
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/mask.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/mask.py	(revision 15595)
+++ /issm/trunk-jpl/src/m/classes/mask.py	(revision 15596)
@@ -49,4 +49,10 @@
 		md = checkfield(md,'mask.vertexonwater'       ,'size',[md.mesh.numberofvertices],'values',[0,1])
 		md = checkfield(md,'mask.icelevelset'         ,'size',[md.mesh.numberofvertices])
+			isice=numpy.zeros_like(md.mesh.numberofvertices,int)
+			pos=npy.nonzero(md.mask.icelevelset>0)
+			isice[pos]=1
+			totalyicefree=(numpy.sum(isice[md.mesh.elements-1],axis=1)==0).astype(int)
+			if any(totalyicefree)
+				raise TypeError("elements with no ice not implemented yet, each element should have at least one vertex with md.mask.icelevelset > 0")
 
 		return md
@@ -59,8 +65,4 @@
 		WriteData(fid,'object',self,'fieldname','vertexongroundedice','format','DoubleMat','mattype',1)
 		WriteData(fid,'object',self,'fieldname','vertexonwater','format','DoubleMat','mattype',1)
-		icelevelset=numpy.ones(md.mesh.numberofvertices,float)
-		if numpy.any(numpy.logical_not(numpy.isnan(md.diagnostic.icefront))):
-			pos=md.diagnostic.icefront[:,:-2]
-			icelevelset[pos[:].astype(int)-1]=0;
 		WriteData(fid,'object',self,'fieldname','icelevelset','format','DoubleMat','mattype',1)
 	# }}}
