Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 15749)
@@ -395,5 +395,5 @@
 
 	/*Skip if water element*/
-	if(IsOnWater()) return;
+	if(NoIceInElement()) return;
 
 	/*Create element stiffness matrix*/
@@ -446,5 +446,5 @@
 
 	/*Skip if water element*/
-	if(IsOnWater()) return NULL;
+	if(NoIceInElement()) return NULL;
 
 	/*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
@@ -568,5 +568,5 @@
 
 	/*Skip if water element*/
-	if(IsOnWater()) return;
+	if(NoIceInElement()) return;
 
 	/*Create element load vector*/
@@ -629,5 +629,5 @@
 
 	/*Skip if water element*/
-	if(IsOnWater()) return NULL;
+	if(NoIceInElement()) return NULL;
 
 	/*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
@@ -736,5 +736,5 @@
 
 	/*Skip if water element*/
-	if(IsOnWater()) return;
+	if(NoIceInElement()) return;
 
 	/*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
@@ -2621,10 +2621,16 @@
 }
 /*}}}*/
-/*FUNCTION Penta::IsOnWater {{{*/
-bool   Penta::IsOnWater(){
-
-	bool onwater;
-	inputs->GetInputValue(&onwater,MaskElementonwaterEnum);
-	return onwater;
+/*FUNCTION Penta::NoIceInElement {{{*/
+bool   Penta::NoIceInElement(){
+
+	/*Get levelset*/
+	IssmDouble ls[NUMVERTICES];
+	GetInputListOnVertices(&ls[0],MaskIcelevelsetEnum);
+
+	/*If the level set is >0, ice is present in this element*/
+	if(ls[0]>0. || ls[1]>0. || ls[2]>0.) return false;
+
+	/*If the level set is awlays <=0, there is no ice here*/
+	return true;
 }
 /*}}}*/
@@ -3169,5 +3175,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/*Bail out if this element if:
@@ -3609,5 +3615,5 @@
 	IssmDouble xyz_list[NUMVERTICES][3];
 
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
@@ -3801,5 +3807,5 @@
 	rho_ice=matpar->GetRhoIce();
 
-	if(IsOnWater() || !IsOnSurface()) return 0.;
+	if(NoIceInElement() || !IsOnSurface()) return 0.;
 
 	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
@@ -5704,5 +5710,5 @@
 
 	/*If on water, skip grad (=0): */
-	if(IsOnWater())return;
+	if(NoIceInElement())return;
 
 	/*First deal with ∂/∂alpha(KU-F)*/
@@ -6172,5 +6178,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/*Bail out if this element if:
@@ -6209,5 +6215,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/*Bail out if this element if:
@@ -6246,5 +6252,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/*Bail out if this element if:
@@ -6285,5 +6291,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/*Bail out if this element if:
@@ -6322,5 +6328,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/*Bail out if this element if:
@@ -6365,5 +6371,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 	_error_("Not implemented yet");
 
@@ -6381,5 +6387,5 @@
 
 	/*If on water, on shelf or not on bed, skip: */
-	if(IsOnWater()|| IsFloating() || !IsOnBed()) return 0;
+	if(NoIceInElement()|| IsFloating() || !IsOnBed()) return 0;
 
 	tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1
@@ -6396,5 +6402,5 @@
 
 	/*If on water, on shelf or not on bed, skip: */
-	if(IsOnWater() || !IsOnBed()) return 0;
+	if(NoIceInElement() || !IsOnBed()) return 0;
 
 	tria=(Tria*)SpawnTria(0); //lower face is 0, upper face is 1
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 15748)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 15749)
@@ -177,5 +177,5 @@
 		/*}}}*/
 		/*Penta specific routines:{{{*/
-		void	  BedNormal(IssmDouble* bed_normal, IssmDouble xyz_list[3][3]);
+		void	         BedNormal(IssmDouble* bed_normal, IssmDouble xyz_list[3][3]);
 		ElementMatrix* CreateBasalMassMatrix(void);
 		ElementMatrix* CreateKMatrix(void);
@@ -203,28 +203,28 @@
 		void	         GetSolutionFromInputsEnthalpy(Vector<IssmDouble>* solutiong);
 		IssmDouble     GetStabilizationParameter(IssmDouble u, IssmDouble v, IssmDouble w, IssmDouble diameter, IssmDouble kappa);
-		void    GetStrainRate3dHO(IssmDouble* epsilon,IssmDouble* xyz_list, GaussPenta* gauss, Input* vx_input, Input* vy_input);
-		void    GetStrainRate3d(IssmDouble* epsilon,IssmDouble* xyz_list, GaussPenta* gauss, Input* vx_input, Input* vy_input, Input* vz_input);
-		Penta*  GetUpperElement(void);
-		void    GetZeroLevelsetCoordinates(IssmDouble* xyz_zero,IssmDouble xyz_list[6][3],int levelsetenum);
-		Penta*  GetLowerElement(void);
-		Penta*  GetBasalElement(void);
-		void	  InputExtrude(int enum_type,int object_type);
-		void    InputUpdateFromSolutionPrognostic(IssmDouble* solutiong);
-		void    InputUpdateFromSolutionOneDof(IssmDouble* solutiong,int enum_type);
-		void    InputUpdateFromSolutionOneDofCollapsed(IssmDouble* solutiong,int enum_type);
-		bool	  IsInput(int name);
-		bool	  IsOnSurface(void);
-		bool	  IsOnBed(void);
-		bool    IsFloating(void); 
-		bool    IsNodeOnShelf(); 
-		bool    IsNodeOnShelfFromFlags(IssmDouble* flags);
-		bool    IsOnWater(void); 
-		IssmDouble  MinEdgeLength(IssmDouble xyz_list[6][3]);
-		void	  ReduceMatrixFS(IssmDouble* Ke_reduced, IssmDouble* Ke_temp);
-		void	  ReduceVectorFS(IssmDouble* Pe_reduced, IssmDouble* Ke_temp, IssmDouble* Pe_temp);
-		void	  SetClone(int* minranks);
-		Tria*	  SpawnTria(int location);
-		void	  SurfaceNormal(IssmDouble* surface_normal, IssmDouble xyz_list[3][3]);
-		void     UpdateConstraints(void);
+		void           GetStrainRate3dHO(IssmDouble* epsilon,IssmDouble* xyz_list, GaussPenta* gauss, Input* vx_input, Input* vy_input);
+		void           GetStrainRate3d(IssmDouble* epsilon,IssmDouble* xyz_list, GaussPenta* gauss, Input* vx_input, Input* vy_input, Input* vz_input);
+		Penta*         GetUpperElement(void);
+		void           GetZeroLevelsetCoordinates(IssmDouble* xyz_zero,IssmDouble xyz_list[6][3],int levelsetenum);
+		Penta*         GetLowerElement(void);
+		Penta*         GetBasalElement(void);
+		void	         InputExtrude(int enum_type,int object_type);
+		void           InputUpdateFromSolutionPrognostic(IssmDouble* solutiong);
+		void           InputUpdateFromSolutionOneDof(IssmDouble* solutiong,int enum_type);
+		void           InputUpdateFromSolutionOneDofCollapsed(IssmDouble* solutiong,int enum_type);
+		bool	         IsInput(int name);
+		bool	         IsOnSurface(void);
+		bool	         IsOnBed(void);
+		bool           IsFloating(void); 
+		bool           IsNodeOnShelf(); 
+		bool           IsNodeOnShelfFromFlags(IssmDouble* flags);
+		bool           NoIceInElement(void); 
+		IssmDouble     MinEdgeLength(IssmDouble xyz_list[6][3]);
+		void	         ReduceMatrixFS(IssmDouble* Ke_reduced, IssmDouble* Ke_temp);
+		void	         ReduceVectorFS(IssmDouble* Pe_reduced, IssmDouble* Ke_temp, IssmDouble* Pe_temp);
+		void	         SetClone(int* minranks);
+		Tria*	         SpawnTria(int location);
+		void	         SurfaceNormal(IssmDouble* surface_normal, IssmDouble xyz_list[3][3]);
+		void           UpdateConstraints(void);
 
 		#ifdef _HAVE_DIAGNOSTIC_
@@ -303,5 +303,5 @@
 		ElementVector* CreatePVectorDiagnosticVertVolume(void);
 		ElementVector* CreatePVectorDiagnosticVertBase(void);
