Index: /issm/trunk/src/c/ComputeBasalStressx/ComputeBasalStressx.cpp
===================================================================
--- /issm/trunk/src/c/ComputeBasalStressx/ComputeBasalStressx.cpp	(revision 3702)
+++ /issm/trunk/src/c/ComputeBasalStressx/ComputeBasalStressx.cpp	(revision 3703)
@@ -22,5 +22,5 @@
 
 	/*Recover numberofelements: */
-	found= parameters->FindParam(&numberofelements,"numberofelements");
+	found= parameters->FindParam(&numberofelements,NumberOfElementsEnum);
 	if (!found) ISSMERROR("numberofelements not provided in parameters");
 
Index: /issm/trunk/src/c/ComputePressurex/ComputePressurex.cpp
===================================================================
--- /issm/trunk/src/c/ComputePressurex/ComputePressurex.cpp	(revision 3702)
+++ /issm/trunk/src/c/ComputePressurex/ComputePressurex.cpp	(revision 3703)
@@ -22,5 +22,5 @@
 
 	/*Recover numberofnodes: */
-    parameters->FindParam(&numberofnodes,"numberofnodes");
+    parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 
 	/*Allocate p_g on numberofnodes (only 1 dof): */
Index: /issm/trunk/src/c/ComputeStrainRatex/ComputeStrainRatex.cpp
===================================================================
--- /issm/trunk/src/c/ComputeStrainRatex/ComputeStrainRatex.cpp	(revision 3702)
+++ /issm/trunk/src/c/ComputeStrainRatex/ComputeStrainRatex.cpp	(revision 3703)
@@ -22,5 +22,5 @@
 
 	/*Recover numberofelements: */
-	parameters->FindParam(&numberofelements,"numberofelements");
+	parameters->FindParam(&numberofelements,NumberOfElementsEnum);
 
 	/*Allocate eps on numberofelements (only 1 dof): */
Index: /issm/trunk/src/c/Dofx/Dofx.cpp
===================================================================
--- /issm/trunk/src/c/Dofx/Dofx.cpp	(revision 3702)
+++ /issm/trunk/src/c/Dofx/Dofx.cpp	(revision 3703)
@@ -36,12 +36,12 @@
 
 	/*First, recover number of vertices and nodes from parameters: */
-	found=parameters->FindParam(&numberofvertices,"numberofvertices");
+	found=parameters->FindParam(&numberofvertices,NumberOfVerticesEnum);
 	if(!found)ISSMERROR(" could not find numberofvertices in parameters");
 	
-	found=parameters->FindParam(&numberofnodes,"numberofnodes");
+	found=parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 	if(!found)ISSMERROR(" could not find numberofnodes in parameters");
 
 	/*Recover number of dofs per node: */
-	found=parameters->FindParam(&numberofdofspernode,"numberofdofspernode");
+	found=parameters->FindParam(&numberofdofspernode,NumberOfDofsPerNodeEnum);
 	if(!found)ISSMERROR(" could not find numberofdofspernode in parameters");
 
Index: /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
===================================================================
--- /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 3702)
+++ /issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h	(revision 3703)
@@ -222,7 +222,7 @@
 	IsStokesEnum,
 	VerboseEnum,
-	EpsRes,
-	EpsRel,
-	EpsAbs,
+	EpsResEnum,
+	EpsRelEnum,
+	EpsAbsEnum,
 	EpsCmEnum,
 	MaxNonlinearIterationsEnum,
Index: /issm/trunk/src/c/FieldAverageOntoVerticesx/FieldAverageOntoVerticesx.cpp
===================================================================
--- /issm/trunk/src/c/FieldAverageOntoVerticesx/FieldAverageOntoVerticesx.cpp	(revision 3702)
+++ /issm/trunk/src/c/FieldAverageOntoVerticesx/FieldAverageOntoVerticesx.cpp	(revision 3703)
@@ -24,5 +24,5 @@
 
 	/*Initioalize intermediary*/
-	found=parameters->FindParam(&numberofvertices,"numberofvertices");
+	found=parameters->FindParam(&numberofvertices,NumberOfVerticesEnum);
 	connectivity=NewVec(numberofvertices);
 	fieldsum    =NewVec(numberofvertices);
Index: /issm/trunk/src/c/Makefile.am
===================================================================
--- /issm/trunk/src/c/Makefile.am	(revision 3702)
+++ /issm/trunk/src/c/Makefile.am	(revision 3703)
@@ -121,6 +121,8 @@
 					./objects/NodeSets.cpp\
 					./objects/NodeSets.h\
+					./DataSet/DataSet.h\
 					./DataSet/DataSet.cpp\
-					./DataSet/DataSet.h\
+					./DataSet/Parameters.cpp\
+					./DataSet/Inputs.cpp\
 					./shared/shared.h\
 					./shared/Alloc/alloc.h\
@@ -544,6 +546,8 @@
 					./objects/NodeSets.cpp\
 					./objects/NodeSets.h\
+					./DataSet/DataSet.h\
 					./DataSet/DataSet.cpp\
-					./DataSet/DataSet.h\
+					./DataSet/Parameters.cpp\
+					./DataSet/Inputs.cpp\
 					./shared/shared.h\
 					./shared/Threads/issm_threads.h\
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateConstraintsBalancedthickness.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 
 #include "../../DataSet/DataSet.h"
+#include "../../io/io.h"
 #include "../../toolkits/toolkits.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateElementsNodesAndMaterialsBalancedthickness.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateLoadsBalancedthickness.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateConstraintsBalancedthickness2.cpp	(revision 3703)
@@ -8,4 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
+#include "../../io/io.h"
 #include "../ModelProcessorx.h"
 
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateElementsNodesAndMaterialsBalancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateElementsNodesAndMaterialsBalancedthickness2.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateElementsNodesAndMaterialsBalancedthickness2.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateLoadsBalancedthickness2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateLoadsBalancedthickness2.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness2/CreateLoadsBalancedthickness2.cpp	(revision 3703)
@@ -3,4 +3,5 @@
 
 #include "../../DataSet/DataSet.h"
+#include "../../io/io.h"
 #include "../../toolkits/toolkits.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
Index: /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateConstraintsBalancedvelocities.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateElementsNodesAndMaterialsBalancedvelocities.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateLoadsBalancedvelocities.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/Control/CreateParametersControl.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Control/CreateParametersControl.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp	(revision 3703)
@@ -9,4 +9,5 @@
 #include "../shared/shared.h"
 #include "../MeshPartitionx/MeshPartitionx.h"
