Index: ../trunk-jpl/src/c/classes/ExternalResults/Results.cpp
===================================================================
--- ../trunk-jpl/src/c/classes/ExternalResults/Results.cpp	(revision 18885)
+++ ../trunk-jpl/src/c/classes/ExternalResults/Results.cpp	(revision 18886)
@@ -93,3 +93,15 @@
 	return 1;
 }
 /*}}}*/
+ExternalResult* Results::FindResult(int result_enum){/*{{{*/
+
+	for(int i=0;i<this->Size();i++){
+		ExternalResult* result=xDynamicCast<ExternalResult*>(this->GetObjectByOffset(i));
+
+		if(result->GetResultEnum()==result_enum){
+			return result;
+		}
+	}
+	return NULL;
+}
+/*}}}*/
Index: ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h
===================================================================
--- ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 18885)
+++ ../trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 18886)
@@ -159,14 +159,20 @@
 		xMemCpy<char>(name,this->result_name,strlen(this->result_name)+1);
 		return name;
 } /*}}}*/
+int GetResultEnum(void){ /*{{{*/
+		return StringToEnumx(this->result_name,false);
+} /*}}}*/
 int   GetStep(void){ /*{{{*/
 	return this->step;
 } /*}}}*/
-IssmPDouble GetValue(void){ /*{{{*/
+double GetValue(void){ /*{{{*/
 	/*Only supported by IssmPDouble result, error out by default*/
 	_error_("not supported for this type of result");
-	return 0.;
 } /*}}}*/
+double* GetValues(void){ /*{{{*/
+	/*Only supported by IssmPDouble* result, error out by default*/
+	_error_("not supported for this type of result");
+} /*}}}*/
 };
 
 /*Specific instantiations for bool: */
@@ -366,6 +372,9 @@
 template <> inline int GenericExternalResult<IssmPDouble*>::ObjectEnum(void){ /*{{{*/
 	return DoubleMatExternalResultEnum;
 } /*}}}*/
+template <> inline double* GenericExternalResult<IssmPDouble*>::GetValues(void){ /*{{{*/
+	return value;
+} /*}}}*/
 
 /*Specific instantiations for IssmDouble*: */
 #if defined(_HAVE_ADOLC_) && !defined(_WRAPPERS_)  //We hook off this specific specialization when not running ADOLC, otherwise we get a redeclaration with the next specialization. 
Index: ../trunk-jpl/src/c/classes/ExternalResults/ExternalResult.h
===================================================================
--- ../trunk-jpl/src/c/classes/ExternalResults/ExternalResult.h	(revision 18885)
+++ ../trunk-jpl/src/c/classes/ExternalResults/ExternalResult.h	(revision 18886)
@@ -27,5 +27,6 @@
 		virtual char*  GetResultName(void)=0;
 		virtual int    GetStep(void)=0;
 		virtual double GetValue(void)=0;
+		virtual int    GetResultEnum(void)=0;
 };
 #endif
Index: ../trunk-jpl/src/c/classes/ExternalResults/Results.h
===================================================================
--- ../trunk-jpl/src/c/classes/ExternalResults/Results.h	(revision 18885)
+++ ../trunk-jpl/src/c/classes/ExternalResults/Results.h	(revision 18886)
@@ -21,6 +21,7 @@
 
 		/*Mehthos*/
 		int AddResult(ExternalResult* result);
+		ExternalResult* FindResult(int result_enum);
 		int DeleteResult(int result_enum,int result_step);
 		void Write(Parameters* parameters);
 };
