Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 27517)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 27518)
@@ -297,7 +297,8 @@
 	IssmDouble dt,scalar,water_head;
 	IssmDouble water_load,transfer,runoff_value;
-	IssmDouble epl_storing,epl_transmitivity;
+	IssmDouble epl_storing;  //,epl_transmitivity;
 	IssmDouble Jdet,time;
 	IssmDouble residual,connectivity;
+	IssmDouble active_node;
 
 	IssmDouble *xyz_list             = NULL;
@@ -313,4 +314,5 @@
 	ElementVector* pe    = basalelement->NewElementVector();
 	IssmDouble*    basis = xNew<IssmDouble>(numnodes);
+
 
 	/*Retrieve all inputs and parameters*/
@@ -353,6 +355,6 @@
 		basalelement ->JacobianDeterminant(&Jdet,xyz_list,gauss);
 		basalelement ->NodalFunctions(basis,gauss);
+		//epl_transmitivity = EplTransmitivity(basalelement,gauss,epl_thick_input);
 		epl_storing	= EplStoring(basalelement,gauss,epl_thick_input);
-		epl_transmitivity = EplTransmitivity(basalelement,gauss,epl_thick_input);
 
 		/*Loading term*/
@@ -362,6 +364,14 @@
 		scalar = Jdet*gauss->weight*(water_load+runoff_value);
 		if(dt!=0.) scalar = scalar*dt;
-		for(int i=0;i<numnodes;i++)pe->values[i]+=scalar*basis[i];
-
+		for(int i=0;i<numnodes;i++){
+			//This is the original
+			pe->values[i]+=scalar*basis[i];
+			//This is the noded version
+			/* basalelement->GetInputValue(&active_node,basalelement->nodes[i],HydrologydcMaskEplactiveNodeEnum); */
+			/* if(!reCast<bool>(active_node)){ */
+			/* 	pe->values[i]+=scalar*basis[i]; */
+			//}
+			//if(basalelement->nodes[i]->Sid()==42)_printf_("EPL uni Input "<<scalar*basis[i]<<"\n");
+		}
 		/*Transient and transfer terms*/
 		if(dt!=0.){
@@ -379,5 +389,5 @@
 	for(int iv=0;iv<numvertices;iv++){
 		gauss->GaussVertex(iv);
-		epl_transmitivity = EplTransmitivity(basalelement,gauss,epl_thick_input);
+		//epl_transmitivity = EplTransmitivity(basalelement,gauss,epl_thick_input);
 		connectivity = IssmDouble(basalelement->VertexConnectivity(iv));
 		residual_input->GetInputValue(&residual,gauss);
Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 27517)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 27518)
@@ -326,10 +326,11 @@
 	/*Intermediaries */
 	bool       active_element,isefficientlayer;
-	int        smb_model,smbsubstepping;
-	int        hydrologysubstepping,smb_averaging;
-	IssmDouble dt,scalar,sediment_storing;
-	IssmDouble water_head,sediment_transmitivity;
+	int        smb_model,smb_averaging;
+	int        smbsubstepping, hydrologysubstepping;
+	IssmDouble dt,scalar,water_head;
+	IssmDouble sediment_storing,sediment_transmitivity;
 	IssmDouble water_load,runoff_value,transfer;
 	IssmDouble Jdet,time;
+	IssmDouble active_node;
 
 	IssmDouble *xyz_list             = NULL;
@@ -401,7 +402,5 @@
 			scalar = Jdet*gauss->weight*(water_load+runoff_value);
 			if(dt!=0.) scalar = scalar*dt;
-			for(int i=0;i<numnodes;i++){
-				pe->values[i]+=scalar*basis[i];
-			}
+			for(int i=0;i<numnodes;i++)pe->values[i]+=scalar*basis[i];
 		}
 		else{
@@ -414,5 +413,12 @@
 				if(dt!=0.) scalar = scalar*dt;
 				for(int i=0;i<numnodes;i++){
+					//This is the original
 					pe->values[i]+=scalar*basis[i];
+					//This is the noded version
+					/* basalelement->GetInputValue(&active_node,basalelement->nodes[i],HydrologydcMaskEplactiveNodeEnum); */
+					/* if(!reCast<bool>(active_node)){ */
+					/* 	pe->values[i]+=scalar*basis[i]; */
+					/* 	//if(basalelement->nodes[i]->Sid()==42)_printf_("IDS uni Input "<<scalar*basis[i]<<"\n"); */
+					//}
 				}
 			}
Index: /issm/trunk-jpl/src/c/classes/Loads/Moulin.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Moulin.cpp	(revision 27517)
+++ /issm/trunk-jpl/src/c/classes/Loads/Moulin.cpp	(revision 27518)
@@ -104,5 +104,13 @@
 /*}}}*/
 void    Moulin::Echo(void){/*{{{*/
-	this->DeepEcho();
+
+	_printf_("Moulin:\n");
+	_printf_("   id: " << id << "\n");
+	hnode->Echo();
+	hvertex->Echo();
+	helement->Echo();
+	_printf_("   parameters\n");
+	parameters->Echo();
+	//this->DeepEcho();
 }
 /*}}}*/
