Index: /issm/trunk-jpl/externalpackages/matlab/install.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/matlab/install.sh	(revision 15096)
+++ /issm/trunk-jpl/externalpackages/matlab/install.sh	(revision 15097)
@@ -1,35 +1,3 @@
 #!/bin/bash
-set -eu
-
-if [ ! -h install ];
-then
-	echo "  ****************************************************************"
-	echo "  *                                                              *"
-	echo "  * you need create a symbolic link from matlab's root directory *"
-	echo "  *                                                              *"
-	echo "  * First, you need to locate matlab's root directory            *"
-	echo "  * The easiest way to find it is to launch matlab and run the   *"
-	echo "  * following command: matlabroot                                *"
-	echo "  * Then, create a symbolic link using the command 'ln -s ' the  *"
-	echo "  * target directory should be named 'install'                   *"
-	echo "  *                                                              *"
-	echo "  * Examples:                                                    *"
-	echo "  *    ln -s /usr/local/matlab712/ install                       *"
-	echo "  *    ln -s /Applications/MATLAB_R2012a.app/ install            *"
-	echo "  *                                                              *"
-	echo "  * run ./install.sh again to check that the link is correct     *"
-	echo "  *                                                              *"
-	echo "  ****************************************************************"
-else
-
-	#Read link
-	DIR=$(readlink install)
-	if [ -d $DIR ]
-	then
-		echo "Symbolic link correctly set"
-	else
-		rm -rf install
-		echo "Incorrect symbolic link:"
-		echo "provided target ($DIR) does not exist or is not a directory"
-	fi
-fi
+rm -rf install
+ln -s /usr/local/matlab714/ install
Index: /issm/trunk-jpl/src/c/analyses/prognostic_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/prognostic_core.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/analyses/prognostic_core.cpp	(revision 15097)
@@ -32,5 +32,5 @@
 
 	if(issmbgradients){
-	  _printf_(VerboseSolution(),"	call smb gradients module\n");
+	  if(VerboseSolution)_printLine_("	call smb gradients module\n");
 	  SmbGradientsx(femmodel->elements,femmodel->nodes,femmodel->vertices,femmodel->loads,femmodel->materials,femmodel->parameters);
 	}
Index: /issm/trunk-jpl/src/c/kml/KML_LinearRing.cpp
===================================================================
--- /issm/trunk-jpl/src/c/kml/KML_LinearRing.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/kml/KML_LinearRing.cpp	(revision 15097)
@@ -81,6 +81,5 @@
 	if(flag) _pprintLine_(indent << "        coords: (ncoord=" << ncoord << ")");
 	for (i=0; i<ncoord; i++)
-		_printf_(flag,"%s                (%g,%g,%g)\n",indent,
-				coords[3*i+0],coords[3*i+1],coords[3*i+2]);
+		if(flag)_printLine_(indent << "                (" <<coords[3*i+0] << "," <<coords[3*i+1] << "," <<coords[3*i+2] << ")\n");
 
 	return;
Index: /issm/trunk-jpl/src/c/modules/Exp2Kmlx/Exp2Kmlx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Exp2Kmlx/Exp2Kmlx.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/modules/Exp2Kmlx/Exp2Kmlx.cpp	(revision 15097)
@@ -287,6 +287,5 @@
 	clock1=clock();
 	time1 =time(NULL);
-	_printf_(true,"Exp2Kmlx Module -- %f CPU seconds; %f elapsed seconds.\n\n",
-			 ((double)(clock1-clock0))/CLOCKS_PER_SEC,difftime(time1,time0));
+	_printLine_("Exp2Kmlx Module -- " <<((double)(clock1-clock0))/CLOCKS_PER_SEC << " CPU seconds; " <<difftime(time1,time0) << " elapsed seconds.\n\n");
 
 	return(iret);
Index: /issm/trunk-jpl/src/c/modules/KMLFileReadx/KMLFileReadx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/KMLFileReadx/KMLFileReadx.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/modules/KMLFileReadx/KMLFileReadx.cpp	(revision 15097)
@@ -57,6 +57,5 @@
 	clock1=clock();
 	time1 =time(NULL);
