Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h	(revision 21755)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumDefinitions.h	(revision 21756)
@@ -109,4 +109,5 @@
 	FrictionCoefficientEnum,
 	FrictionCoefficientcoulombEnum,
+	FrictionPressureAdjustedTemperatureEnum,
 	FrictionPEnum,
 	FrictionQEnum,
@@ -174,4 +175,7 @@
 	HydrologyReynoldsEnum,
 	HydrologyNeumannfluxEnum,
+   HydrologyRelaxationEnum,
+	HydrologyBasalFluxEnum,
+	HydrologyStorageEnum,
 	InversionControlParametersEnum,
 	InversionControlScalingFactorsEnum,
@@ -214,6 +218,6 @@
 	MaterialsRheologyLawEnum,
 	MaterialsRheologyNEnum,
-	MaterialsRheologyKoEnum,
-	MaterialsRheologyKobarEnum,
+	MaterialsRheologyEEnum,
+	MaterialsRheologyEbarEnum,
 	MaterialsRheologyEcEnum,
 	MaterialsRheologyEcbarEnum,
@@ -255,4 +259,7 @@
 	CalvingratexAverageEnum,
 	CalvingrateyAverageEnum,
+	CalvingStressThresholdGroundediceEnum,
+	CalvingStressThresholdFloatingiceEnum,
+	CalvingMaxEnum,
 	StrainRateparallelEnum,
 	StrainRateperpendicularEnum,
@@ -271,4 +278,7 @@
 	MaterialsEarthDensityEnum,
 	MeshAverageVertexConnectivityEnum,
+	MeshXEnum,
+	MeshYEnum,
+	MeshZEnum,
 	MeshElementsEnum,
 	MeshNumberofelementsEnum,
@@ -307,4 +317,5 @@
 	SettingsRecordingFrequencyEnum,
 	SettingsWaitonlockEnum,
+	SettingsSolverResidueThresholdEnum,
 	DebugProfilingEnum,
 	ProfilingCurrentMemEnum,
@@ -343,4 +354,5 @@
 	TransientIsthermalEnum,
 	TransientIsgiaEnum,
+	TransientIsesaEnum,
 	TransientIsdamageevolutionEnum,
 	TransientIshydrologyEnum,
@@ -446,4 +458,5 @@
 	SMBd18opddEnum,
 	SmbDpermilEnum,
+	SmbFEnum,
 	SMBgradientsEnum,
 	SmbMonthlytemperaturesEnum,
@@ -461,4 +474,9 @@
 	SmbRefreezeEnum,
 	SMBgcmEnum,
+	/*SMBgradientsela*/
+	SMBgradientselaEnum,
+	SmbElaEnum,
+	SmbBMaxEnum,
+	SmbBMinEnum,
 	/*}}}*/
 	/*Inputs {{{*/
@@ -521,4 +539,6 @@
 	TransientInputEnum,
 	WaterfractionEnum,
+	WaterfractionDrainageEnum,
+	WaterfractionDrainageIntegratedEnum,
 	WatercolumnEnum,
 	ViscousHeatingEnum,
@@ -564,4 +584,5 @@
 	DoubleMatExternalResultEnum,
 	IntExternalResultEnum,
+	IntMatExternalResultEnum,
 	JEnum,
 	StringExternalResultEnum,
@@ -766,4 +787,6 @@
 	SealevelAbsoluteEnum,
 	SealevelEustaticEnum,
+	SealevelObsEnum,
+	SealevelWeightsEnum,
 	SealevelriseDeltathicknessEnum,
 	SealevelriseCumDeltathicknessEnum,
@@ -778,4 +801,11 @@
 	SealevelriseRunFrequencyEnum,
 	SealevelriseRunCountEnum,
+	SealevelriseRotationEnum,
+	SealevelriseTidalLoveHEnum,
+	SealevelriseTidalLoveKEnum, 
+	SealevelriseFluidLoveEnum, 
+	SealevelriseEquatorialMoiEnum, 
+	SealevelrisePolarMoiEnum, 
+	SealevelriseAngularVelocityEnum,
 	SealevelriseGElasticEnum,
 	SealevelriseUElasticEnum,
@@ -784,4 +814,25 @@
 	SealevelriseRequestedOutputsEnum,
 	SealevelriseNumRequestedOutputsEnum,
