Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 17374)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 17375)
@@ -156,4 +156,9 @@
 	basalelement->FindParam(&dt,TimesteppingTimeStepEnum);
 	Input* thickness_input = basalelement->GetInput(HydrologydcEplThicknessEnum);          _assert_(thickness_input);
+	Input* sed_head_input  = basalelement->GetInput(SedimentHeadEnum);
+	Input* epl_head_input  = basalelement->GetInput(EplHeadEnum);
+	Input* sed_trans_input = basalelement->GetInput(HydrologydcSedimentTransmitivityEnum);
+	Input* residual_input  = basalelement->GetInput(SedimentHeadResidualEnum);
+
 	IssmDouble epl_specificstoring   = EplSpecificStoring(basalelement);
 	IssmDouble epl_conductivity      = basalelement->GetMaterialParameter(HydrologydcEplConductivityEnum);
@@ -187,5 +192,5 @@
 			
 			/*Transfer EPL part*/
-			transfer=GetHydrologyKMatrixTransfer(basalelement,gauss);
+			transfer=GetHydrologyKMatrixTransfer(basalelement,gauss,thickness_input,sed_head_input,epl_head_input,sed_trans_input,residual_input);
 			D_scalar=transfer*gauss->weight*Jdet*dt;
 			TripleMultiply(basis,numnodes,1,0,
@@ -258,6 +263,9 @@
 	basalelement->FindParam(&dt,TimesteppingTimeStepEnum);	
 
+	Input* thickness_input = basalelement->GetInput(HydrologydcEplThicknessEnum); _assert_(thickness_input);
+	Input* sed_head_input  = basalelement->GetInput(SedimentHeadEnum);
+	Input* epl_head_input  = basalelement->GetInput(EplHeadEnum);
+	Input* sed_trans_input = basalelement->GetInput(HydrologydcSedimentTransmitivityEnum);
 	Input* residual_input  = basalelement->GetInput(SedimentHeadResidualEnum);    _assert_(residual_input);
-	Input* thickness_input = basalelement->GetInput(HydrologydcEplThicknessEnum); _assert_(thickness_input);
 	if(dt!= 0.){old_wh_input = basalelement->GetInput(EplHeadOldEnum);            _assert_(old_wh_input);}
 
@@ -278,5 +286,5 @@
 			
 			/*Dealing with the sediment part of the transfer term*/
-			transfer=GetHydrologyPVectorTransfer(basalelement,gauss);
+			transfer=GetHydrologyPVectorTransfer(basalelement,gauss,thickness_input,sed_head_input,epl_head_input,sed_trans_input,residual_input);
 			scalar = Jdet*gauss->weight*((water_head*epl_specificstoring*epl_thickness)+(transfer*dt));
 			for(int i=0;i<numnodes;i++)pe->values[i]+=scalar*basis[i];
@@ -367,5 +375,5 @@
 	return rho_freshwater*g*sediment_porosity*sediment_thickness*(water_compressibility+(sediment_compressibility/sediment_porosity));		 
 }/*}}}*/
-IssmDouble HydrologyDCEfficientAnalysis::GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss){/*{{{*/
+IssmDouble HydrologyDCEfficientAnalysis::GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss, Input* epl_thick_input, Input* sed_head_input, Input* epl_head_input, Input* sed_trans_input, Input* residual_input){/*{{{*/
 	
 	int transfermethod;
@@ -387,12 +395,15 @@
 		break;
 	case 1:
-		/* _assert_(input) */
+		_assert_(epl_thick_input); 
+		_assert_(sed_head_input); 
+		_assert_(epl_head_input); 
+		_assert_(sed_trans_input); 
+		_assert_(residual_input); 
 		/* get input */
-
-		element->GetInputValue(&epl_thickness,gauss,HydrologydcEplThicknessEnum);
-		element->GetInputValue(&sed_head,gauss,SedimentHeadEnum);
-		element->GetInputValue(&epl_head,gauss,EplHeadEnum);
-		element->GetInputValue(&sediment_transmitivity,gauss,HydrologydcSedimentTransmitivityEnum);
-		element->GetInputValue(&residual,gauss,SedimentHeadResidualEnum);
+		epl_thick_input->GetInputValue(&epl_thickness,gauss);
+		sed_head_input->GetInputValue(&sed_head,gauss);
+		epl_head_input->GetInputValue(&epl_head,gauss);
+		sed_trans_input->GetInputValue(&sediment_transmitivity,gauss);
+		residual_input->GetInputValue(&residual,gauss);
 		element->FindParam(&leakage,HydrologydcLeakageFactorEnum);
 
@@ -415,5 +426,5 @@
 	return transfer;
 }/*}}}*/
