Index: /issm/trunk-jpl/src/c/cores/control_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/control_core.cpp	(revision 18136)
+++ /issm/trunk-jpl/src/c/cores/control_core.cpp	(revision 18137)
@@ -183,9 +183,7 @@
 	IssmDouble* Jlist = NULL;
 	femmodel->CostFunctionx(&J,&Jlist,NULL);
-	//_printf0_("f(x) = "<<setw(12)<<setprecision(7)<<*pf<<"  |  ");
-
-	/*Retrieve objective functions independently*/
-	//for(int i=0;i<num_responses;i++) _printf0_(" "<<setw(12)<<setprecision(7)<<Jlist[i]);
-	//_printf0_("\n");
+	_printf0_("f(x) = "<<setw(12)<<setprecision(7)<<J<<"  |  ");
+	for(int i=0;i<num_responses;i++) _printf0_(" "<<setw(12)<<setprecision(7)<<Jlist[i]);
+	_printf0_("\n");
 
 	/*Free ressources:*/
@@ -289,7 +287,7 @@
 	/*Compute misfit for this velocity field.*/
 	femmodel->CostFunctionx(&J,&Jlist,NULL);
-	//_printf0_("f(x) = "<<setw(12)<<setprecision(7)<<*pf<<"  |  ");
-	//for(int i=0;i<num_responses;i++) _printf0_(" "<<setw(12)<<setprecision(7)<<Jlist[i]);
-	//_printf0_("\n");
+	_printf0_("f(x) = "<<setw(12)<<setprecision(7)<<J<<"  |  ");
+	for(int i=0;i<num_responses;i++) _printf0_(" "<<setw(12)<<setprecision(7)<<Jlist[i]);
+	_printf0_("\n");
 
 	/*Clean-up and return*/
Index: /issm/trunk-jpl/src/c/shared/Numerics/BrentSearch.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/BrentSearch.cpp	(revision 18136)
+++ /issm/trunk-jpl/src/c/shared/Numerics/BrentSearch.cpp	(revision 18137)
@@ -48,6 +48,13 @@
 	IssmDouble* X = xNew<IssmDouble>(nsize);
 