-		void GetL1L2Viscosity(IssmDouble*, IssmDouble*, GaussPenta*, Input*, Input*, Input*);
+		void           GetL1L2Viscosity(IssmDouble*, IssmDouble*, GaussPenta*, Input*, Input*, Input*);
 		#endif
 
@@ -314,15 +314,13 @@
 		ElementVector* CreatePVectorAdjointHO(void);
 		ElementVector* CreatePVectorAdjointFS(void);
-		void    InputUpdateFromSolutionAdjointHoriz( IssmDouble* solutiong);
-		void    InputUpdateFromSolutionAdjointFS( IssmDouble* solutiong);
+		void           InputUpdateFromSolutionAdjointHoriz( IssmDouble* solutiong);
+		void           InputUpdateFromSolutionAdjointFS( IssmDouble* solutiong);
 		#endif
 
 		#ifdef _HAVE_HYDROLOGY_
-
 		ElementMatrix* CreateKMatrixHydrologyDCInefficient(void);
 		ElementMatrix* CreateKMatrixHydrologyDCEfficient(void);
 		ElementVector* CreatePVectorHydrologyDCInefficient(void);
 		ElementVector* CreatePVectorHydrologyDCEfficient(void);
-
 		void    GetHydrologyDCInefficientHmax(IssmDouble* ph_max, Node* innode);
 		void    GetHydrologyTransfer(Vector<IssmDouble>* transfer);
@@ -332,4 +330,5 @@
 		void    InputUpdateFromSolutionHydrologyDCInefficient(IssmDouble* solution);
 		#endif
+
 		#ifdef _HAVE_THERMAL_
 		ElementMatrix* CreateKMatrixEnthalpy(void);
@@ -349,8 +348,9 @@
 		ElementVector* CreatePVectorThermalShelf(void);
 		ElementVector* CreatePVectorThermalSheet(void);
-		void	       GetSolutionFromInputsThermal(Vector<IssmDouble>* solutiong);
+		void	         GetSolutionFromInputsThermal(Vector<IssmDouble>* solutiong);
 		void           InputUpdateFromSolutionThermal( IssmDouble* solutiong);
 		void           InputUpdateFromSolutionEnthalpy( IssmDouble* solutiong);
 		#endif
+
 		#ifdef _HAVE_BALANCED_
 		ElementMatrix* CreateKMatrixBalancethickness(void);
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 15749)
@@ -176,5 +176,5 @@
 
 	/*Skip if water element*/
-	if(IsOnWater()) return;
+	if(NoIceInElement()) return;
 
 	/*Create element stiffness matrix*/
@@ -211,5 +211,5 @@
 
 	/*Skip if water element*/
-	if(IsOnWater()) return NULL;
+	if(NoIceInElement()) return NULL;
 
 	/*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
@@ -310,5 +310,5 @@
 
 	/*Skip if water element*/
-	if(IsOnWater()) return;
+	if(NoIceInElement()) return;
 
 	/*Create element load vector*/
@@ -353,5 +353,5 @@
 
 	/*Skip if water element*/
-	if(IsOnWater()) return NULL;
+	if(NoIceInElement()) return NULL;
 
 	/*Just branch to the correct load generator, according to the type of analysis we are carrying out: */
@@ -468,5 +468,5 @@
 
 	/*Skip if water element*/
-	if(IsOnWater()) return;
+	if(NoIceInElement()) return;
 
 	/*Just branch to the correct element stiffness matrix generator, according to the type of analysis we are carrying out: */
@@ -1989,10 +1989,16 @@
 }
 /*}}}*/
-/*FUNCTION Tria::IsOnWater {{{*/
-bool   Tria::IsOnWater(){
-
-	bool water;
-	inputs->GetInputValue(&water,MaskElementonwaterEnum);
-	return water;
+/*FUNCTION Tria::NoIceInElement {{{*/
+bool   Tria::NoIceInElement(){
+
+	/*Get levelset*/
+	IssmDouble ls[NUMVERTICES];
+	GetInputListOnVertices(&ls[0],MaskIcelevelsetEnum);
+
+	/*If the level set is >0, ice is present in this element*/
+	if(ls[0]>0. || ls[1]>0. || ls[2]>0.) return false;
+
+	/*If the level set is awlays <=0, there is no ice here*/
+	return true;
 }
 /*}}}*/
@@ -2287,5 +2293,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
@@ -2501,5 +2507,5 @@
 
 	/*Skip if water element*/
-	if(IsOnWater()) return;
+	if(NoIceInElement()) return;
 
 }
@@ -2553,5 +2559,5 @@
 	IssmDouble xyz_list[NUMVERTICES][3];
 
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
@@ -2789,5 +2795,5 @@
 	rho_ice=matpar->GetRhoIce();
 
-   if(IsOnWater())return 0;
+   if(NoIceInElement())return 0;
 
 	GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
@@ -3639,5 +3645,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater()) return 0;
+	if(NoIceInElement()) return 0;
 
 	/*Retrieve all inputs we will be needing: */
@@ -3781,5 +3787,5 @@
 
 	/*If on water, grad = 0: */
-	if(IsOnWater()) return;
+	if(NoIceInElement()) return;
 
 	/*First deal with ∂/∂alpha(KU-F)*/
@@ -4408,5 +4414,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater()) return 0;
+	if(NoIceInElement()) return 0;
 
 	/*Retrieve all inputs we will be needing: */
@@ -4447,5 +4453,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/* Get node coordinates and dof list: */
@@ -4506,5 +4512,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/* Get node coordinates and dof list: */
@@ -4566,5 +4572,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/* Get node coordinates and dof list: */
@@ -4624,5 +4630,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/* Get node coordinates and dof list: */
@@ -4683,5 +4689,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/* Get node coordinates and dof list: */
@@ -4745,5 +4751,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater()) return 0;
+	if(NoIceInElement()) return 0;
 
 	/*Retrieve all inputs we will be needing: */
@@ -4789,5 +4795,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater()) return 0;
+	if(NoIceInElement()) return 0;
 
 	/*Retrieve all inputs we will be needing: */
@@ -4840,5 +4846,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater()) return 0;
+	if(NoIceInElement()) return 0;
 
 	/*Retrieve all inputs we will be needing: */
@@ -4888,5 +4894,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater())return 0;
+	if(NoIceInElement())return 0;
 
 	/*Retrieve all inputs we will be needing: */
@@ -5207,5 +5213,5 @@
 
 	/*If on water, return 0: */
-	if(IsOnWater()) return 0;
+	if(NoIceInElement()) return 0;
 
 	/*Retrieve all inputs we will be needing: */
@@ -5574,5 +5580,5 @@
 
 	/*Skip if water or ice shelf element*/
-	if(IsOnWater() | IsFloating()) return NULL;
+	if(NoIceInElement() | IsFloating()) return NULL;
 
 	/*Fetch number of nodes and dof for this finite element*/
@@ -5799,5 +5805,5 @@
 
 	/*Skip if water or ice shelf element*/
-	if(IsOnWater() | IsFloating()) return NULL;
+	if(NoIceInElement() | IsFloating()) return NULL;
 
 	/*Fetch number of nodes and dof for this finite element*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 15748)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 15749)
@@ -71,65 +71,65 @@
 		/*}}}*/
 		/*Element virtual functions definitions: {{{*/