-IssmDouble HydrologyDCEfficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss){/*{{{*/
+IssmDouble HydrologyDCEfficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* epl_thick_input, Input* sed_head_input, Input* epl_head_input, Input* sed_trans_input, Input* residual_input){/*{{{*/
 
 	int transfermethod;
@@ -435,10 +446,15 @@
 		break;
 	case 1:
-
-		element->GetInputValue(&epl_thickness,gauss,HydrologydcEplThicknessEnum);
-		element->GetInputValue(&sediment_head,gauss,SedimentHeadEnum);
-		element->GetInputValue(&epl_head,gauss,EplHeadEnum);
-		element->GetInputValue(&sediment_transmitivity,gauss,HydrologydcSedimentTransmitivityEnum);
-		element->GetInputValue(&residual,gauss,SedimentHeadResidualEnum);
+		_assert_(epl_thick_input); 
+		_assert_(sed_head_input); 
+		_assert_(epl_head_input); 
+		_assert_(sed_trans_input); 
+		_assert_(residual_input); 
+		/* get input */
+		epl_thick_input->GetInputValue(&epl_thickness,gauss);
+		sed_head_input->GetInputValue(&sediment_head,gauss);
+		epl_head_input->GetInputValue(&epl_head,gauss);
+		sed_trans_input->GetInputValue(&sediment_transmitivity,gauss);
+		residual_input->GetInputValue(&residual,gauss);
 		element->FindParam(&leakage,HydrologydcLeakageFactorEnum);
 		
@@ -618,8 +634,8 @@
 
 	basalelement-> GetInputListOnVertices(&old_active[0],HydrologydcMaskEplactiveNodeEnum);	
-	basalelement->	GetInputListOnVertices(&epl_thickness[0],HydrologydcEplThicknessEnum);	
-	basalelement->	GetInputListOnVertices(&sedhead[0],SedimentHeadEnum);
-	basalelement->	GetInputListOnVertices(&eplhead[0],EplHeadEnum);
-	basalelement->	GetInputListOnVertices(&residual[0],SedimentHeadResidualEnum);
+	basalelement-> GetInputListOnVertices(&epl_thickness[0],HydrologydcEplThicknessEnum);	
+	basalelement-> GetInputListOnVertices(&sedhead[0],SedimentHeadEnum);
+	basalelement-> GetInputListOnVertices(&eplhead[0],EplHeadEnum);
+	basalelement-> GetInputListOnVertices(&residual[0],SedimentHeadResidualEnum);
 
 	/*Get minimum sediment head of the element*/
@@ -703,5 +719,5 @@
 }
 
-void  HydrologyDCEfficientAnalysis::GetHydrologyDCInefficientHmax(IssmDouble* ph_max,Element* element, Node* innode){/*{{{*/
+void HydrologyDCEfficientAnalysis::GetHydrologyDCInefficientHmax(IssmDouble* ph_max,Element* element, Node* innode){/*{{{*/
 	
 	int        hmax_flag;
@@ -724,6 +740,6 @@
 		rho_water = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
 		rho_ice   = element->GetMaterialParameter(MaterialsRhoIceEnum);
-		element->GetInputValue(&thickness,innode,ThicknessEnum);
-		element->GetInputValue(&bed,innode,BedEnum);
+		element-> GetInputValue(&thickness,innode,ThicknessEnum);
+		element-> GetInputValue(&bed,innode,BedEnum);
 		h_max=((rho_ice*thickness)/rho_water)+bed;
 		break;
Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.h
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.h	(revision 17374)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.h	(revision 17375)
@@ -8,5 +8,6 @@
 /*Headers*/
 #include "./Analysis.h"
-class Node; 
+class Node;
+class Input;
 class HydrologyDCEfficientAnalysis: public Analysis{
 
@@ -34,6 +35,6 @@
 		IssmDouble EplSpecificStoring(Element* element);
 		IssmDouble SedimentStoring(Element* element);
-		IssmDouble GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss);
-		IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss);
+		IssmDouble GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss, Input* epl_thick_input, Input* sed_head_input, Input* epl_head_input, Input* sed_trans_input, Input* residual_input);
+		IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* epl_thick_input, Input* sed_head_input, Input* epl_head_input, Input* sed_trans_input, Input* residual_input);
 		void HydrologyEPLGetMask(Vector<IssmDouble>* vec_mask,Element* element);
 		void HydrologyEPLGetActive(Vector<IssmDouble>* active_vec, Element* element);
Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 17374)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 17375)
@@ -195,5 +195,10 @@
 	basalelement ->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
 
