Index: /issm/trunk-jpl/src/c/cores/controladm1qn3_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/controladm1qn3_core.cpp	(revision 27934)
+++ /issm/trunk-jpl/src/c/cores/controladm1qn3_core.cpp	(revision 27935)
@@ -452,10 +452,5 @@
 		if(*indic==0){
 			/*dry run, no gradient required*/
-
-			/*Retrieve objective functions independently*/
-			_printf0_("f(x) = "<<setw(9)<<setprecision(4)<<*pf<<"  |  ");
-			_printf0_("            N/A |\n");
-			for(int i=0;i<num_responses;i++) _printf0_(" "<<setw(8)<<setprecision(3)<<Jlist[(*Jlisti)*JlistN+i]);
-			_printf0_("\n");
+			InversionStatsIter( (*Jlisti)+1, *pf, NAN, &Jlist[(*Jlisti)*JlistN], num_responses);
 
 			*Jlisti = (*Jlisti) +1;
@@ -491,9 +486,5 @@
 
 	/*Print info*/
-	_printf0_("│"<<setw(3)<<*Jlisti<<" │ ");
-	_printf0_("f(x) = "<<setw(8)<<setprecision(5)<<*pf<<" │ ");
-	_printf0_("  "<<setw(8)<<setprecision(3)<<Gnorm<<" │");
-	for(int i=0;i<num_responses;i++) _printf0_(" "<<setw(10)<<setprecision(5)<<Jlist[(*Jlisti)*JlistN+i]);
-	_printf0_("\n");
+	InversionStatsIter( (*Jlisti)+1, *pf, reCast<double>(Gnorm), &Jlist[(*Jlisti)*JlistN], num_responses);
 
 	/*Clean-up and return*/
@@ -577,8 +568,5 @@
 	double*   dz  = xNew<double>(ndz);
 	if(VerboseControl())_printf0_("   Computing initial solution\n");
-	_printf0_("\n");
-	_printf0_("┌────┬─────────────────┬────────────┬────────────────────────\n");
-	_printf0_("│Iter│  Cost function  │ Grad. norm │  List of contributions \n");
-	_printf0_("├────┼─────────────────┼────────────┼────────────────────────\n");
+	InversionStatsHeader(num_cost_functions);
 
 	/*Prepare structure for m1qn3*/
@@ -602,5 +590,7 @@
 				&gttol,normtype,&impres,&io,imode,&omode,&niter,&nsim,iz,dz,&ndz,
 				&reverse,&indic,izs,rzs,(void*)&mystruct);
-	_printf0_("└────┴─────────────────┴────────────┴────────────────────────\n");
+
+	/*Print exit flag*/
+	InversionStatsFooter(num_cost_functions);
 	switch(int(omode)){
 		case 0:  _printf0_("   Stop requested (indic = 0)\n"); break;
Index: /issm/trunk-jpl/src/c/cores/controlm1qn3_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/controlm1qn3_core.cpp	(revision 27934)
+++ /issm/trunk-jpl/src/c/cores/controlm1qn3_core.cpp	(revision 27935)
@@ -307,5 +307,5 @@
 
 	/*Print info*/
-	InversionStatsIter( (*Jlisti)+1, *pf, Gnorm, &Jlist[(*Jlisti)*JlistN], num_responses);
+	InversionStatsIter( (*Jlisti)+1, *pf, reCast<double>(Gnorm), &Jlist[(*Jlisti)*JlistN], num_responses);
 
 	/*Clean-up and return*/
