Index: /issm/trunk-jpl/src/c/shared/Elements/PrintArrays.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Elements/PrintArrays.cpp	(revision 27933)
+++ /issm/trunk-jpl/src/c/shared/Elements/PrintArrays.cpp	(revision 27934)
@@ -86,17 +86,22 @@
 
 void InversionStatsHeader(int NJ){
+	//https://cboard.cprogramming.com/c-programming/151930-ascii-table-border.html
+	int width = max(10*NJ,24);
 	_printf0_("\n");
-	_printf0_("┌────┬─────────────────┬────────────┬────────────────────────\n");
-	_printf0_("│Iter│  Cost function  │ Grad. norm │  List of contributions \n");
-	_printf0_("├────┼─────────────────┼────────────┼────────────────────────\n");
+	_printf0_("┌────┬─────────────────┬────────────┬"); for(int i=0;i<width;i++){_printf0_("─");} _printf0_("┐\n");
+	_printf0_("│Iter│  Cost function  │ Grad. norm │  List of contributions "); for(int i=0;i<width-24;i++){_printf0_(" ");} _printf0_("│\n");
+	_printf0_("├────┼─────────────────┼────────────┼"); for(int i=0;i<width;i++){_printf0_("─");} _printf0_("┤\n");
 }
 void InversionStatsIter(int iter,double J, double Gnorm, double* Jlist, int N){
+	int width = max(10*N,24);
 	_printf0_("│"<<setw(3)<<iter<<" ");
 	_printf0_("│ f(x)="<<setw(10)<<setprecision(5)<<J<<" ");
 	_printf0_("│   "<<setw(8)<<setprecision(3)<<Gnorm<<" │");
-	for(int i=0;i<N;i++) _printf0_(" "<<setw(10)<<setprecision(5)<<Jlist[i]);
-	_printf0_("\n");
+	for(int i=0;i<N;i++) _printf0_(" "<<setw(9)<<setprecision(4)<<Jlist[i]);
+	for(int i=0;i<width-10*N;i++){_printf0_(" ");}
+	_printf0_("│\n");
 }
 void InversionStatsFooter(int NJ){
-	_printf0_("└────┴─────────────────┴────────────┴────────────────────────\n");
+	int width = max(10*NJ,24);
+	_printf0_("└────┴─────────────────┴────────────┴");for(int i=0;i<width;i++){_printf0_("─");} _printf0_("┘\n");
 }