+#include "../io/io.h"
 
 void CreateParameters(Parameters** pparameters,IoModel* iomodel,ConstDataHandle iomodel_handle){
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateElementsNodesAndMaterialsDiagnosticHoriz.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHoriz/CreateLoadsDiagnosticHoriz.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateConstraintsDiagnosticHutter.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateElementsNodesAndMaterialsDiagnosticHutter.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticHutter/CreateLoadsDiagnosticHutter.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateConstraintsDiagnosticStokes.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateElementsNodesAndMaterialsDiagnosticStokes.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticStokes/CreateLoadsDiagnosticStokes.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateConstraintsDiagnosticVert.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateElementsNodesAndMaterialsDiagnosticVert.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/DiagnosticVert/CreateLoadsDiagnosticVert.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/Melting/CreateConstraintsMelting.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Melting/CreateConstraintsMelting.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Melting/CreateConstraintsMelting.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 
 #include "../../DataSet/DataSet.h"
+#include "../../io/io.h"
 #include "../../toolkits/toolkits.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
Index: /issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Melting/CreateElementsNodesAndMaterialsMelting.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../include/typedefs.h"
Index: /issm/trunk/src/c/ModelProcessorx/Melting/CreateLoadsMelting.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Melting/CreateLoadsMelting.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateConstraintsPrognostic.cpp	(revision 3703)
@@ -6,4 +6,5 @@
 #include "../../toolkits/toolkits.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
+#include "../../io/io.h"
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateElementsNodesAndMaterialsPrognostic.cpp	(revision 3703)
@@ -8,4 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
+#include "../../io/io.h"
 #include "../../MeshPartitionx/MeshPartitionx.h"
 #include "../../include/typedefs.h"
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateLoadsPrognostic.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateConstraintsPrognostic2.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateElementsNodesAndMaterialsPrognostic2.cpp	(revision 3703)
@@ -7,4 +7,5 @@
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
+#include "../../io/io.h"
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateLoadsPrognostic2.cpp	(revision 3703)
@@ -6,4 +6,5 @@
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
+#include "../../io/io.h"
 #include "../../shared/shared.h"
 #include "../../include/macros.h"
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateParametersPrognostic2.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateParametersPrognostic2.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic2/CreateParametersPrognostic2.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 
 #include "../../DataSet/DataSet.h"
+#include "../../io/io.h"
 #include "../../toolkits/toolkits.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
Index: /issm/trunk/src/c/ModelProcessorx/Qmu/CreateParametersQmu.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Qmu/CreateParametersQmu.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Qmu/CreateParametersQmu.cpp	(revision 3703)
@@ -8,4 +8,5 @@
 #include "../../objects/objects.h"
 #include "../../shared/shared.h"
+#include "../../io/io.h"
 #include "../../include/macros.h"
 #include "../../MeshPartitionx/MeshPartitionx.h"
Index: /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateConstraintsSlopeCompute.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 
 #include "../../DataSet/DataSet.h"
+#include "../../io/io.h"
 #include "../../toolkits/toolkits.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
Index: /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateElementsNodesAndMaterialsSlopeCompute.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 
 #include "../../DataSet/DataSet.h"
+#include "../../io/io.h"
 #include "../../toolkits/toolkits.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
Index: /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/SlopeCompute/CreateLoadsSlopeCompute.cpp	(revision 3703)
@@ -3,4 +3,5 @@
 
 #include "../../DataSet/DataSet.h"
+#include "../../io/io.h"
 #include "../../toolkits/toolkits.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
Index: /issm/trunk/src/c/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Thermal/CreateConstraintsThermal.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 
 #include "../../DataSet/DataSet.h"
+#include "../../io/io.h"
 #include "../../toolkits/toolkits.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
Index: /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Thermal/CreateElementsNodesAndMaterialsThermal.cpp	(revision 3703)
@@ -5,4 +5,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/ModelProcessorx/Thermal/CreateLoadsThermal.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 3702)
+++ /issm/trunk/src/c/ModelProcessorx/Thermal/CreateLoadsThermal.cpp	(revision 3703)
@@ -4,4 +4,5 @@
 #include "../../DataSet/DataSet.h"
 #include "../../toolkits/toolkits.h"
+#include "../../io/io.h"
 #include "../../EnumDefinitions/EnumDefinitions.h"
 #include "../../objects/objects.h"
Index: /issm/trunk/src/c/PenaltyConstraintsx/PenaltyConstraintsx.cpp
===================================================================
--- /issm/trunk/src/c/PenaltyConstraintsx/PenaltyConstraintsx.cpp	(revision 3702)
+++ /issm/trunk/src/c/PenaltyConstraintsx/PenaltyConstraintsx.cpp	(revision 3703)
@@ -25,5 +25,5 @@
 
 	/*recover parameters: */
-	parameters->FindParam(&min_mechanical_constraints,"min_mechanical_constraints");
+	parameters->FindParam(&min_mechanical_constraints,MinMechanicalConstraintsEnum);
 
 	/*First, get nodes and loads configured: */
Index: /issm/trunk/src/c/ProcessParamsx/ProcessParamsx.cpp
===================================================================
--- /issm/trunk/src/c/ProcessParamsx/ProcessParamsx.cpp	(revision 3702)
+++ /issm/trunk/src/c/ProcessParamsx/ProcessParamsx.cpp	(revision 3703)
@@ -32,5 +32,5 @@
 
 	/*Some parameters needed: */
-	parameters->FindParam(&numberofvertices,"numberofvertices");
+	parameters->FindParam(&numberofvertices,NumberOfVerticesEnum);
 
 	/*serialize partition vector: */
Index: /issm/trunk/src/c/Qmux/DakotaResponses.cpp
===================================================================
--- /issm/trunk/src/c/Qmux/DakotaResponses.cpp	(revision 3702)
+++ /issm/trunk/src/c/Qmux/DakotaResponses.cpp	(revision 3703)
@@ -25,5 +25,5 @@
 
 	/*some data needed across the responses: */
-	model->FindParam(&numberofnodes,"numberofnodes");
+	model->FindParam(&numberofnodes,NumberOfNodesEnum);
 
 
@@ -233,7 +233,7 @@
 
 			/*retrieve active fem model: */