+	/*}}}*/
+	/*Elastic adjustment (ESA){{{*/
+	EsaUmotionEnum,
+	EsaNmotionEnum,
+	EsaEmotionEnum,
+	EsaStrainratexxEnum,
+   EsaStrainratexyEnum,
+   EsaStrainrateyyEnum,
+   EsaRotationrateEnum,
+	EsaDeltathicknessEnum,
+	EsaUElasticEnum,
+	EsaHElasticEnum,
+	EsaTransitionsEnum,
+	EsaRequestedOutputsEnum,
+	EsaNumRequestedOutputsEnum,
+	/*}}}*/
+	/*Adaptive mesh refinement (AMR){{{*/
+	AmrLevelMaxEnum,
+	AmrRegionLevel1Enum,
+	AmrRegionLevelMaxEnum,
+	TransientAmrFrequencyEnum,
 	/*}}}*/
 	ParametersENDEnum,
@@ -816,4 +867,5 @@
 	MaticeEnum,
 	MatdamageiceEnum,
+	MatenhancediceEnum,
 	MatestarEnum,
 	MatparEnum,
@@ -830,4 +882,5 @@
 	MassconaxpbyEnum,
 	NodeSIdEnum,
+	ElementSIdEnum,
 	VectorParamEnum,
 	RiftfrontEnum,
@@ -903,5 +956,7 @@
 	UzawaPressureAnalysisEnum,
 	GiaSolutionEnum,
-	GiaAnalysisEnum,
+	GiaIvinsAnalysisEnum,
+	EsaSolutionEnum,
+	EsaAnalysisEnum,
 	MeshdeformationAnalysisEnum,
 	LevelsetAnalysisEnum,
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp	(revision 21755)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/EnumToStringx.cpp	(revision 21756)
@@ -115,4 +115,5 @@
 		case FrictionCoefficientEnum : return "FrictionCoefficient";
 		case FrictionCoefficientcoulombEnum : return "FrictionCoefficientcoulomb";
+		case FrictionPressureAdjustedTemperatureEnum : return "FrictionPressureAdjustedTemperature";
 		case FrictionPEnum : return "FrictionP";
 		case FrictionQEnum : return "FrictionQ";
@@ -180,4 +181,7 @@
 		case HydrologyReynoldsEnum : return "HydrologyReynolds";
 		case HydrologyNeumannfluxEnum : return "HydrologyNeumannflux";
+		case HydrologyRelaxationEnum : return "HydrologyRelaxation";
+		case HydrologyBasalFluxEnum : return "HydrologyBasalFlux";
+		case HydrologyStorageEnum : return "HydrologyStorage";
 		case InversionControlParametersEnum : return "InversionControlParameters";
 		case InversionControlScalingFactorsEnum : return "InversionControlScalingFactors";
@@ -220,6 +224,6 @@
 		case MaterialsRheologyLawEnum : return "MaterialsRheologyLaw";
 		case MaterialsRheologyNEnum : return "MaterialsRheologyN";
-		case MaterialsRheologyKoEnum : return "MaterialsRheologyKo";
-		case MaterialsRheologyKobarEnum : return "MaterialsRheologyKobar";
+		case MaterialsRheologyEEnum : return "MaterialsRheologyE";
+		case MaterialsRheologyEbarEnum : return "MaterialsRheologyEbar";
 		case MaterialsRheologyEcEnum : return "MaterialsRheologyEc";
 		case MaterialsRheologyEcbarEnum : return "MaterialsRheologyEcbar";
@@ -261,4 +265,7 @@
 		case CalvingratexAverageEnum : return "CalvingratexAverage";
 		case CalvingrateyAverageEnum : return "CalvingrateyAverage";
+		case CalvingStressThresholdGroundediceEnum : return "CalvingStressThresholdGroundedice";
+		case CalvingStressThresholdFloatingiceEnum : return "CalvingStressThresholdFloatingice";
+		case CalvingMaxEnum : return "CalvingMax";
 		case StrainRateparallelEnum : return "StrainRateparallel";
 		case StrainRateperpendicularEnum : return "StrainRateperpendicular";
@@ -277,4 +284,7 @@
 		case MaterialsEarthDensityEnum : return "MaterialsEarthDensity";
 		case MeshAverageVertexConnectivityEnum : return "MeshAverageVertexConnectivity";
