Index: /issm/trunk/src/c/Container/Elements.cpp
===================================================================
--- /issm/trunk/src/c/Container/Elements.cpp	(revision 12629)
+++ /issm/trunk/src/c/Container/Elements.cpp	(revision 12630)
@@ -237,5 +237,5 @@
 			for(int j=0;j<this->Size();j++){
 				Element* element=(Element*)this->GetObjectByOffset(j);
-				element->GetVectorFromResults(vector,i,resultssizes[i]);
+				element->GetVectorFromResults(vector,i,resultsenums[i],resultssizes[i]);
 			}
 			vector->Assemble();
Index: /issm/trunk/src/c/objects/Elements/Element.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Element.h	(revision 12629)
+++ /issm/trunk/src/c/objects/Elements/Element.h	(revision 12630)
@@ -63,5 +63,5 @@
 		virtual void   InputScale(int enum_type,double scale_factor)=0;
 		virtual void   GetVectorFromInputs(Vector* vector, int name_enum)=0;
-		virtual void   GetVectorFromResults(Vector* vector,int id,int interp)=0;
+		virtual void   GetVectorFromResults(Vector* vector,int id,int enum_in,int interp)=0;
 		virtual void   InputArtificialNoise(int enum_type,double min,double max)=0;
 		virtual bool   InputConvergence(double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums)=0;
Index: /issm/trunk/src/c/objects/Elements/Penta.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 12629)
+++ /issm/trunk/src/c/objects/Elements/Penta.cpp	(revision 12630)
@@ -1080,8 +1080,11 @@
 /*}}}*/
 /*FUNCTION Penta::GetVectorFromResults{{{1*/
-void  Penta::GetVectorFromResults(Vector* vector,int offset,int interp){
+void  Penta::GetVectorFromResults(Vector* vector,int offset,int enum_in,int interp){
 
 	/*Get result*/
 	ElementResult* elementresult=(ElementResult*)this->results->GetObjectByOffset(offset);
+	if(elementresult->InstanceEnum()!=enum_in){
+		_error_("Results of offset %i is %s, when %s was expected",offset,EnumToStringx(elementresult->InstanceEnum()),EnumToStringx(enum_in));
+	}  
 	if(interp==P1Enum){
 		int doflist1[NUMVERTICES];
@@ -2478,8 +2481,10 @@
      agd[i] = agd[i]/yts;
      pddtj[i]=pddt;
-     /*Update inputs*/    
-     this->inputs->AddInput(new PentaP1Input(SurfaceforcingsMassBalanceEnum,&agd[0]));
-     // this->inputs->AddInput(new PentaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
-   }       //end of the for loop over the vertices
+   }//end of the for loop over the vertices
+
+	/*Update inputs*/    
+	this->inputs->AddInput(new PentaP1Input(SurfaceforcingsMassBalanceEnum,&agd[0]));
+	//this->inputs->AddInput(new PentaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
+	this->InputExtrude(SurfaceforcingsMassBalanceEnum,ElementEnum);
 }
 /*}}}*/
Index: /issm/trunk/src/c/objects/Elements/Penta.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.h	(revision 12629)
+++ /issm/trunk/src/c/objects/Elements/Penta.h	(revision 12630)
@@ -89,5 +89,5 @@
 		double GetZcoord(GaussPenta* gauss);
 		void   GetVectorFromInputs(Vector* vector,int name_enum);
-		void   GetVectorFromResults(Vector* vector,int offset,int interp);
+		void   GetVectorFromResults(Vector* vector,int offset,int name_enum,int interp);
 		
 		int    Sid();
Index: /issm/trunk/src/c/objects/Elements/Tria.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 12629)
+++ /issm/trunk/src/c/objects/Elements/Tria.cpp	(revision 12630)
@@ -1192,8 +1192,11 @@
 /*}}}*/
 /*FUNCTION Tria::GetVectorFromResults{{{1*/
-void  Tria::GetVectorFromResults(Vector* vector,int offset,int interp){
+void  Tria::GetVectorFromResults(Vector* vector,int offset,int enum_in,int interp){
 
 	/*Get result*/
 	ElementResult* elementresult=(ElementResult*)this->results->GetObjectByOffset(offset);
+	if(elementresult->InstanceEnum()!=enum_in){
+		_error_("Results of offset %i is %s, when %s was expected",offset,EnumToStringx(elementresult->InstanceEnum()),EnumToStringx(enum_in));
+	}
 	if(interp==P1Enum){
 		int doflist1[NUMVERTICES];
@@ -2308,8 +2311,10 @@
      agd[i] = agd[i]/yts;
      pddtj[i]=pddt;
-     /*Update inputs*/    
-     this->inputs->AddInput(new TriaP1Input(SurfaceforcingsMassBalanceEnum,&agd[0]));
-     // this->inputs->AddInput(new TriaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
-   }       //end of the for loop over the vertices
+
+   } //end of the for loop over the vertices
+
+	/*Update inputs*/    
+	this->inputs->AddInput(new TriaP1Input(SurfaceforcingsMassBalanceEnum,&agd[0]));
+	// this->inputs->AddInput(new TriaVertexInput(ThermalSpcTemperatureEnum,&Tsurf[0]));
 }
 /*}}}*/
Index: /issm/trunk/src/c/objects/Elements/Tria.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.h	(revision 12629)
+++ /issm/trunk/src/c/objects/Elements/Tria.h	(revision 12630)
@@ -89,5 +89,5 @@
 		void   GetSolutionFromInputs(Vector* solution);
 		void   GetVectorFromInputs(Vector* vector, int name_enum);
-		void   GetVectorFromResults(Vector* vector,int offset,int interp);
+		void   GetVectorFromResults(Vector* vector,int offset,int enum_in,int interp);
 		void   InputArtificialNoise(int enum_type,double min, double max);
 		bool   InputConvergence(double* eps, int* enums,int num_enums,int* criterionenums,double* criterionvalues,int num_criterionenums);