-	_printf_(true,"KMLFileReadx Module -- %f CPU seconds; %f elapsed seconds.\n\n",
-			 ((double)(clock1-clock0))/CLOCKS_PER_SEC,difftime(time1,time0));
+	_printLine_("KMLFileReadx Module -- " <<((double)(clock1-clock0))/CLOCKS_PER_SEC << " CPU seconds; " <<difftime(time1,time0) << " elapsed seconds.\n\n");
 
 	return(kfil);
Index: /issm/trunk-jpl/src/c/modules/KMLMeshWritex/KMLMeshWritex.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/KMLMeshWritex/KMLMeshWritex.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/modules/KMLMeshWritex/KMLMeshWritex.cpp	(revision 15097)
@@ -185,6 +185,5 @@
 	clock0a=clock();
 	time0a =time(NULL);
-	_printf_(true,"  Constructed kml document -- %f CPU seconds; %f elapsed seconds.\n\n",
-			 ((double)(clock0a-clock0))/CLOCKS_PER_SEC,difftime(time0a,time0));
+	_printLine_("  Constructed kml document -- " << ((double)(clock0a-clock0))/CLOCKS_PER_SEC << " CPU seconds; " << difftime(time0a,time0) << " elapsed seconds.\n\n");
 
 /*  write kml file  */
@@ -197,6 +196,5 @@
 	clock0b=clock();
 	time0b =time(NULL);
-	_printf_(true,"  Wrote kml file -- %f CPU seconds; %f elapsed seconds.\n\n",
-			 ((double)(clock0b-clock0a))/CLOCKS_PER_SEC,difftime(time0b,time0a));
+	_printLine_("  Wrote kml file -- " << ((double)(clock0b-clock0a))/CLOCKS_PER_SEC << " CPU seconds; " << difftime(time0b,time0a) << " elapsed seconds.\n\n");
 
 	_pprintLine_("Deleting kml document.");
@@ -204,11 +202,9 @@
 	clock0c=clock();
 	time0c =time(NULL);
-	_printf_(true,"  Deleted kml document -- %f CPU seconds; %f elapsed seconds.\n\n",
-			 ((double)(clock0c-clock0b))/CLOCKS_PER_SEC,difftime(time0c,time0b));
+	_printLine_("  Deleted kml document -- " << ((double)(clock0c-clock0b))/CLOCKS_PER_SEC << " CPU seconds; " << difftime(time0c,time0b) << " elapsed seconds.\n\n");
 
 	clock1=clock();
 	time1 =time(NULL);
-	_printf_(true,"KMLMeshWritex Module -- %f CPU seconds; %f elapsed seconds.\n\n",
-			 ((double)(clock1-clock0))/CLOCKS_PER_SEC,difftime(time1,time0));
+	_printLine_("KMLMeshWritex Module -- " << ((double)(clock1-clock0))/CLOCKS_PER_SEC << " CPU seconds; " << difftime(time1,time0) << " elapsed seconds.\n\n");
 
 	return;
Index: /issm/trunk-jpl/src/c/modules/KMLOverlayx/KMLOverlayx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/KMLOverlayx/KMLOverlayx.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/modules/KMLOverlayx/KMLOverlayx.cpp	(revision 15097)
@@ -87,6 +87,5 @@
 	clock1=clock();
 	time1 =time(NULL);
-	_printf_(true,"KMLOverlayx Module -- %f CPU seconds; %f elapsed seconds.\n\n",
-			 ((double)(clock1-clock0))/CLOCKS_PER_SEC,difftime(time1,time0));
+	_printLine_("KMLOverlayx Module -- " << ((double)(clock1-clock0))/CLOCKS_PER_SEC << " CPU seconds; " << difftime(time1,time0) << " elapsed seconds.\n\n");
 
 	return;
Index: /issm/trunk-jpl/src/c/modules/Kml2Expx/Kml2Expx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Kml2Expx/Kml2Expx.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/modules/Kml2Expx/Kml2Expx.cpp	(revision 15097)
@@ -61,6 +61,5 @@
 	clock1=clock();
 	time1 =time(NULL);
