Index: /issm/trunk/src/c/Container/Options.cpp
===================================================================
--- /issm/trunk/src/c/Container/Options.cpp	(revision 7759)
+++ /issm/trunk/src/c/Container/Options.cpp	(revision 7760)
@@ -215,4 +215,23 @@
 	}
 
+}
+/*}}}*/
+/*FUNCTION Options::Get(double** pvalue,int* numel,const char* name){{{1*/
+void Options::Get(double** pvalue,int* numel,const char* name){
+
+	vector<Object*>::iterator object;
+	Option* option=NULL;
+
+	/*Get option*/
+	option=GetOption(name);
+
+	/*If the pointer is not NULL, the option has been found*/
+	if(option){
+		option->Get(pvalue,numel);
+	}
+	/*Else, the Option does not exist, no default provided*/
+	else{
+		_error_("option of name \"%s\" not found, and no default value has been provided",name);
+	}
 }
 /*}}}*/
Index: /issm/trunk/src/c/Container/Options.h
===================================================================
--- /issm/trunk/src/c/Container/Options.h	(revision 7759)
+++ /issm/trunk/src/c/Container/Options.h	(revision 7760)
@@ -23,10 +23,11 @@
 		int  AddOption(Option* in_oobject);
 		Option* GetOption(const char* name);
-		void Get(double* pvalue,const char* name);
-		void Get(double* pvalue,const char* name,double default_value);
-		void Get(bool*   pvalue,const char* name);
-		void Get(bool*   pvalue,const char* name,bool default_value);
-		void Get(char**  pvalue,const char* name);
-		void Get(char**  pvalue,const char* name,const char* default_value);
+		void Get(double*  pvalue,const char* name);
+		void Get(double*  pvalue,const char* name,double default_value);
+		void Get(bool*    pvalue,const char* name);
+		void Get(bool*    pvalue,const char* name,bool default_value);
+		void Get(char**   pvalue,const char* name);
+		void Get(char**   pvalue,const char* name,const char* default_value);
+		void Get(double** pvalue,int* numel,const char* name);
 };
 
Index: /issm/trunk/src/c/objects/Options/Option.h
===================================================================
--- /issm/trunk/src/c/objects/Options/Option.h	(revision 7759)
+++ /issm/trunk/src/c/objects/Options/Option.h	(revision 7760)
@@ -48,4 +48,5 @@
 		virtual void  Get(bool* pvalue)=0;
 		virtual void  Get(char** pvalue)=0;
+		virtual void  Get(double** pvalue,int *pnumel)=0;
 
 };
Index: /issm/trunk/src/c/objects/Options/OptionCell.h
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionCell.h	(revision 7759)
+++ /issm/trunk/src/c/objects/Options/OptionCell.h	(revision 7760)
@@ -45,4 +45,5 @@
 		void  Get(bool* pvalue){  _error_("An OptionCell object cannot return a bool");};
 		void  Get(char** pvalue){ _error_("An OptionCell object cannot return a string");};
+		void  Get(double** pvalue,int *pnumel){ _error_("An OptionCell object cannot return a double vec");};
 
 };
Index: /issm/trunk/src/c/objects/Options/OptionChar.h
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionChar.h	(revision 7759)
+++ /issm/trunk/src/c/objects/Options/OptionChar.h	(revision 7760)
@@ -45,4 +45,5 @@
 		void  Get(bool* pvalue){  _error_("An OptionChar object cannot return a bool");};
 		void  Get(char** pvalue);
+		void  Get(double** pvalue,int *pnumel){ _error_("An OptionChar object cannot return a double vec");};
 
 };
Index: /issm/trunk/src/c/objects/Options/OptionDouble.cpp
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionDouble.cpp	(revision 7759)
+++ /issm/trunk/src/c/objects/Options/OptionDouble.cpp	(revision 7760)
@@ -131,2 +131,19 @@
 }
 /*}}}*/
+/*FUNCTION OptionDouble::Get(double** pvalue,int* numel) {{{1*/
+void OptionDouble::Get(double** pvalue,int* numel){
+
+	/*We should first check that the size is one*/
+	if(this->NumEl()<=0){
+		_error_("option \"%s\" is empty and cannot return a double vector",this->name);
+	}
+
+	/*Copy vector*/
+	double* outvalue=(double*)xmalloc(this->NumEl()*sizeof(double));
+	for(int i=0;i<this->NumEl();i++) outvalue[i]=this->values[i];
+
+	/*Assign output pointer*/
+	*pvalue=outvalue;
+	if(numel) *numel=this->NumEl();
+}
+/*}}}*/
Index: /issm/trunk/src/c/objects/Options/OptionDouble.h
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionDouble.h	(revision 7759)
+++ /issm/trunk/src/c/objects/Options/OptionDouble.h	(revision 7760)
@@ -45,4 +45,5 @@
 		void  Get(bool* pvalue){  _error_("An OptionDouble object cannot return a bool");};
 		void  Get(char** pvalue){ _error_("An OptionDouble object cannot return a string");};
+		void  Get(double** pvalue,int* pnumel);
 
 };
Index: /issm/trunk/src/c/objects/Options/OptionLogical.h
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionLogical.h	(revision 7759)
+++ /issm/trunk/src/c/objects/Options/OptionLogical.h	(revision 7760)
@@ -45,4 +45,5 @@
 		void  Get(bool* pvalue);
 		void  Get(char** pvalue){ _error_("An OptionLogical object cannot return a string");};
+		void  Get(double** pvalue,int *pnumel){ _error_("An OptionLogical object cannot return a double vec");};
 
 };
Index: /issm/trunk/src/c/objects/Options/OptionStruct.h
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionStruct.h	(revision 7759)
+++ /issm/trunk/src/c/objects/Options/OptionStruct.h	(revision 7760)
@@ -42,7 +42,8 @@
 		int   NDims();
 		int*  Size();
-		void  Get(double* pvalue){_error_("An OptionCell object cannot return a double");};
-		void  Get(bool* pvalue){  _error_("An OptionCell object cannot return a bool");};
-		void  Get(char** pvalue){ _error_("An OptionCell object cannot return a string");};
+		void  Get(double* pvalue){_error_("An OptionStruct object cannot return a double");};
+		void  Get(bool* pvalue){  _error_("An OptionStruct object cannot return a bool");};
+		void  Get(char** pvalue){ _error_("An OptionStruct object cannot return a string");};
+		void  Get(double** pvalue,int *pnumel){ _error_("An OptionStruct object cannot return a double vec");};
 
 };
