Index: issm/trunk/src/c/Container/DataSet.cpp
===================================================================
--- issm/trunk/src/c/Container/DataSet.cpp	(revision 4553)
+++ issm/trunk/src/c/Container/DataSet.cpp	(revision 4554)
@@ -366,4 +366,16 @@
 			dataset->AddObject(stringparam);
 		}
+		else if(enum_type==DoubleVecExternalResultEnum){
+			DoubleVecExternalResult* doublevecexternalresult=NULL;
+			doublevecexternalresult=new DoubleVecExternalResult();
+			doublevecexternalresult->Demarshall(&marshalled_dataset);
+			dataset->AddObject(doublevecexternalresult);
+		}
+		else if(enum_type==DoubleExternalResultEnum){
+			DoubleExternalResult* doubleexternalresult=NULL;
+			doubleexternalresult=new DoubleExternalResult();
+			doubleexternalresult->Demarshall(&marshalled_dataset);
+			dataset->AddObject(doubleexternalresult);
+		}
 		else{
 			ISSMERROR("could not recognize enum type: %i (%s)",enum_type,EnumAsString(enum_type));
Index: issm/trunk/src/c/Makefile.am
===================================================================
--- issm/trunk/src/c/Makefile.am	(revision 4553)
+++ issm/trunk/src/c/Makefile.am	(revision 4554)
@@ -335,4 +335,6 @@
 					./EnumDefinitions/StringAsEnum.cpp\
 					./EnumDefinitions/EnumAsModelField.cpp\
+					./modules/AddExternalResultx/AddExternalResultx.h\
+					./modules/AddExternalResultx/AddExternalResultx.cpp\
 					./modules/ModelProcessorx/ModelProcessorx.h\
 					./modules/ModelProcessorx/ModelProcessorx.cpp\
@@ -885,4 +887,6 @@
 					./EnumDefinitions/StringAsEnum.cpp\
 					./EnumDefinitions/EnumAsModelField.cpp\
+					./modules/AddExternalResultx/AddExternalResultx.h\
+					./modules/AddExternalResultx/AddExternalResultx.cpp\
 					./modules/ModelProcessorx/ModelProcessorx.h\
 					./modules/ModelProcessorx/ModelProcessorx.cpp\
Index: issm/trunk/src/c/modules/AddExternalResultx/AddExternalResultx.cpp
===================================================================
--- issm/trunk/src/c/modules/AddExternalResultx/AddExternalResultx.cpp	(revision 4554)
+++ issm/trunk/src/c/modules/AddExternalResultx/AddExternalResultx.cpp	(revision 4554)
@@ -0,0 +1,18 @@
+/*!\file:  AddExternalResultx.cpp
+ * \brief: go through our finite elements, and see what results they have stored within. 
+ * Then output them into serialized patch arrays, and dump to disk.
+ */ 
+
+#include "./AddExternalResultx.h"
+#include "../../Container/Container.h"
+#include "../../io/io.h"
+#include "../../objects/objects.h"
+		
+void AddExternalResultx( DataSet* results, int enumtype, double value){
+	/* Add new result in into results*/
+	results->AddObject(new DoubleExternalResult(results->Size()+1,enumtype,value,1,0));
+}
+void AddExternalResultx( DataSet* results, int enumtype, double* value, int nraws){
+	/* Add new result in into results*/
+	results->AddObject(new DoubleVecExternalResult(results->Size()+1,enumtype,value,nraws,1,0));
+}
Index: issm/trunk/src/c/modules/AddExternalResultx/AddExternalResultx.h
===================================================================
--- issm/trunk/src/c/modules/AddExternalResultx/AddExternalResultx.h	(revision 4554)
+++ issm/trunk/src/c/modules/AddExternalResultx/AddExternalResultx.h	(revision 4554)
@@ -0,0 +1,14 @@
+/*!\file:  AddExternalResultx.h
+ * \brief header file for outputing results
+ */ 
+
+#ifndef _ADDEXTERNALRESULTX_H
+#define _ADDEXTERNALRESULTX_H
+
+#include "../../Container/Container.h"
+
+/* local prototypes: */
+void AddExternalResultx(DataSet* results, int type, double value);
+void AddExternalResultx(DataSet* results, int type, double* value, int nraws);
+
+#endif  /* _ADDEXTERNALRESULT_H */
Index: issm/trunk/src/c/modules/modules.h
===================================================================
--- issm/trunk/src/c/modules/modules.h	(revision 4553)
+++ issm/trunk/src/c/modules/modules.h	(revision 4554)
@@ -7,4 +7,5 @@
 
 /*Modules: */
+#include "./AddExternalResultx/AddExternalResultx.h"
 #include "./ModelProcessorx/ModelProcessorx.h"
 #include "./VerticesDofx/VerticesDofx.h"
