Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 21202)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 21203)
@@ -64,5 +64,6 @@
 	iomodel->FetchDataToInput(elements,"md.initialization.sediment_head",SedimentHeadEnum);
 	iomodel->FetchDataToInput(elements,"md.initialization.epl_thickness",HydrologydcEplThicknessEnum);
-		if(iomodel->domaintype!=Domain2DhorizontalEnum){
+	iomodel->FetchDataToInput(elements,"md.hydrology.basal_moulin_input",HydrologydcBasalMoulinInputEnum);
+	if(iomodel->domaintype!=Domain2DhorizontalEnum){
 		iomodel->FetchDataToInput(elements,"md.mesh.vertexonbase",MeshVertexonbaseEnum);
 		iomodel->FetchDataToInput(elements,"md.mesh.vertexonsurface",MeshVertexonsurfaceEnum);
Index: /issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp	(revision 21202)
+++ /issm/trunk-jpl/src/c/classes/Loads/Pengrid.cpp	(revision 21203)
@@ -202,4 +202,7 @@
 	case HydrologyDCInefficientAnalysisEnum:
 		pe = CreatePVectorHydrologyDCInefficient();
+		break;
+	case HydrologyDCEfficientAnalysisEnum:
+		pe = CreatePVectorHydrologyDCEfficient();
 		break;
 	default:
@@ -558,7 +561,43 @@
 ElementVector* Pengrid::CreatePVectorHydrologyDCInefficient(void){/*{{{*/
 
+	bool active_element,isefficientlayer;
 	IssmDouble moulin_load,dt;
+	IssmDouble epl_active;
 
 	/*Initialize Element matrix*/
+	ElementVector* pe=new ElementVector(&node,1,this->parameters);
+
+	this->element->GetInputValue(&moulin_load,node,HydrologydcBasalMoulinInputEnum);
+	parameters->FindParam(&dt,TimesteppingTimeStepEnum);
+	parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
+
+
+	// Test version input in EPL when active
+	if(isefficientlayer){
+		this->element->GetInputValue(&epl_active,node,HydrologydcMaskEplactiveNodeEnum);
+		if(epl_active){
+			pe->values[0]=moulin_load*0.0;
+		}
+		else{
+			if(dt!=0.0) pe->values[0]=moulin_load*dt;
+		}
+	}
+	else{
+			if(dt!=0.0) pe->values[0]=moulin_load*dt;
+	}
+
+	//Initial treatment, allways input in sediment
+	/* if(dt!=0.0) pe->values[0]=moulin_load*dt; */
+
+	/*Clean up and return*/
+	return pe;
+ }
+/*}}}*/
+ElementVector* Pengrid::CreatePVectorHydrologyDCEfficient(void){/*{{{*/
+
+	IssmDouble moulin_load,dt;
+
+	/*Initialize Element matrix*/
+	if(!this->active) return NULL;
 	ElementVector* pe=new ElementVector(&node,1,this->parameters);
 
Index: /issm/trunk-jpl/src/c/classes/Loads/Pengrid.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Loads/Pengrid.h	(revision 21202)
+++ /issm/trunk-jpl/src/c/classes/Loads/Pengrid.h	(revision 21203)
@@ -88,4 +88,5 @@
 		void           ConstraintActivateThermal(int* punstable);
 		ElementVector* CreatePVectorHydrologyDCInefficient(void);
+		ElementVector* CreatePVectorHydrologyDCEfficient(void);
 		ElementMatrix* PenaltyCreateKMatrixHydrologyDCInefficient(IssmDouble kmax);
 		ElementMatrix* PenaltyCreateKMatrixMelting(IssmDouble kmax);
