Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 21232)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 21233)
@@ -307,5 +307,5 @@
 	/*Intermediaries */
 	IssmDouble dt,scalar,water_head;
-	IssmDouble transfer;
+	IssmDouble water_load,transfer;
 	IssmDouble epl_thickness;
 	IssmDouble Jdet;
@@ -327,10 +327,11 @@
 	basalelement->FindParam(&dt,TimesteppingTimeStepEnum);	
 
-	Input* epl_thick_input   = basalelement->GetInput(HydrologydcEplThicknessEnum); _assert_(epl_thick_input);
-	Input* sed_head_input    = basalelement->GetInput(SedimentHeadEnum);
-	Input* epl_head_input    = basalelement->GetInput(EplHeadEnum);
-	Input* thick_input       = basalelement->GetInput(ThicknessEnum);
-	Input* base_input        = basalelement->GetInput(BaseEnum);
-	Input* residual_input    = basalelement->GetInput(SedimentHeadResidualEnum);    _assert_(residual_input);
+	Input* epl_thick_input = basalelement->GetInput(HydrologydcEplThicknessEnum); _assert_(epl_thick_input);
+	Input* sed_head_input  = basalelement->GetInput(SedimentHeadEnum);
+	Input* epl_head_input  = basalelement->GetInput(EplHeadEnum);
+	Input* thick_input     = basalelement->GetInput(ThicknessEnum);
+	Input* base_input      = basalelement->GetInput(BaseEnum);
+	Input* water_input		 = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(water_input);
+	Input* residual_input  = basalelement->GetInput(SedimentHeadResidualEnum);    _assert_(residual_input);
 	if(dt!= 0.){old_wh_input = basalelement->GetInput(EplHeadOldEnum);            _assert_(old_wh_input);}
 
@@ -345,4 +346,12 @@
 		basalelement ->NodalFunctions(basis,gauss);
 
+		/*Loading term*/
+		water_input->GetInputValue(&water_load,gauss);
+		scalar = Jdet*gauss->weight*(water_load);
+		if(dt!=0.) scalar = scalar*dt;
+		for(int i=0;i<numnodes;i++){
+			pe->values[i]+=scalar*basis[i];
+		}
+		
 		/*Transient and transfer terms*/
 		if(dt!=0.){
Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 21232)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 21233)
@@ -313,9 +313,9 @@
 	basalelement->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
 
-	Input* sed_head_input = basalelement->GetInput(SedimentHeadEnum);
-	Input* epl_head_input = basalelement->GetInput(EplHeadEnum);
-	Input* water_input    = basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(water_input);
-	Input* thick_input    = basalelement->GetInput(ThicknessEnum);
-	Input* base_input     = basalelement->GetInput(BaseEnum);
+	Input* sed_head_input			  = basalelement->GetInput(SedimentHeadEnum);
+	Input* epl_head_input			  = basalelement->GetInput(EplHeadEnum);
+	Input* thick_input					= basalelement->GetInput(ThicknessEnum);
+	Input* base_input					  = basalelement->GetInput(BaseEnum);
+	Input* water_input					= basalelement->GetInput(BasalforcingsGroundediceMeltingRateEnum); _assert_(water_input);
 	if(dt!= 0.){old_wh_input = basalelement->GetInput(SedimentHeadOldEnum);                     _assert_(old_wh_input);}
 
@@ -336,11 +336,24 @@
 
 		/*Loading term*/
-		water_input->GetInputValue(&water_load,gauss);
-		scalar = Jdet*gauss->weight*(water_load);
-		if(dt!=0.) scalar = scalar*dt;
-		for(int i=0;i<numnodes;i++){
-			pe->values[i]+=scalar*basis[i];
-		}
-			
+		if(!isefficientlayer){
+			water_input->GetInputValue(&water_load,gauss);
+			scalar = Jdet*gauss->weight*(water_load);
+			if(dt!=0.) scalar = scalar*dt;
+			for(int i=0;i<numnodes;i++){
+				pe->values[i]+=scalar*basis[i];
+			}
+		}
+		else{
+			/*if EPL is present and active input is there not here*/
+			active_element_input->GetInputValue(&active_element);
+			if(!active_element){	
+				water_input->GetInputValue(&water_load,gauss);
+				scalar = Jdet*gauss->weight*(water_load);
+				if(dt!=0.) scalar = scalar*dt;
+				for(int i=0;i<numnodes;i++){
+					pe->values[i]+=scalar*basis[i];
+				}
+			}
+		}
 		/*Transient and transfer terms*/
 		if(dt!=0.){
