Index: /issm/trunk-jpl/src/c/Container/Observations.cpp
===================================================================
--- /issm/trunk-jpl/src/c/Container/Observations.cpp	(revision 13266)
+++ /issm/trunk-jpl/src/c/Container/Observations.cpp	(revision 13267)
@@ -42,6 +42,6 @@
 	int          i,j,maxdepth,level,counter,index;
 	int          xi,yi;
-	IssmPDouble       xmin,xmax,ymin,ymax;
-	IssmPDouble       offset,minlength,minspacing,mintrimming,maxtrimming;
+	IssmPDouble  xmin,xmax,ymin,ymax;
+	IssmPDouble  offset,minlength,minspacing,mintrimming,maxtrimming;
 	Observation *observation = NULL;
 
Index: /issm/trunk-jpl/src/c/classes/IoModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 13266)
+++ /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 13267)
@@ -888,9 +888,8 @@
 	switch(code){
 		case 3: {//IssmDouble
-					GenericOption<IssmDouble*>* option;
-					IssmDouble *value = NULL;
-					value=xNew<IssmDouble>(1);
-					FetchData(value,index+1);
-					option = new GenericOption<IssmDouble*>();
+					GenericOption<IssmDouble>* option;
+					IssmPDouble value;
+					FetchData(&value,index+1);
+					option = new GenericOption<IssmDouble>();
 					option->value = value;
 					option->name  = name;
Index: /issm/trunk-jpl/src/c/classes/objects/Options/Option.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/objects/Options/Option.h	(revision 13266)
+++ /issm/trunk-jpl/src/c/classes/objects/Options/Option.h	(revision 13267)
@@ -23,13 +23,12 @@
 		~Option(){};
 		/*}}}*/
-		
 		/*Object virtual functions definitions:{{{*/
-		virtual void  Echo()=0;
-		virtual void  DeepEcho()=0;
-		virtual void  DeepEcho(char* indent)=0;
-		int   Id(){_error_("Not implemented yet");};
-		int   MyRank(){_error_("Not implemented yet");};
-		int   ObjectEnum(){return OptionEnum;};
-		Object* copy(){_error_("Not implemented yet");};
+		virtual void  Echo()= 0;
+		virtual void  DeepEcho()= 0;
+		virtual void  DeepEcho(char  *indent)=0;
+		int           Id(){_error_("Not implemented yet"); };
+		int           MyRank(){_error_("Not implemented yet"); };
+		int           ObjectEnum(){return OptionEnum;              };
+		Object       *copy(){_error_("Not implemented yet"); };
 		/*}}}*/
 
Index: /issm/trunk-jpl/src/c/matlab/io/OptionParse.cpp
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/OptionParse.cpp	(revision 13266)
+++ /issm/trunk-jpl/src/c/matlab/io/OptionParse.cpp	(revision 13267)
@@ -15,5 +15,20 @@
 #include "./matlabio.h"
 
-GenericOption<double*>* OptionDoubleParse( char* name, const mxArray* prhs[]){ /*{{{*/
+GenericOption<double>* OptionDoubleParse( char* name, const mxArray* prhs[]){ /*{{{*/
+
+	GenericOption<double> *odouble = NULL;
+
+	/*check and parse the name  */
+	odouble=new GenericOption<double>();
+	odouble->name =xNew<char>(strlen(name)+1);
+	memcpy(odouble->name,name,(strlen(name)+1)*sizeof(char));
+	FetchData(&odouble->value,prhs[0]);
+	odouble->numel=1;
+	odouble->ndims=1;
+	odouble->size=NULL;
+
+	return(odouble);
+}/*}}}*/
+GenericOption<double*>* OptionDoubleArrayParse( char* name, const mxArray* prhs[]){ /*{{{*/
 
 	GenericOption<double*> *odouble = NULL;
@@ -160,13 +175,20 @@
 Option* OptionParse(char* name, const mxArray* prhs[]){ /*{{{*/
 
-	Option *option = NULL;
-	mxArray       *lhs[1];
+	Option  *option = NULL;
+	mxArray *lhs[1];
 
 	/*parse the value according to the matlab data type  */
-	if     (mxIsClass(prhs[0],"double"))  option=(Option*)OptionDoubleParse(name,prhs);
-	else if(mxIsClass(prhs[0],"logical")) option=(Option*)OptionLogicalParse(name,prhs);
-	else if(mxIsClass(prhs[0],"char"))    option=(Option*)OptionCharParse(name,prhs);
-	else if(mxIsClass(prhs[0],"struct"))  option=(Option*)OptionStructParse(name,prhs);
-	else if(mxIsClass(prhs[0],"cell"))    option=(Option*)OptionCellParse(name,prhs);
+	if     (mxIsClass(prhs[0],"double")  && (mxGetNumberOfElements(prhs[0])==1))
+	 option=(Option*)OptionDoubleParse(name,prhs);
+	else if(mxIsClass(prhs[0],"double")  && (mxGetNumberOfElements(prhs[0])!=1))
+	 option=(Option*)OptionDoubleArrayParse(name,prhs);
+	else if(mxIsClass(prhs[0],"logical"))
+	 option=(Option*)OptionLogicalParse(name,prhs);
+	else if(mxIsClass(prhs[0],"char"))
+	 option=(Option*)OptionCharParse(name,prhs);
+	else if(mxIsClass(prhs[0],"struct"))
+	 option=(Option*)OptionStructParse(name,prhs);
+	else if(mxIsClass(prhs[0],"cell"))
+	 option=(Option*)OptionCellParse(name,prhs);
 	else {
 		_pprintLine_("  Converting value of option \"" << name << "\" from unrecognized class \"" << mxGetClassName(prhs[0]) << "\" to class \"" << "struct" << "\".");
Index: /issm/trunk-jpl/src/c/matlab/io/matlabio.h
===================================================================
--- /issm/trunk-jpl/src/c/matlab/io/matlabio.h	(revision 13266)
+++ /issm/trunk-jpl/src/c/matlab/io/matlabio.h	(revision 13267)
@@ -51,5 +51,6 @@
 
 Option* OptionParse(char* name, const mxArray* prhs[]);
-GenericOption<double*>*   OptionDoubleParse( char* name, const mxArray* prhs[]);
+GenericOption<double>*    OptionDoubleParse( char* name, const mxArray* prhs[]);
+GenericOption<double*>*   OptionDoubleArrayParse( char* name, const mxArray* prhs[]);
 GenericOption<bool*>*     OptionLogicalParse( char* name, const mxArray* prhs[]);
 GenericOption<char*>*     OptionCharParse( char* name, const mxArray* prhs[]);
Index: /issm/trunk-jpl/src/c/solutions/kriging.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutions/kriging.cpp	(revision 13266)
+++ /issm/trunk-jpl/src/c/solutions/kriging.cpp	(revision 13267)
@@ -23,11 +23,11 @@
 
 	/*Input*/
-	int      ninterp,nobs;
-	IssmDouble  *x        = NULL;
-	IssmDouble  *y        = NULL;
-	IssmDouble  *data     = NULL;
-	IssmDouble  *x_interp = NULL;
-	IssmDouble  *y_interp = NULL;
-	Options *options  = NULL;
+	int         ninterp,nobs;
+	IssmDouble *x        = NULL;
+	IssmDouble *y        = NULL;
+	IssmDouble *data     = NULL;
+	IssmDouble *x_interp = NULL;
+	IssmDouble *y_interp = NULL;
+	Options    *options  = NULL;
 
 	/*Output*/
