Index: /issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.cpp	(revision 23506)
+++ /issm/trunk-jpl/src/c/analyses/GLheightadvectionAnalysis.cpp	(revision 23507)
@@ -52,5 +52,5 @@
 }/*}}}*/
 ElementMatrix* GLheightadvectionAnalysis::CreateJacobianMatrix(Element* element){/*{{{*/
-_error_("Not implemented");
+	_error_("Not implemented");
 }/*}}}*/
 ElementMatrix* GLheightadvectionAnalysis::CreateKMatrix(Element* element){/*{{{*/
@@ -88,5 +88,5 @@
 	//Input* vx_input=element->GetInput(BaseSlopeXEnum); _assert_(vx_input);
 	//Input* vy_input=element->GetInput(BaseSlopeYEnum); _assert_(vy_input);
-   Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input);
+	Input* vx_input=element->GetInput(VxEnum); _assert_(vx_input);
 	Input* vy_input=element->GetInput(VyEnum); _assert_(vy_input);
 	Input* bc_input=element->GetInput(MeshVertexonboundaryEnum); _assert_(bc_input);
@@ -156,5 +156,5 @@
 }/*}}}*/
 void           GLheightadvectionAnalysis::GetSolutionFromInputs(Vector<IssmDouble>* solution,Element* element){/*{{{*/
-	   _error_("not implemented yet");
+	_error_("not implemented yet");
 }/*}}}*/
 void           GLheightadvectionAnalysis::GradientJ(Vector<IssmDouble>* gradient,Element* element,int control_type,int control_index){/*{{{*/
@@ -184,17 +184,16 @@
 		Element    *element  = xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
 
-		if(!element->IsIceInElement()) continue;
-		int         numnodes = element->GetNumberOfNodes();
-		IssmDouble *mask     = xNew<IssmDouble>(numnodes);
-		IssmDouble *bed      = xNew<IssmDouble>(numnodes);
-		IssmDouble *lset     = xNew<IssmDouble>(numnodes);
+		int         numnodes  = element->GetNumberOfNodes();
+		IssmDouble *mask      = xNew<IssmDouble>(numnodes);
+		IssmDouble *bed       = xNew<IssmDouble>(numnodes);
+		IssmDouble *ls_active = xNew<IssmDouble>(numnodes);
 
 		element->GetInputListOnNodes(&mask[0],MaskGroundediceLevelsetEnum);
 		element->GetInputListOnNodes(&bed[0],BaseEnum);
-		element->GetInputListOnNodes(&lset[0],MaskIceLevelsetEnum);
+		element->GetInputListOnNodes(&ls_active[0],IceMaskNodeActivationEnum);
 
 		for(int in=0;in<numnodes;in++){
 			Node* node=element->GetNode(in);
-			if(mask[in]<0.){
+			if(mask[in]<0. && ls_active[in]==1.){
 				node->Activate();
 			}
@@ -206,5 +205,5 @@
 		xDelete<IssmDouble>(mask);
 		xDelete<IssmDouble>(bed);
-		xDelete<IssmDouble>(lset);
+		xDelete<IssmDouble>(ls_active);
 	}
 
