Index: /issm/trunk/src/c/parallel/ControlInitialization.cpp
===================================================================
--- /issm/trunk/src/c/parallel/ControlInitialization.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/ControlInitialization.cpp	(revision 3709)
@@ -51,11 +51,11 @@
 
 	/*first recover parameters common to all solutions:*/
-	model->FindParam(&verbose,"verbose");
-	model->FindParam(&dim,"dim");
-	model->FindParam(&ishutter,"ishutter");
-	model->FindParam(&ismacayealpattyn,"ismacayealpattyn");
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&isstokes,"isstokes");
-	model->FindParam(&stokesreconditioning,"stokesreconditioning");
+	model->FindParam(&verbose,VerboseEnum);
+	model->FindParam(&dim,DimEnum);
+	model->FindParam(&ishutter,IsHutterEnum);
+	model->FindParam(&ismacayealpattyn,IsMacayealPattynEnum);
+	model->FindParam(&isstokes,IsStokesEnum);
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
+	model->FindParam(&stokesreconditioning,StokesReconditioningEnum);
 
 	/*recover fem models: */
@@ -67,7 +67,7 @@
 
 	//specific parameters for specific models
-	fem_dh->FindParam(&numberofdofspernode_dh,"numberofdofspernode");
-	fem_sl->FindParam(&numberofdofspernode_sl,"numberofdofspernode");
-	fem_ds->FindParam(&numberofdofspernode_ds,"numberofdofspernode");
+	fem_dh->FindParam(&numberofdofspernode_dh,NumberOfDofsPerNodeEnum);
+	fem_sl->FindParam(&numberofdofspernode_sl,NumberOfDofsPerNodeEnum);
+	fem_ds->FindParam(&numberofdofspernode_ds,NumberOfDofsPerNodeEnum);
 
 	/*if no Stokes, assign output and return*/
Index: /issm/trunk/src/c/parallel/ControlRestart.cpp
===================================================================
--- /issm/trunk/src/c/parallel/ControlRestart.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/ControlRestart.cpp	(revision 3709)
@@ -23,6 +23,6 @@
 
 	/*Recover parameters used throughout the solution:*/
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&outputfilename,"outputfilename");
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
+	model->FindParam(&outputfilename,OutputFileNameEnum);
 
 	/*Plug COPYS of the results into output dataset: 
Index: /issm/trunk/src/c/parallel/balancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/parallel/balancedthickness.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/balancedthickness.cpp	(revision 3709)
@@ -25,7 +25,4 @@
 	Model* model=NULL;
 
-	double* u_g_serial=NULL;
-	double* melting_g=NULL;
-	double* accumulation_g=NULL;
 	double  dt;
 	double  yts;
@@ -77,18 +74,6 @@
 
 	/*recover parameters: */
-	model->FindParam(&waitonlock,"waitonlock");
-	model->FindParam(&qmu_analysis,"qmu_analysis");
-
-	_printf_("initialize inputs:\n");
-	
-	model->FindParam(&u_g_serial,NULL,NULL,"u_g",BalancedthicknessAnalysisEnum);
-	model->FindParam(&melting_g,NULL,NULL,"m_g",BalancedthicknessAnalysisEnum);
-	model->FindParam(&accumulation_g,NULL,NULL,"a_g",BalancedthicknessAnalysisEnum);
-	model->FindParam(&numberofnodes,"numberofnodes");
-	
-	inputs=new ParameterInputs;
-	inputs->Add("velocity",u_g_serial,3,numberofnodes);
-	inputs->Add("melting",melting_g,1,numberofnodes);
-	inputs->Add("accumulation",accumulation_g,1,numberofnodes);
+	model->FindParam(&waitonlock,WaitOnLockEnum);
+	model->FindParam(&qmu_analysis,QmuAnalysisEnum);
 
 	_printf_("initialize results:\n");
@@ -136,7 +121,4 @@
 
 	/*Free ressources:*/
-	xfree((void**)&u_g_serial);
-	xfree((void**)&melting_g);
-	xfree((void**)&accumulation_g);
 	delete processedresults;
 	delete results;
Index: /issm/trunk/src/c/parallel/balancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/parallel/balancedthickness2.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/balancedthickness2.cpp	(revision 3709)
@@ -20,15 +20,8 @@
 	char* outputfilename=NULL;
 	char* lockname=NULL;
-	int   numberofnodes;
 	double waitonlock=0;
 
 	Model* model=NULL;
 
-	double* vx_g=NULL;
-	double* vy_g=NULL;
-	double* m_g=NULL;
-	double* a_g=NULL;
-	double* h_g=NULL;
-	double* dhdt_g=NULL;
 	double  dt;
 	double  yts;
@@ -80,24 +73,6 @@
 
 	/*recover parameters: */
-	model->FindParam(&waitonlock,"waitonlock");
-	model->FindParam(&qmu_analysis,"qmu_analysis");
-
-	_printf_("initialize inputs:\n");
-	
-	model->FindParam(&vx_g,NULL,NULL,"vx_g",Balancedthickness2AnalysisEnum);
-	model->FindParam(&vy_g,NULL,NULL,"vy_g",Balancedthickness2AnalysisEnum);
-	model->FindParam(&m_g,NULL,NULL,"m_g",Balancedthickness2AnalysisEnum);
-	model->FindParam(&a_g,NULL,NULL,"a_g",Balancedthickness2AnalysisEnum);
-	model->FindParam(&h_g,NULL,NULL,"h_g",Balancedthickness2AnalysisEnum);
-	model->FindParam(&dhdt_g,NULL,NULL,"dhdt_g",Balancedthickness2AnalysisEnum);
-	model->FindParam(&numberofnodes,"numberofnodes");
-	
-	inputs=new ParameterInputs;
-	inputs->Add("vx",vx_g,1,numberofnodes);
-	inputs->Add("vy",vy_g,1,numberofnodes);
-	inputs->Add("melting",m_g,1,numberofnodes);
-	inputs->Add("accumulation",a_g,1,numberofnodes);
-	inputs->Add("thickness",h_g,1,numberofnodes);
-	inputs->Add("dhdt",dhdt_g,1,numberofnodes);
+	model->FindParam(&waitonlock,WaitOnLockEnum);
+	model->FindParam(&qmu_analysis,QmuAnalysisEnum);
 
 	_printf_("initialize results:\n");