-			model->FindParam(&isstokes,"isstokes");
-			model->FindParam(&ismacayealpattyn,"ismacayealpattyn");
-			model->FindParam(&ishutter,"ishutter");
+			model->FindParam(&isstokes,IsStokesEnum);
+			model->FindParam(&ismacayealpattyn,IsMacayealPattynEnum);
+			model->FindParam(&ishutter,IsHutterEnum);
 
 			if(isstokes){
@@ -249,7 +249,7 @@
 
 			/*Recover some parameters: */
-			femmodel->parameters->FindParam(&numberofdofspernode,"numberofdofspernode");
-			femmodel->parameters->FindParam(&numberofnodes,"numberofnodes");
-			femmodel->parameters->FindParam(&fit,NULL,NULL,"fit");
+			femmodel->parameters->FindParam(&numberofdofspernode,NumberOfDofsPernodeEnum);
+			femmodel->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
+			femmodel->parameters->FindParam(&fit,NULL,NULL,FitEnum);
 
 			/*Recover velocity: */
@@ -299,7 +299,7 @@
 		
 			/*retrieve active fem model: */
-			model->FindParam(&isstokes,"isstokes");
-			model->FindParam(&ismacayealpattyn,"ismacayealpattyn");
-			model->FindParam(&ishutter,"ishutter");
+			model->FindParam(&isstokes,IsStokesEnum);
+			model->FindParam(&ismacayealpattyn,IsMacayealPattynEnum);
+			model->FindParam(&ishutter,IsHutterEnum);
 
 			if(isstokes){
@@ -314,5 +314,5 @@
 
 			/*retrieve qmu_mass_flux_segments: */
-			param=(Param*)femmodel->parameters->FindParamObject("qmu_mass_flux_segments");
+			param=(Param*)femmodel->parameters->FindParamObject(QmuMassFluxSegmentsEnum);
 			if(!param)ISSMERROR(" could not find qmu_mass_flux_segments to compute mass_flux");
 			
Index: /issm/trunk/src/c/Qmux/SpawnCoreParallel.cpp
===================================================================
--- /issm/trunk/src/c/Qmux/SpawnCoreParallel.cpp	(revision 3702)
+++ /issm/trunk/src/c/Qmux/SpawnCoreParallel.cpp	(revision 3703)
@@ -57,8 +57,8 @@
 	
 	/*some parameters needed: */
-	model->FindParam(&verbose,"verbose");
+	model->FindParam(&verbose,VerboseEnum);
 		
 	/*First off, recover the response descriptors for the response functions: */
-	param=(Param*)model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum)->parameters->FindParamObject("responsedescriptors");
+	param=(Param*)model->GetFormulation(DiagnosticAnalysisEnum,HorizAnalysisEnum)->parameters->FindParamObject(ResponseDescriptorsEnum);
 	if(!param)ISSMERROR(" could not find response descriptors!");
 
@@ -66,6 +66,6 @@
 
 	/*Recover partitioning for dakota: */
-	model->FindParam(&qmu_npart,"qmu_npart");
-	model->FindParam(&qmu_part,NULL,NULL,"qmu_part");
+	model->FindParam(&qmu_npart,QmuNpartEnum);
+	model->FindParam(&qmu_part,NULL,NULL,QmuPartEnum);
 
 	/*broadcast variables: only cpu 0 has correct values*/
Index: /issm/trunk/src/c/UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.cpp
===================================================================
--- /issm/trunk/src/c/UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.cpp	(revision 3702)
+++ /issm/trunk/src/c/UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.cpp	(revision 3703)
@@ -9,13 +9,10 @@
 #include "../EnumDefinitions/EnumDefinitions.h"
 
-int UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,Vec solution, int analysis_type, int sub_analysis_type){
+void UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,Vec solution, int analysis_type, int sub_analysis_type){
 
-	int noerr=1;
-	int i;
+	double* serial_solution=NULL;
 
-	int  found=0;
-	extern int num_procs;
-	extern int my_rank;
-	double* serial_solution=NULL;
+	/*Serialize solution, so that elements can index into it on every CPU: */
+	VecToMPISerial(&serial_solution,solution);
 
 	/*First, get elements and loads configured: */
@@ -25,19 +22,10 @@
 	parameters->Configure(elements,loads, nodes,vertices, materials,parameters);
 
-	/*Serialize solution, so that elements can index into it on every CPU: */
-	VecToMPISerial(&serial_solution,solution);
-
-	/*Update elements, nodes, loads and materials from inputs: */
+	
+	/*Elements drive the update: */
 	elements->UpdateInputsFromSolution(serial_solution,analysis_type,sub_analysis_type);
-	nodes->UpdateInputsFromSolution(serial_solution,analysis_type,sub_analysis_type);
-	vertices->UpdateInputsFromSolution(serial_solution,analysis_type,sub_analysis_type);
-	loads->UpdateInputsFromSolution(serial_solution,analysis_type,sub_analysis_type);
-	materials->UpdateInputsFromSolution(serial_solution,analysis_type,sub_analysis_type);
-	parameters->UpdateInputsFromSolution(serial_solution,analysis_type,sub_analysis_type);
 
 	/*Free ressources:*/
 	xfree((void**)&serial_solution);
 
-	return noerr;
-
 }
Index: /issm/trunk/src/c/UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h
===================================================================
--- /issm/trunk/src/c/UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h	(revision 3702)
+++ /issm/trunk/src/c/UpdateInputsFromSolutionx/UpdateInputsFromSolutionx.h	(revision 3703)
@@ -10,5 +10,5 @@
 
 /* local prototypes: */
-int		UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials,  Parameters* parameters,Vec solution, int analysis_type, int sub_analysis_type);
+void		UpdateInputsFromSolutionx( DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials,  Parameters* parameters,Vec solution, int analysis_type, int sub_analysis_type);
 
 #endif  /* _UPDATEINPUTSXX_H */
Index: /issm/trunk/src/c/UpdateInputsFromVectorx/UpdateInputsFromVectorx.cpp
===================================================================
--- /issm/trunk/src/c/UpdateInputsFromVectorx/UpdateInputsFromVectorx.cpp	(revision 3702)
+++ /issm/trunk/src/c/UpdateInputsFromVectorx/UpdateInputsFromVectorx.cpp	(revision 3703)
@@ -9,5 +9,5 @@
 #include "../EnumDefinitions/EnumDefinitions.h"
 
