Index: /issm/trunk-jpl/src/c/classes/IoModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 16208)
+++ /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 16209)
@@ -1032,6 +1032,32 @@
 }
 /*}}}*/
-/*FUNCTION IoModel::FetchDataToInput{{{*/
+/*FUNCTION IoModel::FetchDataToInput(Elements* elements,int vector_enum,IssmDouble default_value){{{*/
 void IoModel::FetchDataToInput(Elements* elements,int vector_enum,IssmDouble default_value){
+
+	/*intermediary: */
+	int         code,vector_layout;
+	IssmDouble *doublearray = NULL;
+	int         M,N;
+
+	/*First of, find the record for the enum, and get code  of data type: */
+	this->SetFilePointerToData(&code, &vector_layout,vector_enum);
+
+	/*Defaulting only supported for double arrays*/
+	if(code!=7) _error_(EnumToStringx(vector_enum)<<" is not a double array");
+
+	this->FetchData(&doublearray,&M,&N,vector_enum);
+
+	for(int i=0;i<elements->Size();i++){
+		Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
+		if(!doublearray) element->InputUpdateFromConstant(default_value,vector_enum); 
+		else             element->InputCreate(doublearray,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements.
+	}
+
+	/*Free ressources. Pay attention to not freeing an AD mode independent variable though!:*/
+	if(!this->independents[vector_enum]) xDelete<IssmDouble>(doublearray);
+}
+/*}}}*/
+/*FUNCTION IoModel::FetchDataToInput(Elements* elements,int vector_enum){{{*/
+void IoModel::FetchDataToInput(Elements* elements,int vector_enum){
 
 	/*intermediary: */
@@ -1074,27 +1100,24 @@
 		case 5: //boolean vector
 			this->FetchData(&doublearray,&M,&N,vector_enum); //we still have a doublearray, because it might include times in transient mode
+			if(!doublearray) _error_(EnumToStringx(vector_enum)<<" not found in bindary file");
 			for(i=0;i<elements->Size();i++){
 				Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
-				if(!doublearray) element->InputUpdateFromConstant(reCast<bool>(default_value),vector_enum); 
-				else             element->InputCreate(doublearray,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements.
-				element->InputUpdateFromConstant(boolean,vector_enum);
+				element->InputCreate(doublearray,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements.
 			}
 			break;
 		case 6: //int vector
 			this->FetchData(&doublearray,&M,&N,vector_enum); //we still have a doublearray, because it might include times in transient mode
+			if(!doublearray) _error_(EnumToStringx(vector_enum)<<" not found in bindary file");
 			for(i=0;i<elements->Size();i++){
 				Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
-				if(!doublearray) element->InputUpdateFromConstant(reCast<int>(default_value),vector_enum); 
-				else             element->InputCreate(doublearray,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements.
-				element->InputUpdateFromConstant(boolean,vector_enum);
+				element->InputCreate(doublearray,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements.
 			}
 			break;
 		case 7: //IssmDouble vector
 			this->FetchData(&doublearray,&M,&N,vector_enum);
+			if(!doublearray) _error_(EnumToStringx(vector_enum)<<" not found in bindary file");
 			for(i=0;i<elements->Size();i++){
 				Element* element=dynamic_cast<Element*>(elements->GetObjectByOffset(i));
-				if(!doublearray) element->InputUpdateFromConstant(default_value,vector_enum); 
-				else             element->InputCreate(doublearray,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements.
-				element->InputUpdateFromConstant(boolean,vector_enum);
+				element->InputCreate(doublearray,this,M,N,vector_layout,vector_enum,code);//we need i to index into elements.
 			}
 			break;
Index: /issm/trunk-jpl/src/c/classes/IoModel.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.h	(revision 16208)
+++ /issm/trunk-jpl/src/c/classes/IoModel.h	(revision 16209)
@@ -78,5 +78,6 @@
 		void        FetchData(Option **poption,int data_enum);
 		void        FetchData(int num,...);
-		void        FetchDataToInput(Elements* elements,int vector_enum,IssmDouble default_value=0.);
+		void        FetchDataToInput(Elements* elements,int vector_enum);
+		void        FetchDataToInput(Elements* elements,int vector_enum,IssmDouble default_value);
 		void        LastIndex(int *pindex);
 		FILE*       SetFilePointerToData(int* pcode,int* pvector_type, int data_enum);