-	_printf_(true,"Kml2Expx Module -- %f CPU seconds; %f elapsed seconds.\n\n",
-			 ((double)(clock1-clock0))/CLOCKS_PER_SEC,difftime(time1,time0));
+	_printLine_("Kml2Expx Module -- " << ((double)(clock1-clock0))/CLOCKS_PER_SEC << " CPU seconds; " << difftime(time1,time0) << " elapsed seconds.\n\n");
 
 	return(iret);
Index: /issm/trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/modules/Krigingx/pKrigingx.cpp	(revision 15097)
@@ -142,7 +142,7 @@
 
 	MPI_Barrier(MPI_COMM_WORLD); finish=MPI_Wtime( );
-	_printf_(true,"\n   %-34s %f seconds  \n","Observation fitering elapsed time:",finish_init-start_init);
-	_printf_(true,"   %-34s %f seconds  \n","Kriging prediction elapsed time:",finish_core-start_core);
-	_printf_(true,"\n   %s %i hrs %i min %i sec\n\n","Total elapsed time:",int((finish-start)/3600),int(int(finish-start)%3600/60),int(finish-start)%60);
+	_printLine_("\n   " << setw(34) << left << "Observation fitering elapsed time: " << finish_init-start_init << " seconds  \n");
+	_printLine_("   " << setw(34) << left << "Kriging prediction elapsed time: " << finish_core-start_core << " seconds  \n");
+	_printLine_("\n   " << "Total elapsed time " << int((finish-start)/3600) << " hrs " << int(int(finish-start)%3600/60) << " min " << int(finish-start)%60 << " sec\n\n");
 	return 1;
 #else
Index: /issm/trunk-jpl/src/c/modules/Shp2Expx/Shp2Expx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Shp2Expx/Shp2Expx.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/modules/Shp2Expx/Shp2Expx.cpp	(revision 15097)
@@ -295,9 +295,7 @@
 
 			if (pnpart[i] > 0)
-				_printf_(true,"Warning -- Shape %d of type \"%s\" should not have %d > 0 parts.\n",
-						 i,SHPTypeName( pstype[i] ),pnpart[i]);
+				_printLine_("Warning -- Shape " << i << " of type \"" << SHPTypeName( pstype[i] ) << "\" should not have " << pnpart[i] << " > 0 parts.\n");
 			if (pnvert[i] > 1)
-				_printf_(true,"Warning -- Shape %d of type \"%s\" should not have %d > 1 vertices.\n",
-						 i,SHPTypeName( pstype[i] ),pnvert[i]);
+				_printLine_("Warning -- Shape " << i << " of type \"" << SHPTypeName( pstype[i] ) << "\" should not have " << pnvert[i] << " > 1 vertices.\n");
 
 			kpoint=new KML_Point();
@@ -466,6 +464,5 @@
 				else {
 					if (!kpoly) {
-						_printf_(true,"Warning -- Shape %d of type \"%s\", part %d, expected to be outer loop (cw).\n",
-								 i,SHPTypeName( pstype[i] ),j);
+						_printLine_("Warning -- Shape " << i << " of type \"" << SHPTypeName( pstype[i] ) << "\", part " << j << ", expected to be outer loop (cw).\n");
 						continue;
 					}
@@ -515,6 +512,5 @@
 
 			if (pnpart[i] > 0)
-				_printf_(true,"Warning -- Shape %d of type \"%s\" should not have %d > 0 parts.\n",
-						 i,SHPTypeName( pstype[i] ),pnpart[i]);
+				_printLine_("Warning -- Shape " << i << " of type \"" << SHPTypeName( pstype[i] ) << "\" should not have " << pnpart[i] << " > 0 parts.\n");
 
 /*  create a multigeometry to hold all the points  */
@@ -559,6 +555,5 @@
 
 		else if (pstype[i] == SHPT_MULTIPATCH) {
-			_printf_(true,"Warning -- Shape %d of type \"%s\" will be ignored.\n",
-					 i,SHPTypeName( pstype[i] ));
+			_printLine_("Warning -- Shape " << i << " of type \"" <<SHPTypeName( pstype[i] ) << "\" will be ignored.\n");
 			continue;
 		}
@@ -567,6 +562,5 @@
 
 		else {
-			_printf_(true,"Warning -- Shape %d of type \"%s\" will be ignored.\n",
-					 i,SHPTypeName( pstype[i] ));
+			_printLine_(,"Warning -- Shape " << i << " of type \"" <<SHPTypeName( pstype[i] ) << "\" will be ignored.\n");
 		}
 	}