@@ -145,10 +120,4 @@
 
 	/*Free ressources:*/
-	xfree((void**)&vx_g);
-	xfree((void**)&vy_g);
-	xfree((void**)&m_g);
-	xfree((void**)&a_g);
-	xfree((void**)&dhdt_g);
-	xfree((void**)&h_g);
 	delete processedresults;
 	delete results;
Index: /issm/trunk/src/c/parallel/balancedthickness2_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/balancedthickness2_core.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/balancedthickness2_core.cpp	(revision 3709)
@@ -39,8 +39,8 @@
 
 	//first recover parameters common to all solutions
-	model->FindParam(&verbose,"verbose");
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&numberofvertices,"numberofvertices");
-	model->FindParam(&numberofdofspernode,"numberofdofspernode");
+	model->FindParam(&verbose,VerboseEnum);
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
+	model->FindParam(&numberofvertices,NumberOfVerticesEnum);
+	model->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
 
 	_printf_("depth averaging velocity...\n");
Index: /issm/trunk/src/c/parallel/balancedthickness_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/balancedthickness_core.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/balancedthickness_core.cpp	(revision 3709)
@@ -38,7 +38,7 @@
 
 	//first recover parameters common to all solutions
-	model->FindParam(&verbose,"verbose");
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&numberofdofspernode,"numberofdofspernode");
+	model->FindParam(&verbose,VerboseEnum);
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
+	model->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
 
 	_printf_("depth averaging velocity...\n");
Index: /issm/trunk/src/c/parallel/balancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/parallel/balancedvelocities.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/balancedvelocities.cpp	(revision 3709)
@@ -25,7 +25,4 @@
 	Model* model=NULL;
 
-	double* u_g_serial=NULL;
-	double* melting_g=NULL;
-	double* accumulation_g=NULL;
 	int     qmu_analysis;
 
@@ -75,18 +72,6 @@
 
 	/*recover parameters: */
-	model->FindParam(&waitonlock,"waitonlock");
-	model->FindParam(&qmu_analysis,"qmu_analysis");
-
-	_printf_("initialize inputs:\n");
-	
-	model->FindParam(&u_g_serial,NULL,NULL,"u_g",BalancedvelocitiesAnalysisEnum);
-	model->FindParam(&melting_g,NULL,NULL,"m_g",BalancedvelocitiesAnalysisEnum);
-	model->FindParam(&accumulation_g,NULL,NULL,"a_g",BalancedvelocitiesAnalysisEnum);
-	model->FindParam(&numberofnodes,"numberofnodes");
-	
-	inputs=new ParameterInputs;
-	inputs->Add("velocity",u_g_serial,3,numberofnodes);
-	inputs->Add("melting",melting_g,1,numberofnodes);
-	inputs->Add("accumulation",accumulation_g,1,numberofnodes);
+	model->FindParam(&waitonlock,WaitOnLockEnum);
+	model->FindParam(&qmu_analysis,QmuAnalysisEnum);
 
 	_printf_("initialize results:\n");
@@ -134,7 +119,4 @@
 
 	/*Free ressources:*/
-	xfree((void**)&u_g_serial);
-	xfree((void**)&melting_g);
-	xfree((void**)&accumulation_g);
 	delete processedresults;
 	delete results;
Index: /issm/trunk/src/c/parallel/balancedvelocities_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/balancedvelocities_core.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/balancedvelocities_core.cpp	(revision 3709)
@@ -37,7 +37,7 @@
 
 	//first recover parameters common to all solutions
-	model->FindParam(&verbose,"verbose");
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&numberofdofspernode,"numberofdofspernode");
+	model->FindParam(&verbose,VerboseEnum);
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
+	model->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
 
 	_printf_("depth averaging velocity...\n");
Index: /issm/trunk/src/c/parallel/control_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/control_core.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/control_core.cpp	(revision 3709)
@@ -59,31 +59,24 @@
 
 	/*Recover parameters used throughout the solution:*/
-	model->FindParam(&nsteps,"nsteps");
-	model->FindParam(&control_type,"control_type");
-	model->FindParam(&fit,NULL,NULL,"fit");
-	model->FindParam(&optscal,NULL,NULL,"optscal");
-	model->FindParam(&maxiter,NULL,NULL,"maxiter");
-	model->FindParam(&cm_jump,NULL,NULL,"cm_jump");
-	model->FindParam(&eps_cm,"eps_cm");
-	model->FindParam(&tolx,"tolx");
-	model->FindParam(&cm_min,"cm_min");
-	model->FindParam(&cm_max,"cm_max");
-	model->FindParam(&cm_gradient,"cm_gradient");
-	model->FindParam(&param_g,NULL,NULL,"param_g");
-	model->FindParam(&analysis_type,"analysis_type");
-	model->FindParam(&sub_analysis_type,"sub_analysis_type");
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&control_steady,"control_steady");
+	model->FindParam(&nsteps,NStepsEnum);
+	model->FindParam(&control_type,ControlTypeEnum);
+	model->FindParam(&fit,NULL,NULL,FitEnum);
+	model->FindParam(&optscal,NULL,NULL,OptScalEnum);
+	model->FindParam(&maxiter,NULL,NULL,MaxIterEnum);
+	model->FindParam(&cm_jump,NULL,NULL,CmJumpEnum);
+	model->FindParam(&eps_cm,EpsCmEnum);
+	model->FindParam(&tolx,TolXEnum);
+	model->FindParam(&cm_min,CmMinEnum);
+	model->FindParam(&cm_max,CmMaxEnum);
+	model->FindParam(&cm_gradient,CmGradientEnum);
+	model->FindParam(&param_g,NULL,NULL,ControlParameterEnum);
+	model->FindParam(&analysis_type,AnalysisTypeEnum);
+	model->FindParam(&sub_analysis_type,SubAnalysisTypeEnum);
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
+	model->FindParam(&control_steady,ControlSteadyEnum);
 	gsize=fem_model->nodes->NumberOfDofs();
 
 	/*Initialize misfit: */
 	J=(double*)xmalloc(nsteps*sizeof(double));