+	/*Header of printf*/
+	_printf0_("\n");
+	_printf0_("       x       |  Cost function f(x)  |  List of contributions\n");
+
 	/*start iterations*/
 	for(int n=0;n<nsteps;n++){
+
+		/*Print iteration number*/
+		_printf0_("====================== step "<< n+1 << "/" << nsteps <<" ===============================\n");
 
 		/*Reset some variables*/
@@ -59,15 +66,12 @@
 
 		/*Get current Gradient at xmin=0*/
-		if(VerboseControl()) _printf0_("\n" << "   step " << n+1 << "/" << nsteps << "\n");
+		_printf0_(" x = "<<setw(9)<<xmin<<" | ");
 		fxmin = (*g)(&G,X0,usr); if(xIsNan<IssmDouble>(fxmin)) _error_("Function evaluation returned NaN");
-		if(VerboseControl()) _printf0_("\n");
-		if(VerboseControl()) _printf0_("       Iteration         x           f(x)       Tolerance         Procedure\n");
-		if(VerboseControl()) _printf0_("\n");
-		if(VerboseControl()) _printf0_("           N/A    "<<setw(12)<<xmin<<"  "<<setw(12)<<fxmin<<"           N/A         boundary\n");
 		
 		/*Get f(xmax)*/
+		_printf0_(" x = "<<setw(9)<<xmax<<" | ");
 		for(int i=0;i<nsize;i++) X[i]=X0[i]+xmax*G[i];
 		fxmax = (*f)(X,usr); if (xIsNan<IssmDouble>(fxmax)) _error_("Function evaluation returned NaN");
-		if(VerboseControl()) _printf0_("           N/A    "<<setw(12)<<xmax<<"  "<<setw(12)<<fxmax<<"           N/A         boundary\n");
+		//if(VerboseControl()) _printf0_("           N/A    "<<setw(12)<<xmax<<"  "<<setw(12)<<fxmax<<"           N/A         boundary\n");
 
 		/*test if jump option activated and xmin==0*/
@@ -92,4 +96,5 @@
 
 		/*2: call the function to be evaluated*/
+		_printf0_(" x = "<<setw(9)<<x<<" | ");
 		for(int i=0;i<nsize;i++) X[i]=X0[i]+x*G[i];
 		fxbest = (*f)(X,usr); if(xIsNan<IssmDouble>(fxbest)) _error_("Function evaluation returned NaN");
@@ -106,8 +111,8 @@
 
 		/*4: print result*/
-		if(VerboseControl())
-		 _printf0_("         "<<setw(5)<<iter<<"    "<<setw(12)<<xbest<<"  "<<setw(12)<<fxbest<<"  "<<setw(12)<<pow(pow(xbest-xm,2),0.5)<<"         initial\n");
+		//if(VerboseControl())
+		 //_printf0_("         "<<setw(5)<<iter<<"    "<<setw(12)<<xbest<<"  "<<setw(12)<<fxbest<<"  "<<setw(12)<<pow(pow(xbest-xm,2),0.5)<<"         initial\n");
 		if (!xIsNan<IssmDouble>(cm_jump[n]) && (xmin==0) && ((fxbest/fxmin)<cm_jump[n])){
-			if(VerboseControl()) _printf0_("      optimization terminated: current x satisfies criteria 'cm_jump'=" << cm_jump[n] << "\n");
+			//if(VerboseControl()) _printf0_("      optimization terminated: current x satisfies criteria 'cm_jump'=" << cm_jump[n] << "\n");
 			loop=false;
 		}
@@ -176,4 +181,5 @@
 
 			//evaluate function on x
+			_printf0_(" x = "<<setw(9)<<x<<" | ");
 			for(int i=0;i<nsize;i++) X[i]=X0[i]+x*G[i];
 			fx = (*f)(X,usr); if(xIsNan<IssmDouble>(fx)) _error_("Function evaluation returned NaN");
@@ -202,19 +208,19 @@
 			tol1=seps*pow(pow(xbest,2),0.5)+tolerance/3.0;
 			tol2=2.0*tol1;
-			if(VerboseControl())
-			 _printf0_("         "<<setw(5)<<iter<<"    "<<setw(12)<<x<<"  "<<setw(12)<<fx<<"  "<<setw(12)<<pow(pow(xbest-xm,2),0.5)<<
-						 "         "<<(goldenflag?"golden":"parabolic")<<"\n");
+			//if(VerboseControl())
+			// _printf0_("         "<<setw(5)<<iter<<"    "<<setw(12)<<x<<"  "<<setw(12)<<fx<<"  "<<setw(12)<<pow(pow(xbest-xm,2),0.5)<<
+			//			 "         "<<(goldenflag?"golden":"parabolic")<<"\n");
 
 			/*Stop the optimization?*/
 			if (sqrt(pow(xbest-xm,2)) < (tol2-0.5*(xmax-xmin))){
-				if(VerboseControl()) _printf0_("      optimization terminated: current x satisfies criteria 'tolx'=" << tolerance << "\n");
+				//if(VerboseControl()) _printf0_("      optimization terminated: current x satisfies criteria 'tolx'=" << tolerance << "\n");
 				loop=false;
 			}
 			else if (iter>=maxiter[n]){
-				if(VerboseControl()) _printf0_("      exiting: Maximum number of iterations has been exceeded  ('maxiter'=" << maxiter[n] << ")\n");
+				//if(VerboseControl()) _printf0_("      exiting: Maximum number of iterations has been exceeded  ('maxiter'=" << maxiter[n] << ")\n");
 				loop=false;
 			}
 			else if (!xIsNan<IssmDouble>(cm_jump[n]) && (xmin==0) && ((fxbest/fxmin)<cm_jump[n])){
-				if(VerboseControl()) _printf0_("      optimization terminated: current x satisfies criteria 'cm_jump'=" << cm_jump[n] << "\n");
+				//if(VerboseControl()) _printf0_("      optimization terminated: current x satisfies criteria 'cm_jump'=" << cm_jump[n] << "\n");
 				loop=false;
 			}
