Index: /issm/trunk-jpl/src/m/classes/mask.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mask.m	(revision 25219)
+++ /issm/trunk-jpl/src/m/classes/mask.m	(revision 25220)
@@ -83,14 +83,37 @@
 			if strcmpi(solution,'LoveSolution'), return; end;
 
-			md = checkfield(md,'fieldname','mask.ocean_levelset','timeseries',1,'NaN',1);
-			md = checkfield(md,'fieldname','mask.ice_levelset','NaN',1,'size',[md.mesh.numberofvertices 1]);
-			isice=(md.mask.ice_levelset<=0);
-			if sum(isice)==0,
-				warning('no ice present in the domain');
+			if isa(self.ocean_levelset,'cell'),
+				for i=1:length(self.ocean_levelset),
+					md = checkfield(md,'field',self.ocean_levelset{i},'NaN',0,'Inf',1,'timeserieslength',1,'Inf',1);
+				end
+			else
+				md = checkfield(md,'fieldname','mask.ocean_levelset','timeseries',1,'NaN',1);
+			end
+			
+			if isa(self.ice_levelset,'cell'),
+				for i=1:length(self.ice_levelset),
+					md = checkfield(md,'field',self.ice_levelset{i},'NaN',0,'Inf',1,'timeserieslength',1,'Inf',1);
+				end
+			else
+				md = checkfield(md,'fieldname','mask.ice_levelset','timeseries',1,'NaN',1);
+				isice=(md.mask.ice_levelset<=0);
+				if sum(isice)==0,
+					warning('no ice present in the domain');
+				end
 			end
 		end % }}}
 		function marshall(self,prefix,md,fid) % {{{
-			WriteData(fid,prefix,'object',self,'fieldname','ocean_levelset','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
-			WriteData(fid,prefix,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1);
+
+			if isa(self.ocean_levelset,'cell'),
+				WriteData(fid,prefix,'object',self,'fieldname','ocean_levelset','name','md.mask.ocean_levelset','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
+			else
+				WriteData(fid,prefix,'object',self,'fieldname','ocean_levelset','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
+			end
+
+			if isa(self.ice_levelset,'cell'),
+				WriteData(fid,prefix,'object',self,'fieldname','ice_levelset','name','md.mask.ice_levelset','format','MatArray','timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
+			else
+				WriteData(fid,prefix,'object',self,'fieldname','ice_levelset','format','DoubleMat','mattype',1);
+			end
 		end % }}}
 		function savemodeljs(self,fid,modelname) % {{{