-
-	/*erase useless parameters: */
-	param=(Param*)fem_model->parameters->FindParamObject("param_g");
-	fem_model->parameters->DeleteObject((Object*)param);
-
-	param=(Param*)fem_model->parameters->FindParamObject("u_g");
-	fem_model->parameters->DeleteObject((Object*)param);
 
 	/*Start looping: */
Index: /issm/trunk/src/c/parallel/diagnostic.cpp
===================================================================
--- /issm/trunk/src/c/parallel/diagnostic.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/diagnostic.cpp	(revision 3709)
@@ -119,5 +119,5 @@
 			results->AddObject(result);
 			
-			model->FindParam(&control_type,"control_type");
+			model->FindParam(&control_type,ControlTypeEnum);
 			result=new Result(results->Size()+1,0,1,"control_type",control_type);
 			results->AddObject(result);
Index: /issm/trunk/src/c/parallel/diagnostic_core_linear.cpp
===================================================================
--- /issm/trunk/src/c/parallel/diagnostic_core_linear.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/diagnostic_core_linear.cpp	(revision 3709)
@@ -28,8 +28,8 @@
 	/*Recover parameters: */
 	kflag=1; pflag=1;
-	fem->parameters->FindParam(&connectivity,"connectivity");
-	fem->parameters->FindParam(&numberofdofspernode,"numberofdofspernode");
-	fem->parameters->FindParam(&verbose,"verbose");
-	fem->parameters->FindParam(&solver_string,"solverstring");
+	fem->parameters->FindParam(&connectivity,ConnectivityEnum);
+	fem->parameters->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
+	fem->parameters->FindParam(&verbose,VerboseEnum);
+	fem->parameters->FindParam(&solver_string,SolverStringEnum);
 
 	/*Update parameters: */
Index: /issm/trunk/src/c/parallel/diagnostic_core_nonlinear.cpp
===================================================================
--- /issm/trunk/src/c/parallel/diagnostic_core_nonlinear.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/diagnostic_core_nonlinear.cpp	(revision 3709)
@@ -41,11 +41,11 @@
 	/*Recover parameters: */
 	kflag=1; pflag=1;
-	fem->FindParam(&connectivity,"connectivity");
-	fem->FindParam(&numberofdofspernode,"numberofdofspernode");
-	fem->FindParam(&numberofnodes,"numberofnodes");
-	fem->FindParam(&solver_string,"solverstring");
-	fem->FindParam(&verbose,"verbose");
-	fem->FindParam(&min_mechanical_constraints,"min_mechanical_constraints");
-	fem->FindParam(&max_nonlinear_iterations,"max_nonlinear_iterations");
+	fem->FindParam(&connectivity,ConnectivityEnum);
+	fem->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
+	fem->FindParam(&numberofnodes,NumberOfNodesEnum);
+	fem->FindParam(&solver_string,SolverStringEnum);
+	fem->FindParam(&verbose,VerboseEnum);
+	fem->FindParam(&min_mechanical_constraints,MinMechanicalConstraintsEnum);
+	fem->FindParam(&max_nonlinear_iterations,MaxNonlinearIterationsEnum);
 	
 	/*Were loads requested as output? : */
Index: /issm/trunk/src/c/parallel/gradjcompute_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/gradjcompute_core.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/gradjcompute_core.cpp	(revision 3709)
@@ -50,14 +50,14 @@
 	/*some parameters:*/
 	femmodel=model->GetActiveFormulation();
-	femmodel->parameters->FindParam(&analysis_type,"analysis_type");
-	femmodel->parameters->FindParam(&sub_analysis_type,"sub_analysis_type");
-	femmodel->parameters->FindParam(&control_steady,"control_steady");
-	femmodel->parameters->FindParam(&numberofnodes,"numberofnodes");
-	femmodel->parameters->FindParam(&numberofdofspernode,"numberofdofspernode");
-	femmodel->parameters->FindParam(&solverstring,"solverstring");
-	femmodel->parameters->FindParam(&control_type,"control_type");
-	femmodel->parameters->FindParam(&extrude_param,"extrude_param");
-	femmodel->parameters->FindParam(&verbose,"verbose");
-	femmodel->parameters->FindParam(&dim,"dim");
+	femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum);
+	femmodel->parameters->FindParam(&sub_analysis_type,SubAnalysisTypeEnum);
+	femmodel->parameters->FindParam(&control_steady,ControlSteadyEnum);
+	femmodel->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
+	femmodel->parameters->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
+	femmodel->parameters->FindParam(&solverstring,SolverStringEnum);
+	femmodel->parameters->FindParam(&control_type,ControlTypeEnum);
+	femmodel->parameters->FindParam(&extrude_param,ExtrudeParamEnum);
+	femmodel->parameters->FindParam(&verbose,VerboseEnum);
+	femmodel->parameters->FindParam(&dim,DimEnum);
 
 	_printf_("%s\n","      recover solution for this stiffness and right hand side:");
