Index: /issm/trunk/src/c/solutions/balancedthickness2_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/balancedthickness2_core.cpp	(revision 3940)
+++ /issm/trunk/src/c/solutions/balancedthickness2_core.cpp	(revision 3941)
@@ -17,4 +17,5 @@
 	/*output: */
 	Results* results=NULL;
+	Result* result=NULL;
 
 	/*intermediary: */
@@ -67,7 +68,5 @@
 
 	/*Plug results into output dataset: */
-	results->AddObject(new Result(results->Size()+1,0,1,"h_g",h_g));
-
-	/*Add analysis_type to results: */
+	InputToResultx(&result,fem_p->elements,fem_p->nodes,fem_p->vertices, fem_p->loads, fem_p->materials,fem_p->parameters,ThicknessEnum,results->Size()+1,0,1); results->AddObject(result);
 	results->AddObject(new StringResult(results->Size()+1,AnalysisTypeEnum,0,1,EnumAsString(Balancedthickness2AnalysisEnum)));
 
Index: /issm/trunk/src/c/solutions/balancedthickness_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/balancedthickness_core.cpp	(revision 3940)
+++ /issm/trunk/src/c/solutions/balancedthickness_core.cpp	(revision 3941)
@@ -17,4 +17,5 @@
 	/*output: */
 	Results* results=NULL;
+	Result* result=NULL;
 
 	/*intermediary: */
@@ -57,7 +58,5 @@
 
 	/*Plug results into output dataset: */
-	results->AddObject(new Result(results->Size()+1,0,1,"h_g",h_g));
-
-	/*Add analysis_type to results: */
+	InputToResultx(&result,fem_p->elements,fem_p->nodes,fem_p->vertices, fem_p->loads, fem_p->materials,fem_p->parameters,ThicknessEnum,results->Size()+1,0,1); results->AddObject(result);
 	results->AddObject(new StringResult(results->Size()+1,AnalysisTypeEnum,0,1,EnumAsString(BalancedthicknessAnalysisEnum)));
 
Index: /issm/trunk/src/c/solutions/balancedvelocities_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/balancedvelocities_core.cpp	(revision 3940)
+++ /issm/trunk/src/c/solutions/balancedvelocities_core.cpp	(revision 3941)
@@ -16,4 +16,5 @@
 	/*output: */
 	Results* results=NULL;
+	Result* result=NULL;
 
 	/*intermediary: */
@@ -56,7 +57,6 @@
 
 	/*Plug results into output dataset: */
-	results->AddObject(new Result(results->Size()+1,0,1,"v_g",v_g));
-
-	/*Add analysis_type to results: */
+	InputToResultx(&result,fem_p->elements,fem_p->nodes,fem_p->vertices, fem_p->loads, fem_p->materials,fem_p->parameters,VxEnum,results->Size()+1,0,1); results->AddObject(result);
+	InputToResultx(&result,fem_p->elements,fem_p->nodes,fem_p->vertices, fem_p->loads, fem_p->materials,fem_p->parameters,VyEnum,results->Size()+1,0,1); results->AddObject(result);
 	results->AddObject(new StringResult(results->Size()+1,AnalysisTypeEnum,0,1,EnumAsString(BalancedvelocitiesAnalysisEnum)));
 
Index: /issm/trunk/src/c/solutions/diagnostic_core_linear.cpp
===================================================================
--- /issm/trunk/src/c/solutions/diagnostic_core_linear.cpp	(revision 3940)
+++ /issm/trunk/src/c/solutions/diagnostic_core_linear.cpp	(revision 3941)
@@ -55,4 +55,7 @@
 	Mergesolutionfromftogx(&ug, uf,fem->Gmn,fem->ys,fem->nodesets);VecFree(&uf);
 
+	//Update inputs using new solution:
+	UpdateInputsFromSolutionx( fem->elements,fem->nodes, fem->vertices, fem->loads, fem->materials, fem->parameters,ug,analysis_type, sub_analysis_type);
+
 	/*free ressources: */
 	xfree((void**)&solver_string);
