Index: /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 24888)
+++ /issm/trunk-jpl/src/c/analyses/SealevelriseAnalysis.cpp	(revision 24889)
@@ -37,15 +37,5 @@
 	iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
 	iomodel->FetchDataToInput(inputs2,elements,"md.mask.ice_levelset",MaskIceLevelsetEnum);
-	//those only if we have requested geodetic computations:
 	iomodel->FetchData(&geodetic,"md.slr.geodetic");
-	if (geodetic){
-		char* masktype=NULL;
-		iomodel->FetchData(&masktype,"md.mask.type");
-		if (strcmp(masktype,"maskpsl")==0){
-			iomodel->FetchDataToInput(inputs2,elements,"md.mask.ocean_levelset",MaskOceanLevelsetEnum);
-			iomodel->FetchDataToInput(inputs2,elements,"md.mask.land_levelset",MaskLandLevelsetEnum);
-		}
-		xDelete<char>(masktype);
-	}
 	iomodel->FetchDataToInput(inputs2,elements,"md.slr.deltathickness",SealevelriseDeltathicknessEnum);
 	iomodel->FetchDataToInput(inputs2,elements,"md.slr.spcthickness",SealevelriseSpcthicknessEnum);
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 24888)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.cpp	(revision 24889)
@@ -2025,5 +2025,5 @@
 /*}}}*/
 bool       Element::IsLandInElement(){/*{{{*/
-	Input2* input=this->GetInput2(MaskLandLevelsetEnum); _assert_(input);
+	Input2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);
 	return (input->GetInputMax()>0.);
 }
@@ -2031,5 +2031,5 @@
 bool       Element::IsOceanInElement(){/*{{{*/
 	Input2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);
-	return (input->GetInputMax()>0.);
+	return (input->GetInputMin()<0.);
 }
 /*}}}*/
@@ -2099,9 +2099,4 @@
 
 }/*}}}*/
-bool       Element::IsWaterInElement(){/*{{{*/
-	Input2* input=this->GetInput2(MaskOceanLevelsetEnum); _assert_(input);
-	return (input->GetInputMax()>0.);
-}
-/*}}}*/
 void       Element::LinearFloatingiceMeltingRate(){/*{{{*/
 
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 24888)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 24889)
@@ -141,8 +141,7 @@
 		bool               IsIceInElement();
 		bool               IsIceOnlyInElement();
+		bool               IsOceanInElement();
 		bool               IsLandInElement();
-		bool               IsOceanInElement();
 		void               Ismip6FloatingiceMeltingRate();
