Index: /issm/trunk/src/c/objects/Options/Option.h
===================================================================
--- /issm/trunk/src/c/objects/Options/Option.h	(revision 8534)
+++ /issm/trunk/src/c/objects/Options/Option.h	(revision 8535)
@@ -1,8 +1,8 @@
 /*! \file Option.h 
- *  \brief: header file for optionsobject abstract object
+ *  \brief: header file for option abstract object
  */
 
-#ifndef _OPTIONSOBJECT_H_
-#define _OPTIONSOBJECT_H_
+#ifndef _OPTIONOBJECT_H_
+#define _OPTIONOBJECT_H_
 
 /*Headers:{{{1*/
@@ -49,6 +49,8 @@
 		virtual void  Get(char** pvalue)=0;
 		virtual void  Get(double** pvalue,int *pnumel)=0;
+		virtual void  Get(Options** pvalue)=0;
+		virtual void  Get(Options*** pvalue,int *pnumel)=0;
 
 };
-#endif  /* _OPTIONSOBJECT_H */
+#endif  /* _OPTIONOBJECT_H */
 
Index: /issm/trunk/src/c/objects/Options/OptionCell.cpp
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionCell.cpp	(revision 8534)
+++ /issm/trunk/src/c/objects/Options/OptionCell.cpp	(revision 8535)
@@ -118,10 +118,9 @@
 }
 /*}}}*/
-/*FUNCTION OptionCell::Get {{{1*/
-//void* OptionCell::Get(){
+/*FUNCTION OptionCell::Get(Options** pvalue) {{{1*/
+void OptionCell::Get(Options** pvalue){
 
-//	;
-
-//	return;
-//}
+	/*Assign output pointer*/
+	*pvalue=this->values;
+}
 /*}}}*/
Index: /issm/trunk/src/c/objects/Options/OptionCell.h
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionCell.h	(revision 8534)
+++ /issm/trunk/src/c/objects/Options/OptionCell.h	(revision 8535)
@@ -1,8 +1,8 @@
 /*! \file OptionCell.h 
- *  \brief: header file for optionscell object
+ *  \brief: header file for optioncell object
  */
 
-#ifndef _OPTIONSCELL_H_
-#define _OPTIONSCELL_H_
+#ifndef _OPTIONCELL_H_
+#define _OPTIONCELL_H_
 
 /*Headers:{{{1*/
@@ -46,6 +46,8 @@
 		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");};
+		void  Get(Options** pvalue);
+		void  Get(Options*** pvalue,int *pnumel){ _error_("An OptionCell object cannot return an Options DataSet vec");};
 
 };
-#endif  /* _OPTIONSCELL_H */
+#endif  /* _OPTIONCELL_H */
 
Index: /issm/trunk/src/c/objects/Options/OptionChar.h
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionChar.h	(revision 8534)
+++ /issm/trunk/src/c/objects/Options/OptionChar.h	(revision 8535)
@@ -1,8 +1,8 @@
 /*! \file OptionChar.h 
- *  \brief: header file for optionschar object
+ *  \brief: header file for optionchar object
  */
 
-#ifndef _OPTIONSCHAR_H_
-#define _OPTIONSCHAR_H_
+#ifndef _OPTIONCHAR_H_
+#define _OPTIONCHAR_H_
 
 /*Headers:{{{1*/
@@ -46,6 +46,8 @@
 		void  Get(char** pvalue);
 		void  Get(double** pvalue,int *pnumel){ _error_("An OptionChar object cannot return a double vec");};
+		void  Get(Options** pvalue){ _error_("An OptionChar object cannot return an Options DataSet");};
+		void  Get(Options*** pvalue,int *pnumel){ _error_("An OptionChar object cannot return an Options DataSet vec");};
 
 };
-#endif  /* _OPTIONSCHAR_H */
+#endif  /* _OPTIONCHAR_H */
 