@@ -615,6 +609,5 @@
 	clock1=clock();
 	time1 =time(NULL);
-	_printf_(true,"Shp2Expx Module -- %f CPU seconds; %f elapsed seconds.\n\n",
-			 ((double)(clock1-clock0))/CLOCKS_PER_SEC,difftime(time1,time0));
+	_printLine_("Shp2Expx Module -- " <<((double)(clock1-clock0))/CLOCKS_PER_SEC << " CPU seconds; " <<difftime(time1,time0)  << " elapsed seconds.\n\n");
 
 	return(iret);
Index: /issm/trunk-jpl/src/c/modules/Shp2Kmlx/Shp2Kmlx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/Shp2Kmlx/Shp2Kmlx.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/modules/Shp2Kmlx/Shp2Kmlx.cpp	(revision 15097)
@@ -283,9 +283,7 @@
 
 			if (pnpart[i] > 0)
-				_printf_(true,"Warning -- Shape %d of type \"%s\" should not have %d > 0 parts.\n",
-						 i,SHPTypeName( pstype[i] ),pnpart[i]);
+				_printLine_("Warning -- Shape "<< i << " of type \"" << SHPTypeName( pstype[i] ) << "\" should not have " << pnpart[i] << " > 0 parts.\n");
 			if (pnvert[i] > 1)
-				_printf_(true,"Warning -- Shape %d of type \"%s\" should not have %d > 1 vertices.\n",
-						 i,SHPTypeName( pstype[i] ),pnvert[i]);
+				_printLine_("Warning -- Shape " << i << " of type \"" << SHPTypeName( pstype[i] ) << "\" should not have " << pnpart[i] << " > 1 vertices.\n");
 
 			kpoint=new KML_Point();
@@ -454,6 +452,5 @@
 				else {
 					if (!kpoly) {
-						_printf_(true,"Warning -- Shape %d of type \"%s\", part %d, expected to be outer loop (cw).\n",
-								 i,SHPTypeName( pstype[i] ),j);
+						_printLine_("Warning -- Shape " << i << " of type \"" << SHPTypeName( pstype[i] ) << "\", part " << j << ", expected to be outer loop (cw).\n");
 						continue;
 					}
@@ -503,6 +500,5 @@
 
 			if (pnpart[i] > 0)
-				_printf_(true,"Warning -- Shape %d of type \"%s\" should not have %d > 0 parts.\n",
-						 i,SHPTypeName( pstype[i] ),pnpart[i]);
+				_printLine_("Warning -- Shape " << i << " of type \"" << SHPTypeName( pstype[i] ) << "\" should not have " << pnpart[i] << " > 0 parts.\n");
 
 /*  create a multigeometry to hold all the points  */
@@ -547,6 +543,5 @@
 
 		else if (pstype[i] == SHPT_MULTIPATCH) {
-			_printf_(true,"Warning -- Shape %d of type \"%s\" will be ignored.\n",
-					 i,SHPTypeName( pstype[i] ));
+			_printLine_("Warning -- Shape " << i << " of type \"" << SHPTypeName( pstype[i] ) << "\" will be ignored.\n");
 			continue;
 		}
@@ -555,6 +550,5 @@
 
 		else {
-			_printf_(true,"Warning -- Shape %d of type \"%s\" will be ignored.\n",
-					 i,SHPTypeName( pstype[i] ));
+			_printLine_("Warning -- Shape " << i << " of type \"" << SHPTypeName( pstype[i] ) << "\" will be ignored.\n");
 		}
 	}
@@ -598,6 +592,5 @@
 	clock1=clock();
 	time1 =time(NULL);