Index: /issm/trunk/src/c/solutions/gradjcompute_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/gradjcompute_core.cpp	(revision 3940)
+++ /issm/trunk/src/c/solutions/gradjcompute_core.cpp	(revision 3941)
@@ -19,4 +19,5 @@
 	FemModel* femmodel=NULL;
 	Results* diagnostic_results=NULL;
+	Result*  result=NULL;
 	int analysis_type;
 	int sub_analysis_type;
@@ -117,5 +118,5 @@
 
 	/*Plug results into output dataset: */
-	results->AddObject(new Result(results->Size()+1,0,1,"grad_g",grad_g));
+	InputToResultx(&result,femmodel->elements,femmodel->nodes,femmodel->vertices, femmodel->loads, femmodel->materials,femmodel->parameters,GradientAnalysisEnum,results->Size()+1,0,1); results->AddObject(result);
 	results->AddObject(new StringResult(results->Size()+1,AnalysisTypeEnum,0,1,EnumAsString(GradientAnalysisEnum)));
 	
Index: /issm/trunk/src/c/solutions/prognostic2_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/prognostic2_core.cpp	(revision 3940)
+++ /issm/trunk/src/c/solutions/prognostic2_core.cpp	(revision 3941)
@@ -16,4 +16,5 @@
 	/*output: */
 	Results* results=NULL;
+	Result* result=NULL;
 
 	/*intermediary: */
@@ -59,5 +60,6 @@
 
 	/*Plug results into output dataset: */
-	results->AddObject(new Result(results->Size()+1,0,1,"h_g",h_g));
+	InputToResultx(&result,fem_p->elements,fem_p->nodes,fem_p->vertices, fem_p->loads, fem_p->materials,fem_p->parameters,ThicknessEnum,results->Size()+1,0,1); results->AddObject(result);
+	results->AddObject(new StringResult(results->Size()+1,AnalysisTypeEnum,0,1,EnumAsString(Prognostic2AnalysisEnum)));
 
 	/*Free ressources:*/
@@ -65,7 +67,4 @@
 	VecFree(&vy_g);
 	VecFree(&h_g);
-
-	/*Add analysis_type to results: */
-	results->AddObject(new StringResult(results->Size()+1,AnalysisTypeEnum,0,1,EnumAsString(Prognostic2AnalysisEnum)));
 	
 	/*return: */
Index: /issm/trunk/src/c/solutions/prognostic_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/prognostic_core.cpp	(revision 3940)
+++ /issm/trunk/src/c/solutions/prognostic_core.cpp	(revision 3941)
@@ -50,8 +50,5 @@
 	
 	_printf_("extract result from extruded inputs: \n");
-	InputToResultx(&result,fem_p->elements,fem_p->nodes, fem_p->vertices,fem_p->loads, fem_p->materials,fem_p->parameters,ThicknessEnum,results->Size()+1,0,1);
-	results->AddObject(result);
-
-	/*Add analysis_type to results: */
+	InputToResultx(&result,fem_p->elements,fem_p->nodes,fem_p->vertices, fem_p->loads, fem_p->materials,fem_p->parameters,ThicknessEnum,results->Size()+1,0,1); results->AddObject(result);
 	results->AddObject(new StringResult(results->Size()+1,AnalysisTypeEnum,0,1,EnumAsString(PrognosticAnalysisEnum)));
 
Index: /issm/trunk/src/c/solutions/slopecompute_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/slopecompute_core.cpp	(revision 3940)
+++ /issm/trunk/src/c/solutions/slopecompute_core.cpp	(revision 3941)
@@ -16,4 +16,5 @@
 	/*output: */
 	Results* results=NULL;
+	Result * result =NULL;
 
 	/*solutions: */
@@ -50,8 +51,7 @@
 
 	/*Plug results into output dataset: */
-	results->AddObject(new Result(results->Size()+1,0,1,"sx_g",sx_g));
-	results->AddObject(new Result(results->Size()+1,0,1,"sy_g",sy_g));
+	InputToResultx(&result,fem_sl->elements,fem_sl->nodes,fem_sl->vertices, fem_sl->loads, fem_sl->materials,fem_sl->parameters,SurfaceXAnalysisEnum,results->Size()+1,0,1); results->AddObject(result);
+	InputToResultx(&result,fem_sl->elements,fem_sl->nodes,fem_sl->vertices, fem_sl->loads, fem_sl->materials,fem_sl->parameters,SurfaceYAnalysisEnum,results->Size()+1,0,1); results->AddObject(result);
 	results->AddObject(new StringResult(results->Size()+1,AnalysisTypeEnum,0,1,EnumAsString(SlopecomputeAnalysisEnum)));