Index: /issm/trunk/src/c/objects/Options/OptionDouble.cpp
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionDouble.cpp	(revision 8534)
+++ /issm/trunk/src/c/objects/Options/OptionDouble.cpp	(revision 8535)
@@ -134,5 +134,5 @@
 void OptionDouble::Get(double** pvalue,int* numel){
 
-	/*We should first check that the size is one*/
+	/*We should first check that the size is at least one*/
 	if(this->NumEl()<=0){
 		_error_("option \"%s\" is empty and cannot return a double vector",this->name);
Index: /issm/trunk/src/c/objects/Options/OptionDouble.h
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionDouble.h	(revision 8534)
+++ /issm/trunk/src/c/objects/Options/OptionDouble.h	(revision 8535)
@@ -1,8 +1,8 @@
 /*! \file OptionDouble.h 
- *  \brief: header file for optionsdouble object
+ *  \brief: header file for optiondouble object
  */
 
-#ifndef _OPTIONSDOUBLE_H_
-#define _OPTIONSDOUBLE_H_
+#ifndef _OPTIONDOUBLE_H_
+#define _OPTIONDOUBLE_H_
 
 /*Headers:{{{1*/
@@ -46,6 +46,8 @@
 		void  Get(char** pvalue){ _error_("An OptionDouble object cannot return a string");};
 		void  Get(double** pvalue,int* pnumel);
+		void  Get(Options** pvalue){ _error_("An OptionDouble object cannot return an Options DataSet");};
+		void  Get(Options*** pvalue,int *pnumel){ _error_("An OptionDouble object cannot return an Options DataSet vec");};
 
 };
-#endif  /* _OPTIONSDOUBLE_H */
+#endif  /* _OPTIONDOUBLE_H */
 
Index: /issm/trunk/src/c/objects/Options/OptionLogical.h
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionLogical.h	(revision 8534)
+++ /issm/trunk/src/c/objects/Options/OptionLogical.h	(revision 8535)
@@ -1,8 +1,8 @@
 /*! \file OptionLogical.h 
- *  \brief: header file for optionslogical object
+ *  \brief: header file for optionlogical object
  */
 
-#ifndef _OPTIONSLOGICAL_H_
-#define _OPTIONSLOGICAL_H_
+#ifndef _OPTIONLOGICAL_H_
+#define _OPTIONLOGICAL_H_
 
 /*Headers:{{{1*/
@@ -46,6 +46,8 @@
 		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");};
+		void  Get(Options** pvalue){ _error_("An OptionLogical object cannot return an Options DataSet");};
+		void  Get(Options*** pvalue,int *pnumel){ _error_("An OptionLogical object cannot return an Options DataSet vec");};
 
 };
-#endif  /* _OPTIONSLOGICAL_H */
+#endif  /* _OPTIONLOGICAL_H */
 
Index: /issm/trunk/src/c/objects/Options/OptionStruct.cpp
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionStruct.cpp	(revision 8534)
+++ /issm/trunk/src/c/objects/Options/OptionStruct.cpp	(revision 8535)
@@ -126,10 +126,27 @@
 }
 /*}}}*/
-/*FUNCTION OptionStruct::Get {{{1*/
-//void* OptionStruct::Get(){
+/*FUNCTION OptionStruct::Get(Options** pvalue) {{{1*/
+void OptionStruct::Get(Options** pvalue){
 
-//	;
+	/*We should first check that the size is one*/
+	if(this->NumEl()!=1){
+		_error_("option \"%s\" has %i elements and cannot return a single options dataset",this->name,this->NumEl());
+	}
 
-//	return;
-//}
+	/*Assign output pointer*/
+	*pvalue=this->values[0];
+}
 /*}}}*/
+/*FUNCTION OptionStruct::Get(Options*** pvalue,int* numel) {{{1*/
+void OptionStruct::Get(Options*** pvalue,int* numel){
+
+	/*We should first check that the size is at least one*/
+	if(this->NumEl()<=0){
+		_error_("option \"%s\" is empty and cannot return an options dataset vector",this->name);
+	}
+
+	/*Assign output pointer*/
+	*pvalue=this->values;
+	if(numel) *numel=this->NumEl();
+}
+/*}}}*/
Index: /issm/trunk/src/c/objects/Options/OptionStruct.h
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionStruct.h	(revision 8534)
+++ /issm/trunk/src/c/objects/Options/OptionStruct.h	(revision 8535)
@@ -1,8 +1,8 @@
 /*! \file OptionStruct.h 
- *  \brief: header file for optionsstruct object
+ *  \brief: header file for optionstruct object
  */
 
-#ifndef _OPTIONSSTRUCT_H_
-#define _OPTIONSSTRUCT_H_
+#ifndef _OPTIONSTRUCT_H_
+#define _OPTIONSTRUCT_H_
 
 /*Headers:{{{1*/
@@ -46,6 +46,8 @@
 		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");};
+		void  Get(Options** pvalue);
+		void  Get(Options*** pvalue,int *pnumel);
 
 };
-#endif  /* _OPTIONSSTRUCT_H */
+#endif  /* _OPTIONSTRUCT_H */
 
Index: /issm/trunk/src/c/objects/Options/OptionUtilities.h
===================================================================
--- /issm/trunk/src/c/objects/Options/OptionUtilities.h	(revision 8534)
+++ /issm/trunk/src/c/objects/Options/OptionUtilities.h	(revision 8535)
@@ -1,8 +1,8 @@
 /*! \file OptionUtilities.h 
- *  \brief: header file for options utilities
+ *  \brief: header file for option object utilities
  */
 
-#ifndef _OPTIONSUTILITIES_H_
-#define _OPTIONSUTILITIES_H_
+#ifndef _OPTIONUTILITIES_H_
+#define _OPTIONUTILITIES_H_
 
 /*Headers:{{{1*/
@@ -21,4 +21,4 @@
 int StringFromSize(char* cstr, int* size, int ndims);
 
-#endif  /* _OPTIONSUTILITIES_H */
+#endif  /* _OPTIONUTILITIES_H */
 
