Index: /issm/trunk-jpl/src/c/classes/Misfit.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Misfit.h	(revision 21746)
+++ /issm/trunk-jpl/src/c/classes/Misfit.h	(revision 21747)
@@ -19,6 +19,5 @@
 /*}}}*/
 IssmDouble OutputDefinitionsResponsex(FemModel* femmodel,int output_enum);
-void	GetVectorFromInputsx( IssmDouble** pvector,FemModel* femmodel,int name,int type);
-
+void	GetVectorFromInputsx( IssmDouble** pvector, int* pvector_size, FemModel* femmodel,int name);
 
 class Misfit: public Object, public Definition{
@@ -175,4 +174,5 @@
 				 IssmDouble* observation= NULL;
 				 IssmDouble* weights= NULL;
+				 int msize,osize,wsize;
 				 
 				 /*Are we transient?:*/
@@ -181,14 +181,14 @@
 					 
 					 /*get global vectors: */
-					 GetVectorFromInputsx(&model,femmodel,model_enum,VertexSIdEnum);
-					 GetVectorFromInputsx(&observation,femmodel,observation_enum,VertexSIdEnum);
-					 GetVectorFromInputsx(&weights,femmodel,weights_enum,VertexSIdEnum);
+					 GetVectorFromInputsx(&model,&msize,femmodel,model_enum);
+					 GetVectorFromInputsx(&observation,&osize,femmodel,observation_enum);_assert_(msize==osize);
+					 GetVectorFromInputsx(&weights,&wsize,femmodel,weights_enum); _assert_(wsize==msize);
 
 					 int count=0;
-					 for (int i=0;i<femmodel->vertices->NumberOfVertices();i++){
+					 for (int i=0;i<msize;i++){
 						 misfit_t += pow(model[i]-observation[i],2)*weights[i];
 						 if (weights[i]!=0)count++;
 					 }
-					 misfit=sqrt(misfit_t)/count;
+					 misfit=sqrt(misfit_t/count);
 
 					 /*Free ressources:*/
@@ -209,13 +209,14 @@
 
 					 /*get global vectors: */
-					 GetVectorFromInputsx(&model,femmodel,model_enum,VertexSIdEnum);
-					 GetVectorFromInputsx(&observation,femmodel,observation_enum,VertexSIdEnum);
-					 GetVectorFromInputsx(&weights,femmodel,weights_enum,VertexSIdEnum);
-
+					 GetVectorFromInputsx(&model,&msize,femmodel,model_enum);
+					 GetVectorFromInputsx(&observation,&osize,femmodel,observation_enum);_assert_(msize==osize);
+					 GetVectorFromInputsx(&weights,&wsize,femmodel,weights_enum); _assert_(wsize==msize);
+					 
 					 int count=0;
-					 for (int i=0;i<femmodel->vertices->NumberOfVertices();i++){
+					 for (int i=0;i<msize;i++){
 						 misfit_t += pow(model[i]-observation[i],2)*weights[i];
 						 if (weights[i]!=0)count++;
 					 }
+					 misfit=sqrt(misfit_t/count);
 
 					 /*Add this time's contribution to curent misfit: */