Index: /issm/trunk/src/c/parallel/objectivefunctionC.cpp
===================================================================
--- /issm/trunk/src/c/parallel/objectivefunctionC.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/objectivefunctionC.cpp	(revision 3709)
@@ -63,15 +63,16 @@
 
 	gsize=femmodel->nodesets->GetGSize();
-	femmodel->parameters->FindParam(&optscal,NULL,NULL,"optscal");
-	femmodel->parameters->FindParam(&fit,NULL,NULL,"fit");
-	femmodel->parameters->FindParam(&cm_min,"cm_min");
-	femmodel->parameters->FindParam(&cm_max,"cm_max");
-	femmodel->parameters->FindParam(&control_type,"control_type");
-	femmodel->parameters->FindParam(&analysis_type,"analysis_type");
-	femmodel->parameters->FindParam(&sub_analysis_type,"sub_analysis_type");
-	femmodel->parameters->FindParam(&control_steady,"control_steady");
-	femmodel->parameters->FindParam(&numberofnodes,"numberofnodes");
-	femmodel->parameters->FindParam(&numberofdofspernode,"numberofdofspernode");
-	femmodel->parameters->FindParam(&isstokes,"isstokes");
+	femmodel->parameters->FindParam(&optscal,NULL,NULL,OptScalEnum);
+	femmodel->parameters->FindParam(&control_type,ControlTypeEnum);
+	femmodel->parameters->FindParam(&fit,NULL,NULL,FitEnum);
+	femmodel->parameters->FindParam(&cm_min,CmMinEnum);
+	femmodel->parameters->FindParam(&cm_max,CmMaxEnum);
+	femmodel->parameters->FindParam(&control_type,ControlTypeEnum);
+	femmodel->parameters->FindParam(&control_steady,ControlSteadyEnum);
+	femmodel->parameters->FindParam(&analysis_type,AnalysisTypeEnum);
+	femmodel->parameters->FindParam(&sub_analysis_type,SubAnalysisTypeEnum);
+	femmodel->parameters->FindParam(&isstokes,IsStokesEnum);
+	femmodel->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
+	femmodel->parameters->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
 
 	/*First copy param_g so we don't modify it: */
Index: /issm/trunk/src/c/parallel/prognostic.cpp
===================================================================
--- /issm/trunk/src/c/parallel/prognostic.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/prognostic.cpp	(revision 3709)
@@ -25,10 +25,4 @@
 	Model* model=NULL;
 
-	double* u_g_serial=NULL;
-	double* h_g_initial=NULL;
-	double* melting_g=NULL;
-	double* accumulation_g=NULL;
-	double  dt;
-	double  yts;
 	int     qmu_analysis;
 
@@ -76,23 +70,6 @@
 
 	/*recover parameters: */
-	model->FindParam(&waitonlock,"waitonlock");
-	model->FindParam(&qmu_analysis,"qmu_analysis");
-
-	_printf_("initialize inputs:\n");
-	
-	model->FindParam(&u_g_serial,NULL,NULL,"u_g",PrognosticAnalysisEnum);
-	model->FindParam(&h_g_initial,NULL,NULL,"h_g",PrognosticAnalysisEnum);
-	model->FindParam(&melting_g,NULL,NULL,"m_g",PrognosticAnalysisEnum);
-	model->FindParam(&accumulation_g,NULL,NULL,"a_g",PrognosticAnalysisEnum);
-	model->FindParam(&dt,"dt");
-	model->FindParam(&yts,"yts");
-	model->FindParam(&numberofnodes,"numberofnodes");
-	
-	inputs=new ParameterInputs;
-	inputs->Add("velocity",u_g_serial,3,numberofnodes);
-	inputs->Add("thickness",h_g_initial,1,numberofnodes);
-	inputs->Add("melting",melting_g,1,numberofnodes);
-	inputs->Add("accumulation",accumulation_g,1,numberofnodes);
-	inputs->Add("dt",dt*yts);
+	model->FindParam(&waitonlock,WaitOnLockEnum);
+	model->FindParam(&qmu_analysis,QmuAnalysisEnum);
 
 	_printf_("initialize results:\n");
@@ -140,8 +117,4 @@
 
 	/*Free ressources:*/
-	xfree((void**)&u_g_serial);
-	xfree((void**)&h_g_initial);
-	xfree((void**)&melting_g);
-	xfree((void**)&accumulation_g);
 	delete processedresults;
 	delete results;
Index: /issm/trunk/src/c/parallel/prognostic2.cpp
===================================================================
--- /issm/trunk/src/c/parallel/prognostic2.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/prognostic2.cpp	(revision 3709)
@@ -25,11 +25,4 @@
 	Model* model=NULL;
 
-	double* vx_g=NULL;
-	double* vy_g=NULL;
-	double* h_g_initial=NULL;
-	double* m_g=NULL;
-	double* a_g=NULL;
-	double  dt;
-	double  yts;
 	int     qmu_analysis;
 
@@ -77,25 +70,7 @@
 
 	/*recover parameters: */
