Index: /issm/trunk-jpl/src/c/classes/ExternalResults/ExternalResult.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/ExternalResults/ExternalResult.h	(revision 18885)
+++ /issm/trunk-jpl/src/c/classes/ExternalResults/ExternalResult.h	(revision 18886)
@@ -28,4 +28,5 @@
 		virtual int    GetStep(void)=0;
 		virtual double GetValue(void)=0;
+		virtual int    GetResultEnum(void)=0;
 };
 #endif
Index: /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 18885)
+++ /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 18886)
@@ -160,11 +160,17 @@
 		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");
 } /*}}}*/
 };
@@ -367,4 +373,7 @@
 	return DoubleMatExternalResultEnum;
 } /*}}}*/
+template <> inline double* GenericExternalResult<IssmPDouble*>::GetValues(void){ /*{{{*/
+	return value;
+} /*}}}*/
 
 /*Specific instantiations for IssmDouble*: */
Index: /issm/trunk-jpl/src/c/classes/ExternalResults/Results.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/ExternalResults/Results.cpp	(revision 18885)
+++ /issm/trunk-jpl/src/c/classes/ExternalResults/Results.cpp	(revision 18886)
@@ -94,2 +94,14 @@
 }
 /*}}}*/
+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: /issm/trunk-jpl/src/c/classes/ExternalResults/Results.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/ExternalResults/Results.h	(revision 18885)
+++ /issm/trunk-jpl/src/c/classes/ExternalResults/Results.h	(revision 18886)
@@ -22,4 +22,5 @@
 		/*Mehthos*/
 		int AddResult(ExternalResult* result);
+		ExternalResult* FindResult(int result_enum);
 		int DeleteResult(int result_enum,int result_step);
 		void Write(Parameters* parameters);
