Index: ../trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp
===================================================================
--- ../trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 13429)
+++ ../trunk-jpl/src/c/modules/StringToEnumx/StringToEnumx.cpp	(revision 13430)
@@ -18,13 +18,20 @@
 
    if(stage==1){
 	      if (strcmp(name,"AutodiffIsautodiff")==0) return AutodiffIsautodiffEnum;
-	      else if (strcmp(name,"AutodiffDependents")==0) return AutodiffDependentsEnum;
 	      else if (strcmp(name,"AutodiffNumDependents")==0) return AutodiffNumDependentsEnum;
-	      else if (strcmp(name,"AutodiffIndependents")==0) return AutodiffIndependentsEnum;
+	      else if (strcmp(name,"AutodiffNumDependentObjects")==0) return AutodiffNumDependentObjectsEnum;
+	      else if (strcmp(name,"AutodiffDependentObjectNames")==0) return AutodiffDependentObjectNamesEnum;
+	      else if (strcmp(name,"AutodiffDependentObjectTypes")==0) return AutodiffDependentObjectTypesEnum;
+	      else if (strcmp(name,"AutodiffDependentObjects")==0) return AutodiffDependentObjectsEnum;
 	      else if (strcmp(name,"AutodiffNumIndependents")==0) return AutodiffNumIndependentsEnum;
+	      else if (strcmp(name,"AutodiffNumIndependentObjects")==0) return AutodiffNumIndependentObjectsEnum;
+	      else if (strcmp(name,"AutodiffIndependentObjectNames")==0) return AutodiffIndependentObjectNamesEnum;
+	      else if (strcmp(name,"AutodiffIndependentObjectTypes")==0) return AutodiffIndependentObjectTypesEnum;
+	      else if (strcmp(name,"AutodiffIndependentObjects")==0) return AutodiffIndependentObjectsEnum;
 	      else if (strcmp(name,"AutodiffJacobian")==0) return AutodiffJacobianEnum;
 	      else if (strcmp(name,"AutodiffXp")==0) return AutodiffXpEnum;
-	      else if (strcmp(name,"AutodiffFosForwardOutput")==0) return AutodiffFosForwardOutputEnum;
+	      else if (strcmp(name,"AutodiffDriver")==0) return AutodiffDriverEnum;
+	      else if (strcmp(name,"AutodiffFosForwardIndex")==0) return AutodiffFosForwardIndexEnum;
 	      else if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum;
 	      else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum;
 	      else if (strcmp(name,"BalancethicknessThickeningRate")==0) return BalancethicknessThickeningRateEnum;
@@ -36,6 +43,7 @@
 	      else if (strcmp(name,"ConstantsG")==0) return ConstantsGEnum;
 	      else if (strcmp(name,"ConstantsReferencetemperature")==0) return ConstantsReferencetemperatureEnum;
 	      else if (strcmp(name,"ConstantsYts")==0) return ConstantsYtsEnum;
+	      else if (strcmp(name,"DependentObject")==0) return DependentObjectEnum;
 	      else if (strcmp(name,"DiagnosticAbstol")==0) return DiagnosticAbstolEnum;
 	      else if (strcmp(name,"DiagnosticIcefront")==0) return DiagnosticIcefrontEnum;
 	      else if (strcmp(name,"DiagnosticIsnewton")==0) return DiagnosticIsnewtonEnum;
@@ -75,6 +83,7 @@
 	      else if (strcmp(name,"HydrologyQ")==0) return HydrologyQEnum;
 	      else if (strcmp(name,"HydrologySpcwatercolumn")==0) return HydrologySpcwatercolumnEnum;
 	      else if (strcmp(name,"HydrologyStabilization")==0) return HydrologyStabilizationEnum;
+	      else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
 	      else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
 	      else if (strcmp(name,"InversionCostFunction")==0) return InversionCostFunctionEnum;
 	      else if (strcmp(name,"InversionCostFunctionThreshold")==0) return InversionCostFunctionThresholdEnum;
@@ -128,7 +137,10 @@
 	      else if (strcmp(name,"MeshElementonsurface")==0) return MeshElementonsurfaceEnum;
 	      else if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
 	      else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
-	      else if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
+         else stage=2;
+   }
+   if(stage==2){
+	      if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
 	      else if (strcmp(name,"MeshNumberofedges")==0) return MeshNumberofedgesEnum;
 	      else if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
 	      else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
@@ -137,10 +149,7 @@
 	      else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
 	      else if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
 	      else if (strcmp(name,"MeshVertexonbed")==0) return MeshVertexonbedEnum;
-         else stage=2;
-   }
-   if(stage==2){
-	      if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
+	      else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
 	      else if (strcmp(name,"MeshX")==0) return MeshXEnum;
 	      else if (strcmp(name,"MeshY")==0) return MeshYEnum;
 	      else if (strcmp(name,"MeshZ")==0) return MeshZEnum;
@@ -251,7 +260,10 @@
 	      else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
 	      else if (strcmp(name,"HutterApproximation")==0) return HutterApproximationEnum;
 	      else if (strcmp(name,"MacAyealApproximation")==0) return MacAyealApproximationEnum;
-	      else if (strcmp(name,"MacAyealPattynApproximation")==0) return MacAyealPattynApproximationEnum;
+         else stage=3;
+   }
+   if(stage==3){
+	      if (strcmp(name,"MacAyealPattynApproximation")==0) return MacAyealPattynApproximationEnum;
 	      else if (strcmp(name,"MacAyealStokesApproximation")==0) return MacAyealStokesApproximationEnum;
 	      else if (strcmp(name,"L1L2Approximation")==0) return L1L2ApproximationEnum;
 	      else if (strcmp(name,"PattynApproximation")==0) return PattynApproximationEnum;
@@ -260,10 +272,7 @@
 	      else if (strcmp(name,"Constraints")==0) return ConstraintsEnum;
 	      else if (strcmp(name,"Loads")==0) return LoadsEnum;
 	      else if (strcmp(name,"Materials")==0) return MaterialsEnum;
-         else stage=3;
-   }
-   if(stage==3){
-	      if (strcmp(name,"Nodes")==0) return NodesEnum;
+	      else if (strcmp(name,"Nodes")==0) return NodesEnum;
 	      else if (strcmp(name,"Parameters")==0) return ParametersEnum;
 	      else if (strcmp(name,"Vertices")==0) return VerticesEnum;
 	      else if (strcmp(name,"Results")==0) return ResultsEnum;
@@ -276,6 +285,7 @@
 	      else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
 	      else if (strcmp(name,"DofIndexing")==0) return DofIndexingEnum;
 	      else if (strcmp(name,"DoubleInput")==0) return DoubleInputEnum;
+	      else if (strcmp(name,"DataSetParam")==0) return DataSetParamEnum;
 	      else if (strcmp(name,"DoubleMatArrayParam")==0) return DoubleMatArrayParamEnum;
 	      else if (strcmp(name,"DoubleMatParam")==0) return DoubleMatParamEnum;
 	      else if (strcmp(name,"DoubleParam")==0) return DoubleParamEnum;
@@ -373,7 +383,10 @@
 	      else if (strcmp(name,"TemperatureSurface")==0) return TemperatureSurfaceEnum;
 	      else if (strcmp(name,"TemperatureBasal")==0) return TemperatureBasalEnum;
 	      else if (strcmp(name,"ThicknessAbsMisfit")==0) return ThicknessAbsMisfitEnum;
-	      else if (strcmp(name,"Type")==0) return TypeEnum;
+         else stage=4;
+   }
+   if(stage==4){
+	      if (strcmp(name,"Type")==0) return TypeEnum;
 	      else if (strcmp(name,"Vel")==0) return VelEnum;
 	      else if (strcmp(name,"Velocity")==0) return VelocityEnum;
 	      else if (strcmp(name,"VxAverage")==0) return VxAverageEnum;
@@ -383,10 +396,7 @@
 	      else if (strcmp(name,"Vy")==0) return VyEnum;
 	      else if (strcmp(name,"VyPicard")==0) return VyPicardEnum;
 	      else if (strcmp(name,"Vz")==0) return VzEnum;
-         else stage=4;
-   }
-   if(stage==4){
-	      if (strcmp(name,"VzMacAyeal")==0) return VzMacAyealEnum;
+	      else if (strcmp(name,"VzMacAyeal")==0) return VzMacAyealEnum;
 	      else if (strcmp(name,"VzPattyn")==0) return VzPattynEnum;
 	      else if (strcmp(name,"VzPicard")==0) return VzPicardEnum;
 	      else if (strcmp(name,"VzStokes")==0) return VzStokesEnum;
@@ -496,11 +506,14 @@
 	      else if (strcmp(name,"OptionCell")==0) return OptionCellEnum;
 	      else if (strcmp(name,"OptionChar")==0) return OptionCharEnum;
 	      else if (strcmp(name,"OptionStruct")==0) return OptionStructEnum;
-	      else if (strcmp(name,"OptionDouble")==0) return OptionDoubleEnum;
+         else stage=5;
+   }
+   if(stage==5){
+	      if (strcmp(name,"OptionDouble")==0) return OptionDoubleEnum;
 	      else if (strcmp(name,"OptionLogical")==0) return OptionLogicalEnum;
 	      else if (strcmp(name,"Paterson")==0) return PatersonEnum;
 	      else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
-         else stage=5;
+         else stage=6;
    }
 	/*If we reach this point, the string provided has not been found*/
 	_error_("Enum " << name << " not found");