-		bool               IsWaterInElement();
 		void               LinearFloatingiceMeltingRate();
 		void               SpatialLinearFloatingiceMeltingRate();
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 24888)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 24889)
@@ -5449,5 +5449,5 @@
 IssmDouble    Tria::OceanArea(void){ /*{{{*/
 
-	if(IsWaterInElement()) return GetAreaSpherical();
+	if(IsOceanInElement()) return GetAreaSpherical();
 	else return 0;
 
@@ -5456,5 +5456,5 @@
 IssmDouble Tria::OceanAverage(IssmDouble* Sg){ /*{{{*/
 
-	if(IsWaterInElement()){
+	if(IsOceanInElement()){
 
 		IssmDouble area;
@@ -5475,5 +5475,5 @@
 void	Tria::SealevelriseMomentOfInertia(IssmDouble* dI_list,IssmDouble* Sg_old,IssmDouble eartharea){/*{{{*/
 	/*early return if we are not on an ice cap OR ocean:*/
-	if(!IsIceOnlyInElement() && !IsWaterInElement()){
+	if(!IsIceOnlyInElement() && !IsOceanInElement()){
 		dI_list[0] = 0.0; // this is important!!!
 		dI_list[1] = 0.0; // this is important!!!
@@ -5528,5 +5528,5 @@
 	re=(llr_list[0][2]+llr_list[1][2]+llr_list[2][2])/3.0;
 
-	if(IsWaterInElement()){
+	if(IsOceanInElement()){
 		IssmDouble rho_water, S;
 
@@ -5973,5 +5973,5 @@
 
 	/*early return if we are not on the ocean:*/
-	if (!IsWaterInElement()){
+	if (!IsOceanInElement()){
 		constant=0; this->AddInput2(SealevelEustaticOceanMaskEnum,&constant,P0Enum);
 		return;
@@ -6126,5 +6126,5 @@
 
 	/*early return if we are not on the ocean or on an ice cap:*/
-	if(!IsIceOnlyInElement() && !IsWaterInElement()) return;
+	if(!IsIceOnlyInElement() && !IsOceanInElement()) return;
 
 	/*early return if we are fully floating: */
@@ -6268,5 +6268,5 @@
 			}
 		}
-		else if(IsWaterInElement()) {
+		else if(IsOceanInElement()) {
 			U_values[i]+=3*rho_water/rho_earth*area/eartharea*S*U_elastic[i];
 			if(horiz){
Index: /issm/trunk-jpl/src/c/shared/Enum/Enum.vim
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/Enum.vim	(revision 24888)
+++ /issm/trunk-jpl/src/c/shared/Enum/Enum.vim	(revision 24889)
@@ -627,5 +627,4 @@
 syn keyword cConstant MaskOceanLevelsetEnum
 syn keyword cConstant MaskIceLevelsetEnum
-syn keyword cConstant MaskLandLevelsetEnum
 syn keyword cConstant MasstransportSpcthicknessEnum
 syn keyword cConstant MaterialsRheologyBEnum
@@ -1342,5 +1341,4 @@
 syn keyword cType Cfsurfacesquare
 syn keyword cType Channel
-syn keyword cType classes
 syn keyword cType Constraint
 syn keyword cType Constraints
@@ -1349,6 +1347,6 @@
 syn keyword cType ControlInput2
 syn keyword cType Covertree
+syn keyword cType DataSetParam
 syn keyword cType DatasetInput2
-syn keyword cType DataSetParam
 syn keyword cType Definition
 syn keyword cType DependentObject
@@ -1362,6 +1360,6 @@
 syn keyword cType ElementInput2
 syn keyword cType ElementMatrix
+syn keyword cType ElementVector
 syn keyword cType Elements
-syn keyword cType ElementVector
 syn keyword cType ExponentialVariogram
 syn keyword cType ExternalResult
@@ -1370,10 +1368,9 @@
 syn keyword cType Friction
 syn keyword cType Gauss
-syn keyword cType GaussianVariogram
-syn keyword cType gaussobjects
 syn keyword cType GaussPenta
 syn keyword cType GaussSeg
 syn keyword cType GaussTetra
 syn keyword cType GaussTria
+syn keyword cType GaussianVariogram
 syn keyword cType GenericExternalResult
 syn keyword cType GenericOption
@@ -1390,5 +1387,4 @@
 syn keyword cType IssmDirectApplicInterface
 syn keyword cType IssmParallelDirectApplicInterface
-syn keyword cType krigingobjects
 syn keyword cType Load
 syn keyword cType Loads
@@ -1401,5 +1397,4 @@
 syn keyword cType Matice
 syn keyword cType Matlitho
-syn keyword cType matrixobjects
 syn keyword cType MatrixParam
 syn keyword cType Misfit
@@ -1414,6 +1409,6 @@
 syn keyword cType Observations
 syn keyword cType Option
+syn keyword cType OptionUtilities
 syn keyword cType Options
-syn keyword cType OptionUtilities
 syn keyword cType Param
 syn keyword cType Parameters
@@ -1429,10 +1424,10 @@
 syn keyword cType Regionaloutput
 syn keyword cType Results
+syn keyword cType RiftStruct
 syn keyword cType Riftfront
-syn keyword cType RiftStruct
 syn keyword cType Seg
 syn keyword cType SegInput2
+syn keyword cType SegRef
 syn keyword cType Segment
-syn keyword cType SegRef
 syn keyword cType SpcDynamic
 syn keyword cType SpcStatic
@@ -1453,4 +1448,8 @@
 syn keyword cType Vertex
 syn keyword cType Vertices
+syn keyword cType classes
+syn keyword cType gaussobjects
+syn keyword cType krigingobjects
+syn keyword cType matrixobjects
 syn keyword cType AdjointBalancethickness2Analysis
 syn keyword cType AdjointBalancethicknessAnalysis
@@ -1471,6 +1470,6 @@
 syn keyword cType FreeSurfaceBaseAnalysis
 syn keyword cType FreeSurfaceTopAnalysis
+syn keyword cType GLheightadvectionAnalysis
 syn keyword cType GiaIvinsAnalysis
-syn keyword cType GLheightadvectionAnalysis
 syn keyword cType HydrologyDCEfficientAnalysis
 syn keyword cType HydrologyDCInefficientAnalysis
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 24888)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 24889)
@@ -624,5 +624,4 @@
 	MaskOceanLevelsetEnum,
 	MaskIceLevelsetEnum,
-	MaskLandLevelsetEnum,
 	MasstransportSpcthicknessEnum,
 	MaterialsRheologyBEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 24888)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 24889)
@@ -629,5 +629,4 @@
 		case MaskOceanLevelsetEnum : return "MaskOceanLevelset";
 		case MaskIceLevelsetEnum : return "MaskIceLevelset";
-		case MaskLandLevelsetEnum : return "MaskLandLevelset";
 		case MasstransportSpcthicknessEnum : return "MasstransportSpcthickness";
 		case MaterialsRheologyBEnum : return "MaterialsRheologyB";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 24888)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 24889)
@@ -644,5 +644,4 @@
 	      else if (strcmp(name,"MaskOceanLevelset")==0) return MaskOceanLevelsetEnum;
 	      else if (strcmp(name,"MaskIceLevelset")==0) return MaskIceLevelsetEnum;
-	      else if (strcmp(name,"MaskLandLevelset")==0) return MaskLandLevelsetEnum;
 	      else if (strcmp(name,"MasstransportSpcthickness")==0) return MasstransportSpcthicknessEnum;
 	      else if (strcmp(name,"MaterialsRheologyB")==0) return MaterialsRheologyBEnum;
@@ -752,9 +751,9 @@
 	      else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
 	      else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum;
+	      else if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum;
          else stage=7;
    }
    if(stage==7){
-	      if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum;
-	      else if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum;
+	      if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum;
 	      else if (strcmp(name,"SmbMeanSHF")==0) return SmbMeanSHFEnum;
 	      else if (strcmp(name,"SmbMeanULW")==0) return SmbMeanULWEnum;
@@ -875,9 +874,9 @@
 	      else if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum;
 	      else if (strcmp(name,"Outputdefinition15")==0) return Outputdefinition15Enum;
+	      else if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum;
          else stage=8;
    }
    if(stage==8){
-	      if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum;
-	      else if (strcmp(name,"Outputdefinition17")==0) return Outputdefinition17Enum;
+	      if (strcmp(name,"Outputdefinition17")==0) return Outputdefinition17Enum;
 	      else if (strcmp(name,"Outputdefinition18")==0) return Outputdefinition18Enum;
 	      else if (strcmp(name,"Outputdefinition19")==0) return Outputdefinition19Enum;
@@ -998,9 +997,9 @@
 	      else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
 	      else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
+	      else if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
          else stage=9;
    }
    if(stage==9){
-	      if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
-	      else if (strcmp(name,"BoolInput2")==0) return BoolInput2Enum;
+	      if (strcmp(name,"BoolInput2")==0) return BoolInput2Enum;
 	      else if (strcmp(name,"IntInput2")==0) return IntInput2Enum;
 	      else if (strcmp(name,"BoolParam")==0) return BoolParamEnum;
@@ -1121,9 +1120,9 @@
 	      else if (strcmp(name,"IceVolumeAboveFloatationScaled")==0) return IceVolumeAboveFloatationScaledEnum;
 	      else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
+	      else if (strcmp(name,"IceVolumeScaled")==0) return IceVolumeScaledEnum;
          else stage=10;
    }
    if(stage==10){
-	      if (strcmp(name,"IceVolumeScaled")==0) return IceVolumeScaledEnum;
-	      else if (strcmp(name,"IcefrontMassFlux")==0) return IcefrontMassFluxEnum;
+	      if (strcmp(name,"IcefrontMassFlux")==0) return IcefrontMassFluxEnum;
 	      else if (strcmp(name,"IcefrontMassFluxLevelset")==0) return IcefrontMassFluxLevelsetEnum;
 	      else if (strcmp(name,"Incremental")==0) return IncrementalEnum;
@@ -1244,9 +1243,9 @@
 	      else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
 	      else if (strcmp(name,"ProfilingCurrentFlops")==0) return ProfilingCurrentFlopsEnum;
+	      else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
          else stage=11;
    }
    if(stage==11){
-	      if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
-	      else if (strcmp(name,"ProfilingSolutionTime")==0) return ProfilingSolutionTimeEnum;
+	      if (strcmp(name,"ProfilingSolutionTime")==0) return ProfilingSolutionTimeEnum;
 	      else if (strcmp(name,"Regionaloutput")==0) return RegionaloutputEnum;
 	      else if (strcmp(name,"Regular")==0) return RegularEnum;
Index: sm/trunk-jpl/src/m/classes/maskpsl.js
===================================================================
--- /issm/trunk-jpl/src/m/classes/maskpsl.js	(revision 24888)
+++ 	(revision )
@@ -1,65 +1,0 @@
-//MASKPSL class definition
-//
-//   Usage:
-//      maskpsl= new maskpsl();
-
-function maskpsl () {
-	//properties 
-	// {{{
-		this.ice_levelset   = NaN;
-		this.land_levelset  = NaN;
-		this.ocean_levelset = NaN;
-		//}}}
-	//methods 
-		this.setdefaultparameters = function (){ //{{{
-		} // }}}
-		this.disp = function () { //{{{
-			console.log(sprintf("   mask:")); 
-
-			fielddisplay(this,"ice_levelset","presence of ice if < 0, icefront position if = 0, no ice if > 0");
-			fielddisplay(this,"ocean_levelset","is the vertex on the ocean? yes if = 1, no if = 0");
-			fielddisplay(this,"land_levelset","is the vertex on land? yes if = 1, no if = 0");
-		} //}}}
-		this.classname = function () { //{{{
-			return "maskpsl";
-		} //}}}
-		this.checkconsistency = function(md,solution,analyses){ //{{{
-
-			checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices, 1]);
-			checkfield(md,'fieldname','mask.ocean_levelset'        ,'size',[md.mesh.numberofvertices, 1]);
-			checkfield(md,'fieldname','mask.land_levelset'        ,'size',[md.mesh.numberofvertices, 1]);
-			
-			var isice=NewArrayFill(md.mesh.numberofvertices,0); 
-			for(var i=0;i<md.mesh.numberofvertices;i++)if(md.mask.ice_levelset[i]<=0)isice[i]=1;
-			if (ArraySum(isice)==0){
-				console.log('no ice present in the domain');
-			}
-			if (ArrayMax(md.mask.ice_levelset)<0){
-				console.log('no ice front provided');
-			}
-				
-			var icefront=NewArrayFill(md.mesh.numberofelements,0);
-			for(var i=0;i<md.mesh.numberofelements;i++){
-				for(var j=0;j<md.mesh.elements[0].length;j++){
-					icefront[i]+=(md.mask.ice_levelset[md.mesh.elements[i][j]-1]==0);
-				}
-			}
-			if ((ArrayMax(icefront)==3 & (md.mesh.elementtype() == 'Tria')) | (ArrayMax(icefront)==6 & md.mesh.elementtype() == 'Penta')){
-				if (md.mesh.elementtype()=='Tria'){
-					var pos=ArrayFindEqual(icefront,3); numberemptyelements=pos.length;
-				}
-				else if (md.mesh.elementtype() == 'Penta'){
-					var pos=ArrayFindEqual(icefront,6); numberemptyelements=pos.length;
-				}
-				throw Error(sprintf(" %i have all nodes on ice front, change md.mask.ice_levelset to fix it",numberemptyelements));
-			}
-		} // }}}
-		this.marshall=function(md,prefix,fid) { //{{{
-			WriteData(fid,prefix,'object',this,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1);
-			WriteData(fid,prefix,'object',this,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1);
-			WriteData(fid,prefix,'object',this,'class','mask','fieldname','land_levelset','format','DoubleMat','mattype',1);
-		}//}}}
-		this.fix=function() { //{{{
-		}//}}}
-
-}
Index: sm/trunk-jpl/src/m/classes/maskpsl.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/maskpsl.m	(revision 24888)
+++ 	(revision )
@@ -1,65 +1,0 @@
-%MASKPSL class definition
-%
-%   Usage:
-%      maskpsl=maskpsl();
-
-classdef maskpsl 
-	properties (SetAccess=public) 
-		ice_levelset     = NaN;
-		ocean_levelset   = NaN;
-		land_levelset    = NaN;
-		glacier_levelset = NaN;
-	end
-	methods (Static)
-		function self = loadobj(self) % {{{
-			% This function is directly called by matlab when a model object is
-			% loaded. Update old properties here
-		end% }}}
-	end
-	methods
-		function self = extrude(self,md) % {{{
-			self.ice_levelset=project3d(md,'vector',self.ice_levelset,'type','node');
-			self.ocean_levelset=project3d(md,'vector',self.ocean_levelset,'type','node');
-			self.land_levelset=project3d(md,'vector',self.land_levelset,'type','node');
-		end % }}}
-		function self = mask(varargin) % {{{
-			switch nargin
-				case 0
-					self=setdefaultparameters(self);
-				otherwise
-					error('constructor not supported');
-			end
-		end % }}}
-		function self = setdefaultparameters(self) % {{{
-
-		end % }}}
-		function md = checkconsistency(self,md,solution,analyses) % {{{
-			
-			if strcmpi(solution,'LoveSolution'), return; end;
-
-			md = checkfield(md,'fieldname','mask.ice_levelset'        ,'size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','mask.ocean_levelset','size',[md.mesh.numberofvertices 1]);
-			md = checkfield(md,'fieldname','mask.land_levelset','size',[md.mesh.numberofvertices 1]);
-		end % }}}
-		function disp(self) % {{{
-			disp(sprintf('   masks:'));
-			fielddisplay(self,'ice_levelset','presence of ice if < 0, icefront position if = 0, no ice if > 0');
-			fielddisplay(self,'ocean_levelset','is the vertex on the ocean ? yes if = 1, no if = 0');
-			fielddisplay(self,'land_levelset','is the vertex on the land ? yes if = 1, no if = 0');
-			fielddisplay(self,'glacier_levelset','is the vertex on a glacier ? yes if = 1, no if = 0');
-		end % }}}
-		function marshall(self,prefix,md,fid) % {{{
-			WriteData(fid,prefix,'name','md.mask.type','data',class(md.mask),'format','String');
-			WriteData(fid,prefix,'object',self,'class','mask','fieldname','ice_levelset','format','DoubleMat','mattype',1);
-			WriteData(fid,prefix,'object',self,'class','mask','fieldname','ocean_levelset','format','DoubleMat','mattype',1);
-			WriteData(fid,prefix,'object',self,'class','mask','fieldname','land_levelset','format','DoubleMat','mattype',1);
-		end % }}}
-		function savemodeljs(self,fid,modelname) % {{{
-			fprintf(fid,'%s.mask=new maskpsl();\n',modelname);
-			writejs1Darray(fid,[modelname '.mask.ice_levelset'],self.ice_levelset);
-			writejs1Darray(fid,[modelname '.mask.ocean_levelset'],self.ocean_levelset);
-			writejs1Darray(fid,[modelname '.mask.land_levelset'],self.land_levelset);
-
-		end % }}}
-	end
-end
Index: sm/trunk-jpl/src/m/classes/maskpsl.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/maskpsl.py	(revision 24888)
+++ 	(revision )
@@ -1,97 +1,0 @@
-import numpy as np
-import MatlabFuncs as m
-from model import *
-from fielddisplay import fielddisplay
-from checkfield import checkfield
-from WriteData import WriteData
-
-
-class maskpsl(object):
-    #MASKPSL class definition
-    #
-    #   Usage:
-    #      maskpsl = maskpsl()
-
-    def __init__(self, *args):  # {{{
-        self.ice_levelset = float('NaN')
-        self.ocean_levelset = float('NaN')
-        self.land_levelset = float('NaN')
-
-        if not len(args):
-            self.setdefaultparameters()
-        else:
-            raise RuntimeError('constructor not supported')
-    # }}}
-
-    def __repr__(self):  # {{{
-        string = '   masks:'
-        string = "%s\n%s" % (string, fielddisplay(self, 'ice_levelset', 'presence of ice if < 0, icefront position if = 0, no ice if > 0'))
-        string = "%s\n%s" % (string, fielddisplay(self, 'ocean_levelset', 'is the vertex on the ocean ? yes if = 1, no if = 0'))
-        string = "%s\n%s" % (string, fielddisplay(self, 'land_levelset', 'is the vertex on the land ? yes if = 1, no if = 0'))
-        return string
-
-    # }}}
-
-    def loadobj(self):  # {{{
-        # This def is directly called by matlab when a model object is
-        # loaded. Update old properties here
-        #2014 February 5th
-        if numel(self.ice_levelset) > 1 and all(self.ice_levelset >= 0):
-            print('WARNING: md.mask.ice_levelset >= 0, you probably need to change the sign of this levelset')
-        return self
-    # }}}
-
-    def setdefaultparameters(self):  # {{{
-        return self
-
-    # }}}
-
-    def checkconsistency(self, md, solution, analyses):  # {{{
-        md = checkfield(md, 'fieldname', 'mask.ice_levelset', 'size', [md.mesh.numberofvertices])
-        md = checkfield(md, 'fieldname', 'mask.ocean_levelset', 'size', [md.mesh.numberofvertices])
-        md = checkfield(md, 'fieldname', 'mask.land_levelset', 'size', [md.mesh.numberofvertices])
-        isice = (md.mask.ice_levelset <= 0)
-        if sum(isice) == 0:
-            print('no ice present in the domain')
-
-        if max(md.mask.ice_levelset) < 0:
-            print('no ice front provided')
-
-        elements = md.mesh.elements - 1
-        elements = elements.astype(np.int32, copy=False)
-        icefront = np.sum(md.mask.ice_levelset[elements] == 0, axis=1)
-        if (max(icefront) == 3 & m.strcmp(md.mesh.elementtype(), 'Tria')) or (max(icefront == 6) & m.strcmp(md.mesh.elementtype(), 'Penta')):
-            raise RuntimeError('At least one element has all nodes on ice front, change md.mask.ice_levelset to fix it')
-
-        return md
-
-    # }}}
-
-    def extrude(self, md):  # {{{
-        self.ice_levelset = project3d(md, 'vector', self.ice_levelset, 'type', 'node')
-        self.ocean_levelset = project3d(md, 'vector', self.ocean_levelset, 'type', 'node')
-        self.land_levelset = project3d(md, 'vector', self.land_levelset, 'type', 'node')
-        return self
-    # }}}
-
-    def mask(*args):  # {{{
-        if not len(args):
-            self.setdefaultparameters()
-        else:
-            raise RuntimeError('constructor not supported')
-        return self
-
-    # }}}
-
-    def marshall(self, prefix, md, fid):  # {{{
-        WriteData(fid, prefix, 'name', 'md.mask.type', 'data', type(md.mask).__name__, 'format', 'String')
-        WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'ice_levelset', 'format', 'DoubleMat', 'mattype', 1)
-        WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'ocean_levelset', 'format', 'DoubleMat', 'mattype', 1)
-        WriteData(fid, prefix, 'object', self, 'class', 'mask', 'fieldname', 'land_levelset', 'format', 'DoubleMat', 'mattype', 1)
-    # }}}
-
-    def savemodeljs(self, fid, modelname):  # {{{
-        writejs1Darray(fid, [modelname, '.mask.ice_levelset'], self.ice_levelset)
-        writejs1Darray(fid, [modelname, '.mask.ocean_levelset'], self.ocean_levelset)
-        writejs1Darray(fid, [modelname, '.mask.land_levelset'], self.land_levelset)
-    # }}}
Index: /issm/trunk-jpl/src/m/classes/slr.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/slr.m	(revision 24888)
+++ /issm/trunk-jpl/src/m/classes/slr.m	(revision 24889)
@@ -100,10 +100,4 @@
 			if ~ismember('SealevelriseAnalysis',analyses) | (strcmp(solution,'TransientSolution') & md.transient.isslr==0), 
 				return; 
-			end
-
-			%check that the mask is a maskpsl class type, otherwise, we won't be able to run very far 
-			%with the slr solution: 
-			if ~strcmpi(class(md.mask),'maskpsl'),
-				error('slr error message: model mask should be of the ''maskpsl'' class');
 			end
 
Index: /issm/trunk-jpl/test/NightlyRun/test2002.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test2002.m	(revision 24888)
+++ /issm/trunk-jpl/test/NightlyRun/test2002.m	(revision 24889)
@@ -29,17 +29,10 @@
 %}}}
 %mask:  {{{
-md.mask=maskpsl(); % use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset
 mask=gmtmask(md.mesh.lat,md.mesh.long);
-
 icemask=ones(md.mesh.numberofvertices,1);
 pos=find(mask==0);  icemask(pos)=-1;
 pos=find(sum(mask(md.mesh.elements),2)<3);   icemask(md.mesh.elements(pos,:))=-1;
 md.mask.ice_levelset=icemask;
-md.mask.ocean_levelset=zeros(md.mesh.numberofvertices,1);
-pos=find(md.mask.ice_levelset==1); md.mask.ocean_levelset(pos)=1;
-
-%make sure that the ice level set is all inclusive:
-md.mask.land_levelset=zeros(md.mesh.numberofvertices,1);
-md.mask.ocean_levelset=-ones(md.mesh.numberofvertices,1);
+md.mask.ocean_levelset=-icemask;
 
 %make sure that the elements that have loads are fully grounded:
Index: /issm/trunk-jpl/test/NightlyRun/test2003.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test2003.m	(revision 24888)
+++ /issm/trunk-jpl/test/NightlyRun/test2003.m	(revision 24889)
@@ -27,17 +27,10 @@
 %}}}
 %mask:  {{{
-md.mask=maskpsl(); % use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset
 mask=gmtmask(md.mesh.lat,md.mesh.long);
-
 icemask=ones(md.mesh.numberofvertices,1);
 pos=find(mask==0);  icemask(pos)=-1;
 pos=find(sum(mask(md.mesh.elements),2)<3);   icemask(md.mesh.elements(pos,:))=-1;
 md.mask.ice_levelset=icemask;
-md.mask.ocean_levelset=zeros(md.mesh.numberofvertices,1);
-pos=find(md.mask.ice_levelset==1); md.mask.ocean_levelset(pos)=1;
-
-%make sure that the ice level set is all inclusive:
-md.mask.land_levelset=zeros(md.mesh.numberofvertices,1);
-md.mask.ocean_levelset=-ones(md.mesh.numberofvertices,1);
+md.mask.ocean_levelset=-icemask;
 
 %make sure that the elements that have loads are fully grounded:
@@ -46,5 +39,6 @@
 
 %make sure wherever there is an ice load, that the mask is set to ice:
-pos=find(md.slr.deltathickness); md.mask.ice_levelset(md.mesh.elements(pos,:))=-1;
+pos=find(md.slr.deltathickness);
+md.mask.ice_levelset(md.mesh.elements(pos,:))=-1;
 % }}}
 