+		case MeshXEnum : return "MeshX";
+		case MeshYEnum : return "MeshY";
+		case MeshZEnum : return "MeshZ";
 		case MeshElementsEnum : return "MeshElements";
 		case MeshNumberofelementsEnum : return "MeshNumberofelements";
@@ -313,4 +323,5 @@
 		case SettingsRecordingFrequencyEnum : return "SettingsRecordingFrequency";
 		case SettingsWaitonlockEnum : return "SettingsWaitonlock";
+		case SettingsSolverResidueThresholdEnum : return "SettingsSolverResidueThreshold";
 		case DebugProfilingEnum : return "DebugProfiling";
 		case ProfilingCurrentMemEnum : return "ProfilingCurrentMem";
@@ -349,4 +360,5 @@
 		case TransientIsthermalEnum : return "TransientIsthermal";
 		case TransientIsgiaEnum : return "TransientIsgia";
+		case TransientIsesaEnum : return "TransientIsesa";
 		case TransientIsdamageevolutionEnum : return "TransientIsdamageevolution";
 		case TransientIshydrologyEnum : return "TransientIshydrology";
@@ -447,4 +459,5 @@
 		case SMBd18opddEnum : return "SMBd18opdd";
 		case SmbDpermilEnum : return "SmbDpermil";
+		case SmbFEnum : return "SmbF";
 		case SMBgradientsEnum : return "SMBgradients";
 		case SmbMonthlytemperaturesEnum : return "SmbMonthlytemperatures";
@@ -462,4 +475,8 @@
 		case SmbRefreezeEnum : return "SmbRefreeze";
 		case SMBgcmEnum : return "SMBgcm";
+		case SMBgradientselaEnum : return "SMBgradientsela";
+		case SmbElaEnum : return "SmbEla";
+		case SmbBMaxEnum : return "SmbBMax";
+		case SmbBMinEnum : return "SmbBMin";
 		case AdjointpEnum : return "Adjointp";
 		case AdjointxEnum : return "Adjointx";
@@ -520,4 +537,6 @@
 		case TransientInputEnum : return "TransientInput";
 		case WaterfractionEnum : return "Waterfraction";
+		case WaterfractionDrainageEnum : return "WaterfractionDrainage";
+		case WaterfractionDrainageIntegratedEnum : return "WaterfractionDrainageIntegrated";
 		case WatercolumnEnum : return "Watercolumn";
 		case ViscousHeatingEnum : return "ViscousHeating";
@@ -561,4 +580,5 @@
 		case DoubleMatExternalResultEnum : return "DoubleMatExternalResult";
 		case IntExternalResultEnum : return "IntExternalResult";
+		case IntMatExternalResultEnum : return "IntMatExternalResult";
 		case JEnum : return "J";
 		case StringExternalResultEnum : return "StringExternalResult";
@@ -747,4 +767,6 @@
 		case SealevelAbsoluteEnum : return "SealevelAbsolute";
 		case SealevelEustaticEnum : return "SealevelEustatic";
+		case SealevelObsEnum : return "SealevelObs";
+		case SealevelWeightsEnum : return "SealevelWeights";
 		case SealevelriseDeltathicknessEnum : return "SealevelriseDeltathickness";
 		case SealevelriseCumDeltathicknessEnum : return "SealevelriseCumDeltathickness";
@@ -759,4 +781,11 @@
 		case SealevelriseRunFrequencyEnum : return "SealevelriseRunFrequency";
 		case SealevelriseRunCountEnum : return "SealevelriseRunCount";
+		case SealevelriseRotationEnum : return "SealevelriseRotation";
+		case SealevelriseTidalLoveHEnum : return "SealevelriseTidalLoveH";
+		case SealevelriseTidalLoveKEnum : return "SealevelriseTidalLoveK";
+		case SealevelriseFluidLoveEnum : return "SealevelriseFluidLove";
+		case SealevelriseEquatorialMoiEnum : return "SealevelriseEquatorialMoi";
+		case SealevelrisePolarMoiEnum : return "SealevelrisePolarMoi";
+		case SealevelriseAngularVelocityEnum : return "SealevelriseAngularVelocity";
 		case SealevelriseGElasticEnum : return "SealevelriseGElastic";
 		case SealevelriseUElasticEnum : return "SealevelriseUElastic";