Index: ../trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp
===================================================================
--- ../trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 13429)
+++ ../trunk-jpl/src/c/modules/EnumToStringx/EnumToStringx.cpp	(revision 13430)
@@ -17,13 +17,20 @@
 	switch(en){
 
 		case AutodiffIsautodiffEnum : return "AutodiffIsautodiff";
-		case AutodiffDependentsEnum : return "AutodiffDependents";
 		case AutodiffNumDependentsEnum : return "AutodiffNumDependents";
-		case AutodiffIndependentsEnum : return "AutodiffIndependents";
+		case AutodiffNumDependentObjectsEnum : return "AutodiffNumDependentObjects";
+		case AutodiffDependentObjectNamesEnum : return "AutodiffDependentObjectNames";
+		case AutodiffDependentObjectTypesEnum : return "AutodiffDependentObjectTypes";
+		case AutodiffDependentObjectsEnum : return "AutodiffDependentObjects";
 		case AutodiffNumIndependentsEnum : return "AutodiffNumIndependents";
+		case AutodiffNumIndependentObjectsEnum : return "AutodiffNumIndependentObjects";
+		case AutodiffIndependentObjectNamesEnum : return "AutodiffIndependentObjectNames";
+		case AutodiffIndependentObjectTypesEnum : return "AutodiffIndependentObjectTypes";
+		case AutodiffIndependentObjectsEnum : return "AutodiffIndependentObjects";
 		case AutodiffJacobianEnum : return "AutodiffJacobian";
 		case AutodiffXpEnum : return "AutodiffXp";
-		case AutodiffFosForwardOutputEnum : return "AutodiffFosForwardOutput";
+		case AutodiffDriverEnum : return "AutodiffDriver";
+		case AutodiffFosForwardIndexEnum : return "AutodiffFosForwardIndex";
 		case BalancethicknessSpcthicknessEnum : return "BalancethicknessSpcthickness";
 		case BalancethicknessStabilizationEnum : return "BalancethicknessStabilization";
 		case BalancethicknessThickeningRateEnum : return "BalancethicknessThickeningRate";
@@ -35,6 +42,7 @@
 		case ConstantsGEnum : return "ConstantsG";
 		case ConstantsReferencetemperatureEnum : return "ConstantsReferencetemperature";
 		case ConstantsYtsEnum : return "ConstantsYts";
+		case DependentObjectEnum : return "DependentObject";
 		case DiagnosticAbstolEnum : return "DiagnosticAbstol";
 		case DiagnosticIcefrontEnum : return "DiagnosticIcefront";
 		case DiagnosticIsnewtonEnum : return "DiagnosticIsnewton";
@@ -74,6 +82,7 @@
 		case HydrologyQEnum : return "HydrologyQ";
 		case HydrologySpcwatercolumnEnum : return "HydrologySpcwatercolumn";
 		case HydrologyStabilizationEnum : return "HydrologyStabilization";
+		case IndependentObjectEnum : return "IndependentObject";
 		case InversionControlParametersEnum : return "InversionControlParameters";
 		case InversionCostFunctionEnum : return "InversionCostFunction";
 		case InversionCostFunctionThresholdEnum : return "InversionCostFunctionThreshold";
@@ -269,6 +278,7 @@
 		case DatasetInputEnum : return "DatasetInput";
 		case DofIndexingEnum : return "DofIndexing";
 		case DoubleInputEnum : return "DoubleInput";
+		case DataSetParamEnum : return "DataSetParam";
 		case DoubleMatArrayParamEnum : return "DoubleMatArrayParam";
 		case DoubleMatParamEnum : return "DoubleMatParam";
 		case DoubleParamEnum : return "DoubleParam";