-		void   ComputeBasalStress(Vector<IssmDouble>* sigma_b);
-		void   ComputeStrainRate(Vector<IssmDouble>* eps);
-		void   ComputeStressTensor();
-		void   Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters);
-		void   SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters);
-		void   SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int set1_enum,int set2_enum);
-		void   CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs);
-		void   CreateDVector(Vector<IssmDouble>* df);
-		void   CreatePVector(Vector<IssmDouble>* pf);
-		void   CreateJacobianMatrix(Matrix<IssmDouble>* Jff);
-		void   Delta18oParameterization(void);
-		int    GetNodeIndex(Node* node);
-		void   GetNodesSidList(int* sidlist);
-		int    GetNumberOfNodes(void);
-		int    Sid();
-		bool   IsOnBed();
-		bool   IsFloating();
-		bool   IsNodeOnShelf(); 
-		bool   IsNodeOnShelfFromFlags(IssmDouble* flags);
-		bool   IsOnWater();
-		void   GetSolutionFromInputs(Vector<IssmDouble>* solution);
-		void   GetVectorFromInputs(Vector<IssmDouble>* vector, int name_enum);
-		void   GetVectorFromResults(Vector<IssmDouble>* vector,int offset,int enum_in,int interp);
-		void   InputArtificialNoise(int enum_type,IssmDouble min, IssmDouble max);
-		void   InputCreate(IssmDouble scalar,int name,int code);
-		void   InputCreate(IssmDouble* vector, int index,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code);
-		void   InputDepthAverageAtBase(int enum_type,int average_enum_type,int object_enum=MeshElementsEnum);
-		void   InputDuplicate(int original_enum,int new_enum);
-		void   InputScale(int enum_type,IssmDouble scale_factor);
-		void   InputToResult(int enum_type,int step,IssmDouble time);
-		void   DeleteResults(void);
-		void   MaterialUpdateFromTemperature(void){_error_("not implemented yet");};
-		int    NodalValue(IssmDouble* pvalue, int index, int natureofdataenum);
-		void   PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm);
-		void   RequestedOutput(int output_enum,int step,IssmDouble time);
-		void   ListResultsInfo(int** results_enums,int** results_size,IssmDouble** results_times,int** results_steps,int* num_results);
-		void   PatchFill(int* pcount, Patch* patch);
-		void   PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes);
-		void   ResetCoordinateSystem(void){_error_("not implemented yet");};
-		void	 SmbGradients();
-		IssmDouble SurfaceArea(void);
-		void   Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement);
-		IssmDouble TimeAdapt();
+		void        ComputeBasalStress(Vector<IssmDouble>* sigma_b);
+		void        ComputeStrainRate(Vector<IssmDouble>* eps);
+		void        ComputeStressTensor();
+		void        Configure(Elements* elements,Loads* loads,Nodes* nodesin,Vertices* verticesin,Materials* materials,Parameters* parameters);
+		void        SetCurrentConfiguration(Elements* elements,Loads* loads,Nodes* nodes,Materials* materials,Parameters* parameters);
+		void        SetwiseNodeConnectivity(int* d_nz,int* o_nz,Node* node,bool* flags,int set1_enum,int set2_enum);
+		void        CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs);
+		void        CreateDVector(Vector<IssmDouble>* df);
+		void        CreatePVector(Vector<IssmDouble>* pf);
+		void        CreateJacobianMatrix(Matrix<IssmDouble>* Jff);
+		void        Delta18oParameterization(void);
+		int         GetNodeIndex(Node* node);
+		void        GetNodesSidList(int* sidlist);
+		int         GetNumberOfNodes(void);
+		int         Sid();
+		bool        IsOnBed();
+		bool        IsFloating();
+		bool        IsNodeOnShelf(); 
+		bool        IsNodeOnShelfFromFlags(IssmDouble* flags);
+		bool        NoIceInElement();
+		void        GetSolutionFromInputs(Vector<IssmDouble>* solution);
+		void        GetVectorFromInputs(Vector<IssmDouble>* vector, int name_enum);
+		void        GetVectorFromResults(Vector<IssmDouble>* vector,int offset,int enum_in,int interp);
+		void        InputArtificialNoise(int enum_type,IssmDouble min, IssmDouble max);
+		void        InputCreate(IssmDouble scalar,int name,int code);
+		void        InputCreate(IssmDouble* vector, int index,IoModel* iomodel,int M,int N,int vector_type,int vector_enum,int code);
+		void        InputDepthAverageAtBase(int enum_type,int average_enum_type,int object_enum=MeshElementsEnum);
+		void        InputDuplicate(int original_enum,int new_enum);
+		void        InputScale(int enum_type,IssmDouble scale_factor);
+		void        InputToResult(int enum_type,int step,IssmDouble time);
+		void        DeleteResults(void);
+		void        MaterialUpdateFromTemperature(void){_error_("not implemented yet");};
+		int         NodalValue(IssmDouble* pvalue, int index, int natureofdataenum);
+		void        PositiveDegreeDay(IssmDouble* pdds,IssmDouble* pds,IssmDouble signorm);
+		void        RequestedOutput(int output_enum,int step,IssmDouble time);
+		void        ListResultsInfo(int** results_enums,int** results_size,IssmDouble** results_times,int** results_steps,int* num_results);
+		void        PatchFill(int* pcount, Patch* patch);
+		void        PatchSize(int* pnumrows, int* pnumvertices,int* pnumnodes);
+		void        ResetCoordinateSystem(void){_error_("not implemented yet");};
+		void	      SmbGradients();
+		IssmDouble  SurfaceArea(void);
+		void        Update(int index, IoModel* iomodel,int analysis_counter,int analysis_type,int finitelement);
+		IssmDouble  TimeAdapt();
 
 		#ifdef _HAVE_RESPONSES_
-		void   AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part);
+		void       AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part);
 		IssmDouble IceVolume(void);
 		IssmDouble TotalSmb(void);
-		void   MinVel(IssmDouble* pminvel);
-		void   MinVx(IssmDouble* pminvx);
-		void   MinVy(IssmDouble* pminvy);
-		void   MinVz(IssmDouble* pminvz);
+		void       MinVel(IssmDouble* pminvel);
+		void       MinVx(IssmDouble* pminvx);
+		void       MinVy(IssmDouble* pminvy);
+		void       MinVz(IssmDouble* pminvz);
 		IssmDouble MassFlux(IssmDouble* segment);
-		void   MaxAbsVx(IssmDouble* pmaxabsvx);
-		void   MaxAbsVy(IssmDouble* pmaxabsvy);
-		void   MaxAbsVz(IssmDouble* pmaxabsvz);
-		void   ElementResponse(IssmDouble* presponse,int response_enum);
-		void   MaxVel(IssmDouble* pmaxvel);
-		void   MaxVx(IssmDouble* pmaxvx);
-		void   MaxVy(IssmDouble* pmaxvy);
-		void   MaxVz(IssmDouble* pmaxvz);
+		void       MaxAbsVx(IssmDouble* pmaxabsvx);
+		void       MaxAbsVy(IssmDouble* pmaxabsvy);
+		void       MaxAbsVz(IssmDouble* pmaxabsvz);
+		void       ElementResponse(IssmDouble* presponse,int response_enum);
+		void       MaxVel(IssmDouble* pmaxvel);
+		void       MaxVx(IssmDouble* pmaxvx);
+		void       MaxVy(IssmDouble* pmaxvy);
+		void       MaxVz(IssmDouble* pmaxvz);
 		#endif
 
@@ -140,22 +140,22 @@
 		#ifdef _HAVE_CONTROL_
 		IssmDouble DragCoefficientAbsGradient(int weight_index);
-		void   GradientIndexing(int* indexing,int control_index);
-		void   Gradj(Vector<IssmDouble>* gradient,int control_type,int control_index);
-		void   GradjBGradient(Vector<IssmDouble>* gradient,int weight_index,int control_index);
-		void   GradjZGradient(Vector<IssmDouble>* gradient,int weight_index,int control_index);
-		void   GradjBSSA(Vector<IssmDouble>* gradient,int control_index);
-		void   GradjZSSA(Vector<IssmDouble>* gradient,int control_index);
-		void   GradjDragSSA(Vector<IssmDouble>* gradient,int control_index);
-		void   GradjDragFS(Vector<IssmDouble>* gradient,int control_index);
-		void   GradjDragGradient(Vector<IssmDouble>* gradient,int weight_index,int control_index);
-		void   GradjDhDtBalancedthickness(Vector<IssmDouble>* gradient,int control_index);
-		void   GradjVxBalancedthickness(Vector<IssmDouble>* gradient,int control_index);
-		void   GradjVyBalancedthickness(Vector<IssmDouble>* gradient,int control_index);
-		void   GradjThicknessBalancethicknessSoft(Vector<IssmDouble>* gradient,int control_index);
-		void   GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data);
-		void   SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index);
-		void   ControlInputGetGradient(Vector<IssmDouble>* gradient,int enum_type,int control_index);
-		void   ControlInputScaleGradient(int enum_type,IssmDouble scale);
-		void   ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index);
+		void       GradientIndexing(int* indexing,int control_index);
+		void       Gradj(Vector<IssmDouble>* gradient,int control_type,int control_index);
+		void       GradjBGradient(Vector<IssmDouble>* gradient,int weight_index,int control_index);
+		void       GradjZGradient(Vector<IssmDouble>* gradient,int weight_index,int control_index);
+		void       GradjBSSA(Vector<IssmDouble>* gradient,int control_index);
+		void       GradjZSSA(Vector<IssmDouble>* gradient,int control_index);
+		void       GradjDragSSA(Vector<IssmDouble>* gradient,int control_index);
+		void       GradjDragFS(Vector<IssmDouble>* gradient,int control_index);
+		void       GradjDragGradient(Vector<IssmDouble>* gradient,int weight_index,int control_index);
+		void       GradjDhDtBalancedthickness(Vector<IssmDouble>* gradient,int control_index);
+		void       GradjVxBalancedthickness(Vector<IssmDouble>* gradient,int control_index);
+		void       GradjVyBalancedthickness(Vector<IssmDouble>* gradient,int control_index);
+		void       GradjThicknessBalancethicknessSoft(Vector<IssmDouble>* gradient,int control_index);
+		void       GetVectorFromControlInputs(Vector<IssmDouble>* gradient,int control_enum,int control_index,const char* data);
+		void       SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index);
+		void       ControlInputGetGradient(Vector<IssmDouble>* gradient,int enum_type,int control_index);
+		void       ControlInputScaleGradient(int enum_type,IssmDouble scale);
+		void       ControlInputSetGradient(IssmDouble* gradient,int enum_type,int control_index);
 		IssmDouble RheologyBbarAbsGradient(int weight_index);
 		IssmDouble ThicknessAbsMisfit(     int weight_index);