@@ -765,4 +794,21 @@
 		case SealevelriseRequestedOutputsEnum : return "SealevelriseRequestedOutputs";
 		case SealevelriseNumRequestedOutputsEnum : return "SealevelriseNumRequestedOutputs";
+		case EsaUmotionEnum : return "EsaUmotion";
+		case EsaNmotionEnum : return "EsaNmotion";
+		case EsaEmotionEnum : return "EsaEmotion";
+		case EsaStrainratexxEnum : return "EsaStrainratexx";
+		case EsaStrainratexyEnum : return "EsaStrainratexy";
+		case EsaStrainrateyyEnum : return "EsaStrainrateyy";
+		case EsaRotationrateEnum : return "EsaRotationrate";
+		case EsaDeltathicknessEnum : return "EsaDeltathickness";
+		case EsaUElasticEnum : return "EsaUElastic";
+		case EsaHElasticEnum : return "EsaHElastic";
+		case EsaTransitionsEnum : return "EsaTransitions";
+		case EsaRequestedOutputsEnum : return "EsaRequestedOutputs";
+		case EsaNumRequestedOutputsEnum : return "EsaNumRequestedOutputs";
+		case AmrLevelMaxEnum : return "AmrLevelMax";
+		case AmrRegionLevel1Enum : return "AmrRegionLevel1";
+		case AmrRegionLevelMaxEnum : return "AmrRegionLevelMax";
+		case TransientAmrFrequencyEnum : return "TransientAmrFrequency";
 		case ParametersENDEnum : return "ParametersEND";
 		case XYEnum : return "XY";
@@ -793,4 +839,5 @@
 		case MaticeEnum : return "Matice";
 		case MatdamageiceEnum : return "Matdamageice";
+		case MatenhancediceEnum : return "Matenhancedice";
 		case MatestarEnum : return "Matestar";
 		case MatparEnum : return "Matpar";
@@ -807,4 +854,5 @@
 		case MassconaxpbyEnum : return "Massconaxpby";
 		case NodeSIdEnum : return "NodeSId";
+		case ElementSIdEnum : return "ElementSId";
 		case VectorParamEnum : return "VectorParam";
 		case RiftfrontEnum : return "Riftfront";
@@ -876,5 +924,7 @@
 		case UzawaPressureAnalysisEnum : return "UzawaPressureAnalysis";
 		case GiaSolutionEnum : return "GiaSolution";
-		case GiaAnalysisEnum : return "GiaAnalysis";
+		case GiaIvinsAnalysisEnum : return "GiaIvinsAnalysis";
+		case EsaSolutionEnum : return "EsaSolution";
+		case EsaAnalysisEnum : return "EsaAnalysis";
 		case MeshdeformationAnalysisEnum : return "MeshdeformationAnalysis";
 		case LevelsetAnalysisEnum : return "LevelsetAnalysis";
Index: /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp
===================================================================
--- /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp	(revision 21755)
+++ /issm/branches/trunk-larour-NatGeoScience2016/src/c/shared/Enum/StringToEnumx.cpp	(revision 21756)
@@ -115,4 +115,5 @@
 	      else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
 	      else if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum;
+	      else if (strcmp(name,"FrictionPressureAdjustedTemperature")==0) return FrictionPressureAdjustedTemperatureEnum;
 	      else if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
 	      else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
@@ -136,9 +137,9 @@
 	      else if (strcmp(name,"EplHead")==0) return EplHeadEnum;
 	      else if (strcmp(name,"EplHeadOld")==0) return EplHeadOldEnum;