@@ -143,5 +151,5 @@
 void  Moulin::Configure(Elements* elementsin,Loads* loadsin,Nodes* nodesin,Vertices* verticesin,Materials* materialsin,Parameters* parametersin){/*{{{*/
 
-	/*Take care of hooking up all objects for this load, ie links the objects in the hooks to their respective 
+	/*Take care of hooking up all objects for this load, ie links the objects in the hooks to their respective
 	 * datasets, using internal ids and offsets hidden in hooks: */
 	hnode->configure(nodesin);
@@ -204,8 +212,8 @@
 			break;
 		case HydrologyDCInefficientAnalysisEnum:
-			pe = CreatePVectorHydrologyDCInefficient();
+			pe = this->CreatePVectorHydrologyDCInefficient();
 			break;
 		case HydrologyDCEfficientAnalysisEnum:
-			pe = CreatePVectorHydrologyDCEfficient();
+			pe = this->CreatePVectorHydrologyDCEfficient();
 			break;
 		default:
@@ -427,8 +435,7 @@
 	 * mesh), don't add the moulin input a second time*/
 	if(node->IsClone()) return NULL;
-	bool isefficientlayer;
+	bool isefficientlayer, active_element;
 	IssmDouble moulin_load,dt;
 	IssmDouble epl_active;
-
 	/*Initialize Element matrix*/
 	ElementVector* pe=new ElementVector(&node,1,this->parameters);
@@ -437,17 +444,25 @@
 	parameters->FindParam(&dt,TimesteppingTimeStepEnum);
 	parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
-	// Test version input in EPL when active
+
+	//Test version input in EPL when active
 	if(isefficientlayer){
-		this->element->GetInputValue(&epl_active,node,HydrologydcMaskEplactiveNodeEnum);
-		if(reCast<bool>(epl_active)){
-			pe->values[0]=moulin_load*0.0;
+		this->element->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum);
+		if(!active_element){
+			/* this->element->GetInputValue(&epl_active,node,HydrologydcMaskEplactiveNodeEnum); */
+			/* if(reCast<bool>(epl_active))pe->values[0]=0.0; */
+			/* else { */
+			pe->values[0]=moulin_load*dt;
+			/* 	if (moulin_load>0)_printf_("MoulinInput in Sed is "<<pe->values[0]<<"\n"); */
+			/* 	if (moulin_load>0)pe->Echo(); */
+			/* } */
+			//if (node->Sid()==4)_printf_("MoulinInput in Sed is "<<moulin_load*dt<<"\n");
 		}
-		else{
-			pe->values[0]=moulin_load*dt;
-		}
-	}
-	else{
-		pe->values[0]=moulin_load*dt;
-	}
+		else pe->values[0]=0.0;
+	}
+	else pe->values[0]=moulin_load*dt;
+
+	//Test only input in sed
+	/* pe->values[0]=moulin_load*dt; */
+
 	/*Clean up and return*/
 	return pe;
@@ -458,14 +473,39 @@
 	/*If this node is not the master node (belongs to another partition of the
 	 * mesh), don't add the moulin input a second time*/
+
 	if(node->IsClone()) return NULL;
-	if(!this->node->IsActive()) return NULL;
-	IssmDouble moulin_load,dt;
 	ElementVector* pe=new ElementVector(&node,1,this->parameters);
 
-	this->element->GetInputValue(&moulin_load,node,HydrologydcBasalMoulinInputEnum);
-	parameters->FindParam(&dt,TimesteppingTimeStepEnum);
-
-	pe->values[0]=moulin_load*dt;
-	/*Clean up and return*/
+	//Test Input in epl if active
+	/* IssmDouble epl_active; */
+	/* this->element->GetInputValue(&epl_active,node,HydrologydcMaskEplactiveNodeEnum); */
+	/* //if(node->Sid()==4)_printf_("Activity is "<<epl_active<<" \n"); */
+	/* if(reCast<bool>(epl_active)){ */
+	/* 	IssmDouble moulin_load,dt; */
+	/* 	this->element->GetInputValue(&moulin_load,node,HydrologydcBasalMoulinInputEnum); */
+	/* 	parameters->FindParam(&dt,TimesteppingTimeStepEnum); */
+	/* 	pe->values[0]=moulin_load*dt; */
+	/* 	if (moulin_load>0)_printf_("MoulinInput in Epl is "<<pe->values[1]<<"\n"); */
+
+	/* } */
+	/* 	else{ */
+	/* 		pe->values[0]=0.0; */
+	/* } */
+	// Test element only test
+	bool active_element;
+	this->element->GetInputValue(&active_element,HydrologydcMaskEplactiveEltEnum);
+	if(active_element){
+		IssmDouble moulin_load,dt;
+		this->element->GetInputValue(&moulin_load,node,HydrologydcBasalMoulinInputEnum);
+		parameters->FindParam(&dt,TimesteppingTimeStepEnum);
+		pe->values[0]=moulin_load*dt;
+	}
+	else pe->values[0]=0.0;
+
+
+	//Test only input is sed
+	/* pe->values[0]=0.0; */
+
+	//Clean up and return
 	return pe;
 }