-	model->FindParam(&waitonlock,"waitonlock");
-	model->FindParam(&qmu_analysis,"qmu_analysis");
-
-	_printf_("initialize inputs:\n");
-	
-	model->FindParam(&vx_g,NULL,NULL,"vx_g",Prognostic2AnalysisEnum);
-	model->FindParam(&vy_g,NULL,NULL,"vy_g",Prognostic2AnalysisEnum);
-	model->FindParam(&h_g_initial,NULL,NULL,"h_g",Prognostic2AnalysisEnum);
-	model->FindParam(&m_g,NULL,NULL,"m_g",Prognostic2AnalysisEnum);
-	model->FindParam(&a_g,NULL,NULL,"a_g",Prognostic2AnalysisEnum);
-	model->FindParam(&dt,"dt");
-	model->FindParam(&yts,"yts");
-	model->FindParam(&numberofnodes,"numberofnodes");
-	
-	inputs=new ParameterInputs;
-	inputs->Add("vx",vx_g,1,numberofnodes);
-	inputs->Add("vy",vy_g,1,numberofnodes);
-	inputs->Add("thickness",h_g_initial,1,numberofnodes);
-	inputs->Add("melting",m_g,1,numberofnodes);
-	inputs->Add("accumulation",a_g,1,numberofnodes);
-	inputs->Add("dt",dt*yts);
+	model->FindParam(&waitonlock,WaitOnLockEnum);
+	model->FindParam(&qmu_analysis,QmuAnalysisEnum);
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
 
 	_printf_("initialize results:\n");
@@ -143,9 +118,4 @@
 
 	/*Free ressources:*/
-	xfree((void**)&vx_g);
-	xfree((void**)&vy_g);
-	xfree((void**)&h_g_initial);
-	xfree((void**)&m_g);
-	xfree((void**)&a_g);
 	delete processedresults;
 	delete results;
Index: /issm/trunk/src/c/parallel/prognostic2_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/prognostic2_core.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/prognostic2_core.cpp	(revision 3709)
@@ -38,18 +38,11 @@
 
 	//first recover parameters common to all solutions
-	model->FindParam(&verbose,"verbose");
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&numberofvertices,"numberofvertices");
-	model->FindParam(&numberofdofspernode,"numberofdofspernode");
+	model->FindParam(&verbose,VerboseEnum);
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
+	model->FindParam(&numberofvertices,NumberOfVerticesEnum);
+	model->FindParam(&numberofdofspernode,NumberOfNodesEnum);
 
 	_printf_("depth averaging velocity...\n");
-	vx_g=inputs->Get("vx",&dofs[0],1);
-	vy_g=inputs->Get("vy",&dofs[0],1);
-	/* NOT WORKING YET....
-	FieldDepthAveragex(vx_g, fem_p->elements,fem_p->nodes, fem_p->vertices,fem_p->loads, fem_p->materials,fem_p->parameters,"vx");
-	FieldDepthAveragex(vy_g, fem_p->elements,fem_p->nodes, fem_p->vertices,fem_p->loads, fem_p->materials,fem_p->parameters,"vy");
-	*/
-	inputs->Add("vx_average",vx_g,1,numberofvertices);
-	inputs->Add("vy_average",vy_g,1,numberofvertices);
+	/*Where is it done?*/
 	
 	_printf_("call computational core:\n");
Index: /issm/trunk/src/c/parallel/prognostic_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/prognostic_core.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/prognostic_core.cpp	(revision 3709)
@@ -37,7 +37,7 @@
 
 	//first recover parameters common to all solutions
-	model->FindParam(&verbose,"verbose");
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&numberofdofspernode,"numberofdofspernode");
+	model->FindParam(&verbose,VerboseEnum);
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
+	model->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
 
 	_printf_("depth averaging velocity...\n");
Index: /issm/trunk/src/c/parallel/slopecompute.cpp
===================================================================
--- /issm/trunk/src/c/parallel/slopecompute.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/slopecompute.cpp	(revision 3709)
@@ -71,11 +71,5 @@
 
 	/*recover parameters: */
-	model->FindParam(&waitonlock,"waitonlock");
-
-	_printf_("initialize inputs:\n");
-	
-	model->FindParam(&numberofnodes,"numberofnodes");
-	
-	inputs=new ParameterInputs;
+	model->FindParam(&waitonlock,WaitOnLockEnum);
 
 	_printf_("initialize results:\n");
Index: /issm/trunk/src/c/parallel/slopecompute_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/slopecompute_core.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/slopecompute_core.cpp	(revision 3709)
@@ -34,7 +34,7 @@
 
 	//first recover parameters common to all solutions
-	model->FindParam(&verbose,"verbose");
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&numberofdofspernode,"numberofdofspernode");
+	model->FindParam(&verbose,VerboseEnum);
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
+	model->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
 
 	_printf_("call computational core:\n");
Index: /issm/trunk/src/c/parallel/steadystate.cpp
===================================================================
--- /issm/trunk/src/c/parallel/steadystate.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/steadystate.cpp	(revision 3709)
@@ -103,22 +103,4 @@
 	model->FindParam(&qmu_analysis,QmuAnalysisEnum);
 
-	_printf_("initialize inputs:\n");
-	model->FindParam(&u_g_initial,NULL,NULL,"u_g",DiagnosticAnalysisEnum,HorizAnalysisEnum);
-	model->FindParam(&p_g_initial,NULL,NULL,"p_g",ThermalAnalysisEnum);
-	model->FindParam(&dt,"dt");
-	model->FindParam(&numberofnodes,"numberofnodes");
-	
-	inputs=new ParameterInputs;
-	inputs->Add("velocity",u_g_initial,3,numberofnodes);
-	inputs->Add("pressure",p_g_initial,1,numberofnodes);
-	inputs->Add("dt",dt);
-
-	if(control_analysis){
-		model->FindParam(&u_g_obs,NULL,NULL,"u_g_obs",DiagnosticAnalysisEnum,HorizAnalysisEnum);
-		model->FindParam(&weights,NULL,NULL,"weights",DiagnosticAnalysisEnum,HorizAnalysisEnum);
-		inputs->Add("velocity_obs",u_g_obs,2,numberofnodes);
-		inputs->Add("weights",weights,1,numberofnodes);
-	}
-	
 	_printf_("initialize results:\n");
 	results=new DataSet(ResultsEnum);
@@ -160,5 +142,5 @@
 			results->AddObject(result);
 