-int UpdateInputsFromVectorx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,double* vector, int NameEnum, int TypeEnum){
+void UpdateInputsFromVectorx( DataSet* elements,DataSet* nodes, DataSet* vertices, DataSet* loads, DataSet* materials, Parameters* parameters,double* vector, int NameEnum, int TypeEnum){
 
 	/*First, get elements and loads configured: */
@@ -18,12 +18,10 @@
 
 	/*Update elements, nodes, loads and materials from inputs: */
-	elements->UpdateInputsFromVector(serial_solution,analysis_type,sub_analysis_type);
-	nodes->UpdateInputsFromVector(serial_solution,analysis_type,sub_analysis_type);
-	vertices->UpdateInputsFromVector(serial_solution,analysis_type,sub_analysis_type);
-	loads->UpdateInputsFromVector(serial_solution,analysis_type,sub_analysis_type);
-	materials->UpdateInputsFromVector(serial_solution,analysis_type,sub_analysis_type);
-	parameters->UpdateInputsFromVector(serial_solution,analysis_type,sub_analysis_type);
-
-	return noerr;
+	elements->UpdateInputsFromVector(vector,NameEnum,TypeEnum);
+	nodes->UpdateInputsFromVector(vector,NameEnum,TypeEnum);
+	vertices->UpdateInputsFromVector(vector,NameEnum,TypeEnum);
+	loads->UpdateInputsFromVector(vector,NameEnum,TypeEnum);
+	materials->UpdateInputsFromVector(vector,NameEnum,TypeEnum);
+	parameters->UpdateInputsFromVector(vector,NameEnum,TypeEnum);
 
 }
Index: /issm/trunk/src/c/UpdateInputsFromVectorx/UpdateInputsFromVectorx.h
===================================================================
--- /issm/trunk/src/c/UpdateInputsFromVectorx/UpdateInputsFromVectorx.h	(revision 3702)
+++ /issm/trunk/src/c/UpdateInputsFromVectorx/UpdateInputsFromVectorx.h	(revision 3703)
@@ -10,5 +10,5 @@
 
 /* local prototypes: */
-int		UpdateInputsFromVectorx( DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials,  Parameters* parameters,double* vector, int NameEnum,int TypeEnum);
+void	UpdateInputsFromVectorx( DataSet* elements,DataSet* nodes, DataSet* vertices,DataSet* loads, DataSet* materials,  Parameters* parameters,double* vector, int NameEnum,int TypeEnum);
 
 #endif  /* _UPDATEINPUTSXX_H */
Index: /issm/trunk/src/c/objects/Constraints/Rgb.h
===================================================================
--- /issm/trunk/src/c/objects/Constraints/Rgb.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Constraints/Rgb.h	(revision 3703)
@@ -34,4 +34,7 @@
 		int    Id(); 
 		int    MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 		/*non virtual: */
Index: /issm/trunk/src/c/objects/Constraints/Spc.h
===================================================================
--- /issm/trunk/src/c/objects/Constraints/Spc.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Constraints/Spc.h	(revision 3703)
@@ -39,4 +39,7 @@
 		double GetValue();
 		Object* copy();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 };
Index: /issm/trunk/src/c/objects/DofVec.h
===================================================================
--- /issm/trunk/src/c/objects/DofVec.h	(revision 3702)
+++ /issm/trunk/src/c/objects/DofVec.h	(revision 3703)
@@ -47,6 +47,6 @@
 		int   MyRank();
 		int   Size();
-	
-
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
 		Object* copy();
 
@@ -62,5 +62,5 @@
 		
 		double* GetValuesFromIndex(int index_size,int* index);
-		
+				
 
 };
Index: /issm/trunk/src/c/objects/Elements/Beam.cpp
===================================================================
--- /issm/trunk/src/c/objects/Elements/Beam.cpp	(revision 3702)
+++ /issm/trunk/src/c/objects/Elements/Beam.cpp	(revision 3703)
@@ -139,5 +139,5 @@
 		nodeinputs[0]=iomodel->weights[index];
 		nodeinputs[1]=iomodel->weights[(int)(iomodel->uppernodes[index]-1)];
-		this->inputs->AddInput(new BeamVertexInput(WeightszEnum,nodeinputs));
+		this->inputs->AddInput(new BeamVertexInput(WeightsEnum,nodeinputs));
 	}	
 	if (iomodel->gridonbed) this->inputs->AddInput(new BoolInput(ElementOnBedEnum,(IssmBool)iomodel->gridonbed[index]));
Index: /issm/trunk/src/c/objects/Elements/Beam.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Beam.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Elements/Beam.h	(revision 3703)
@@ -53,4 +53,7 @@
 		Object* copy();
 		void  SetClone(int* minranks);
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
+
 
 		/*}}}*/
@@ -58,5 +61,4 @@
 		void  CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type);
 		void  CreatePVector(Vec pg,  int analysis_type,int sub_analysis_type);
-		void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
 		void  GetDofList(int* doflist,int* pnumberofdofs);
 		void  GetDofList1(int* doflist);
Index: /issm/trunk/src/c/objects/Elements/Element.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Element.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Elements/Element.h	(revision 3703)
@@ -28,5 +28,4 @@
 		virtual void   CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type)=0;
 		virtual void   CreatePVector(Vec pg,  int analysis_type,int sub_analysis_type)=0;
-		virtual void   UpdateInputsFromSolutionFromSolution(double* solution, int analysis_type, int sub_analysis_type)=0;
 		virtual void   GetNodes(void** nodes)=0;
 		virtual void*  GetMatPar()=0;
Index: /issm/trunk/src/c/objects/Elements/Penta.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Penta.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Elements/Penta.h	(revision 3703)
@@ -140,4 +140,5 @@
 		void  UpdateInputsFromSolutionBalancedthickness2( double* solution,int analysis_type,int sub_analysis_type);
 		void  UpdateInputsFromSolutionBalancedvelocities( double* solution,int analysis_type,int sub_analysis_type);
+		void  UpdateInputsFromVector(double* vector, int name, int type);
 		void AddInput(double value, int enum_type){ISSMERROR("not supporte yet!");}
 
Index: /issm/trunk/src/c/objects/Elements/Sing.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Sing.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Elements/Sing.h	(revision 3703)
@@ -53,10 +53,12 @@
 		void  SetClone(int* minranks);
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
+
 		/*}}}*/
 		/*numerics: {{{1*/
 		void  CreateKMatrix(Mat Kgg,int analysis_type,int sub_analysis_type);
 		void  CreatePVector(Vec pg,  int analysis_type,int sub_analysis_type);
-		void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
-		void  GetDofList(int* doflist,int* pnumberofdofs);
+				void  GetDofList(int* doflist,int* pnumberofdofs);
 		void  GetDofList1(int* doflist);
 		void  CreateKMatrixDiagnosticHutter(Mat Kgg,int analysis_type,int sub_analysis_type);
Index: /issm/trunk/src/c/objects/Elements/Tria.h
===================================================================
--- /issm/trunk/src/c/objects/Elements/Tria.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Elements/Tria.h	(revision 3703)
@@ -50,4 +50,7 @@
 		int   MyRank();
 		void  SetClone(int* minranks);
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
+
 		/*}}}*/
 		/*FUNCTION element numerical routines {{{1*/
@@ -117,5 +120,4 @@
 		/*updates:*/
 		void  UpdateFromDakota(void* inputs);
-		void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
 		void  UpdateInputsFromSolutionDiagnosticHoriz( double* solution,int analysis_type,int sub_analysis_type);
 		void  UpdateInputsFromSolutionSlopeCompute( double* solution,int analysis_type,int sub_analysis_type);
Index: /issm/trunk/src/c/objects/FemModel.cpp
===================================================================
--- /issm/trunk/src/c/objects/FemModel.cpp	(revision 3702)
+++ /issm/trunk/src/c/objects/FemModel.cpp	(revision 3703)
@@ -305,2 +305,26 @@
 }
 /*}}}*/
