Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 18688)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCEfficientAnalysis.cpp	(revision 18689)
@@ -140,4 +140,5 @@
 		return NULL;
 	}
+
 	/* Intermediaries */
 	IssmDouble  D_scalar,Jdet,dt;
@@ -197,5 +198,5 @@
 			/*Transfer EPL part*/
 			transfer=GetHydrologyKMatrixTransfer(basalelement,gauss,sed_head_input,epl_head_input,thick_input,base_input);
-			D_scalar=transfer*gauss->weight*Jdet*dt;
+			D_scalar=transfer*gauss->weight*Jdet;
 			TripleMultiply(basis,numnodes,1,0,
 										 &D_scalar,1,1,0,
@@ -292,5 +293,5 @@
 			/*Dealing with the epl part of the transfer term*/
 			transfer=GetHydrologyPVectorTransfer(basalelement,gauss,sed_head_input,epl_head_input,thick_input,base_input);
-			scalar = Jdet*gauss->weight*((water_head*epl_specificstoring*epl_thickness)+(transfer*dt));
+			scalar = Jdet*gauss->weight*((water_head*epl_specificstoring*epl_thickness)+(transfer));
 			for(int i=0;i<numnodes;i++)pe->values[i]+=scalar*basis[i];
 		}
@@ -422,13 +423,15 @@
 		
 		if(epl_head>sediment_head){  
-			if(sediment_head>=hmax){
-				transfer=0.0;
-			}
-			else{
-				transfer=(leakage);
-			}
-		}
-		else{ 
+			/* if(sediment_head>=hmax){ */
+			/* 	transfer=0.0; */
+			/* } */
+			/* else{ */
+			/* 	transfer=(leakage); */
+			/* } */
+			transfer=leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
+		}
+		else{
 			transfer=(leakage);
+			
 		}
 		break;
@@ -469,12 +472,13 @@
 
  		if(epl_head>sediment_head){  
-			if(sediment_head>=hmax){
-				transfer=0.0;
-			}
-			else{
-				transfer=(sediment_head*leakage);
-			}
-		}
-		else{ 
+			/* if(sediment_head>=hmax){ */
+			/* 	transfer=0.0; */
+			/* } */
+			/* else{ */
+			/* 	transfer=(sediment_head*leakage); */
+			/* } */
+			transfer=sediment_head*leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
+		}
+		else{
 			transfer=(sediment_head*leakage);
 		}
@@ -483,4 +487,5 @@
 		_error_("no case higher than 1 for the Transfer method");
 	}
+
 	return transfer;
 }/*}}}*/
@@ -671,5 +676,7 @@
 		/*Increase of the efficient system is needed if the epl head reach the maximum value (sediment max value for now)*/
 		GetHydrologyDCInefficientHmax(&h_max,basalelement,basalelement->nodes[i]);
+
 		if(eplhead[i]>=h_max && active_element){
+
 			for(j=0;j<numnodes;j++){
 				if(old_active[j]>0.){
Index: /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 18688)
+++ /issm/trunk-jpl/src/c/analyses/HydrologyDCInefficientAnalysis.cpp	(revision 18689)
@@ -241,5 +241,5 @@
 					transfer=GetHydrologyKMatrixTransfer(basalelement,gauss,sed_head_input,epl_head_input,thick_input,base_input);
 					basalelement->NodalFunctions(&basis[0],gauss);
-					D_scalar=transfer*gauss->weight*Jdet*dt;
+					D_scalar=transfer*gauss->weight*Jdet;
 					TripleMultiply(basis,numnodes,1,0,
 												 &D_scalar,1,1,0,
@@ -345,5 +345,5 @@
 					transfer=0.0;
 				}
-				scalar = Jdet*gauss->weight*((water_head*sediment_storing)+(dt*transfer));
+				scalar = Jdet*gauss->weight*((water_head*sediment_storing)+(transfer));
 				for(int i=0;i<numnodes;i++)pe->values[i]+=scalar*basis[i];
 			}
@@ -596,12 +596,13 @@
 		
 		if(epl_head>sediment_head){  
-			if(sediment_head>=hmax){
-				transfer=0.0;
-			}
-			else{
-				transfer=(leakage);
-			}
-		}
-		else{ 
+			/* if(sediment_head>=hmax){ */
+			/* 	transfer=0.0; */
+			/* } */
+			/* else{ */
+			/* 	transfer=(leakage); */
+			/* } */
+			transfer=leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
+		}
+		else{
 			transfer=(leakage);
 		}		
@@ -639,12 +640,13 @@
 		
 		if(epl_head>sediment_head){  
-			if(sediment_head>=hmax){
-				transfer=0.0;
-			}
-			else{
-				transfer=(epl_head*leakage);
-			}
-		}
-		else{ 
+			/* if(sediment_head>=hmax){ */
+			/* 	transfer=0.0; */
+			/* } */
+			/* else{ */
+			/* 	transfer=(epl_head*leakage); */
+			/* } */
+			transfer=epl_head*leakage*(1/(1+exp(-20.0*(hmax-sediment_head))));
+		}
+		else{
 			transfer=(epl_head*leakage);
 		}
