Index: /issm/branches/trunk-jpl-damage/src/c/objects/Inputs/ControlInput.cpp
===================================================================
--- /issm/branches/trunk-jpl-damage/src/c/objects/Inputs/ControlInput.cpp	(revision 12166)
+++ /issm/branches/trunk-jpl-damage/src/c/objects/Inputs/ControlInput.cpp	(revision 12167)
@@ -82,4 +82,5 @@
 	printf("---minvalues: \n");  if (minvalues)   minvalues->Echo();
 	printf("---maxvalues: \n");  if (maxvalues)   maxvalues->Echo();
+	printf("---threshvalues: \n");  if (threshvalues)   threshvalues->Echo();
 	printf("---gradient: \n");   if (gradient)    gradient->Echo();
 }
@@ -159,4 +160,15 @@
 	}
 
+	/*marshal threshvalues*/
+	if(!threshvalues){
+		flag=0;
+		memcpy(marshalled_dataset,&flag,sizeof(flag));marshalled_dataset+=sizeof(flag);
+	}
+	else{
+		flag=1;
+		memcpy(marshalled_dataset,&flag,sizeof(flag));marshalled_dataset+=sizeof(flag);
+		this->threshvalues->Marshall(&marshalled_dataset);
+	}
+
 	/*marshal gradient*/
 	if(!gradient){
@@ -188,4 +200,5 @@
 	if(minvalues)size+=minvalues->MarshallSize();
 	if(maxvalues)size+=maxvalues->MarshallSize();
+	if(threshvalues)size+=threshvalues->MarshallSize();
 	if(gradient)   size+=gradient->MarshallSize();
 	return size;
@@ -278,4 +291,22 @@
 	}
 
+	/*Demarshal threshvalues*/
+	memcpy(&flag,marshalled_dataset,sizeof(int));marshalled_dataset+=sizeof(int);
+	if(flag){
+		memcpy(&input_enum_type,marshalled_dataset,sizeof(int)); marshalled_dataset+=sizeof(int);
+		if(input_enum_type==PentaP1InputEnum){
+			threshvalues=new PentaP1Input();
+			threshvalues->Demarshall(&marshalled_dataset);
+		}
+		else if(input_enum_type==TriaP1InputEnum){
+			threshvalues=new TriaP1Input();
+			threshvalues->Demarshall(&marshalled_dataset);
+		}
+		else _error_("Not supported yet");
+	}
+	else{
+		threshvalues=NULL;
+	}
+
 	/*Demarshal gradient*/
 	memcpy(&flag,marshalled_dataset,sizeof(int));marshalled_dataset+=sizeof(int);
@@ -322,4 +353,5 @@
 	if(minvalues)   output->minvalues=(Input*)this->minvalues->copy();
 	if(maxvalues)   output->maxvalues=(Input*)this->maxvalues->copy();
+	if(threshvalues)   output->threshvalues=(Input*)this->threshvalues->copy();
 	if(gradient)    output->gradient=(Input*)this->gradient->copy();
 
