Index: /issm/trunk-jpl/src/c/classes/Masscon.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Masscon.h	(revision 18884)
+++ /issm/trunk-jpl/src/c/classes/Masscon.h	(revision 18885)
@@ -20,4 +20,5 @@
 	public: 
 
+		int         definitionenum;
 		char*       name;
 		IssmDouble* levelset;
@@ -27,4 +28,5 @@
 		Masscon(){/*{{{*/
 
+			this->definitionenum = -1;
 			this->name = NULL;
 			this->levelset=NULL;
@@ -33,6 +35,7 @@
 		}
 		/*}}}*/
-		Masscon(char* in_name, IssmDouble* levelsetin, int Min){ /*{{{*/
+		Masscon(char* in_name, int in_definitionenum, IssmDouble* levelsetin, int Min){ /*{{{*/
 
+			this->definitionenum=in_definitionenum;
 			this->name   = xNew<char>(strlen(in_name)+1);
 			xMemCpy<char>(this->name,in_name,strlen(in_name)+1);
@@ -52,5 +55,5 @@
 		/*Object virtual function resolutoin: */
 		void Echo(void){/*{{{*/
-			_printf_(" Masscon: " << name << "\n");
+			_printf_(" Masscon: " << this->name << " " << this->definitionenum << "\n");
 			_printf_("    levelset: " << this->levelset << "\n");
 			_printf_("    M: " << this->M << "\n");
@@ -70,5 +73,5 @@
 		/*}}}*/
 		Object* copy() {/*{{{*/
-			Masscon* mf = new Masscon(this->name,this->levelset,this->M);
+			Masscon* mf = new Masscon(this->name,this->definitionenum,this->levelset,this->M);
 			return (Object*) mf;
 		}
@@ -81,4 +84,9 @@
 
 			return name2;
+		}
+		/*}}}*/
+		int DefinitionEnum(){/*{{{*/
+
+			return this->definitionenum;
 		}
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Massconaxpby.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Massconaxpby.h	(revision 18884)
+++ /issm/trunk-jpl/src/c/classes/Massconaxpby.h	(revision 18885)
@@ -20,4 +20,5 @@
 	public: 
 
+		int         definitionenum;
 		char*       name;
 		char*       namex;
@@ -29,4 +30,5 @@
 		Massconaxpby(){/*{{{*/
 
+			this->definitionenum = -1;
 			this->name = NULL;
 			this->namex = NULL;
@@ -37,6 +39,7 @@
 		}
 		/*}}}*/
-		Massconaxpby(char* in_name,char* in_namex, char* in_namey, IssmDouble in_alpha,IssmDouble in_beta){ /*{{{*/
+		Massconaxpby(char* in_name,int in_definitionenum, char* in_namex, char* in_namey, IssmDouble in_alpha,IssmDouble in_beta){ /*{{{*/
 
+			this->definitionenum = in_definitionenum;
 			this->name   = xNew<char>(strlen(in_name)+1);
 			xMemCpy<char>(this->name,in_name,strlen(in_name)+1);
@@ -61,5 +64,5 @@
 		/*Object virtual function resolutoin: */
 		void Echo(void){/*{{{*/
-			_printf_(" Massconaxpby: " << this->name << "\n");
+			_printf_(" Massconaxpby: " << this->name << " " << this->definitionenum << "\n");
 			_printf_("    namex: " << this->namex << "\n");
 			_printf_("    namey: " << this->namey << "\n");
@@ -81,5 +84,5 @@
 		/*}}}*/
 		Object* copy() {/*{{{*/
-			Massconaxpby* mf = new Massconaxpby(this->name,this->namex,this->namey, this->alpha, this->beta);
+			Massconaxpby* mf = new Massconaxpby(this->name,this->definitionenum,this->namex,this->namey, this->alpha, this->beta);
 			return (Object*) mf;
 		}
@@ -92,4 +95,9 @@
 
 			return name2;
+		}
+		/*}}}*/
+		int DefinitionEnum(){/*{{{*/
+
+			return this->definitionenum;
 		}
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Massfluxatgate.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Massfluxatgate.h	(revision 18884)
+++ /issm/trunk-jpl/src/c/classes/Massfluxatgate.h	(revision 18885)
@@ -20,4 +20,5 @@
 	public: 
 
+		int         definitionenum;
 		char*       name;
 		int         numsegments;
@@ -30,4 +31,5 @@
 		/*Massfluxatgate constructors, destructors :*/
 		Massfluxatgate(){/*{{{*/
+			this->definitionenum        = -1;
 			this->name        = 0;
 			this->numsegments = 0;
@@ -35,7 +37,9 @@
 		}
 		/*}}}*/
-		Massfluxatgate(char* in_name, int in_numsegments, doubletype* in_segments) {/*{{{*/
+		Massfluxatgate(char* in_name, int in_definitionenum, int in_numsegments, doubletype* in_segments) {/*{{{*/
 			
 			int i;
+
+			this->definitionenum=in_definitionenum;
 
 			this->name   = xNew<char>(strlen(in_name)+1);
@@ -61,6 +65,7 @@
 		}
 		/*}}}*/
-		Massfluxatgate(char* in_name, int in_numsegments, doubletype* in_x1, doubletype* in_y1, doubletype* in_x2, doubletype* in_y2,int* in_elements){/*{{{*/
+		Massfluxatgate(char* in_name, int in_definitionenum, int in_numsegments, doubletype* in_x1, doubletype* in_y1, doubletype* in_x2, doubletype* in_y2,int* in_elements){/*{{{*/
 
+			this->definitionenum=in_definitionenum;
 			this->name   = xNew<char>(strlen(in_name)+1);
 			xMemCpy<char>(this->name,in_name,strlen(in_name)+1);
@@ -90,5 +95,5 @@
 		/*Object virtual function resolutoin: */
 		void Echo(void){/*{{{*/
-			_printf_(" Massfluxatgate: " << name << "\n");
+			_printf_(" Massfluxatgate: " << name << " " << this->definitionenum << "\n");
 			_printf_("    numsegments: " << numsegments << "\n");
 			if(numsegments){
@@ -113,5 +118,5 @@
 		/*}}}*/
 		Object* copy() {/*{{{*/
-			return new Massfluxatgate(this->name,this->numsegments,this->x1,this->y1,this->x2,this->y2,this->elements); 
+			return new Massfluxatgate(this->name,this->definitionenum,this->numsegments,this->x1,this->y1,this->x2,this->y2,this->elements); 
 		}
 		/*}}}*/
@@ -123,4 +128,9 @@
 
 			return name2;
+		}
+		/*}}}*/
+		int DefinitionEnum(){/*{{{*/
+
+			return this->definitionenum;
 		}
 		/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Misfit.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Misfit.h	(revision 18884)
+++ /issm/trunk-jpl/src/c/classes/Misfit.h	(revision 18885)
@@ -21,4 +21,5 @@
 	public: 
 
+		int         definitionenum;
 		char*       name;
 		int         model_enum;
@@ -33,4 +34,5 @@
 		Misfit(){/*{{{*/
 
+			this->definitionenum = -1;
 			this->name = NULL;
 			this->model_enum = UNDEF;
@@ -43,6 +45,7 @@
 		}
 		/*}}}*/
-		Misfit(char* in_name, int in_model_enum, int in_observation_enum, char* in_timeinterpolation, int in_weights_enum){/*{{{*/
+		Misfit(char* in_name, int in_definitionenum, int in_model_enum, int in_observation_enum, char* in_timeinterpolation, int in_weights_enum){/*{{{*/
 
+			this->definitionenum=in_definitionenum;
 			this->name   = xNew<char>(strlen(in_name)+1);
 			xMemCpy<char>(this->name,in_name,strlen(in_name)+1);
@@ -68,5 +71,5 @@
 		/*Object virtual function resolutoin: */
 		void Echo(void){/*{{{*/
-			_printf_(" Misfit: " << name << "\n");
+			_printf_(" Misfit: " << name << " " << this->definitionenum << "\n");
 			_printf_("    model_enum: " << model_enum << " " << EnumToStringx(model_enum) << "\n");
 			_printf_("    observation_enum: " << observation_enum << " " << EnumToStringx(observation_enum) << "\n");
@@ -88,5 +91,5 @@
 		/*}}}*/
 		Object* copy() {/*{{{*/
-			Misfit* mf = new Misfit(this->name,this->model_enum,this->observation_enum,this->timeinterpolation,this->weights_enum);
+			Misfit* mf = new Misfit(this->name,this->definitionenum, this->model_enum,this->observation_enum,this->timeinterpolation,this->weights_enum);
 			mf->misfit=this->misfit;
 			mf->lock=this->lock;
@@ -101,4 +104,9 @@
 
 			return name2;
+		}
+		/*}}}*/
+		int DefinitionEnum(){/*{{{*/
+
+			return this->definitionenum;
 		}
 		/*}}}*/
