Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 16863)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 16864)
@@ -283,2 +283,18 @@
 	return rho_freshwater*g*sediment_porosity*sediment_thickness*(water_compressibility+(sediment_compressibility/sediment_porosity));		 
 }/*}}}*/
+void HydrologyDCInefficientAnalysis::ElementizeEplMask(FemModel* femmodel){/*{{{*/
+
+	bool     element_active;
+	Element* element=NULL;
+
+	for(int i=0;i<femmodel->elements->Size();i++){
+		element=dynamic_cast<Element*>(femmodel->elements->GetObjectByOffset(i));
+
+		int numvertices = element->GetNumberOfVertices();
+		Input* node_mask_input = element->GetInput(HydrologydcMaskEplactiveNodeEnum);
+		if(node_mask_input->Max()>0.) element_active = true;
+		else                          element_active = false;
+
+		element->AddInput(new BoolInput(HydrologydcMaskEplactiveEltEnum,element_active));
+	}
+}/*}}}*/
Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.h
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.h	(revision 16863)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.h	(revision 16864)
@@ -28,4 +28,5 @@
 		/*Intermediaries*/
 		IssmDouble SedimentStoring(Element* element);
+		void ElementizeEplMask(FemModel* femmodel);
 };
 #endif
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16863)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 16864)
@@ -45,4 +45,5 @@
 		virtual void   AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
 		virtual void   AddInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
+		virtual void   AddInput(Input* input_in)=0;
 		virtual void   AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum)=0;
 		virtual ElementMatrix* CreateKMatrix(void)=0;
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16863)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 16864)
@@ -126,4 +126,12 @@
 	_assert_(this->inputs);
 	this->inputs->AddInput(new PentaInput(input_enum,values,interpolation_enum));
+}
+/*}}}*/
+/*FUNCTION Tria::AddInput{{{*/
+void  Penta::AddInput(Input* input_in){
+
+	/*Call inputs method*/
+	_assert_(this->inputs);
+	this->inputs->AddInput(input_in);
 }
 /*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16863)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 16864)
@@ -205,4 +205,5 @@
 		void           AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum);
 		void           AddInput(int input_enum, IssmDouble* values, int interpolation_enum);
+		void           AddInput(Input* input_in);
 		void           AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum);
 		void	         NormalBase(IssmDouble* bed_normal, IssmDouble* xyz_list);
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16863)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 16864)
@@ -71,4 +71,5 @@
 		void        AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
 		void        AddInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
+		void        AddInput(Input* input_in){_error_("not implemented yet");};
 		void        AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum){_error_("not implemented yet");};
 		IssmDouble  CharacteristicLength(void){_error_("not implemented yet");};
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16863)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 16864)
@@ -189,4 +189,12 @@
 	_assert_(this->inputs);
 	this->inputs->AddInput(new TriaInput(input_enum,values,interpolation_enum));
+}
+/*}}}*/
+/*FUNCTION Tria::AddInput{{{*/
+void  Tria::AddInput(Input* input_in){
+
+	/*Call inputs method*/
+	_assert_(this->inputs);
+	this->inputs->AddInput(input_in);
 }
 /*}}}*/
@@ -6961,4 +6969,6 @@
 	IssmDouble epl_head[numdof],sed_head[numdof];
 
+	Input* active_element=NULL;
+
 	GetDofList(&doflist,NoneApproximationEnum,GsetEnum);
 
@@ -6979,4 +6989,5 @@
 			int analysis_type;
 			parameters->FindParam(&analysis_type,AnalysisTypeEnum);
+			active_element=inputs->GetInput(HydrologydcMaskEplactiveEltEnum); _assert_(active_element);
 
 			GetInputListOnVertices(&activeEpl[0],HydrologydcMaskEplactiveNodeEnum);
@@ -6992,5 +7003,5 @@
 			//		printf("Which analyse %i \n",analysis_type);
 
-			if(!this->AnyActive()){
+			if(!active_element){
 
 				//printf("NoneActive\n");
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16863)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 16864)
@@ -217,4 +217,5 @@
 		void           AddBasalInput(int input_enum, IssmDouble* values, int interpolation_enum);
 		void           AddInput(int input_enum, IssmDouble* values, int interpolation_enum);
+		void           AddInput(Input* input_in);
 		void           AddMaterialInput(int input_enum, IssmDouble* values, int interpolation_enum);
 		ElementMatrix* CreateKMatrix(void);
Index: /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 16863)
+++ /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 16864)
@@ -83,4 +83,9 @@
 		sedconverged=false;
 		for(;;){
+			/*Updating Nodal Mask*/
+			HydrologyDCInefficientAnalysis* analysis = new HydrologyDCInefficientAnalysis();
+			analysis->ElementizeEplMask(femmodel);
+			delete analysis;
+
 			femmodel->HydrologyTransferx();
 			SystemMatricesx(&Kff,&Kfs,&pf,&df,&sediment_kmax,femmodel);
@@ -143,4 +148,8 @@
 				//updating mask after the computation of the epl thickness (Allow to close too thin EPL)
 				femmodel->HydrologyEPLupdateDomainx();
+				/*Updating Nodal Mask*/
+				HydrologyDCInefficientAnalysis* analysis = new HydrologyDCInefficientAnalysis();
+				analysis->ElementizeEplMask(femmodel);
+				delete analysis;
 
 				femmodel->HydrologyTransferx();
