Index: /issm/trunk/src/mex/AddExternalResult/AddExternalResult.cpp
===================================================================
--- /issm/trunk/src/mex/AddExternalResult/AddExternalResult.cpp	(revision 4553)
+++ /issm/trunk/src/mex/AddExternalResult/AddExternalResult.cpp	(revision 4553)
@@ -0,0 +1,54 @@
+/*\file AddExternalResult.c
+ *\brief: output results inside elements, and in femmodel
+ */
+
+#include "./AddExternalResult.h"
+
+void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){
+
+	/*input datasets: */
+	DataSet* results=NULL;
+	int      type,ncols,nraws;
+	double*  value=NULL;
+
+	/*Boot module: */
+	MODULEBOOT();
+
+	/*checks on arguments on the matlab side: */
+	CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&AddExternalResultUsage);
+
+	/*Input datasets: */
+	FetchData(&results,RESULTS);
+	FetchData(&type,TYPE);
+	FetchData(&value,&nraws,&ncols,VALUE);
+
+	/*results might be NILL, allocate: */
+	if(!results)results=new Results(ResultsEnum);
+
+	/*Find class of the value and call the right AddExternalResultx*/
+	if(nraws==1 && ncols==1){  //scalar result
+		AddExternalResultx(results, type, value[0]);
+	}
+	else if(nraws>1 && ncols==1){  //vector result
+		AddExternalResultx(results, type, value, nraws);
+	}
+	else{
+		ISSMERROR("type of result not implemented yet in AddExternalResult");
+	}
+
+	/*write output datasets: */
+	WriteData(RESULTSOUT,results);
+	
+	/*Free ressources: */
+	delete results;
+
+	/*end module: */
+	MODULEEND();
+}
+
+void AddExternalResultUsage(void)
+{
+	_printf_("\n");
+	_printf_("   usage: [results] = %s(results,type,value);\n",__FUNCT__);
+	_printf_("\n");
+}
Index: /issm/trunk/src/mex/AddExternalResult/AddExternalResult.h
===================================================================
--- /issm/trunk/src/mex/AddExternalResult/AddExternalResult.h	(revision 4553)
+++ /issm/trunk/src/mex/AddExternalResult/AddExternalResult.h	(revision 4553)
@@ -0,0 +1,33 @@
+/*
+	AddExternalResult.h
+*/
+
+#ifndef _ADDEXTERNALRESULT_H
+#define _ADDEXTERNALRESULT_H
+
+/* local prototypes: */
+void AddExternalResultUsage(void);
+
+#include "../../c/modules/modules.h"
+#include "../../c/Container/Container.h"
+#include "../../c/shared/shared.h"
+#include "../../c/EnumDefinitions/EnumDefinitions.h"
+
+#undef __FUNCT__ 
+#define __FUNCT__  "AddExternalResult"
+
+/* serial input macros: */
+#define RESULTS (mxArray*)prhs[0]
+#define TYPE (mxArray*)prhs[1]
+#define VALUE (mxArray*)prhs[2]
+
+/* serial output macros: */
+#define RESULTSOUT (mxArray**)&plhs[0]
+
+/* serial arg counts: */
+#undef NLHS
+#define NLHS  1
+#undef NRHS
+#define NRHS  3
+
+#endif  /* _ADDEXTERNALRESULT_H */
Index: /issm/trunk/src/mex/Makefile.am
===================================================================
--- /issm/trunk/src/mex/Makefile.am	(revision 4552)
+++ /issm/trunk/src/mex/Makefile.am	(revision 4553)
@@ -6,4 +6,5 @@
 else
 bin_PROGRAMS = AverageFilter\
+				AddExternalResult\
 				Bamg\
 				BamgConvertMesh\
@@ -100,4 +101,7 @@
 AM_CXXFLAGS += $(CXXOPTFLAGS)
 
+AddExternalResult_SOURCES = AddExternalResult/AddExternalResult.cpp\
+					AddExternalResult/AddExternalResult.h
+
 BuildNodeSets_SOURCES = BuildNodeSets/BuildNodeSets.cpp\
 			  BuildNodeSets/BuildNodeSets.h
