Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 4142)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 4143)
@@ -260,8 +260,10 @@
 	DoubleExternalResultEnum,
 	DoubleVecExternalResultEnum,
+	DoubleMatExternalResultEnum,
 	IntExternalResultEnum,
 	PetscVecExternalResultEnum,
 	StringExternalResultEnum,
 	JEnum,
+	PatchEnum,
 	/*}}}*/
 	/*Convergence{{{1*/
Index: /issm/trunk/src/c/Makefile.am
===================================================================
--- /issm/trunk/src/c/Makefile.am	(revision 4142)
+++ /issm/trunk/src/c/Makefile.am	(revision 4143)
@@ -124,4 +124,6 @@
 					./objects/ExternalResults/DoubleVecExternalResult.h\
 					./objects/ExternalResults/DoubleVecExternalResult.cpp\
+					./objects/ExternalResults/DoubleMatExternalResult.h\
+					./objects/ExternalResults/DoubleMatExternalResult.cpp\
 					./objects/ExternalResults/IntExternalResult.h\
 					./objects/ExternalResults/IntExternalResult.cpp\
@@ -651,4 +653,6 @@
 					./objects/ExternalResults/DoubleVecExternalResult.h\
 					./objects/ExternalResults/DoubleVecExternalResult.cpp\
+					./objects/ExternalResults/DoubleMatExternalResult.h\
+					./objects/ExternalResults/DoubleMatExternalResult.cpp\
 					./objects/ExternalResults/IntExternalResult.h\
 					./objects/ExternalResults/IntExternalResult.cpp\
Index: /issm/trunk/src/c/modules/OutputResultsx/ElementResultsToPatch.cpp
===================================================================
--- /issm/trunk/src/c/modules/OutputResultsx/ElementResultsToPatch.cpp	(revision 4142)
+++ /issm/trunk/src/c/modules/OutputResultsx/ElementResultsToPatch.cpp	(revision 4143)
@@ -95,5 +95,5 @@
 
 	/*create Result object and add to results dataset: */
-	results->AddObject(new DoubleMatExternalResult(results->Size()+1,PatchEnum,patch->numrows,patch->numcols,1,0));
+	results->AddObject(new DoubleMatExternalResult(results->Size()+1,PatchEnum,patch->values,patch->numrows,patch->numcols,1,0));
 
 	/*Free ressources:*/
Index: /issm/trunk/src/c/modules/OutputResultsx/OutputResultsx.cpp
===================================================================
--- /issm/trunk/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 4142)
+++ /issm/trunk/src/c/modules/OutputResultsx/OutputResultsx.cpp	(revision 4143)
@@ -11,4 +11,5 @@
 
 #include "stdio.h"
+#include "./OutputResultsx.h"
 #include "../../DataSet/DataSet.h"
 #include "../../io/io.h"
Index: /issm/trunk/src/c/objects/ExternalResults/BoolExternalResult.cpp
===================================================================
--- /issm/trunk/src/c/objects/ExternalResults/BoolExternalResult.cpp	(revision 4142)
+++ /issm/trunk/src/c/objects/ExternalResults/BoolExternalResult.cpp	(revision 4143)
@@ -147,4 +147,5 @@
 	int     length;
 	int     type;
+	int     size;
 	char   *name    = NULL;
 	double  boolean;
Index: /issm/trunk/src/c/objects/ExternalResults/DoubleExternalResult.cpp
===================================================================
--- /issm/trunk/src/c/objects/ExternalResults/DoubleExternalResult.cpp	(revision 4142)
+++ /issm/trunk/src/c/objects/ExternalResults/DoubleExternalResult.cpp	(revision 4143)
@@ -147,4 +147,5 @@
 	int     length;
 	int     type;
+	int     size;
 	char   *name    = NULL;
 	extern  int my_rank;
Index: /issm/trunk/src/c/objects/ExternalResults/DoubleMatExternalResult.cpp
===================================================================
--- /issm/trunk/src/c/objects/ExternalResults/DoubleMatExternalResult.cpp	(revision 4142)
+++ /issm/trunk/src/c/objects/ExternalResults/DoubleMatExternalResult.cpp	(revision 4143)
@@ -26,5 +26,5 @@
 }
 /*}}}*/