-	_printf_(true,"Shp2Kmlx Module -- %f CPU seconds; %f elapsed seconds.\n\n",
-			 ((double)(clock1-clock0))/CLOCKS_PER_SEC,difftime(time1,time0));
+	_printLine_("Shp2Kmlx Module -- " << ((double)(clock1-clock0))/CLOCKS_PER_SEC << " CPU seconds; " << difftime(time1,time0) << " elapsed seconds.\n\n");
 
 	return(iret);
Index: /issm/trunk-jpl/src/c/shared/Exceptions/exceptions.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/Exceptions/exceptions.h	(revision 15096)
+++ /issm/trunk-jpl/src/c/shared/Exceptions/exceptions.h	(revision 15097)
@@ -64,9 +64,9 @@
 	}\
 	catch (exception& e) {\
-		_printf_(true,"Standard exception: %s\n",e.what());\
+		_printLine_("Standard exception: " << e.what() << "\n");\
 		return 0;\
 	}\
 	catch(...){\
-		_printf_(true,"An unexpected error occurred");\
+		_printLine_("An unexpected error occurred \n");\
 		return 0;\
 	}
Index: /issm/trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/shared/Matrix/MatrixUtils.cpp	(revision 15097)
@@ -205,6 +205,5 @@
 		pindx[ipiv]++;
 
-		//		_printf_(true,"pivot for i=%d: irow=%d, icol=%d, pindx[%d]=%d\n",
-		//				 i,irow,icol,ipiv,pindx[ipiv]);
+		//		_printLine_("pivot for i=" << i << ": irow=" << irow << ", icol=" << icol  << ", pindx[" << ipiv << "]=" << pindx[ipiv] << "\n");
 
 		/*  switch rows to put pivot element on diagonal, noting that the
@@ -212,6 +211,5 @@
 
 		if (irow != icol) {
-			//			_printf_(true,"row switch for i=%d: irow=%d, icol=%d\n",
-			//					 i,irow,icol);
+			//			_printLine_("row switch for i=" << i << ": irow=" << irow << ", icol=" << icol << "\n");
 
 			ipt=irow*ndim;
@@ -294,6 +292,5 @@
 			icol=pivrc2[j];
 
-			//			_printf_(true,"column switch back for j=%d: irow=%d, icol=%d\n",
-			//					 j,irow,icol);
+			//			_printLine_("column switch back for j=" << j << ": irow=" << irow << ", icol=" << icol << "\n");
 
 			ipt=0;
Index: /issm/trunk-jpl/src/c/shared/Numerics/GaussPoints.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/Numerics/GaussPoints.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/shared/Numerics/GaussPoints.cpp	(revision 15097)
@@ -1200,6 +1200,5 @@
 	//	_pprintLine_("GaussLegendreTria - ngaus=" << *pngaus);
 	//	for (i=0; i<*pngaus; i++)
-	//		_printf_(true,"i=%d: l1gaus=%f,l2gaus=%f,l3gaus=%f,wgt=%f\n",
-	//				 i,(*pl1 )[i],(*pl2 )[i],(*pl3 )[i],(*pwgt)[i]);
+	//		_pprintLine_("i=" << i << ": l1gaus=" << (*pl1 )[i] << ",l2gaus=" << (*pl2 )[i] << ",l3gaus=" << (*pl3 )[i]<< ",wgt=" << (*pwgt)[i]<< "\n");
 
 	return;
Index: /issm/trunk-jpl/src/c/shared/io/Print/Print.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Print/Print.h	(revision 15096)
+++ /issm/trunk-jpl/src/c/shared/io/Print/Print.h	(revision 15097)
@@ -19,8 +19,4 @@
 using namespace std;
 /*macros:*/
-/* _printf_ {{{*/
-/*Printing macro: only cpu number 0 */
-#define _printf_(flag,...) do{if(flag) PrintfFunction(__VA_ARGS__);}while(0)
-/*}}}*/
 /* _printLine_ {{{*/
 /* macro to print a line, adds std::endl, only on cpu 0 */
Index: /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp	(revision 15096)
+++ /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp	(revision 15097)
@@ -1,4 +1,4 @@
 /*\file PrintfFunction.c
- *\brief: this function is used by the _printf_ macro, to take into account the 
+ *\brief: this function is used by the print macros, to take into account the 
  *fact we may be running on a cluster. 
  */