+/*FUNCTION FemModel::UpdateInputsFromVector(double* vector, int name, int type){{{1*/
+void FemModel::UpdateInputsFromVector(double* vector, int name, int type){
+
+	elements->UpdateInputsFromVector(vector,name,type);
+	nodes->UpdateInputsFromVector(vector,name,type);
+	vertices->UpdateInputsFromVector(vector,name,type);
+	loads->UpdateInputsFromVector(vector,name,type);
+	materials->UpdateInputsFromVector(vector,name,type);
+	parameters->UpdateInputsFromVector(vector,name,type);
+
+}
+/*}}}*/
+/*FUNCTION FemModel::UpdateInputsFromSolution(double* vector, int name, int type){{{1*/
+void FemModel::UpdateInputsFromSolution(double* vector, int name, int type){
+
+	elements->UpdateInputsFromSolution(vector,name,type);
+	nodes->UpdateInputsFromSolution(vector,name,type);
+	vertices->UpdateInputsFromSolution(vector,name,type);
+	loads->UpdateInputsFromSolution(vector,name,type);
+	materials->UpdateInputsFromSolution(vector,name,type);
+	parameters->UpdateInputsFromSolution(vector,name,type);
+
+}
+/*}}}*/
Index: /issm/trunk/src/c/objects/FemModel.h
===================================================================
--- /issm/trunk/src/c/objects/FemModel.h	(revision 3702)
+++ /issm/trunk/src/c/objects/FemModel.h	(revision 3703)
@@ -79,4 +79,7 @@
 		Mat      get_Gmn(void);
 
+		void    UpdateInputsFromVector(double* vector, int name, int type);
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
+
 };
 
Index: /issm/trunk/src/c/objects/Inputs/BeamVertexInput.h
===================================================================
--- /issm/trunk/src/c/objects/Inputs/BeamVertexInput.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Inputs/BeamVertexInput.h	(revision 3703)
@@ -38,4 +38,7 @@
 		Object* copy();
 		int   EnumType();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 		/*}}}*/
Index: /issm/trunk/src/c/objects/Inputs/BoolInput.h
===================================================================
--- /issm/trunk/src/c/objects/Inputs/BoolInput.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Inputs/BoolInput.h	(revision 3703)
@@ -38,4 +38,7 @@
 		Object* copy();
 		int   EnumType();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 		/*}}}*/
Index: /issm/trunk/src/c/objects/Inputs/DoubleInput.h
===================================================================
--- /issm/trunk/src/c/objects/Inputs/DoubleInput.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Inputs/DoubleInput.h	(revision 3703)
@@ -38,4 +38,7 @@
 		Object* copy();
 		int   EnumType();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 		/*}}}*/
Index: /issm/trunk/src/c/objects/Inputs/IntInput.h
===================================================================
--- /issm/trunk/src/c/objects/Inputs/IntInput.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Inputs/IntInput.h	(revision 3703)
@@ -38,4 +38,7 @@
 		Object* copy();
 		int   EnumType();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 		/*}}}*/
Index: /issm/trunk/src/c/objects/Inputs/PentaVertexInput.h
===================================================================
--- /issm/trunk/src/c/objects/Inputs/PentaVertexInput.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Inputs/PentaVertexInput.h	(revision 3703)
@@ -37,4 +37,7 @@
 		Object* copy();
 		int   EnumType();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 		/*}}}*/
Index: /issm/trunk/src/c/objects/Inputs/SingVertexInput.h
===================================================================
--- /issm/trunk/src/c/objects/Inputs/SingVertexInput.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Inputs/SingVertexInput.h	(revision 3703)
@@ -37,4 +37,7 @@
 		Object* copy();
 		int   EnumType();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 		/*}}}*/
Index: /issm/trunk/src/c/objects/Inputs/TriaVertexInput.h
===================================================================
--- /issm/trunk/src/c/objects/Inputs/TriaVertexInput.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Inputs/TriaVertexInput.h	(revision 3703)
@@ -37,4 +37,7 @@
 		Object* copy();
 		int   EnumType();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 		/*}}}*/
Index: /issm/trunk/src/c/objects/IoModel.cpp
===================================================================
--- /issm/trunk/src/c/objects/IoModel.cpp	(revision 3702)
+++ /issm/trunk/src/c/objects/IoModel.cpp	(revision 3703)
@@ -60,4 +60,5 @@
 	xfree((void**)&this->vx_obs);
 	xfree((void**)&this->vy_obs);
+	xfree((void**)&this->vz_obs);
 	xfree((void**)&this->vx);
 	xfree((void**)&this->vy);
@@ -254,4 +255,5 @@
 	this->vx_obs=NULL;
 	this->vy_obs=NULL;
+	this->vz_obs=NULL;
 	this->vx=NULL;
 	this->vy=NULL;
Index: /issm/trunk/src/c/objects/IoModel.h
===================================================================
--- /issm/trunk/src/c/objects/IoModel.h	(revision 3702)
+++ /issm/trunk/src/c/objects/IoModel.h	(revision 3703)
@@ -61,4 +61,5 @@
 		double*  vx_obs;
 		double*  vy_obs;
+		double*  vz_obs;
 
 		/*qmu: */
Index: /issm/trunk/src/c/objects/Loads/Icefront.h
===================================================================
--- /issm/trunk/src/c/objects/Loads/Icefront.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Loads/Icefront.h	(revision 3703)
@@ -50,4 +50,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 		/*}}}*/
Index: /issm/trunk/src/c/objects/Loads/Numericalflux.h
===================================================================
--- /issm/trunk/src/c/objects/Loads/Numericalflux.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Loads/Numericalflux.h	(revision 3703)
@@ -45,4 +45,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 		/*}}}*/
 		/*Numerics: {{{1*/
Index: /issm/trunk/src/c/objects/Loads/Pengrid.h
===================================================================
--- /issm/trunk/src/c/objects/Loads/Pengrid.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Loads/Pengrid.h	(revision 3703)
@@ -51,4 +51,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 		/*}}}*/
 		/*FUNCTION element numerical routines {{{1*/
Index: /issm/trunk/src/c/objects/Loads/Penpair.h
===================================================================
--- /issm/trunk/src/c/objects/Loads/Penpair.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Loads/Penpair.h	(revision 3703)
@@ -43,4 +43,7 @@
 		void  PenaltyCreatePVector(Vec pg,double kmax,int analysis_type,int sub_analysis_type);
 		Object* copy();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 };