-			model->FindParam(&control_type,"control_type");
+			model->FindParam(&control_type,ControlTypeEnum);
 			result=new Result(results->Size()+1,0,1,"control_type",control_type);
 			results->AddObject(result);
Index: /issm/trunk/src/c/parallel/steadystate_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/steadystate_core.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/steadystate_core.cpp	(revision 3709)
@@ -61,8 +61,8 @@
 
 	//first recover parameters common to all solutions
-	model->FindParam(&verbose,"verbose");verbose=1;
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&eps_rel,"eps_rel");
-	model->FindParam(&isstokes,"isstokes");
+	model->FindParam(&verbose,VerboseEnum);
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
+	model->FindParam(&eps_rel,EpsResEnum);
+	model->FindParam(&isstokes,IsStokesEnum);
 
 	//initialize: 
Index: /issm/trunk/src/c/parallel/thermal.cpp
===================================================================
--- /issm/trunk/src/c/parallel/thermal.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/thermal.cpp	(revision 3709)
@@ -27,8 +27,4 @@
 	/*Model: */
 	Model* model=NULL;
-
-	/*initial velocity and pressure: */
-	double* u_g=NULL;
-	double* p_g=NULL;
 
 	/*Results: */
@@ -78,19 +74,6 @@
 
 	/*recover parameters: */
-	model->FindParam(&waitonlock,"waitonlock");
-	model->FindParam(&qmu_analysis,"qmu_analysis");
-	
-	_printf_("initialize inputs:\n");
-	model->FindParam(&u_g,NULL,NULL,"u_g",ThermalAnalysisEnum);
-	model->FindParam(&p_g,NULL,NULL,"p_g",ThermalAnalysisEnum);
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&dt,"dt");
-	model->FindParam(&yts,"yts");
-
-	inputs=new ParameterInputs;
-
-	inputs->Add("velocity",u_g,3,numberofnodes);
-	inputs->Add("pressure",p_g,1,numberofnodes);
-	inputs->Add("dt",dt*yts); //convert in seconds 
+	model->FindParam(&waitonlock,WaitOnLockEnum);
+	model->FindParam(&qmu_analysis,QmuAnalysisEnum);
 
 	_printf_("initialize results:\n");
@@ -136,6 +119,4 @@
 
 	/*Free ressources */
-	xfree((void**)&u_g);
-	xfree((void**)&p_g);
 	delete model;
 	delete results;
Index: /issm/trunk/src/c/parallel/thermal_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/thermal_core.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/thermal_core.cpp	(revision 3709)
@@ -49,9 +49,9 @@
 
 	//first recover parameters common to all solutions