Index: /issm/trunk-jpl/test/NightlyRun/test2010.m
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test2010.m	(revision 24888)
+++ /issm/trunk-jpl/test/NightlyRun/test2010.m	(revision 24889)
@@ -30,17 +30,10 @@
 %}}}
 %mask:  {{{
-md.mask=maskpsl(); % use maskpsl class (instead of mask) to store the ocean function as a ocean_levelset
 mask=gmtmask(md.mesh.lat,md.mesh.long);
-
 icemask=ones(md.mesh.numberofvertices,1);
 pos=find(mask==0);  icemask(pos)=-1;
 pos=find(sum(mask(md.mesh.elements),2)<3);   icemask(md.mesh.elements(pos,:))=-1;
 md.mask.ice_levelset=icemask;
-md.mask.ocean_levelset=zeros(md.mesh.numberofvertices,1);
-pos=find(md.mask.ice_levelset==1); md.mask.ocean_levelset(pos)=1;
-
-%make sure that the ice level set is all inclusive:
-md.mask.land_levelset=zeros(md.mesh.numberofvertices,1);
-md.mask.ocean_levelset=-ones(md.mesh.numberofvertices,1);
+md.mask.ocean_levelset=-icemask;
 
 %make sure that the elements that have loads are fully grounded:
@@ -53,4 +46,5 @@
 md.mask.ice_levelset(md.mesh.elements(pos,:))=-1;
 % }}}
+
 %geometry {{{
 di=md.materials.rho_ice/md.materials.rho_water;