-	Input* SedTrans_input       = basalelement->GetInput(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input);
+	Input* epl_thick_input   = basalelement->GetInput(HydrologydcEplThicknessEnum);
+	Input* sed_head_input    = basalelement->GetInput(SedimentHeadEnum);
+	Input* epl_head_input    = basalelement->GetInput(EplHeadEnum);
+	Input* thickness_input   = basalelement->GetInput(ThicknessEnum);
+	Input* bed_input         = basalelement->GetInput(BedEnum);
+	Input* SedTrans_input    = basalelement->GetInput(HydrologydcSedimentTransmitivityEnum); _assert_(SedTrans_input);
 	IssmDouble sediment_storing = SedimentStoring(basalelement);
 	/*Transfer related Inputs*/
@@ -233,5 +238,5 @@
 				active_element_input->GetInputValue(&active_element);
 				if(active_element){
-					transfer=GetHydrologyKMatrixTransfer(basalelement,gauss);
+					transfer=GetHydrologyKMatrixTransfer(basalelement,gauss,epl_thick_input,sed_head_input,epl_head_input,SedTrans_input,thickness_input,bed_input);
 					basalelement->NodalFunctions(&basis[0],gauss);
 					D_scalar=transfer*gauss->weight*Jdet*dt;
@@ -293,4 +298,10 @@
 	basalelement->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
 
+	Input* epl_thick_input   = basalelement->GetInput(HydrologydcEplThicknessEnum);
+	Input* sed_head_input    = basalelement->GetInput(SedimentHeadEnum);
+	Input* epl_head_input    = basalelement->GetInput(EplHeadEnum);
+	Input* sed_trans_input   = basalelement->GetInput(HydrologydcSedimentTransmitivityEnum);
+	Input* thickness_input   = basalelement->GetInput(ThicknessEnum);
+	Input* bed_input         = basalelement->GetInput(BedEnum);
 	Input* water_input       = basalelement->GetInput(BasalforcingsMeltingRateEnum); _assert_(water_input);
 	if(dt!= 0.){old_wh_input = basalelement->GetInput(SedimentHeadOldEnum);          _assert_(old_wh_input);}
@@ -327,5 +338,5 @@
 				active_element_input->GetInputValue(&active_element);
 				if(active_element){
-					transfer=GetHydrologyPVectorTransfer(basalelement,gauss);
+					transfer=GetHydrologyPVectorTransfer(basalelement,gauss,epl_thick_input,sed_head_input,epl_head_input,sed_trans_input,thickness_input,bed_input);
 				}
 				else{
@@ -461,5 +472,5 @@
 }/*}}}*/
 
-IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyDCInefficientHmax(Element* element, Gauss* gauss){/*{{{*/
+IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyDCInefficientHmax(Element* element, Gauss* gauss, Input* thick_input, Input* bed_input){/*{{{*/
 	int        hmax_flag;
 	IssmDouble h_max;
@@ -482,9 +493,10 @@
 		rho_ice   = element->GetMaterialParameter(MaterialsRhoIceEnum);
 
+		_assert_(thick_input);
+		_assert_(bed_input);
+
 		/*Compute max*/
-		/* thick_input->GetInputValue(&thickness,gauss); */
-		/* bed_input->GetInputValue(&bed,gauss); */
-		element->GetInputValue(&thickness,gauss,ThicknessEnum);
-		element->GetInputValue(&bed,gauss,BedEnum);
+		thick_input->GetInputValue(&thickness,gauss);
+		bed_input->GetInputValue(&bed,gauss);
 		h_max=((rho_ice*thickness)/rho_water)+bed;
 		break;
@@ -532,5 +544,5 @@
 }
 /*}}}*/
-IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss){/*{{{*/
+IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss, Input* epl_thick_input, Input* sed_head_input, Input* epl_head_input, Input* sed_trans_input, Input* thickness_input, Input* bed_input){/*{{{*/
 
 	int transfermethod;
@@ -552,14 +564,20 @@
 		break;
 	case 1:
-
-		element->GetInputValue(&epl_thickness,gauss,HydrologydcEplThicknessEnum);
-		element->GetInputValue(&sed_head,gauss,SedimentHeadEnum);
-		element->GetInputValue(&epl_head,gauss,EplHeadEnum);
-		element->GetInputValue(&sediment_transmitivity,gauss,HydrologydcSedimentTransmitivityEnum);
 		
+		_assert_(epl_thick_input);
+		_assert_(sed_head_input);
+		_assert_(epl_head_input);
+		_assert_(sed_trans_input);
+		_assert_(thickness_input);
+		_assert_(bed_input);
+
+		epl_thick_input->GetInputValue(&epl_thickness,gauss);
+		sed_head_input->GetInputValue(&sed_head,gauss);
+		epl_head_input->GetInputValue(&epl_head,gauss);
+		sed_trans_input->GetInputValue(&sediment_transmitivity,gauss);
 		element->FindParam(&leakage,HydrologydcLeakageFactorEnum);
 	
 		if(epl_head>sed_head){
-			h_max=GetHydrologyDCInefficientHmax(element,gauss);
+			h_max=GetHydrologyDCInefficientHmax(element,gauss,thickness_input,bed_input);
 			if(sed_head>=h_max){
 				transfer=0.0;
@@ -580,5 +598,5 @@
 }/*}}}*/
 
-IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss){/*{{{*/
+IssmDouble HydrologyDCInefficientAnalysis::GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* epl_thick_input, Input* sed_head_input, Input* epl_head_input, Input* sed_trans_input, Input* thickness_input, Input* bed_input){/*{{{*/
 
 	int transfermethod;
@@ -600,13 +618,21 @@
 		break;
 	case 1:
-
-		element->GetInputValue(&epl_thickness,gauss,HydrologydcEplThicknessEnum);
-		element->GetInputValue(&sediment_head,gauss,SedimentHeadEnum);
-		element->GetInputValue(&epl_head,gauss,EplHeadEnum);
-		element->GetInputValue(&sediment_transmitivity,gauss,HydrologydcSedimentTransmitivityEnum);
 		
+		_assert_(epl_thick_input);
+		_assert_(sed_head_input);
+		_assert_(epl_head_input);
+		_assert_(sed_trans_input);
+		_assert_(thickness_input);
+		_assert_(bed_input);
+
+		epl_thick_input->GetInputValue(&epl_thickness,gauss);
+		sed_head_input->GetInputValue(&sediment_head,gauss);
+		epl_head_input->GetInputValue(&epl_head,gauss);
+		sed_trans_input->GetInputValue(&sediment_transmitivity,gauss);
+
 		element->FindParam(&leakage,HydrologydcLeakageFactorEnum);
+
 		if(epl_head>sediment_head){
-			h_max=GetHydrologyDCInefficientHmax(element,gauss);
+			h_max=GetHydrologyDCInefficientHmax(element,gauss,thickness_input,bed_input);
 			if(sediment_head>=h_max){
 				transfer=0.0;
Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.h
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.h	(revision 17374)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.h	(revision 17375)
@@ -9,4 +9,5 @@
 #include "./Analysis.h"
 class Node; 
+class Input;
 class HydrologyDCInefficientAnalysis: public Analysis{
 
@@ -34,8 +35,8 @@
 		IssmDouble SedimentStoring(Element* element);
 		IssmDouble EplSpecificStoring(Element* element);
-		IssmDouble GetHydrologyDCInefficientHmax(Element* element, Gauss* gauss);
+		IssmDouble GetHydrologyDCInefficientHmax(Element* element, Gauss* gauss, Input* thickness_input, Input* bed_input);
 		void GetHydrologyDCInefficientHmax(IssmDouble* ph_max,Element* element, Node* innode);
-		IssmDouble GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss);
-		IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss);
+		IssmDouble GetHydrologyKMatrixTransfer(Element* element, Gauss* gauss, Input* epl_thick_input, Input* sed_head_input, Input* epl_head_input, Input* sed_trans_input, Input* thickness_input, Input* bed_input);
+		IssmDouble GetHydrologyPVectorTransfer(Element* element, Gauss* gauss, Input* epl_thick_input, Input* sed_head_input, Input* epl_head_input, Input* sed_trans_input, Input* thickness_input, Input* bed_input);
 		void ElementizeEplMask(FemModel* femmodel);
 };
Index: /issm/trunk-jpl/src/c/classes/Elements/Seg.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 17374)
+++ /issm/trunk-jpl/src/c/classes/Elements/Seg.h	(revision 17375)
@@ -150,9 +150,4 @@
 		void        GetNormalFromLSF(IssmDouble *pnormal){_error_("not implemented yet");};
 
-		//void    GetHydrologyDCInefficientHmax(IssmDouble* ph_max, Node* innode){_error_("not implemented yet");};
-		//void    HydrologyEPLGetActive(Vector<IssmDouble>* active_vec){_error_("not implemented yet");};
-		//void    HydrologyEPLGetMask(Vector<IssmDouble>* vec_mask){_error_("not implemented yet");};
-		//		void    ComputeEPLThickness(void){_error_("not implemented yet");};
-		
 		void        GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type){_error_("not implemented yet");};
 		void        GetVectorFromInputs(Vector<IssmDouble>* vector, int name_enum){_error_("not implemented yet");};