Index: /issm/trunk/src/c/objects/Loads/Riftfront.h
===================================================================
--- /issm/trunk/src/c/objects/Loads/Riftfront.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Loads/Riftfront.h	(revision 3703)
@@ -60,4 +60,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 		/*}}}*/
Index: /issm/trunk/src/c/objects/Materials/Material.h
===================================================================
--- /issm/trunk/src/c/objects/Materials/Material.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Materials/Material.h	(revision 3703)
@@ -26,4 +26,7 @@
 		virtual void  Demarshall(char** pmarshalled_dataset)=0;
 		virtual void  UpdateFromInputs(void* inputs)=0;
+		virtual void  UpdateInputsFromVector(double* vector, int name, int type)=0;
+		virtual void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type)=0;
+
 		int           Enum();
 		
Index: /issm/trunk/src/c/objects/Materials/Matice.h
===================================================================
--- /issm/trunk/src/c/objects/Materials/Matice.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Materials/Matice.h	(revision 3703)
@@ -45,4 +45,7 @@
 		double GetB();
 		double GetN();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 };
Index: /issm/trunk/src/c/objects/Materials/Matpar.h
===================================================================
--- /issm/trunk/src/c/objects/Materials/Matpar.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Materials/Matpar.h	(revision 3703)
@@ -57,4 +57,7 @@
 		double GetMeltingPoint();
 		Object* copy();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 
 };
Index: /issm/trunk/src/c/objects/Model.cpp
===================================================================
--- /issm/trunk/src/c/objects/Model.cpp	(revision 3702)
+++ /issm/trunk/src/c/objects/Model.cpp	(revision 3703)
@@ -454,2 +454,28 @@
 }
 /*}}}1*/
+/*FUNCTION Model::UpdateInputsFromVector(double* vector,int name, int type);{{{1*/
+void  Model::UpdateInputsFromVector(double* vector,int name, int type){
+
+	int i;
+	FemModel* femmodel=NULL;
+
+	for(i=0;i<this->femmodels->Size();i++){
+		femmodel=(FemModel*)this->femmodels->GetObjectByOffset(i);
+		femmodel->UpdateInputsFromVector(vector,name,type);
+	}
+
+}
+/*}}}1*/
+/*FUNCTION Model::UpdateInputsFromSolution(double* vector,int analysis_type, int sub_analysis_type);{{{1*/
+void  Model::UpdateInputsFromSolution(double* vector,int analysis_type, int sub_analysis_type){
+
+	int i;
+	FemModel* femmodel=NULL;
+
+	for(i=0;i<this->femmodels->Size();i++){
+		femmodel=(FemModel*)this->femmodels->GetObjectByOffset(i);
+		femmodel->UpdateInputsFromSolution(vector,analysis_type,sub_analysis_type);
+	}
+
+}
+/*}}}1*/
Index: /issm/trunk/src/c/objects/Model.h
===================================================================
--- /issm/trunk/src/c/objects/Model.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Model.h	(revision 3703)
@@ -53,4 +53,7 @@
 		FemModel* GetFormulation(int analysis_type);
 
+		void    UpdateInputsFromVector(double* vector, int name, int type);
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type);
+
 		FemModel* GetActiveFormulation();
 		void* SetActiveFormulation(FemModel* femmodel);
Index: /issm/trunk/src/c/objects/Node.h
===================================================================
--- /issm/trunk/src/c/objects/Node.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Node.h	(revision 3703)
@@ -10,4 +10,5 @@
 #include "./Object.h"
 #include "./DofObject.h"
+#include "../shared/shared.h"
 class  Inputs;
 class  Hook;
@@ -50,4 +51,7 @@
 		int   MyRank(void);
 		void  SetVertexDof(int in_dof);
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 		/*}}}*/
 		/*FUNCTION numerical routines {{{1*/
Index: /issm/trunk/src/c/objects/Object.h
===================================================================
--- /issm/trunk/src/c/objects/Object.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Object.h	(revision 3703)
@@ -25,5 +25,6 @@
 		virtual int   Enum()=0;
 		virtual Object* copy()=0;
-		
+		virtual void  UpdateInputsFromVector(double* vector, int name, int type)=0;
+		virtual void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type)=0;
 	
 };
Index: /issm/trunk/src/c/objects/Params/BoolParam.h
===================================================================
--- /issm/trunk/src/c/objects/Params/BoolParam.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Params/BoolParam.h	(revision 3703)
@@ -39,4 +39,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 		/*}}}*/
 		/*Param methods: {{{1*/
Index: /issm/trunk/src/c/objects/Params/DoubleMatParam.h
===================================================================
--- /issm/trunk/src/c/objects/Params/DoubleMatParam.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Params/DoubleMatParam.h	(revision 3703)
@@ -41,4 +41,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 		/*}}}*/
 		/*Param methods: {{{1*/
Index: /issm/trunk/src/c/objects/Params/DoubleParam.h
===================================================================
--- /issm/trunk/src/c/objects/Params/DoubleParam.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Params/DoubleParam.h	(revision 3703)
@@ -39,4 +39,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 		/*}}}*/
 		/*Param methods: {{{1*/
Index: /issm/trunk/src/c/objects/Params/DoubleVecParam.h
===================================================================
--- /issm/trunk/src/c/objects/Params/DoubleVecParam.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Params/DoubleVecParam.h	(revision 3703)
@@ -40,4 +40,6 @@
 		int   MarshallSize();
 		int   MyRank();
+		void  UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
 		/*}}}*/
 		/*Param methods: {{{1*/
Index: /issm/trunk/src/c/objects/Params/IntParam.h
===================================================================
--- /issm/trunk/src/c/objects/Params/IntParam.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Params/IntParam.h	(revision 3703)
@@ -39,4 +39,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 		/*}}}*/
 		/*Param methods: {{{1*/
Index: /issm/trunk/src/c/objects/Params/Param.h
===================================================================
--- /issm/trunk/src/c/objects/Params/Param.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Params/Param.h	(revision 3703)
@@ -32,4 +32,5 @@
 		virtual char* GetParameterName(void)=0;
 		virtual void  SetMatlabField(mxArray* dataref)=0;
+
 		/*}}}*/
 
Index: /issm/trunk/src/c/objects/Params/PetscMatParam.h
===================================================================
--- /issm/trunk/src/c/objects/Params/PetscMatParam.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Params/PetscMatParam.h	(revision 3703)
@@ -39,4 +39,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 		/*}}}*/
 		/*Param methods: {{{1*/
Index: /issm/trunk/src/c/objects/Params/PetscVecParam.h
===================================================================
--- /issm/trunk/src/c/objects/Params/PetscVecParam.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Params/PetscVecParam.h	(revision 3703)
@@ -39,4 +39,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 		/*}}}*/
 		/*Param methods: {{{1*/
Index: /issm/trunk/src/c/objects/Params/StringArrayParam.h
===================================================================
--- /issm/trunk/src/c/objects/Params/StringArrayParam.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Params/StringArrayParam.h	(revision 3703)
@@ -41,4 +41,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 		/*}}}*/
 		/*Param methods: {{{1*/