-	fem_t->FindParam(&numberofnodes,"numberofnodes");
-	fem_t->FindParam(&sub_analysis_type,"sub_analysis_type");
-	fem_t->FindParam(&verbose,"verbose");
-	fem_t->FindParam(&ndt,"ndt");
-	fem_t->FindParam(&dt,"dt");
+	fem_t->FindParam(&numberofnodes,NumberOfNodesEnum);
+	fem_t->FindParam(&sub_analysis_type,SubAnalysisTypeEnum);
+	fem_t->FindParam(&verbose,VerboseEnum);
+	fem_t->FindParam(&ndt,NdtEnum);
+	fem_t->FindParam(&dt,DtEnum);
 
 	if(dt==0){
@@ -83,8 +83,8 @@
 
 		//initialize temperature and melting
-		fem_t->FindParam(&t_g_serial,NULL,NULL,"t_g");
+		fem_t->FindParam(&t_g_serial,NULL,NULL,TemperatureEnum);
 		t_g[0]=SerialToVec(t_g_serial,numberofnodes);
 		xfree((void**)&t_g_serial);
-		fem_m->FindParam(&m_g_serial,NULL,NULL,"m_g");
+		fem_m->FindParam(&m_g_serial,NULL,NULL,MeltingEnum);
 		m_g[0]=SerialToVec(m_g_serial,numberofnodes);
 		xfree((void**)&m_g_serial);
Index: /issm/trunk/src/c/parallel/thermal_core_nonlinear.cpp
===================================================================
--- /issm/trunk/src/c/parallel/thermal_core_nonlinear.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/thermal_core_nonlinear.cpp	(revision 3709)
@@ -41,11 +41,11 @@
 	kflag=1; pflag=1;
 
-	fem->parameters->FindParam(&connectivity,"connectivity");
-	fem->parameters->FindParam(&numberofdofspernode,"numberofdofspernode");
-	fem->parameters->FindParam(&numberofnodes,"numberofnodes");
-	fem->parameters->FindParam(&solver_string,"solverstring");
-	fem->parameters->FindParam(&verbose,"verbose");
-	fem->parameters->FindParam(&lowmem,"lowmem");
-	fem->parameters->FindParam(&min_thermal_constraints,"min_thermal_constraints");
+	fem->parameters->FindParam(&connectivity,ConnectivityEnum);
+	fem->parameters->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
+	fem->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
+	fem->parameters->FindParam(&solver_string,SolverStringEnum);
+	fem->parameters->FindParam(&verbose,VerboseEnum);
+	fem->parameters->FindParam(&lowmem,LowmemEnum);
+	fem->parameters->FindParam(&min_thermal_constraints,MinThermalConstraintsEnum);
 
 	count=1;
Index: /issm/trunk/src/c/parallel/transient.cpp
===================================================================
--- /issm/trunk/src/c/parallel/transient.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/transient.cpp	(revision 3709)
@@ -36,9 +36,4 @@
 	
 	/*inputs: */
-	double* u_g=NULL;
-	double* m_g=NULL;
-	double* a_g=NULL;
-	double  dt;
-	double  yts;
 	Param*  param=NULL;
 
@@ -94,5 +89,5 @@
 	
 	/*Do we run in 3d?, in which case we need thermal and melting also:*/
-	model->FindParam(&dim,"dim");
+	model->FindParam(&dim,DimEnum);
 	if(dim==3){
 		_printf_("read and create thermal finite element model:\n");
@@ -103,21 +98,6 @@
 
 	/*recover parameters: */
-	model->FindParam(&waitonlock,"waitonlock");
-	model->FindParam(&qmu_analysis,"qmu_analysis");
-
-	_printf_("initialize inputs:\n");
-	model->FindParam(&u_g,NULL,NULL,"u_g",PrognosticAnalysisEnum);
-	model->FindParam(&m_g,NULL,NULL,"m_g",PrognosticAnalysisEnum);
-	model->FindParam(&a_g,NULL,NULL,"a_g",PrognosticAnalysisEnum);
-	model->FindParam(&numberofnodes,"numberofnodes");
-	model->FindParam(&dt,"dt");
-	model->FindParam(&yts,"yts");
-	
-
-	inputs=new ParameterInputs;
-	inputs->Add("velocity",u_g,3,numberofnodes);
-	inputs->Add("melting",m_g,1,numberofnodes);
-	inputs->Add("accumulation",a_g,1,numberofnodes);
-	inputs->Add("dt",dt*yts);
+	model->FindParam(&waitonlock,WaitOnLockEnum);
+	model->FindParam(&qmu_analysis,QmuAnalysisEnum);
 	
 	_printf_("initialize results:\n");
@@ -167,7 +147,4 @@
 	delete model;
 	delete inputs;
-	xfree((void**)&u_g);
-	xfree((void**)&m_g);
-	xfree((void**)&a_g);
 
 	/*Get finish time and close*/
Index: /issm/trunk/src/c/parallel/transient_core_2d.cpp
===================================================================
--- /issm/trunk/src/c/parallel/transient_core_2d.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/transient_core_2d.cpp	(revision 3709)
@@ -30,18 +30,12 @@
 
 	Vec u_g=NULL;
-	double* u_g_serial=NULL;
-	double* u_g_serial3d=NULL;
 	Vec p_g=NULL;
-	double* p_g_serial=NULL;
 	Vec h_g=NULL;
 	Vec new_h_g=NULL;
 	Vec h_g_intermediary=NULL;
-	double* h_g_serial=NULL;
 	Vec s_g=NULL;
 	Vec new_s_g=NULL;
-	double* s_g_serial=NULL;
 	Vec b_g=NULL;
 	Vec new_b_g=NULL;
-	double* b_g_serial=NULL;
 
 	/*intermediary: */
@@ -72,35 +66,12 @@
 
 	//first recover parameters common to all solutions
-	model->FindParam(&verbose,"verbose");
-	model->FindParam(&finaltime,"ndt");
-	model->FindParam(&dt,"dt");
-	model->FindParam(&numberofnodes,"numberofnodes");
+	model->FindParam(&verbose,VerboseEnum);
+	model->FindParam(&finaltime,NdtEnum);
+	model->FindParam(&dt,DtEnum);
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
 
 	/*initialize: */
 	step=1;
 	time=0;
-	
-	fem_p->parameters->FindParam(&u_g_serial3d,NULL,NULL,"u_g");
-	u_g_serial=(double*)xmalloc(2*numberofnodes*sizeof(double));
-	for(i=0;i<numberofnodes;i++){
-		u_g_serial[2*i+0]=u_g_serial3d[3*i+0];
-		u_g_serial[2*i+1]=u_g_serial3d[3*i+1];
-	}
-	u_g=SerialToVec(u_g_serial,2*numberofnodes); xfree((void**)&u_g_serial);
-
-	fem_p->parameters->FindParam(&h_g_serial,NULL,NULL,"h_g");
-	h_g=SerialToVec(h_g_serial,1*numberofnodes); xfree((void**)&h_g_serial);
-
-	fem_p->parameters->FindParam(&s_g_serial,NULL,NULL,"s_g");
-	s_g=SerialToVec(s_g_serial,1*numberofnodes); xfree((void**)&s_g_serial);
-
-	fem_p->parameters->FindParam(&b_g_serial,NULL,NULL,"b_g");
-	b_g=SerialToVec(b_g_serial,1*numberofnodes); xfree((void**)&b_g_serial);
-
-	/*Add all these initial vectors in the results!: */
-	result=new Result(results->Size()+1,time,step,"u_g",u_g); results->AddObject(result);
-	result=new Result(results->Size()+1,time,step,"h_g",h_g); results->AddObject(result);
-	result=new Result(results->Size()+1,time,step,"s_g",s_g); results->AddObject(result);
-	result=new Result(results->Size()+1,time,step,"b_g",b_g); results->AddObject(result);
 
 	while(time<finaltime){ //make sure we run up to finaltime.
@@ -110,10 +81,4 @@
 		step+=1;
 		time+=dt;
-
-		//update inputs
-		inputs->Add("thickness",h_g,1,numberofnodes);
-		inputs->Add("surface",s_g,1,numberofnodes);
-		inputs->Add("bed",b_g,1,numberofnodes);
-		inputs->Add("velocity",u_g,2,numberofnodes);
 
 		//Deal with velocities.
@@ -154,13 +119,13 @@
 		result=new Result(results->Size()+1,time,step,"b_g",b_g); results->AddObject(result);
 
+		//update inputs
+		inputs->Add("thickness",h_g,1,numberofnodes);
+		inputs->Add("surface",s_g,1,numberofnodes);
+		inputs->Add("bed",b_g,1,numberofnodes);
+		inputs->Add("velocity",u_g,2,numberofnodes);
+
 	}
 
 	/*Free ressources:*/
-	xfree((void**)&u_g_serial);
-	xfree((void**)&u_g_serial3d);
-	xfree((void**)&p_g_serial);
-	xfree((void**)&h_g_serial);
-	xfree((void**)&s_g_serial);
-	xfree((void**)&b_g_serial);
 	VecFree(&u_g);
 	VecFree(&p_g);
Index: /issm/trunk/src/c/parallel/transient_core_3d.cpp
===================================================================
--- /issm/trunk/src/c/parallel/transient_core_3d.cpp	(revision 3708)
+++ /issm/trunk/src/c/parallel/transient_core_3d.cpp	(revision 3709)
@@ -32,20 +32,13 @@
 	
 	Vec u_g=NULL;
-	double* u_g_serial=NULL;
 	Vec p_g=NULL;
-	double* p_g_serial=NULL;
 	Vec h_g=NULL;
 	Vec h_g_intermediary=NULL;
-	double* h_g_serial=NULL;
 	Vec s_g=NULL;
-	double* s_g_serial=NULL;
 	Vec b_g=NULL;
-	double* b_g_serial=NULL;
 	Vec t_g=NULL;
 	Vec t_g_average=NULL;
-	double* t_g_serial=NULL;
 	double melting_offset;
 	Vec m_g=NULL;
-	double* m_g_serial=NULL;
 
 	/*intermediary: */
@@ -78,42 +71,12 @@
 
 	//first recover parameters common to all solutions
-	model->FindParam(&verbose,"verbose");
-	model->FindParam(&finaltime,"ndt");
-	model->FindParam(&dt,"dt");
-	model->FindParam(&numberofnodes,"numberofnodes");
+	model->FindParam(&verbose,VerboseEnum);
+	model->FindParam(&finaltime,NdtEnum);
+	model->FindParam(&dt,DtEnum);
+	model->FindParam(&numberofnodes,NumberOfDofsPerNodeEnum);
 
 	/*initialize: */
 	step=1;
 	time=0;
-	
-	fem_p->parameters->FindParam(&u_g_serial,NULL,NULL,"u_g");
-	u_g=SerialToVec(u_g_serial,3*numberofnodes); xfree((void**)&u_g_serial);
-
-	fem_p->parameters->FindParam(&p_g_serial,NULL,NULL,"p_g");
-	p_g=SerialToVec(p_g_serial,1*numberofnodes); xfree((void**)&p_g_serial);
-
-	fem_p->parameters->FindParam(&h_g_serial,NULL,NULL,"h_g");
-	h_g=SerialToVec(h_g_serial,1*numberofnodes); xfree((void**)&h_g_serial);
-
-	fem_p->parameters->FindParam(&s_g_serial,NULL,NULL,"s_g");
-	s_g=SerialToVec(s_g_serial,1*numberofnodes); xfree((void**)&s_g_serial);
-
-	fem_p->parameters->FindParam(&b_g_serial,NULL,NULL,"b_g");
-	b_g=SerialToVec(b_g_serial,1*numberofnodes); xfree((void**)&b_g_serial);
-
-	fem_p->parameters->FindParam(&t_g_serial,NULL,NULL,"t_g");
-	t_g=SerialToVec(t_g_serial,1*numberofnodes); xfree((void**)&t_g_serial);
-
-	fem_p->parameters->FindParam(&m_g_serial,NULL,NULL,"m_g");
-	m_g=SerialToVec(m_g_serial,1*numberofnodes); xfree((void**)&m_g_serial);
-
-	/*Add all these initial vectors in the results!: */
-	result=new Result(results->Size()+1,time,step,"u_g",u_g); results->AddObject(result);
-	result=new Result(results->Size()+1,time,step,"p_g",p_g); results->AddObject(result);
-	result=new Result(results->Size()+1,time,step,"h_g",h_g); results->AddObject(result);
-	result=new Result(results->Size()+1,time,step,"s_g",s_g); results->AddObject(result);
-	result=new Result(results->Size()+1,time,step,"b_g",b_g); results->AddObject(result);
-	result=new Result(results->Size()+1,time,step,"t_g",t_g); results->AddObject(result);
-	result=new Result(results->Size()+1,time,step,"m_g",m_g); results->AddObject(result);
 
 	while(time<finaltime){ //make sure we run up to finaltime.
@@ -123,12 +86,4 @@
 		step+=1;
 		time+=dt;
-
-		//update inputs
-		inputs->Add("thickness",h_g,1,numberofnodes);
-		inputs->Add("surface",s_g,1,numberofnodes);
-		inputs->Add("bed",b_g,1,numberofnodes);
-		inputs->Add("velocity",u_g,3,numberofnodes);
-		inputs->Add("pressure",p_g,1,numberofnodes);
-		inputs->Add("temperature",t_g,1,numberofnodes);
 
 		//Deal with temperature first 
@@ -190,4 +145,12 @@
 		result=new Result(results->Size()+1,time,step,"m_g",m_g); results->AddObject(result);
 
+		//update inputs
+		inputs->Add("thickness",h_g,1,numberofnodes);
+		inputs->Add("surface",s_g,1,numberofnodes);
+		inputs->Add("bed",b_g,1,numberofnodes);
+		inputs->Add("velocity",u_g,3,numberofnodes);
+		inputs->Add("pressure",p_g,1,numberofnodes);
+		inputs->Add("temperature",t_g,1,numberofnodes);
+
 		//Save temporary results every 5 steps
 		if (step%5==0){
@@ -216,10 +179,3 @@
 	VecFree(&t_g);
 	VecFree(&m_g);
-	xfree((void**)&u_g_serial);
-	xfree((void**)&p_g_serial);
-	xfree((void**)&h_g_serial);
-	xfree((void**)&s_g_serial);
-	xfree((void**)&b_g_serial);
-	xfree((void**)&t_g_serial);
-	xfree((void**)&m_g_serial);
 }
