Index: /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 15408)
+++ /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_hydro_nonlinear.cpp	(revision 15409)
@@ -40,5 +40,5 @@
 
 	/*Recover parameters: */
-	femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum);//FIXME
+	femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum);
 	femmodel->parameters->FindParam(&isefficientlayer,HydrologydcIsefficientlayerEnum);
 	femmodel->parameters->FindParam(&eps_hyd,HydrologydcRelTolEnum);
@@ -46,29 +46,29 @@
 	hydro_maxiter=150;
 	hydrocount=1;
-
-	/*Iteration on the two layers*/
-	femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum);
+	hydroconverged=false;
+
+	/*Retrieve inputs as the initial state for the non linear iteration*/
+	//femmodel->SetCurrentConfiguration(HydrologyDCInefficientAnalysisEnum);
 	GetSolutionFromInputsx(&ug_sed, femmodel->elements, femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters);
 	Reducevectorgtofx(&uf_sed, ug_sed, femmodel->nodes,femmodel->parameters);
+	
 	if(isefficientlayer) {
 		femmodel->SetCurrentConfiguration(HydrologyDCEfficientAnalysisEnum);
 		GetSolutionFromInputsx(&ug_epl, femmodel->elements, femmodel->nodes, femmodel->vertices,femmodel->loads, femmodel->materials, femmodel->parameters);
-	Reducevectorgtofx(&uf_epl, ug_epl, femmodel->nodes,femmodel->parameters);
+		Reducevectorgtofx(&uf_epl, ug_epl, femmodel->nodes,femmodel->parameters);
 	}
 
-	hydroconverged=false;
+	/*Iteration on the two layers*/
 	for(;;){
 		sedcount=1;
 		eplcount=1;
 		//save pointer to old velocity
-		delete ug_sed_main_iter;
 		delete uf_sed_sub_iter;
 		ug_sed_main_iter=ug_sed;
 		uf_sed_sub_iter=uf_sed;
 		if(isefficientlayer){
-			delete ug_epl_main_iter;
-			delete uf_sed_sub_iter;
+			delete uf_epl_sub_iter;
 			ug_epl_main_iter=ug_epl;
-			uf_sed_sub_iter=uf_epl;
+			uf_epl_sub_iter=uf_epl;
 		}
 
@@ -88,10 +88,8 @@
 			if(sedcount>1)delete uf_sed;
 			Solverx(&uf_sed,Kff,pf,uf_sed_sub_iter,df,femmodel->parameters);
-			delete uf_sed_sub_iter; 
+			delete Kff; delete pf; delete uf_sed_sub_iter; delete df;
 			uf_sed_sub_iter=uf_sed->Duplicate();
 			uf_sed->Copy(uf_sed_sub_iter);
 			if(sedcount>1)delete ug_sed; /*Not on first time to avoid deleting ug_sed_main_iter*/
-			delete Kff; delete pf; delete df;
-
 			Mergesolutionfromftogx(&ug_sed,uf_sed,ys,femmodel->nodes,femmodel->parameters); delete ys;
 			InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug_sed);
@@ -123,6 +121,7 @@
 			femmodel->HydrologyEPLupdateDomainx();
 			femmodel->parameters->SetParam(HydrologyEfficientEnum,HydrologyLayerEnum);
+
+			/*Iteration on the EPL layer*/
 			eplconverged = false;
-			/*Iteration on the EPL layer*/
 			for(;;){
 				femmodel->HydrologyTransferx();
@@ -130,12 +129,10 @@
 				CreateNodalConstraintsx(&ys,femmodel->nodes,HydrologyDCEfficientAnalysisEnum);
 				Reduceloadx(pf,Kfs,ys); delete Kfs;
-				if(eplcount>1) delete uf_epl;
+				if(sedcount>1) delete uf_epl;
 				Solverx(&uf_epl,Kff,pf,uf_epl_sub_iter,df,femmodel->parameters);
-				delete uf_epl_sub_iter;
+				delete Kff; delete pf; delete uf_epl_sub_iter; delete df; 
 				uf_epl_sub_iter=uf_epl->Duplicate();
 				uf_epl->Copy(uf_epl_sub_iter);
 				if(eplcount>1) delete ug_epl; 
-				delete Kff;delete pf;
-				delete df;
 				Mergesolutionfromftogx(&ug_epl,uf_epl,ys,femmodel->nodes,femmodel->parameters); delete ys;
 				InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters,ug_epl);
@@ -207,4 +204,5 @@
 		if(hydroconverged)break;
 	}
+	
 	InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug_sed);
 	if(isefficientlayer)InputUpdateFromSolutionx(femmodel->elements,femmodel->nodes, femmodel->vertices, femmodel->loads, femmodel->materials, femmodel->parameters,ug_epl);
@@ -214,9 +212,7 @@
 	delete ug_sed;
 	delete uf_sed;
-	//	delete uf_epl;
+	delete uf_epl;
 	delete uf_sed_sub_iter;
 	delete uf_epl_sub_iter;
-	delete ug_sed_main_iter;
-	delete ug_epl_main_iter;
 	delete dug;
 }
