Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 15090)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 15091)
@@ -944,6 +944,4 @@
 libISSMCore_la_LIBADD = $(PETSCLIB) $(TAOLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(FORTRANLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(ADOLCLIB)
 libISSMCore_la_FFLAGS = $(AM_FFLAGS)
-
-libISSMOverload_la_SOURCES = ./shared/String/stricmp.c
 endif
 
@@ -971,5 +969,7 @@
 #}}}
 #Overload library, to overload any non-standard symbols. {{{
-libISSMOverload_a_SOURCES = ./shared/String/stricmp.c
+libISSMOverload_a_SOURCES = ./shared/String/stricmp.cpp\
+							./shared/String/ApiPrintf.cpp
+
 libISSMOverload_a_CFLAGS  = -fPIC -D_C_ $(COPTFLAGS) $(CFLAGS)
 #}}}
Index: /issm/trunk-jpl/src/c/shared/String/ApiPrintf.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/String/ApiPrintf.cpp	(revision 15091)
+++ /issm/trunk-jpl/src/c/shared/String/ApiPrintf.cpp	(revision 15091)
@@ -0,0 +1,18 @@
+/*!\file:  ApiPrintf: this file only gets compiled and linked for issm.exe. API specific 
+ * versions of this file (for Python and Matlab) will be used for the wrappers (modules). 
+ */ 
+
+#ifdef HAVE_CONFIG_H
+	#include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+
+void ApiPrintf(char* format, const char* string){
+	printf(format,string);
+
+}
Index: /issm/trunk-jpl/src/c/shared/String/sharedstring.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/String/sharedstring.h	(revision 15090)
+++ /issm/trunk-jpl/src/c/shared/String/sharedstring.h	(revision 15091)
@@ -12,3 +12,5 @@
 #endif
 
+void ApiPrintf(char* format,const char* string);
+
 #endif //ifndef _SHAREDSTRING_H_
Index: sm/trunk-jpl/src/c/shared/String/stricmp.c
===================================================================
--- /issm/trunk-jpl/src/c/shared/String/stricmp.c	(revision 15090)
+++ 	(revision )
@@ -1,11 +1,0 @@
-/* \file stricmp.cpp
- * \brief bypass non-standard stricmp
- */
-
-#ifndef WIN32
-
-#include <strings.h>
-int stricmp(const char* a,const char* b){
-	return  strcasecmp(a,b);
-}
-#endif
Index: /issm/trunk-jpl/src/c/shared/String/stricmp.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/String/stricmp.cpp	(revision 15091)
+++ /issm/trunk-jpl/src/c/shared/String/stricmp.cpp	(revision 15091)
@@ -0,0 +1,11 @@
+/* \file stricmp.cpp
+ * \brief bypass non-standard stricmp
+ */
+
+#ifndef WIN32
+
+#include <strings.h>
+int stricmp(const char* a,const char* b){
+	return  strcasecmp(a,b);
+}
+#endif
Index: /issm/trunk-jpl/src/c/shared/io/Print/Print.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Print/Print.h	(revision 15090)
+++ /issm/trunk-jpl/src/c/shared/io/Print/Print.h	(revision 15091)
@@ -52,4 +52,12 @@
 /*}}}*/
 
+/* _printLine_ {{{*/
+/* macro to print a line, adds std::endl, only on cpu 0 */
+#define _printLine_(StreamArgs)\
+  do{std::ostringstream aLoNgAnDwEiRdLoCaLnAmeFoRtHiSmAcRoOnLy; \
+	  aLoNgAnDwEiRdLoCaLnAmeFoRtHiSmAcRoOnLy << StreamArgs << std::ends; \
+	  PrintfFunction3(aLoNgAnDwEiRdLoCaLnAmeFoRtHiSmAcRoOnLy.str());}while(0)
+/*}}}*/
+
 /*functions: */
 int PrintfFunction(const char* format,...);
Index: /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp	(revision 15090)
+++ /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp	(revision 15091)
@@ -17,4 +17,5 @@
 #include "./Print.h"
 #include "../Comm/Comm.h"
+#include "../../String/sharedstring.h"
 #include "../../MemOps/MemOps.h"
 
@@ -71,5 +72,5 @@
 		__android_log_print(ANDROID_LOG_INFO, "Native",message.c_str());
 		#else
-		printf("%s\n",message.c_str());
+		ApiPrintf("%s\n",message.c_str());
 		#endif
 	}
@@ -83,5 +84,5 @@
 
 	if(my_rank==0){
-		printf("%s",message.c_str());
+		ApiPrintf("%s",message.c_str());
 	}
 	return 1;
@@ -92,5 +93,5 @@
 	__android_log_print(ANDROID_LOG_INFO, "Native",message.c_str());
 	#else
-	printf("%s\n",message.c_str());
+	ApiPrintf("%s\n",message.c_str());
 	#endif
 
@@ -99,5 +100,5 @@
 int PrintfFunction4(const string & message){
 
-	printf("%s",message.c_str());
+	ApiPrintf("%s",message.c_str());
 
 	return 1;
Index: /issm/trunk-jpl/src/wrappers/matlab/io/WriteMatlabData.cpp
===================================================================
--- /issm/trunk-jpl/src/wrappers/matlab/io/WriteMatlabData.cpp	(revision 15090)
+++ /issm/trunk-jpl/src/wrappers/matlab/io/WriteMatlabData.cpp	(revision 15091)
@@ -488,2 +488,13 @@
 }
 /*}}}*/
+
+/*Matlab printf i/o: */
+/*FUNCTION ApiPrintf(char* format, const char* string){{{*/
+void ApiPrintf(char* format,const char* string){
+
+	/*use mexPrintf in matlab: */
+	mexPrintf(format,string);
+	
+	return;
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/wrappers/matlab/io/matlabio.h
===================================================================
--- /issm/trunk-jpl/src/wrappers/matlab/io/matlabio.h	(revision 15090)
+++ /issm/trunk-jpl/src/wrappers/matlab/io/matlabio.h	(revision 15091)
@@ -16,4 +16,5 @@
 #include "../../c/classes/classes.h"
 #include "../../c/toolkits/toolkits.h"
+#include "../../c/shared/shared.h"
 
 void WriteData(mxArray** pdataref,IssmDenseMat<double>* matrix);
@@ -95,3 +96,4 @@
 #endif
 
+
 #endif	/* _IO_H_ */
Index: /issm/trunk-jpl/src/wrappers/python/io/WritePythonData.cpp
===================================================================
--- /issm/trunk-jpl/src/wrappers/python/io/WritePythonData.cpp	(revision 15090)
+++ /issm/trunk-jpl/src/wrappers/python/io/WritePythonData.cpp	(revision 15091)
@@ -291,2 +291,13 @@
 }
 /*}}}*/
+
+/*Python printf i/o: */
+/*FUNCTION ApiPrintf(char* format, const char* string){{{*/
+void ApiPrintf(char* format,const char* string){
+
+	/*use printf: */
+	printf(format,string);
+	
+	return;
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/wrappers/python/io/pythonio.h
===================================================================
--- /issm/trunk-jpl/src/wrappers/python/io/pythonio.h	(revision 15090)
+++ /issm/trunk-jpl/src/wrappers/python/io/pythonio.h	(revision 15091)
@@ -15,4 +15,5 @@
 #include "../../c/bamg/bamgobjects.h"
 #include "../../c/classes/classes.h"
+#include "../../c/shared/shared.h"
 
 void WriteData(PyObject* py_tuple,int index, double* matrix, int M,int N);