Index: /issm/trunk/src/c/objects/Params/StringParam.h
===================================================================
--- /issm/trunk/src/c/objects/Params/StringParam.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Params/StringParam.h	(revision 3703)
@@ -39,4 +39,7 @@
 		int   MarshallSize();
 		int   MyRank();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
+
 		/*}}}*/
 		/*Param methods: {{{1*/
Index: /issm/trunk/src/c/objects/Result.h
===================================================================
--- /issm/trunk/src/c/objects/Result.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Result.h	(revision 3703)
@@ -43,4 +43,6 @@
 		int   Enum();
 		Object* copy();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
 
 		double GetTime();
@@ -52,4 +54,5 @@
 		char*  GetFieldName();
 
+	
 };
 
Index: /issm/trunk/src/c/objects/SolPar.h
===================================================================
--- /issm/trunk/src/c/objects/SolPar.h	(revision 3702)
+++ /issm/trunk/src/c/objects/SolPar.h	(revision 3703)
@@ -39,8 +39,11 @@
 		int   Enum();
 		Object* copy();
+		void    UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void    UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
 
 		/*functionality: */
 		void  Configure(void* parameters,int analysis_type,int sub_analysis_type);
-		
+
+			
 };
 #endif  /* _SOLPAR_H */
Index: /issm/trunk/src/c/objects/Vertex.h
===================================================================
--- /issm/trunk/src/c/objects/Vertex.h	(revision 3702)
+++ /issm/trunk/src/c/objects/Vertex.h	(revision 3703)
@@ -11,5 +11,9 @@
 #include "./DofObject.h"
 class IoModel;
+#include "../shared/Exceptions/exceptions.h"
+#include "../include/macros.h"
+
 /*}}}*/