-	      else if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum;
          else stage=2;
    }
    if(stage==2){
-	      if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
+	      if (strcmp(name,"EplHeadSlopeX")==0) return EplHeadSlopeXEnum;
+	      else if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
 	      else if (strcmp(name,"EplZigZagCounter")==0) return EplZigZagCounterEnum;
 	      else if (strcmp(name,"HydrologydcMaxIter")==0) return HydrologydcMaxIterEnum;
@@ -183,4 +184,7 @@
 	      else if (strcmp(name,"HydrologyReynolds")==0) return HydrologyReynoldsEnum;
 	      else if (strcmp(name,"HydrologyNeumannflux")==0) return HydrologyNeumannfluxEnum;
+	      else if (strcmp(name,"HydrologyRelaxation")==0) return HydrologyRelaxationEnum;
+	      else if (strcmp(name,"HydrologyBasalFlux")==0) return HydrologyBasalFluxEnum;
+	      else if (strcmp(name,"HydrologyStorage")==0) return HydrologyStorageEnum;
 	      else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
 	      else if (strcmp(name,"InversionControlScalingFactors")==0) return InversionControlScalingFactorsEnum;
@@ -223,6 +227,6 @@
 	      else if (strcmp(name,"MaterialsRheologyLaw")==0) return MaterialsRheologyLawEnum;
 	      else if (strcmp(name,"MaterialsRheologyN")==0) return MaterialsRheologyNEnum;
-	      else if (strcmp(name,"MaterialsRheologyKo")==0) return MaterialsRheologyKoEnum;
-	      else if (strcmp(name,"MaterialsRheologyKobar")==0) return MaterialsRheologyKobarEnum;
+	      else if (strcmp(name,"MaterialsRheologyE")==0) return MaterialsRheologyEEnum;
+	      else if (strcmp(name,"MaterialsRheologyEbar")==0) return MaterialsRheologyEbarEnum;
 	      else if (strcmp(name,"MaterialsRheologyEc")==0) return MaterialsRheologyEcEnum;
 	      else if (strcmp(name,"MaterialsRheologyEcbar")==0) return MaterialsRheologyEcbarEnum;
@@ -256,15 +260,18 @@
 	      else if (strcmp(name,"CalvingDev")==0) return CalvingDevEnum;
 	      else if (strcmp(name,"CalvingMinthickness")==0) return CalvingMinthicknessEnum;
-	      else if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
+         else stage=3;
+   }
+   if(stage==3){
+	      if (strcmp(name,"DefaultCalving")==0) return DefaultCalvingEnum;
 	      else if (strcmp(name,"CalvinglevermannCoeff")==0) return CalvinglevermannCoeffEnum;
 	      else if (strcmp(name,"CalvinglevermannMeltingrate")==0) return CalvinglevermannMeltingrateEnum;
 	      else if (strcmp(name,"CalvingdevCoeff")==0) return CalvingdevCoeffEnum;
-         else stage=3;
-   }
-   if(stage==3){
-	      if (strcmp(name,"Calvingratex")==0) return CalvingratexEnum;
+	      else if (strcmp(name,"Calvingratex")==0) return CalvingratexEnum;
 	      else if (strcmp(name,"Calvingratey")==0) return CalvingrateyEnum;
 	      else if (strcmp(name,"CalvingratexAverage")==0) return CalvingratexAverageEnum;
 	      else if (strcmp(name,"CalvingrateyAverage")==0) return CalvingrateyAverageEnum;
+	      else if (strcmp(name,"CalvingStressThresholdGroundedice")==0) return CalvingStressThresholdGroundediceEnum;
+	      else if (strcmp(name,"CalvingStressThresholdFloatingice")==0) return CalvingStressThresholdFloatingiceEnum;
+	      else if (strcmp(name,"CalvingMax")==0) return CalvingMaxEnum;
 	      else if (strcmp(name,"StrainRateparallel")==0) return StrainRateparallelEnum;
 	      else if (strcmp(name,"StrainRateperpendicular")==0) return StrainRateperpendicularEnum;
@@ -283,4 +290,7 @@
 	      else if (strcmp(name,"MaterialsEarthDensity")==0) return MaterialsEarthDensityEnum;
 	      else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum;
+	      else if (strcmp(name,"MeshX")==0) return MeshXEnum;
+	      else if (strcmp(name,"MeshY")==0) return MeshYEnum;
+	      else if (strcmp(name,"MeshZ")==0) return MeshZEnum;
 	      else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
 	      else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
@@ -319,4 +329,5 @@
 	      else if (strcmp(name,"SettingsRecordingFrequency")==0) return SettingsRecordingFrequencyEnum;
 	      else if (strcmp(name,"SettingsWaitonlock")==0) return SettingsWaitonlockEnum;
+	      else if (strcmp(name,"SettingsSolverResidueThreshold")==0) return SettingsSolverResidueThresholdEnum;
 	      else if (strcmp(name,"DebugProfiling")==0) return DebugProfilingEnum;
 	      else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
@@ -355,4 +366,5 @@
 	      else if (strcmp(name,"TransientIsthermal")==0) return TransientIsthermalEnum;
 	      else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
+	      else if (strcmp(name,"TransientIsesa")==0) return TransientIsesaEnum;
 	      else if (strcmp(name,"TransientIsdamageevolution")==0) return TransientIsdamageevolutionEnum;
 	      else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum;
@@ -371,5 +383,8 @@
 	      else if (strcmp(name,"SmbRequestedOutputs")==0) return SmbRequestedOutputsEnum;
 	      else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
-	      else if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum;
+         else stage=4;
+   }
+   if(stage==4){
+	      if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum;
 	      else if (strcmp(name,"SmbDini")==0) return SmbDiniEnum;
 	      else if (strcmp(name,"SmbReini")==0) return SmbReiniEnum;
@@ -383,8 +398,5 @@
 	      else if (strcmp(name,"SMBforcing")==0) return SMBforcingEnum;
 	      else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
-         else stage=4;
-   }
-   if(stage==4){
-	      if (strcmp(name,"SMBgemb")==0) return SMBgembEnum;
+	      else if (strcmp(name,"SMBgemb")==0) return SMBgembEnum;
 	      else if (strcmp(name,"SmbInitDensityScaling")==0) return SmbInitDensityScalingEnum;
 	      else if (strcmp(name,"SmbTa")==0) return SmbTaEnum;
@@ -456,4 +468,5 @@
 	      else if (strcmp(name,"SMBd18opdd")==0) return SMBd18opddEnum;
 	      else if (strcmp(name,"SmbDpermil")==0) return SmbDpermilEnum;
+	      else if (strcmp(name,"SmbF")==0) return SmbFEnum;
 	      else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
 	      else if (strcmp(name,"SmbMonthlytemperatures")==0) return SmbMonthlytemperaturesEnum;
@@ -471,4 +484,8 @@
 	      else if (strcmp(name,"SmbRefreeze")==0) return SmbRefreezeEnum;
 	      else if (strcmp(name,"SMBgcm")==0) return SMBgcmEnum;
+	      else if (strcmp(name,"SMBgradientsela")==0) return SMBgradientselaEnum;
+	      else if (strcmp(name,"SmbEla")==0) return SmbElaEnum;
+	      else if (strcmp(name,"SmbBMax")==0) return SmbBMaxEnum;
+	      else if (strcmp(name,"SmbBMin")==0) return SmbBMinEnum;
 	      else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
 	      else if (strcmp(name,"Adjointx")==0) return AdjointxEnum;
@@ -489,5 +506,8 @@
 	      else if (strcmp(name,"ResetPenalties")==0) return ResetPenaltiesEnum;
 	      else if (strcmp(name,"SurfaceAbsVelMisfit")==0) return SurfaceAbsVelMisfitEnum;
-	      else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
+         else stage=5;
+   }
+   if(stage==5){
+	      if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
 	      else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
 	      else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
@@ -506,8 +526,5 @@
 	      else if (strcmp(name,"Vx")==0) return VxEnum;
 	      else if (strcmp(name,"VxPicard")==0) return VxPicardEnum;
-         else stage=5;
-   }
-   if(stage==5){
-	      if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
+	      else if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
 	      else if (strcmp(name,"Vy")==0) return VyEnum;
 	      else if (strcmp(name,"VyPicard")==0) return VyPicardEnum;
@@ -532,4 +549,6 @@
 	      else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
 	      else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
+	      else if (strcmp(name,"WaterfractionDrainage")==0) return WaterfractionDrainageEnum;
+	      else if (strcmp(name,"WaterfractionDrainageIntegrated")==0) return WaterfractionDrainageIntegratedEnum;
 	      else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
 	      else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum;
@@ -573,4 +592,5 @@
 	      else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
 	      else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
+	      else if (strcmp(name,"IntMatExternalResult")==0) return IntMatExternalResultEnum;
 	      else if (strcmp(name,"J")==0) return JEnum;
 	      else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
@@ -609,5 +629,8 @@
 	      else if (strcmp(name,"Outputdefinition27")==0) return Outputdefinition27Enum;
 	      else if (strcmp(name,"Outputdefinition28")==0) return Outputdefinition28Enum;
-	      else if (strcmp(name,"Outputdefinition29")==0) return Outputdefinition29Enum;
+         else stage=6;
+   }
+   if(stage==6){
+	      if (strcmp(name,"Outputdefinition29")==0) return Outputdefinition29Enum;
 	      else if (strcmp(name,"Outputdefinition30")==0) return Outputdefinition30Enum;
 	      else if (strcmp(name,"Outputdefinition31")==0) return Outputdefinition31Enum;
@@ -629,8 +652,5 @@
 	      else if (strcmp(name,"Outputdefinition47")==0) return Outputdefinition47Enum;
 	      else if (strcmp(name,"Outputdefinition48")==0) return Outputdefinition48Enum;
-         else stage=6;
-   }
-   if(stage==6){
-	      if (strcmp(name,"Outputdefinition49")==0) return Outputdefinition49Enum;
+	      else if (strcmp(name,"Outputdefinition49")==0) return Outputdefinition49Enum;
 	      else if (strcmp(name,"Outputdefinition50")==0) return Outputdefinition50Enum;
 	      else if (strcmp(name,"Outputdefinition51")==0) return Outputdefinition51Enum;
@@ -732,5 +752,8 @@
 	      else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
 	      else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
-	      else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
+         else stage=7;
+   }
+   if(stage==7){
+	      if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
 	      else if (strcmp(name,"Regular")==0) return RegularEnum;
 	      else if (strcmp(name,"Scaled")==0) return ScaledEnum;
@@ -752,8 +775,5 @@
 	      else if (strcmp(name,"ExtrapolationVariable")==0) return ExtrapolationVariableEnum;
 	      else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;
-         else stage=7;
-   }
-   if(stage==7){
-	      if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum;
+	      else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum;
 	      else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum;
 	      else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum;
@@ -765,4 +785,6 @@
 	      else if (strcmp(name,"SealevelAbsolute")==0) return SealevelAbsoluteEnum;
 	      else if (strcmp(name,"SealevelEustatic")==0) return SealevelEustaticEnum;
+	      else if (strcmp(name,"SealevelObs")==0) return SealevelObsEnum;
+	      else if (strcmp(name,"SealevelWeights")==0) return SealevelWeightsEnum;
 	      else if (strcmp(name,"SealevelriseDeltathickness")==0) return SealevelriseDeltathicknessEnum;
 	      else if (strcmp(name,"SealevelriseCumDeltathickness")==0) return SealevelriseCumDeltathicknessEnum;
@@ -777,4 +799,11 @@
 	      else if (strcmp(name,"SealevelriseRunFrequency")==0) return SealevelriseRunFrequencyEnum;
 	      else if (strcmp(name,"SealevelriseRunCount")==0) return SealevelriseRunCountEnum;
+	      else if (strcmp(name,"SealevelriseRotation")==0) return SealevelriseRotationEnum;
+	      else if (strcmp(name,"SealevelriseTidalLoveH")==0) return SealevelriseTidalLoveHEnum;
+	      else if (strcmp(name,"SealevelriseTidalLoveK")==0) return SealevelriseTidalLoveKEnum;
+	      else if (strcmp(name,"SealevelriseFluidLove")==0) return SealevelriseFluidLoveEnum;
+	      else if (strcmp(name,"SealevelriseEquatorialMoi")==0) return SealevelriseEquatorialMoiEnum;
+	      else if (strcmp(name,"SealevelrisePolarMoi")==0) return SealevelrisePolarMoiEnum;
+	      else if (strcmp(name,"SealevelriseAngularVelocity")==0) return SealevelriseAngularVelocityEnum;
 	      else if (strcmp(name,"SealevelriseGElastic")==0) return SealevelriseGElasticEnum;
 	      else if (strcmp(name,"SealevelriseUElastic")==0) return SealevelriseUElasticEnum;
@@ -783,4 +812,21 @@
 	      else if (strcmp(name,"SealevelriseRequestedOutputs")==0) return SealevelriseRequestedOutputsEnum;
 	      else if (strcmp(name,"SealevelriseNumRequestedOutputs")==0) return SealevelriseNumRequestedOutputsEnum;
+	      else if (strcmp(name,"EsaUmotion")==0) return EsaUmotionEnum;
+	      else if (strcmp(name,"EsaNmotion")==0) return EsaNmotionEnum;
+	      else if (strcmp(name,"EsaEmotion")==0) return EsaEmotionEnum;
+	      else if (strcmp(name,"EsaStrainratexx")==0) return EsaStrainratexxEnum;
+	      else if (strcmp(name,"EsaStrainratexy")==0) return EsaStrainratexyEnum;
+	      else if (strcmp(name,"EsaStrainrateyy")==0) return EsaStrainrateyyEnum;
+	      else if (strcmp(name,"EsaRotationrate")==0) return EsaRotationrateEnum;
+	      else if (strcmp(name,"EsaDeltathickness")==0) return EsaDeltathicknessEnum;
+	      else if (strcmp(name,"EsaUElastic")==0) return EsaUElasticEnum;
+	      else if (strcmp(name,"EsaHElastic")==0) return EsaHElasticEnum;
+	      else if (strcmp(name,"EsaTransitions")==0) return EsaTransitionsEnum;
+	      else if (strcmp(name,"EsaRequestedOutputs")==0) return EsaRequestedOutputsEnum;
+	      else if (strcmp(name,"EsaNumRequestedOutputs")==0) return EsaNumRequestedOutputsEnum;
+	      else if (strcmp(name,"AmrLevelMax")==0) return AmrLevelMaxEnum;
+	      else if (strcmp(name,"AmrRegionLevel1")==0) return AmrRegionLevel1Enum;
+	      else if (strcmp(name,"AmrRegionLevelMax")==0) return AmrRegionLevelMaxEnum;
+	      else if (strcmp(name,"TransientAmrFrequency")==0) return TransientAmrFrequencyEnum;
 	      else if (strcmp(name,"ParametersEND")==0) return ParametersENDEnum;
 	      else if (strcmp(name,"XY")==0) return XYEnum;
@@ -811,4 +857,5 @@
 	      else if (strcmp(name,"Matice")==0) return MaticeEnum;
 	      else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
+	      else if (strcmp(name,"Matenhancedice")==0) return MatenhancediceEnum;
 	      else if (strcmp(name,"Matestar")==0) return MatestarEnum;
 	      else if (strcmp(name,"Matpar")==0) return MatparEnum;
@@ -825,7 +872,11 @@
 	      else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum;
 	      else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
+	      else if (strcmp(name,"ElementSId")==0) return ElementSIdEnum;
 	      else if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
 	      else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
-	      else if (strcmp(name,"Segment")==0) return SegmentEnum;
+         else stage=8;
+   }
+   if(stage==8){
+	      if (strcmp(name,"Segment")==0) return SegmentEnum;
 	      else if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
 	      else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
@@ -875,8 +926,5 @@
 	      else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum;
 	      else if (strcmp(name,"HydrologySommersAnalysis")==0) return HydrologySommersAnalysisEnum;
-         else stage=8;
-   }
-   if(stage==8){
-	      if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
+	      else if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
 	      else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
 	      else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
@@ -897,5 +945,7 @@
 	      else if (strcmp(name,"UzawaPressureAnalysis")==0) return UzawaPressureAnalysisEnum;
 	      else if (strcmp(name,"GiaSolution")==0) return GiaSolutionEnum;
-	      else if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
+	      else if (strcmp(name,"GiaIvinsAnalysis")==0) return GiaIvinsAnalysisEnum;
+	      else if (strcmp(name,"EsaSolution")==0) return EsaSolutionEnum;
+	      else if (strcmp(name,"EsaAnalysis")==0) return EsaAnalysisEnum;
 	      else if (strcmp(name,"MeshdeformationAnalysis")==0) return MeshdeformationAnalysisEnum;
 	      else if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum;
@@ -948,5 +998,8 @@
 	      else if (strcmp(name,"P2bubble")==0) return P2bubbleEnum;
 	      else if (strcmp(name,"P2bubblecondensed")==0) return P2bubblecondensedEnum;
-	      else if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
+         else stage=9;
+   }
+   if(stage==9){
+	      if (strcmp(name,"P2xP1")==0) return P2xP1Enum;
 	      else if (strcmp(name,"P1xP2")==0) return P1xP2Enum;
 	      else if (strcmp(name,"P1xP3")==0) return P1xP3Enum;
@@ -979,5 +1032,5 @@
 	      else if (strcmp(name,"Results")==0) return ResultsEnum;
 	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
-         else stage=9;
+         else stage=10;
    }
 	/*If we reach this point, the string provided has not been found*/