@@ -169,6 +169,7 @@
 		IssmDouble SurfaceLogVxVyMisfit(   int weight_index);
 		IssmDouble SurfaceAverageVelMisfit(int weight_index);
-		void   InputControlUpdate(IssmDouble scalar,bool save_parameter);
-		#endif
+		void       InputControlUpdate(IssmDouble scalar,bool save_parameter);
+		#endif
+
 		#ifdef _HAVE_GROUNDINGLINE_
 		void   PotentialUngrounding(Vector<IssmDouble>* potential_sheet_ungrounding);
Index: /issm/trunk-jpl/src/c/classes/IoModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 15749)
@@ -1044,9 +1044,9 @@
 void  IoModel::FetchData(int num,...){
 
-	va_list ap;
-	int     dataenum;
-	IssmDouble* matrix=NULL;
-	int     M,N;
-	int     i;
+	va_list     ap;
+	int         dataenum;
+	IssmDouble *matrix   = NULL;
+	int         M,N;
+	int         i;
 
 	/*Go through the entire list of enums and fetch the corresponding data. Add it to the iomodel->data dataset. Everything
@@ -1057,4 +1057,6 @@
 
 		dataenum=va_arg(ap, int);
+		_assert_(dataenum<MaximumNumberOfDefinitionsEnum); 
+		_assert_(dataenum>=0);
 
 		if (this->independents[dataenum]){
Index: /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/classes/Loads/Numericalflux.cpp	(revision 15749)
@@ -457,5 +457,5 @@
 	/*Initialize Element matrix and return if necessary*/
 	Tria*  tria=(Tria*)element;
-	if(tria->IsOnWater()) return NULL;
+	if(tria->NoIceInElement()) return NULL;
 	ElementMatrix* Ke=new ElementMatrix(nodes,NUMNODES_INTERNAL,this->parameters);
 
@@ -521,5 +521,5 @@
 	ElementMatrix* Ke = NULL;
 	Tria*  tria=(Tria*)element;
-	if(tria->IsOnWater()) return NULL;
+	if(tria->NoIceInElement()) return NULL;
 
 	/*Retrieve all inputs and parameters*/
@@ -610,5 +610,5 @@
 	/*Initialize Element matrix and return if necessary*/
 	Tria*  tria=(Tria*)element;
-	if(tria->IsOnWater()) return NULL;
+	if(tria->NoIceInElement()) return NULL;
 	ElementMatrix* Ke=new ElementMatrix(nodes,NUMNODES_INTERNAL,this->parameters);
 
@@ -673,5 +673,5 @@
 	ElementMatrix* Ke = NULL;
 	Tria*  tria=(Tria*)element;
-	if(tria->IsOnWater()) return NULL;
+	if(tria->NoIceInElement()) return NULL;
 
 	/*Retrieve all inputs and parameters*/
@@ -799,5 +799,5 @@
 	ElementVector* pe = NULL;
 	Tria*  tria=(Tria*)element;
-	if(tria->IsOnWater()) return NULL;
+	if(tria->NoIceInElement()) return NULL;
 
 	/*Retrieve all inputs and parameters*/
@@ -893,5 +893,5 @@
 	ElementVector* pe = NULL;
 	Tria*  tria=(Tria*)element;
-	if(tria->IsOnWater()) return NULL;
+	if(tria->NoIceInElement()) return NULL;
 
 	/*Retrieve all inputs and parameters*/
Index: /issm/trunk-jpl/src/c/classes/Node.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Node.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/classes/Node.cpp	(revision 15749)
@@ -53,11 +53,4 @@
 	if(iomodel->Data(MaskVertexongroundediceEnum))
 	  this->inputs->AddInput(new BoolInput(MaskVertexongroundediceEnum,reCast<bool>(iomodel->Data(MaskVertexongroundediceEnum)[io_index])));
-	/*set single point constraints: */
-
-	/*spc all nodes on water*/
-	if(!iomodel->Data(MaskVertexonwaterEnum)) _error_("iomodel->nodeonwater is NULL");
-	if(reCast<bool>(iomodel->Data(MaskVertexonwaterEnum)[io_index])){
-		this->Deactivate();
-	}
 
 	/*Diagnostic Horiz*/
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/CreateNodesBalancethickness.cpp	(revision 15749)
@@ -19,5 +19,5 @@
 
 	/*First fetch data: */
-	iomodel->FetchData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 	if(stabilization!=3){
 		CreateNodes(pnodes,iomodel,BalancethicknessAnalysisEnum,P1Enum);
@@ -26,4 +26,4 @@
 		CreateNodes(pnodes,iomodel,BalancethicknessAnalysisEnum,P1DGEnum);
 	}
-	iomodel->DeleteData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Balancethickness/UpdateElementsBalancethickness.cpp	(revision 15749)
@@ -36,5 +36,4 @@
 	iomodel->FetchDataToInput(elements,BedEnum);
 	iomodel->FetchDataToInput(elements,MaskElementonfloatingiceEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	iomodel->FetchDataToInput(elements,VxEnum);
 	iomodel->FetchDataToInput(elements,VyEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/BedSlope/CreateNodesBedSlope.cpp	(revision 15749)
@@ -11,6 +11,6 @@
 void	CreateNodesBedSlope(Nodes** pnodes, IoModel* iomodel){
 
-	iomodel->FetchData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 	CreateNodes(pnodes,iomodel,BedSlopeAnalysisEnum,P1Enum);
-	iomodel->DeleteData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/BedSlope/UpdateElementsBedSlope.cpp	(revision 15749)
@@ -23,5 +23,4 @@
 	iomodel->FetchDataToInput(elements,SurfaceEnum);
 	iomodel->FetchDataToInput(elements,BedEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	if(iomodel->dim==3){
 		iomodel->FetchDataToInput(elements,MeshElementonbedEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp	(revision 15749)
@@ -74,9 +74,9 @@
 			}
 		}
-		iomodel->FetchData(9,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
-					MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
+		iomodel->FetchData(8,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
+					MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
 		CreateNodes(pnodes,iomodel,DiagnosticHorizAnalysisEnum,finiteelement,approximation);
-		iomodel->DeleteData(9,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
-					MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
+		iomodel->DeleteData(8,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
+					MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
 	}
 	else{
@@ -88,6 +88,6 @@
 		if(!nodes) nodes = new Nodes();
 
-		iomodel->FetchData(9,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
-					MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
+		iomodel->FetchData(8,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
+					MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
 		if(isFS){
 			/*P1+ velocity*/
@@ -125,6 +125,6 @@
 			}
 		}
-		iomodel->DeleteData(9,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
-					MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
+		iomodel->DeleteData(8,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
+					MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
 
 		/*Assign output pointer: */
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp	(revision 15749)
@@ -90,5 +90,4 @@
 	else{
 		if(isFS){
-			_error_("COupling under development");
 			for(int i=0;i<iomodel->numberofelements;i++){
 				approximation=reCast<int>(iomodel->Data(FlowequationElementEquationEnum)[i]);
@@ -128,5 +127,4 @@
 	iomodel->FetchDataToInput(elements,FrictionQEnum);
 	iomodel->FetchDataToInput(elements,MaskElementonfloatingiceEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	iomodel->FetchDataToInput(elements,MaskIcelevelsetEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHutter/CreateNodesDiagnosticHutter.cpp	(revision 15749)
@@ -25,6 +25,6 @@
 	if(!nodes) nodes = new Nodes();
 
-	iomodel->FetchData(9,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
-				MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
+	iomodel->FetchData(8,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
+				MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
 
 	for(int i=0;i<iomodel->numberofvertices;i++){
@@ -44,6 +44,6 @@
 	}
 
-	iomodel->DeleteData(9,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
-				MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,MaskVertexonwaterEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
+	iomodel->DeleteData(8,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,FlowequationBorderSSAEnum,FlowequationBorderFSEnum,
+				MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,DiagnosticReferentialEnum);
 
 	/*Assign output pointer: */
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticVert/CreateNodesDiagnosticVert.cpp	(revision 15749)
@@ -14,6 +14,6 @@
 	if(iomodel->dim==2) return;
 
-	iomodel->FetchData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 	CreateNodes(pnodes,iomodel,DiagnosticVertAnalysisEnum,P1Enum);
-	iomodel->DeleteData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp	(revision 15749)
@@ -31,5 +31,4 @@
 	iomodel->FetchDataToInput(elements,MeshElementonbedEnum);
 	iomodel->FetchDataToInput(elements,MeshElementonsurfaceEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
 	iomodel->FetchDataToInput(elements,SurfaceforcingsMassBalanceEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/CreateNodesEnthalpy.cpp	(revision 15749)
@@ -11,6 +11,6 @@
 void	CreateNodesEnthalpy(Nodes** pnodes, IoModel* iomodel){
 
-	iomodel->FetchData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 	CreateNodes(pnodes,iomodel,EnthalpyAnalysisEnum,P1Enum);
-	iomodel->DeleteData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Enthalpy/UpdateElementsEnthalpy.cpp	(revision 15749)
@@ -36,5 +36,4 @@
 	iomodel->FetchDataToInput(elements,MeshElementonbedEnum);
 	iomodel->FetchDataToInput(elements,MeshElementonsurfaceEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Gia/CreateNodesGia.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Gia/CreateNodesGia.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Gia/CreateNodesGia.cpp	(revision 15749)
@@ -10,7 +10,4 @@
 
 void	CreateNodesGia(Nodes** pnodes, IoModel* iomodel){
-
-	iomodel->FetchData(1,MaskVertexonwaterEnum);
 	CreateNodes(pnodes,iomodel,GiaAnalysisEnum,P1Enum);
-	iomodel->DeleteData(1,MaskVertexonwaterEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateNodesHydrologyDCEfficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateNodesHydrologyDCEfficient.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/CreateNodesHydrologyDCEfficient.cpp	(revision 15749)
@@ -21,6 +21,6 @@
 	if(!isefficientlayer) return;
 
-	iomodel->FetchData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 	CreateNodes(pnodes,iomodel,HydrologyDCEfficientAnalysisEnum,P1Enum);
-	iomodel->DeleteData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/UpdateElementsHydrologyDCEfficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/UpdateElementsHydrologyDCEfficient.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCEfficient/UpdateElementsHydrologyDCEfficient.cpp	(revision 15749)
@@ -38,5 +38,4 @@
 	iomodel->FetchDataToInput(elements,MeshElementonbedEnum);
 	iomodel->FetchDataToInput(elements,MeshElementonsurfaceEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
 	iomodel->FetchDataToInput(elements,EplHeadEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateNodesHydrologyDCInefficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateNodesHydrologyDCInefficient.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/CreateNodesHydrologyDCInefficient.cpp	(revision 15749)
@@ -18,6 +18,6 @@
 	if(hydrology_model!=HydrologydcEnum) return;
 
-	iomodel->FetchData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 	CreateNodes(pnodes,iomodel,HydrologyDCInefficientAnalysisEnum,P1Enum);
-	iomodel->DeleteData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/UpdateElementsHydrologyDCInefficient.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/UpdateElementsHydrologyDCInefficient.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyDCInefficient/UpdateElementsHydrologyDCInefficient.cpp	(revision 15749)
@@ -39,5 +39,4 @@
 	iomodel->FetchDataToInput(elements,MeshElementonbedEnum);
 	iomodel->FetchDataToInput(elements,MeshElementonsurfaceEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
 	iomodel->FetchDataToInput(elements,SedimentHeadEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateNodesHydrologyShreve.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateNodesHydrologyShreve.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/CreateNodesHydrologyShreve.cpp	(revision 15749)
@@ -18,6 +18,6 @@
 	if(hydrology_model!=HydrologyshreveEnum) return;
 
-	iomodel->FetchData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 	CreateNodes(pnodes,iomodel,HydrologyShreveAnalysisEnum,P1Enum);
-	iomodel->DeleteData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/UpdateElementsHydrologyShreve.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/UpdateElementsHydrologyShreve.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/HydrologyShreve/UpdateElementsHydrologyShreve.cpp	(revision 15749)
@@ -32,8 +32,6 @@
 	iomodel->FetchDataToInput(elements,SurfaceEnum);
 	iomodel->FetchDataToInput(elements,BedEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonfloatingiceEnum);
 	iomodel->FetchDataToInput(elements,MeshElementonbedEnum);
 	iomodel->FetchDataToInput(elements,MeshElementonsurfaceEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
 	iomodel->FetchDataToInput(elements,WatercolumnEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/CreateNodesMelting.cpp	(revision 15749)
@@ -11,6 +11,6 @@
 void	CreateNodesMelting(Nodes** pnodes, IoModel* iomodel){
 
-	iomodel->FetchData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 	CreateNodes(pnodes,iomodel,MeltingAnalysisEnum,P1Enum);
-	iomodel->DeleteData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Melting/UpdateElementsMelting.cpp	(revision 15749)
@@ -34,5 +34,4 @@
 	iomodel->FetchDataToInput(elements,MeshElementonbedEnum);
 	iomodel->FetchDataToInput(elements,MeshElementonsurfaceEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/CreateNodesPrognostic.cpp	(revision 15749)
@@ -19,5 +19,5 @@
 
 	/*Create Nodes either DG or CG depending on stabilization*/
-	iomodel->FetchData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 	if(stabilization!=3){
 		CreateNodes(pnodes,iomodel,PrognosticAnalysisEnum,P1Enum);
@@ -26,4 +26,4 @@
 		CreateNodes(pnodes,iomodel,PrognosticAnalysisEnum,P1DGEnum);
 	}
-	iomodel->DeleteData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Prognostic/UpdateElementsPrognostic.cpp	(revision 15749)
@@ -45,5 +45,4 @@
 	iomodel->FetchDataToInput(elements,BathymetryEnum);
 	iomodel->FetchDataToInput(elements,MaskElementonfloatingiceEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
 	iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateCorrectionEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/SurfaceSlope/CreateNodesSurfaceSlope.cpp	(revision 15749)
@@ -11,6 +11,6 @@
 void	CreateNodesSurfaceSlope(Nodes** pnodes, IoModel* iomodel){
 
-	iomodel->FetchData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 	CreateNodes(pnodes,iomodel,SurfaceSlopeAnalysisEnum,P1Enum);
-	iomodel->DeleteData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/SurfaceSlope/UpdateElementsSurfaceSlope.cpp	(revision 15749)
@@ -23,6 +23,4 @@
 	iomodel->FetchDataToInput(elements,SurfaceEnum);
 	iomodel->FetchDataToInput(elements,BedEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
-
 	if(iomodel->dim==3){
 		iomodel->FetchDataToInput(elements,MeshElementonbedEnum);
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Thermal/CreateNodesThermal.cpp	(revision 15749)
@@ -11,6 +11,6 @@
 void	CreateNodesThermal(Nodes** pnodes, IoModel* iomodel){
 
-	iomodel->FetchData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->FetchData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 	CreateNodes(pnodes,iomodel,ThermalAnalysisEnum,P1Enum);
-	iomodel->DeleteData(6,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum,MaskVertexonwaterEnum);
+	iomodel->DeleteData(5,MeshVertexonbedEnum,MeshVertexonsurfaceEnum,MaskVertexongroundediceEnum,MaskVertexonfloatingiceEnum,FlowequationVertexEquationEnum);
 }
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/Thermal/UpdateElementsThermal.cpp	(revision 15749)
@@ -33,5 +33,4 @@
 	iomodel->FetchDataToInput(elements,MeshElementonbedEnum);
 	iomodel->FetchDataToInput(elements,MeshElementonsurfaceEnum);
-	iomodel->FetchDataToInput(elements,MaskElementonwaterEnum);
 	iomodel->FetchDataToInput(elements,FlowequationElementEquationEnum);
 	iomodel->FetchDataToInput(elements,MaterialsRheologyBEnum);
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 15748)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h	(revision 15749)
@@ -144,8 +144,6 @@
 	MaskElementonfloatingiceEnum,
 	MaskElementongroundediceEnum,
-	MaskElementonwaterEnum,
 	MaskVertexonfloatingiceEnum,
 	MaskVertexongroundediceEnum,
-	MaskVertexonwaterEnum,
 	MaskIcelevelsetEnum,
 	MaterialsBetaEnum,
Index: /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp	(revision 15749)
@@ -152,8 +152,6 @@
 		case MaskElementonfloatingiceEnum : return "MaskElementonfloatingice";
 		case MaskElementongroundediceEnum : return "MaskElementongroundedice";
-		case MaskElementonwaterEnum : return "MaskElementonwater";
 		case MaskVertexonfloatingiceEnum : return "MaskVertexonfloatingice";
 		case MaskVertexongroundediceEnum : return "MaskVertexongroundedice";
-		case MaskVertexonwaterEnum : return "MaskVertexonwater";
 		case MaskIcelevelsetEnum : return "MaskIcelevelset";
 		case MaterialsBetaEnum : return "MaterialsBeta";
Index: /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 15748)
+++ /issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp	(revision 15749)
@@ -155,8 +155,6 @@
 	      else if (strcmp(name,"MaskElementonfloatingice")==0) return MaskElementonfloatingiceEnum;
 	      else if (strcmp(name,"MaskElementongroundedice")==0) return MaskElementongroundediceEnum;
-	      else if (strcmp(name,"MaskElementonwater")==0) return MaskElementonwaterEnum;
 	      else if (strcmp(name,"MaskVertexonfloatingice")==0) return MaskVertexonfloatingiceEnum;
 	      else if (strcmp(name,"MaskVertexongroundedice")==0) return MaskVertexongroundediceEnum;
-	      else if (strcmp(name,"MaskVertexonwater")==0) return MaskVertexonwaterEnum;
 	      else if (strcmp(name,"MaskIcelevelset")==0) return MaskIcelevelsetEnum;
 	      else if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum;
@@ -260,10 +258,10 @@
 	      else if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum;
 	      else if (strcmp(name,"GiaMantleViscosity")==0) return GiaMantleViscosityEnum;
+	      else if (strcmp(name,"GiaLithosphereThickness")==0) return GiaLithosphereThicknessEnum;
+	      else if (strcmp(name,"Thickness")==0) return ThicknessEnum;
          else stage=3;
    }
    if(stage==3){
-	      if (strcmp(name,"GiaLithosphereThickness")==0) return GiaLithosphereThicknessEnum;
-	      else if (strcmp(name,"Thickness")==0) return ThicknessEnum;
-	      else if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum;
+	      if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum;
 	      else if (strcmp(name,"TimesteppingFinalTime")==0) return TimesteppingFinalTimeEnum;
 	      else if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum;
@@ -383,10 +381,10 @@
 	      else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
 	      else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
+	      else if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
+	      else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
          else stage=4;
    }
    if(stage==4){
-	      if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
-	      else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
-	      else if (strcmp(name,"RiftfrontType")==0) return RiftfrontTypeEnum;
+	      if (strcmp(name,"RiftfrontType")==0) return RiftfrontTypeEnum;
 	      else if (strcmp(name,"Segment")==0) return SegmentEnum;
 	      else if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
@@ -506,10 +504,10 @@
 	      else if (strcmp(name,"P1bubblecondensed")==0) return P1bubblecondensedEnum;
 	      else if (strcmp(name,"P2")==0) return P2Enum;
+	      else if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
+	      else if (strcmp(name,"P1xP2")==0) return P1xP2Enum;
          else stage=5;
    }
    if(stage==5){
-	      if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
-	      else if (strcmp(name,"P1xP2")==0) return P1xP2Enum;
-	      else if (strcmp(name,"P1P1")==0) return P1P1Enum;
+	      if (strcmp(name,"P1P1")==0) return P1P1Enum;
 	      else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
 	      else if (strcmp(name,"MINI")==0) return MINIEnum;
Index: /issm/trunk-jpl/src/m/classes/mask.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mask.m	(revision 15748)
+++ /issm/trunk-jpl/src/m/classes/mask.m	(revision 15749)
@@ -8,8 +8,6 @@
 		elementonfloatingice = NaN;
 		elementongroundedice = NaN;
-		elementonwater       = NaN;
 		vertexonfloatingice  = NaN;
 		vertexongroundedice  = NaN;
-		vertexonwater        = NaN;
 		vertexonrock         = NaN;
 		icelevelset          = NaN;
@@ -31,8 +29,6 @@
 			md = checkfield(md,'mask.elementonfloatingice','size',[md.mesh.numberofelements 1],'values',[0 1]);
 			md = checkfield(md,'mask.elementongroundedice','size',[md.mesh.numberofelements 1],'values',[0 1]);
-			md = checkfield(md,'mask.elementonwater'      ,'size',[md.mesh.numberofelements 1],'values',[0 1]);
 			md = checkfield(md,'mask.vertexonfloatingice','size',[md.mesh.numberofvertices 1],'values',[0 1]);
 			md = checkfield(md,'mask.vertexongroundedice','size',[md.mesh.numberofvertices 1],'values',[0 1]);
-			md = checkfield(md,'mask.vertexonwater'      ,'size',[md.mesh.numberofvertices 1],'values',[0 1]);
 			md = checkfield(md,'mask.icelevelset'         ,'size',[md.mesh.numberofvertices 1]);
 			isice=(md.mask.icelevelset>0);
@@ -49,6 +45,4 @@
 			fielddisplay(obj,'elementongroundedice','element on grounded ice  list');
 			fielddisplay(obj,'vertexongroundedice','vertex on grounded ice flags list');
-			fielddisplay(obj,'elementonwater','element on rock flags list');
-			fielddisplay(obj,'vertexonwater','vertex on water flags list');
 			fielddisplay(obj,'vertexonrock','vertex on rock flags list');
 			fielddisplay(obj,'icelevelset','presence of ice if > 0, icefront position if = 0, no ice if < 0');
@@ -57,8 +51,6 @@
 			WriteData(fid,'object',obj,'fieldname','elementonfloatingice','format','BooleanMat','mattype',2);
 			WriteData(fid,'object',obj,'fieldname','elementongroundedice','format','BooleanMat','mattype',2);
-			WriteData(fid,'object',obj,'fieldname','elementonwater','format','BooleanMat','mattype',2);
 			WriteData(fid,'object',obj,'fieldname','vertexonfloatingice','format','DoubleMat','mattype',1);
 			WriteData(fid,'object',obj,'fieldname','vertexongroundedice','format','DoubleMat','mattype',1);
-			WriteData(fid,'object',obj,'fieldname','vertexonwater','format','DoubleMat','mattype',1);
 			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 15748)
+++ /issm/trunk-jpl/src/m/classes/mask.py	(revision 15749)
@@ -15,8 +15,6 @@
 		self.elementonfloatingice = float('NaN')
 		self.elementongroundedice = float('NaN')
-		self.elementonwater       = float('NaN')
 		self.vertexonfloatingice  = float('NaN')
 		self.vertexongroundedice  = float('NaN')
-		self.vertexonwater        = float('NaN')
 		self.icelevelset          = float('NaN')
 
@@ -32,6 +30,4 @@
 		string="%s\n%s"%(string,fielddisplay(self,"elementongroundedice","element on grounded ice list"))
 		string="%s\n%s"%(string,fielddisplay(self,"vertexongroundedice","vertex on grounded ice flags list"))
-		string="%s\n%s"%(string,fielddisplay(self,"elementonwater","element on water flags list"))
-		string="%s\n%s"%(string,fielddisplay(self,"vertexonwater","vertex on water flags list"))
 		string="%s\n%s"%(string,fielddisplay(self,"icelevelset","presence of ice if > 0, icefront position if = 0, no ice if < 0"))
 		return string
@@ -44,8 +40,6 @@
 		md = checkfield(md,'mask.elementonfloatingice','size',[md.mesh.numberofelements],'values',[0,1])
 		md = checkfield(md,'mask.elementongroundedice','size',[md.mesh.numberofelements],'values',[0,1])
-		md = checkfield(md,'mask.elementonwater'      ,'size',[md.mesh.numberofelements],'values',[0,1])
 		md = checkfield(md,'mask.vertexonfloatingice' ,'size',[md.mesh.numberofvertices],'values',[0,1])
 		md = checkfield(md,'mask.vertexongroundedice' ,'size',[md.mesh.numberofvertices],'values',[0,1])
-		md = checkfield(md,'mask.vertexonwater'       ,'size',[md.mesh.numberofvertices],'values',[0,1])
 		md = checkfield(md,'mask.icelevelset'         ,'size',[md.mesh.numberofvertices])
 		isice=numpy.array(md.mask.icelevelset>0,int)
@@ -59,8 +53,6 @@
 		WriteData(fid,'object',self,'fieldname','elementonfloatingice','format','BooleanMat','mattype',2)
 		WriteData(fid,'object',self,'fieldname','elementongroundedice','format','BooleanMat','mattype',2)
-		WriteData(fid,'object',self,'fieldname','elementonwater','format','BooleanMat','mattype',2)
 		WriteData(fid,'object',self,'fieldname','vertexonfloatingice','format','DoubleMat','mattype',1)
 		WriteData(fid,'object',self,'fieldname','vertexongroundedice','format','DoubleMat','mattype',1)
-		WriteData(fid,'object',self,'fieldname','vertexonwater','format','DoubleMat','mattype',1)
 		WriteData(fid,'object',self,'fieldname','icelevelset','format','DoubleMat','mattype',1)
 	# }}}
Index: /issm/trunk-jpl/src/m/classes/model/model.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/model/model.m	(revision 15748)
+++ /issm/trunk-jpl/src/m/classes/model/model.m	(revision 15749)
@@ -224,6 +224,4 @@
 			md.mask.elementongroundedice=project2d(md,md.mask.elementongroundedice,1);
 			md.mask.vertexongroundedice=project2d(md,md.mask.vertexongroundedice,1);
-			md.mask.elementonwater=project2d(md,md.mask.elementonwater,1);
-			md.mask.vertexonwater=project2d(md,md.mask.vertexonwater,1);
 			if ~isnan(md.mask.vertexonrock)
 				md.mask.vertexonrock=project2d(md,md.mask.vertexonrock,1);
@@ -754,6 +752,4 @@
 			md.mask.elementongroundedice=project3d(md,'vector',md.mask.elementongroundedice,'type','element');
 			md.mask.vertexongroundedice=project3d(md,'vector',md.mask.vertexongroundedice,'type','node');
-			md.mask.elementonwater=project3d(md,'vector',md.mask.elementonwater,'type','element');
-			md.mask.vertexonwater=project3d(md,'vector',md.mask.vertexonwater,'type','node');
 			md.mask.vertexonrock=project3d(md,'vector',md.mask.vertexonrock,'type','node');
 			md.mask.icelevelset=project3d(md,'vector',md.mask.icelevelset,'type','node');
@@ -809,5 +805,4 @@
 			if isfield(structmd,'gridoniceshelf'), md.mask.vertexonfloatingice=structmd.gridoniceshelf; end
 			if isfield(structmd,'gridonicesheet'), md.mask.vertexongroundedice=structmd.gridonicesheet; end
-			if isfield(structmd,'gridonwater'), md.mask.vertexonwater=structmd.gridonwater; end
 			if isfield(structmd,'gridonboundary'), md.mesh.vertexonboundary=structmd.gridonboundary; end
 			if isfield(structmd,'petscoptions') & ~isempty(structmd.petscoptions), md.toolkits=structmd.petscoptions; end
@@ -861,8 +856,6 @@
 			if isfield(structmd,'elementoniceshelf'), md.mask.elementonfloatingice=structmd.elementoniceshelf; end
 			if isfield(structmd,'elementonicesheet'), md.mask.elementongroundedice=structmd.elementonicesheet; end
-			if isfield(structmd,'elementonwater'), md.mask.elementonwater=structmd.elementonwater; end
 			if isfield(structmd,'nodeoniceshelf'), md.mask.vertexonfloatingice=structmd.nodeoniceshelf; end
 			if isfield(structmd,'nodeonicesheet'), md.mask.vertexongroundedice=structmd.nodeonicesheet; end
-			if isfield(structmd,'nodeonwater'), md.mask.vertexonwater=structmd.nodeonwater; end
 			if isfield(structmd,'spcthickness'), md.balancethickness.spcthickness=structmd.spcthickness; end
 			if isfield(structmd,'artificial_diffusivity'), md.balancethickness.stabilization=structmd.artificial_diffusivity; end
Index: /issm/trunk-jpl/src/m/classes/model/model.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/model/model.py	(revision 15748)
+++ /issm/trunk-jpl/src/m/classes/model/model.py	(revision 15749)
@@ -642,6 +642,4 @@
 		md.mask.elementongroundedice=project3d(md,'vector',md.mask.elementongroundedice,'type','element')
 		md.mask.vertexongroundedice=project3d(md,'vector',md.mask.vertexongroundedice,'type','node')
-		md.mask.elementonwater=project3d(md,'vector',md.mask.elementonwater,'type','element')
-		md.mask.vertexonwater=project3d(md,'vector',md.mask.vertexonwater,'type','node')
 		md.mask.icelevelset=project3d(md,'vector',md.mask.icelevelset,'type','node')
 		if not numpy.any(numpy.isnan(md.inversion.cost_functions_coefficients)):
Index: /issm/trunk-jpl/src/m/contrib/bamg/BamgCall.m
===================================================================
--- /issm/trunk-jpl/src/m/contrib/bamg/BamgCall.m	(revision 15748)
+++ /issm/trunk-jpl/src/m/contrib/bamg/BamgCall.m	(revision 15749)
@@ -25,10 +25,5 @@
 %Compute metric
 t1=clock; fprintf('%s','      computing metric...');
-if length(md.nodeonwater)==md.mesh.numberofvertices,
-	pos=find(md.nodeonwater);
-else
-	pos=[];
-end
-metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,pos);
+metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,[]);
 t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
 
Index: /issm/trunk-jpl/src/m/contrib/bamg/YamsCall.m
===================================================================
--- /issm/trunk-jpl/src/m/contrib/bamg/YamsCall.m	(revision 15748)
+++ /issm/trunk-jpl/src/m/contrib/bamg/YamsCall.m	(revision 15749)
@@ -25,10 +25,5 @@
 %Compute metric
 t1=clock; fprintf('%s','      computing metric...');
-if length(md.mask.vertexonwater)==md.mesh.numberofvertices,
-	pos=find(md.mask.vertexonwater);
-else
-	pos=[];
-end
-metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,pos);
+metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,[]);
 t2=clock;fprintf('%s\n',[' done (' num2str(etime(t2,t1)) ' seconds)']);
 
Index: /issm/trunk-jpl/src/m/contrib/bamg/YamsCall.py
===================================================================
--- /issm/trunk-jpl/src/m/contrib/bamg/YamsCall.py	(revision 15748)
+++ /issm/trunk-jpl/src/m/contrib/bamg/YamsCall.py	(revision 15749)
@@ -38,9 +38,5 @@
 	t1=time.time()
 	print "%s" % '      computing metric...'
-	if numpy.size(md.mask.vertexonwater)==md.mesh.numberofvertices:
-		pos=numpy.nonzero(md.mask.vertexonwater)[0]
-	else:
-		pos=numpy.empty(0,int)
-	metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,pos)
+	metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,numpy.empty(0,int))
 	t2=time.time()
 	print "%s%d%s\n" % (' done (',t2-t1,' seconds)')
Index: /issm/trunk-jpl/src/m/contrib/bamg/yams.m
===================================================================
--- /issm/trunk-jpl/src/m/contrib/bamg/yams.m	(revision 15748)
+++ /issm/trunk-jpl/src/m/contrib/bamg/yams.m	(revision 15749)
@@ -79,13 +79,4 @@
 	field=sqrt(vx_obs.^2+vy_obs.^2);
 
-	%set mask.vertexonwater  field
-	if ~strcmp(groundeddomain,'N/A'),
-		nodeground=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,groundeddomain,'node',2);
-		md.mask.vertexonwater=ones(md.mesh.numberofvertices,1);
-		md.mask.vertexonwater(find(nodeground))=0;
-	else
-		md.mask.vertexonwater=zeros(md.mesh.numberofvertices,1);
-	end
-
 	%adapt according to velocities
 	disp('   adapting...');
@@ -119,11 +110,4 @@
 md.mesh.elementonbed=ones(md.mesh.numberofelements,1);
 md.mesh.elementonsurface=ones(md.mesh.numberofelements,1);
-if ~strcmp(groundeddomain,'N/A'),
-	nodeground=ContourToMesh(md.mesh.elements,md.mesh.x,md.mesh.y,groundeddomain,'node',2);
-	md.mask.vertexonwater=ones(md.mesh.numberofvertices,1);
-	md.mask.vertexonwater(find(nodeground))=0;
-else
-	md.mask.vertexonwater=zeros(md.mesh.numberofvertices,1);
-end
 if strcmpi(Names.interp,'node'),
 	md.inversion.vx_obs=InterpFromGridToMesh(Vel.(Names.xname),Vel.(Names.yname),Vel.(Names.vxname),md.mesh.x,md.mesh.y,0);
Index: /issm/trunk-jpl/src/m/enum/EnumDefinitions.py
===================================================================
--- /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 15748)
+++ /issm/trunk-jpl/src/m/enum/EnumDefinitions.py	(revision 15749)
@@ -144,8 +144,6 @@
 def MaskElementonfloatingiceEnum(): return StringToEnum("MaskElementonfloatingice")[0]
 def MaskElementongroundediceEnum(): return StringToEnum("MaskElementongroundedice")[0]
-def MaskElementonwaterEnum(): return StringToEnum("MaskElementonwater")[0]
 def MaskVertexonfloatingiceEnum(): return StringToEnum("MaskVertexonfloatingice")[0]
 def MaskVertexongroundediceEnum(): return StringToEnum("MaskVertexongroundedice")[0]
-def MaskVertexonwaterEnum(): return StringToEnum("MaskVertexonwater")[0]
 def MaskIcelevelsetEnum(): return StringToEnum("MaskIcelevelset")[0]
 def MaterialsBetaEnum(): return StringToEnum("MaterialsBeta")[0]
Index: sm/trunk-jpl/src/m/enum/MaskElementonwaterEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaskElementonwaterEnum.m	(revision 15748)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaskElementonwaterEnum()
-%MASKELEMENTONWATERENUM - Enum of MaskElementonwater
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MaskElementonwaterEnum()
-
-macro=StringToEnum('MaskElementonwater');
Index: sm/trunk-jpl/src/m/enum/MaskVertexonwaterEnum.m
===================================================================
--- /issm/trunk-jpl/src/m/enum/MaskVertexonwaterEnum.m	(revision 15748)
+++ 	(revision )
@@ -1,11 +1,0 @@
-function macro=MaskVertexonwaterEnum()
-%MASKVERTEXONWATERENUM - Enum of MaskVertexonwater
-%
-%   WARNING: DO NOT MODIFY THIS FILE
-%            this file has been automatically generated by src/c/shared/Enum/Synchronize.sh
-%            Please read src/c/shared/Enum/README for more information
-%
-%   Usage:
-%      macro=MaskVertexonwaterEnum()
-
-macro=StringToEnum('MaskVertexonwater');
Index: /issm/trunk-jpl/src/m/mesh/ComputeMetric.m
===================================================================
--- /issm/trunk-jpl/src/m/mesh/ComputeMetric.m	(revision 15748)
+++ /issm/trunk-jpl/src/m/mesh/ComputeMetric.m	(revision 15749)
@@ -7,5 +7,5 @@
 %
 %   Example:
-%      metric=ComputeMetric(hessian,2/9,10^-1,100,10^5,find(md.nodeonwater)
+%      metric=ComputeMetric(hessian,2/9,10^-1,100,10^5,[])
 
 %first, find the eigen values of each line of H=[hessian(i,1) hessian(i,2); hessian(i,2) hessian(i,3)]
Index: /issm/trunk-jpl/src/m/mesh/ComputeMetric.py
===================================================================
--- /issm/trunk-jpl/src/m/mesh/ComputeMetric.py	(revision 15748)
+++ /issm/trunk-jpl/src/m/mesh/ComputeMetric.py	(revision 15749)
@@ -10,5 +10,5 @@
 
 	   Example:
-	      metric=ComputeMetric(hessian,2/9,10^-1,100,10^5,find(md.nodeonwater)
+	      metric=ComputeMetric(hessian,2/9,10^-1,100,10^5,[])
 	"""
 
Index: /issm/trunk-jpl/src/m/mesh/MeshQuality.m
===================================================================
--- /issm/trunk-jpl/src/m/mesh/MeshQuality.m	(revision 15748)
+++ /issm/trunk-jpl/src/m/mesh/MeshQuality.m	(revision 15749)
@@ -17,10 +17,5 @@
 
 %Compute metric
-if length(md.nodeonwater)==md.mesh.numberofvertices,
-	pos=find(md.nodeonwater);
-else
-	pos=[];
-end
-metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,pos);
+metric=ComputeMetric(hessian,scale,epsilon,hmin,hmax,[]);
 
 %Get Areas
Index: /issm/trunk-jpl/src/m/mesh/bamg.m
===================================================================
--- /issm/trunk-jpl/src/m/mesh/bamg.m	(revision 15748)
+++ /issm/trunk-jpl/src/m/mesh/bamg.m	(revision 15749)
@@ -325,5 +325,4 @@
 md.mesh.z=zeros(md.mesh.numberofvertices,1);
 md.mesh.vertexonbed=ones(md.mesh.numberofvertices,1);
-md.mask.vertexonwater=zeros(md.mesh.numberofvertices,1);
 md.mesh.vertexonsurface=ones(md.mesh.numberofvertices,1);
 md.mesh.elementonbed=ones(md.mesh.numberofelements,1);
Index: /issm/trunk-jpl/src/m/mesh/bamg.py
===================================================================
--- /issm/trunk-jpl/src/m/mesh/bamg.py	(revision 15748)
+++ /issm/trunk-jpl/src/m/mesh/bamg.py	(revision 15749)
@@ -332,5 +332,4 @@
 	md.mesh.z=numpy.zeros(md.mesh.numberofvertices)
 	md.mesh.vertexonbed=numpy.ones(md.mesh.numberofvertices,bool)
-	md.mask.vertexonwater=numpy.zeros(md.mesh.numberofvertices,bool)
 	md.mesh.vertexonsurface=numpy.ones(md.mesh.numberofvertices,bool)
 	md.mesh.elementonbed=numpy.ones(md.mesh.numberofelements,bool)
Index: /issm/trunk-jpl/src/m/mesh/meshconvert.m
===================================================================
--- /issm/trunk-jpl/src/m/mesh/meshconvert.m	(revision 15748)
+++ /issm/trunk-jpl/src/m/mesh/meshconvert.m	(revision 15749)
@@ -42,5 +42,4 @@
 md.mesh.z=zeros(md.mesh.numberofvertices,1);
 md.mesh.vertexonbed=ones(md.mesh.numberofvertices,1);
-md.mask.vertexonwater=zeros(md.mesh.numberofvertices,1);
 md.mesh.vertexonsurface=ones(md.mesh.numberofvertices,1);
 md.mesh.elementonbed=ones(md.mesh.numberofelements,1);
Index: /issm/trunk-jpl/src/m/parameterization/setmask.m
===================================================================
--- /issm/trunk-jpl/src/m/parameterization/setmask.m	(revision 15748)
+++ /issm/trunk-jpl/src/m/parameterization/setmask.m	(revision 15749)
@@ -46,5 +46,3 @@
 md.mask.elementongroundedice=elementongroundedice;
 md.mask.vertexongroundedice=vertexongroundedice;
-md.mask.vertexonwater=zeros(md.mesh.numberofvertices,1);
-md.mask.elementonwater=zeros(md.mesh.numberofelements,1);
 md.mask.icelevelset=ones(md.mesh.numberofvertices,1);
Index: /issm/trunk-jpl/src/m/parameterization/setmask.py
===================================================================
--- /issm/trunk-jpl/src/m/parameterization/setmask.py	(revision 15748)
+++ /issm/trunk-jpl/src/m/parameterization/setmask.py	(revision 15749)
@@ -46,6 +46,4 @@
 	md.mask.elementongroundedice = elementongroundedice
 	md.mask.vertexongroundedice = vertexongroundedice
-	md.mask.vertexonwater = numpy.zeros(md.mesh.numberofvertices,bool)
-	md.mask.elementonwater = numpy.zeros(md.mesh.numberofelements,bool)
 	md.mask.icelevelset = numpy.ones(md.mesh.numberofvertices,bool)
 