+
 
 class Vertex: public Object,public DofObject{
@@ -46,4 +50,6 @@
 		void  UpdateFromDakota(void* vinputs);
 		void  UpdatePosition(double* thickness,double* bed);
+		void  UpdateInputsFromVector(double* vector, int name, int type){ISSMERROR("Not implemented yet!");}
+		void  UpdateInputsFromSolution(double* solution, int analysis_type, int sub_analysis_type){ISSMERROR("Not implemented yet!");}
 
 
Index: /issm/trunk/src/c/parallel/ProcessResults.cpp
===================================================================
--- /issm/trunk/src/c/parallel/ProcessResults.cpp	(revision 3702)
+++ /issm/trunk/src/c/parallel/ProcessResults.cpp	(revision 3703)
@@ -112,8 +112,8 @@
 	
 	/*some flags needed: */
-	model->FindParam(&dim,"dim");
-	model->FindParam(&ishutter,"ishutter");
-	model->FindParam(&isstokes,"isstokes");
-	model->FindParam(&ismacayealpattyn,"ismacayealpattyn");
+	model->FindParam(&dim,DimEnum);
+	model->FindParam(&ishutter,IsHutterEnum);
+	model->FindParam(&isstokes,IsStokesEnum);
+	model->FindParam(&ismacayealpattyn,IsMacayealPattynEnum);
 
 	/*Recover femmodels first: */
@@ -158,12 +158,12 @@
 				/*ok, 2 dofs, on number of nodes: */
 				if(ismacayealpattyn){
-					fem_dh->parameters->FindParam(&numberofnodes,"numberofnodes");
+					fem_dh->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 					VecToMPISerial(&partition,fem_dh->partition->vector);
-					fem_dh->parameters->FindParam(&yts,"yts");
+					fem_dh->parameters->FindParam(&yts,YtsEnum);
 				}
 				else{
-					fem_dhu->parameters->FindParam(&numberofnodes,"numberofnodes");
+					fem_dhu->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 					VecToMPISerial(&partition,fem_dhu->partition->vector);
-					fem_dhu->parameters->FindParam(&yts,"yts");
+					fem_dhu->parameters->FindParam(&yts,YtsEnum);
 				}
 				vx=(double*)xmalloc(numberofnodes*sizeof(double));
@@ -184,12 +184,12 @@
 					/*ok, 3 dofs, on number of nodes: */
 					if(ismacayealpattyn){
-						fem_dh->parameters->FindParam(&numberofnodes,"numberofnodes");
+						fem_dh->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 						VecToMPISerial(&partition,fem_dh->partition->vector);
-						fem_dh->parameters->FindParam(&yts,"yts");
+						fem_dh->parameters->FindParam(&yts,YtsEnum);
 					}
 					else{
-						fem_dhu->parameters->FindParam(&numberofnodes,"numberofnodes");
+						fem_dhu->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 						VecToMPISerial(&partition,fem_dhu->partition->vector);
-						fem_dhu->parameters->FindParam(&yts,"yts");
+						fem_dhu->parameters->FindParam(&yts,YtsEnum);
 					}
 					vx=(double*)xmalloc(numberofnodes*sizeof(double));
@@ -207,7 +207,7 @@
 				else{
 					/* 4 dofs on number of nodes. discard pressure: */
-					fem_ds->parameters->FindParam(&numberofnodes,"numberofnodes");
+					fem_ds->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 					VecToMPISerial(&partition,fem_ds->partition->vector);
-					fem_ds->parameters->FindParam(&yts,"yts");
+					fem_ds->parameters->FindParam(&yts,YtsEnum);
 					vx=(double*)xmalloc(numberofnodes*sizeof(double));
 					vy=(double*)xmalloc(numberofnodes*sizeof(double));
@@ -252,14 +252,14 @@
 			if(!isstokes){
 				if(ismacayealpattyn){
-					fem_dh->parameters->FindParam(&numberofnodes,"numberofnodes");
+					fem_dh->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 					VecToMPISerial(&partition,fem_dh->partition->vector);
 				}
 				else{
-					fem_dhu->parameters->FindParam(&numberofnodes,"numberofnodes");
+					fem_dhu->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 					VecToMPISerial(&partition,fem_dhu->partition->vector);
 				}
 			}
 			else{
-				fem_ds->parameters->FindParam(&numberofnodes,"numberofnodes");
+				fem_ds->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 				VecToMPISerial(&partition,fem_ds->partition->vector);
 			}
@@ -285,5 +285,5 @@
 			result->GetField(&t_g);
 			VecToMPISerial(&t_g_serial,t_g);
-			fem_t->parameters->FindParam(&numberofnodes,"numberofnodes");
+			fem_t->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 			VecToMPISerial(&partition,fem_t->partition->vector);
 
@@ -309,5 +309,5 @@
 			result->GetField(&grad_g);
 			VecToMPISerial(&grad_g_serial,grad_g);
-			fem_c->parameters->FindParam(&numberofnodes,"numberofnodes");
+			fem_c->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 			VecToMPISerial(&partition,fem_c->partition->vector);
 
@@ -332,6 +332,6 @@
 			result->GetField(&m_g);
 			VecToMPISerial(&m_g_serial,m_g);
-			fem_t->parameters->FindParam(&numberofnodes,"numberofnodes");
-			fem_t->parameters->FindParam(&yts,"yts");
+			fem_t->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
+			fem_t->parameters->FindParam(&yts,YtsEnum);
 			VecToMPISerial(&partition,fem_t->partition->vector);
 
@@ -356,5 +356,5 @@
 			result->GetField(&h_g);
 			VecToMPISerial(&h_g_serial,h_g);
-			fem_p->parameters->FindParam(&numberofvertices,"numberofvertices");
+			fem_p->parameters->FindParam(&numberofvertices,NumberOfVerticesEnum);
 			VecToMPISerial(&partition,fem_p->partition->vector);
 
@@ -379,5 +379,5 @@
 			result->GetField(&v_g);
 			VecToMPISerial(&v_g_serial,v_g);
-			fem_p->parameters->FindParam(&numberofnodes,"numberofnodes");
+			fem_p->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 			VecToMPISerial(&partition,fem_p->partition->vector);
 
@@ -402,5 +402,5 @@
 			result->GetField(&s_g);
 			VecToMPISerial(&s_g_serial,s_g);
-			fem_p->parameters->FindParam(&numberofnodes,"numberofnodes");
+			fem_p->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 			VecToMPISerial(&partition,fem_p->partition->vector);
 
@@ -425,5 +425,5 @@
 			result->GetField(&sx_g);
 			VecToMPISerial(&sx_g_serial,sx_g);
-			fem_sl->parameters->FindParam(&numberofnodes,"numberofnodes");
+			fem_sl->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 			VecToMPISerial(&partition,fem_sl->partition->vector);
 
@@ -448,5 +448,5 @@
 			result->GetField(&sy_g);
 			VecToMPISerial(&sy_g_serial,sy_g);
-			fem_sl->parameters->FindParam(&numberofnodes,"numberofnodes");
+			fem_sl->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 			VecToMPISerial(&partition,fem_sl->partition->vector);
 
@@ -471,5 +471,5 @@
 			result->GetField(&b_g);
 			VecToMPISerial(&b_g_serial,b_g);
-			fem_p->parameters->FindParam(&numberofnodes,"numberofnodes");
+			fem_p->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 			VecToMPISerial(&partition,fem_p->partition->vector);
 
@@ -493,5 +493,5 @@
 			/*easy, param_g is of size numberofnodes, on 1 dof, just repartition: */
 			result->GetField(&param_g);
-			fem_dh->parameters->FindParam(&numberofnodes,"numberofnodes");
+			fem_dh->parameters->FindParam(&numberofnodes,NumberOfNodesEnum);
 			VecToMPISerial(&partition,fem_dh->partition->vector);
 
@@ -513,5 +513,5 @@
 		else if(strcmp(result->GetFieldName(),"riftproperties")==0){
 			result->GetField(&riftproperties);
-			fem_dh->parameters->FindParam(&numrifts,"numrifts");
+			fem_dh->parameters->FindParam(&numrifts,NumRiftsEnum);
 			VecToMPISerial(&riftproperties_serial,riftproperties);
 			
@@ -524,5 +524,5 @@
 		else if(strcmp(result->GetFieldName(),"sigma_zz")==0){
 			/*easy, param_g is of size numberofelements, on 1 dof, just repartition: */
-			fem_ds->parameters->FindParam(&numberofelements,"numberofelements");
+			fem_ds->parameters->FindParam(&numberofelements,NumberOfElementsEnum);
 			result->GetField(&sigma_zz);
 			VecToMPISerial(&sigma_zz_serial,sigma_zz);
Index: /issm/trunk/src/c/parallel/convergence.cpp
===================================================================
--- /issm/trunk/src/c/parallel/convergence.cpp	(revision 3702)
+++ /issm/trunk/src/c/parallel/convergence.cpp	(revision 3703)
@@ -31,9 +31,9 @@
 
 	/*get convergence options*/
-	parameters->FindParam(&eps_res,"eps_res");
-	parameters->FindParam(&eps_rel,"eps_rel");
-	parameters->FindParam(&eps_abs,"eps_abs");
-	parameters->FindParam(&yts,"yts");
-	parameters->FindParam(&verbose,"verbose");
+	parameters->FindParam(&eps_res,EpsResEnum);
+	parameters->FindParam(&eps_rel,EpsRelEnum);
+	parameters->FindParam(&eps_abs,EpsAbsEnum);
+	parameters->FindParam(&yts,YtsEnum);
+	parameters->FindParam(&verbose,VerboseEnum);
 
 	/*Display solver caracteristics*/
Index: /issm/trunk/src/c/parallel/diagnostic_core.cpp
===================================================================
--- /issm/trunk/src/c/parallel/diagnostic_core.cpp	(revision 3702)
+++ /issm/trunk/src/c/parallel/diagnostic_core.cpp	(revision 3703)
@@ -83,7 +83,7 @@
 	//for qmu analysis, be sure the velocity input we are starting from  is the one in the parameters: */
 	if(qmu_analysis){
-		model->FindParam(&vx,VxEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputs(vx,VxEnum,VertexEnum);
-		model->FindParam(&vy,VyEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputs(vy,VyEnum,VertexEnum);
-		model->FindParam(&vz,VzEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputs(vz,VzEnum,VertexEnum);
+		model->FindParam(&vx,VxEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputsFromVector(vx,VxEnum,VertexEnum);
+		model->FindParam(&vy,VyEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputsFromVector(vy,VyEnum,VertexEnum);
+		model->FindParam(&vz,VzEnum,DiagnosticAnalysisEnum,HorizAnalysisEnum); model->UpdateInputsFromVector(vz,VzEnum,VertexEnum);
 	}
 
Index: /issm/trunk/src/c/parallel/steadystate.cpp
===================================================================
--- /issm/trunk/src/c/parallel/steadystate.cpp	(revision 3702)
+++ /issm/trunk/src/c/parallel/steadystate.cpp	(revision 3703)
@@ -99,7 +99,7 @@
 
 	/*recover parameters: */
-	model->FindParam(&waitonlock,"waitonlock");
-	model->FindParam(&control_analysis,"control_analysis");
-	model->FindParam(&qmu_analysis,"qmu_analysis");
+	model->FindParam(&waitonlock,WaitOnLockEnum);
+	model->FindParam(&control_analysis,ControlAnalysisEnum);
+	model->FindParam(&qmu_analysis,QmuAnalysisEnum);
 
 	_printf_("initialize inputs:\n");