-
 
 	/*Free ressources:*/
Index: /issm/trunk/src/c/solutions/thermal_core.cpp
===================================================================
--- /issm/trunk/src/c/solutions/thermal_core.cpp	(revision 3940)
+++ /issm/trunk/src/c/solutions/thermal_core.cpp	(revision 3941)
@@ -21,4 +21,5 @@
 	/*output: */
 	Results* results=NULL;
+	Result*  result=NULL;
 
 	/*solutions vectors: */
@@ -100,6 +101,6 @@
 	/*Plug results into output dataset: */
 	if(dt==0){
-		results->AddObject(new Result(results->Size()+1,0,1,"t_g",t_g[0]));
-		results->AddObject(new Result(results->Size()+1,0,1,"m_g",m_g[0]));
+		InputToResultx(&result,fem_t->elements,fem_t->nodes,fem_t->vertices, fem_t->loads, fem_t->materials,fem_t->parameters,TemperatureEnum,results->Size()+1,0,1); results->AddObject(result);
+		InputToResultx(&result,fem_m->elements,fem_m->nodes,fem_m->vertices, fem_m->loads, fem_m->materials,fem_m->parameters,MeltingRateEnum,results->Size()+1,0,1); results->AddObject(result);
 
 		/*free ressource*/
@@ -109,6 +110,7 @@
 	else{
 		for(i=0;i<nsteps;i++){
-			results->AddObject(new Result(results->Size()+1,time[i],i+1,"t_g",t_g[i]));
-			results->AddObject(new Result(results->Size()+1,time[i],i+1,"m_g",m_g[i]));
+			/*To be moved inside the loop!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
+			InputToResultx(&result,fem_t->elements,fem_t->nodes,fem_t->vertices, fem_t->loads, fem_t->materials,fem_t->parameters,TemperatureEnum,results->Size()+1,time[i],i+1); results->AddObject(result);
+			InputToResultx(&result,fem_m->elements,fem_m->nodes,fem_m->vertices, fem_m->loads, fem_m->materials,fem_m->parameters,MeltingRateEnum,results->Size()+1,time[i],i+1); results->AddObject(result);
 
 			/*free ressource*/
@@ -128,4 +130,3 @@
 	return results;
 
-
 }
Index: /issm/trunk/src/c/solutions/thermal_core_nonlinear.cpp
===================================================================
--- /issm/trunk/src/c/solutions/thermal_core_nonlinear.cpp	(revision 3940)
+++ /issm/trunk/src/c/solutions/thermal_core_nonlinear.cpp	(revision 3941)
@@ -110,6 +110,7 @@
 		PenaltyConstraintsx(&constraints_converged, &num_unstable_constraints, fem->elements,fem->nodes,fem->vertices,fem->loads,fem->materials,fem->parameters,analysis_type,sub_analysis_type); 
 		
+		//Update inputs using new solution:
 		UpdateInputsFromVectorx( fem->elements,fem->nodes, fem->vertices, fem->loads, fem->materials, fem->parameters,tg,TemperatureEnum,VertexEnum);
-
+		UpdateInputsFromSolutionx( fem->elements,fem->nodes, fem->vertices, fem->loads, fem->materials, fem->parameters,ug,analysis_type, sub_analysis_type);
 
 		if (!converged){
Index: /issm/trunk/src/c/solutions/transient_core_2d.cpp
===================================================================
--- /issm/trunk/src/c/solutions/transient_core_2d.cpp	(revision 3940)
+++ /issm/trunk/src/c/solutions/transient_core_2d.cpp	(revision 3941)
@@ -24,4 +24,5 @@
 	/*output: */
 	Results* results=NULL;
+	Result * result =NULL;
 
 	/*solutions: */