-/*FUNCTION DoubleMatExternalResult::DoubleMatExternalResult(int enum_type,IssmDoubleMat values,int M,int N){{{1*/
+/*FUNCTION DoubleMatExternalResult::DoubleMatExternalResult(int in_id, int enum_type,IssmDoubleMat values,int M,int N,int in_step,double in_time){{{1*/
 DoubleMatExternalResult::DoubleMatExternalResult(int in_id, int in_enum_type,double* in_values, int in_M,int in_N,int in_step,double in_time){
 
@@ -173,4 +173,5 @@
 	int     length;
 	int     type;
+	int     size;
 	char   *name    = NULL;
 	extern  int my_rank;
Index: /issm/trunk/src/c/objects/ExternalResults/DoubleVecExternalResult.cpp
===================================================================
--- /issm/trunk/src/c/objects/ExternalResults/DoubleVecExternalResult.cpp	(revision 4142)
+++ /issm/trunk/src/c/objects/ExternalResults/DoubleVecExternalResult.cpp	(revision 4143)
@@ -169,4 +169,5 @@
 	int     length;
 	int     type;
+	int     size;
 	char   *name    = NULL;
 	extern  int my_rank;
Index: /issm/trunk/src/c/objects/ExternalResults/IntExternalResult.cpp
===================================================================
--- /issm/trunk/src/c/objects/ExternalResults/IntExternalResult.cpp	(revision 4142)
+++ /issm/trunk/src/c/objects/ExternalResults/IntExternalResult.cpp	(revision 4143)
@@ -147,4 +147,5 @@
 	int     length;
 	int     type;
+	int     size;
 	char   *name    = NULL;
 	double  integer;
@@ -169,5 +170,5 @@
 	/*writing a double, type is 1, size is 1: */
 	type=1;
-	size=this->M;
+	size=1;
 	fwrite(&type,sizeof(int),1,fid);
 	fwrite(&size,sizeof(int),1,fid);
Index: /issm/trunk/src/c/objects/ExternalResults/PetscVecExternalResult.cpp
===================================================================
--- /issm/trunk/src/c/objects/ExternalResults/PetscVecExternalResult.cpp	(revision 4142)
+++ /issm/trunk/src/c/objects/ExternalResults/PetscVecExternalResult.cpp	(revision 4143)
@@ -201,4 +201,5 @@
 	int     length;
 	int     type;
+	int     size;
 	char   *name      = NULL;
 	double *serialvec = NULL;
Index: /issm/trunk/src/c/objects/objects.h
===================================================================
--- /issm/trunk/src/c/objects/objects.h	(revision 4142)
+++ /issm/trunk/src/c/objects/objects.h	(revision 4143)
@@ -63,4 +63,5 @@
 #include "./ExternalResults/DoubleExternalResult.h"
 #include "./ExternalResults/DoubleVecExternalResult.h"
+#include "./ExternalResults/DoubleMatExternalResult.h"
 #include "./ExternalResults/IntExternalResult.h"
 #include "./ExternalResults/PetscVecExternalResult.h"
Index: /issm/trunk/src/c/solutions/balancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/solutions/balancedthickness.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/balancedthickness.cpp	(revision 4143)
@@ -84,5 +84,5 @@
 
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters);
 	}
 	else{
Index: /issm/trunk/src/c/solutions/balancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/solutions/balancedthickness2.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/balancedthickness2.cpp	(revision 4143)
@@ -82,5 +82,5 @@
 
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters);
 
 	}
Index: /issm/trunk/src/c/solutions/balancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/solutions/balancedvelocities.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/balancedvelocities.cpp	(revision 4143)
@@ -85,5 +85,5 @@
 
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters);
 
 	}
Index: /issm/trunk/src/c/solutions/bedslope.cpp
===================================================================
--- /issm/trunk/src/c/solutions/bedslope.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/bedslope.cpp	(revision 4143)
@@ -86,5 +86,5 @@
 
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
 	}
 	else{
Index: /issm/trunk/src/c/solutions/controlrestart.cpp
===================================================================
--- /issm/trunk/src/c/solutions/controlrestart.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/controlrestart.cpp	(revision 4143)
@@ -22,5 +22,5 @@
 
 	/*write to disk: */
-	OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
+	OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
 
 }
Index: /issm/trunk/src/c/solutions/diagnostic.cpp
===================================================================
--- /issm/trunk/src/c/solutions/diagnostic.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/diagnostic.cpp	(revision 4143)
@@ -96,5 +96,5 @@
 
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
 	}
 	else{
Index: /issm/trunk/src/c/solutions/prognostic.cpp
===================================================================
--- /issm/trunk/src/c/solutions/prognostic.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/prognostic.cpp	(revision 4143)
@@ -86,5 +86,5 @@
 		
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
 
 	}
Index: /issm/trunk/src/c/solutions/prognostic2.cpp
===================================================================
--- /issm/trunk/src/c/solutions/prognostic2.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/prognostic2.cpp	(revision 4143)
@@ -85,5 +85,5 @@
 
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
 
 	}
Index: /issm/trunk/src/c/solutions/steadystate.cpp
===================================================================
--- /issm/trunk/src/c/solutions/steadystate.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/steadystate.cpp	(revision 4143)
@@ -103,5 +103,5 @@
 
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
 
 	}
Index: /issm/trunk/src/c/solutions/surfaceslope.cpp
===================================================================
--- /issm/trunk/src/c/solutions/surfaceslope.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/surfaceslope.cpp	(revision 4143)
@@ -86,5 +86,5 @@
 
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
 	}
 	else{
Index: /issm/trunk/src/c/solutions/thermal.cpp
===================================================================
--- /issm/trunk/src/c/solutions/thermal.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/thermal.cpp	(revision 4143)
@@ -88,5 +88,5 @@
 		
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
 
 	}
Index: /issm/trunk/src/c/solutions/transient2d.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient2d.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/transient2d.cpp	(revision 4143)
@@ -82,5 +82,5 @@
 	
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
 	}
 	else{
Index: /issm/trunk/src/c/solutions/transient3d.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient3d.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/transient3d.cpp	(revision 4143)
@@ -82,5 +82,5 @@
 	
 		_printf_("write results to disk:\n");
-		OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
+		OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
 	}
 	else{
Index: /issm/trunk/src/c/solutions/transient3d_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient3d_core.cpp	(revision 4142)
+++ /issm/trunk/src/c/solutions/transient3d_core.cpp	(revision 4143)
@@ -70,5 +70,5 @@
 		if (step%5==0){
 			if(verbose)_printf_("%s","      saving temporary results...");
-			OutputResults(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
+			OutputResultsx(femmodel->elements, femmodel->loads, femmodel->nodes, femmodel->vertices, femmodel->materials, femmodel->parameters,femmodel->results);
 		}
 	}
