/*
* \file StringToEnumx.cpp:
* \brief: output enum associated with string
*
*   WARNING: DO NOT MODIFY THIS FILE
*            this file has been automatically generated by Synchronize.sh
*            Please read README for more information
*/

#include <cstring>
#include "./Enum.h"
#include "../Exceptions/exceptions.h"

int  StringToEnumx(const char* name,bool notfounderror){

   int  stage=1;

   if(stage==1){
	      if (strcmp(name,"AutodiffIsautodiff")==0) return AutodiffIsautodiffEnum;
	      else if (strcmp(name,"AutodiffNumDependents")==0) return AutodiffNumDependentsEnum;
	      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,"AutodiffDependentObjectIndices")==0) return AutodiffDependentObjectIndicesEnum;
	      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,"AutodiffDriver")==0) return AutodiffDriverEnum;
	      else if (strcmp(name,"AutodiffFosForwardIndex")==0) return AutodiffFosForwardIndexEnum;
	      else if (strcmp(name,"AutodiffFovForwardIndices")==0) return AutodiffFovForwardIndicesEnum;
	      else if (strcmp(name,"AutodiffFosReverseIndex")==0) return AutodiffFosReverseIndexEnum;
	      else if (strcmp(name,"AutodiffMassFluxSegmentsPresent")==0) return AutodiffMassFluxSegmentsPresentEnum;
	      else if (strcmp(name,"AutodiffKeep")==0) return AutodiffKeepEnum;
	      else if (strcmp(name,"AutodiffObufsize")==0) return AutodiffObufsizeEnum;
	      else if (strcmp(name,"AutodiffLbufsize")==0) return AutodiffLbufsizeEnum;
	      else if (strcmp(name,"AutodiffCbufsize")==0) return AutodiffCbufsizeEnum;
	      else if (strcmp(name,"AutodiffTbufsize")==0) return AutodiffTbufsizeEnum;
	      else if (strcmp(name,"AutodiffGcTriggerRatio")==0) return AutodiffGcTriggerRatioEnum;
	      else if (strcmp(name,"AutodiffGcTriggerMaxSize")==0) return AutodiffGcTriggerMaxSizeEnum;
	      else if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum;
	      else if (strcmp(name,"BalancethicknessStabilization")==0) return BalancethicknessStabilizationEnum;
	      else if (strcmp(name,"BalancethicknessThickeningRate")==0) return BalancethicknessThickeningRateEnum;
	      else if (strcmp(name,"Basalforcings")==0) return BasalforcingsEnum;
	      else if (strcmp(name,"BasalforcingsGeothermalflux")==0) return BasalforcingsGeothermalfluxEnum;
	      else if (strcmp(name,"BasalforcingsGroundediceMeltingRate")==0) return BasalforcingsGroundediceMeltingRateEnum;
	      else if (strcmp(name,"BasalforcingsFloatingiceMeltingRate")==0) return BasalforcingsFloatingiceMeltingRateEnum;
	      else if (strcmp(name,"BasalforcingsDeepwaterMeltingRate")==0) return BasalforcingsDeepwaterMeltingRateEnum;
	      else if (strcmp(name,"BasalforcingsDeepwaterElevation")==0) return BasalforcingsDeepwaterElevationEnum;
	      else if (strcmp(name,"BasalforcingsUpperwaterElevation")==0) return BasalforcingsUpperwaterElevationEnum;
	      else if (strcmp(name,"FloatingMeltRate")==0) return FloatingMeltRateEnum;
	      else if (strcmp(name,"LinearFloatingMeltRate")==0) return LinearFloatingMeltRateEnum;
	      else if (strcmp(name,"Bed")==0) return BedEnum;
	      else if (strcmp(name,"Base")==0) return BaseEnum;
	      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,"StressbalanceAbstol")==0) return StressbalanceAbstolEnum;
	      else if (strcmp(name,"StressbalanceIsnewton")==0) return StressbalanceIsnewtonEnum;
	      else if (strcmp(name,"StressbalanceMaxiter")==0) return StressbalanceMaxiterEnum;
	      else if (strcmp(name,"StressbalancePenaltyFactor")==0) return StressbalancePenaltyFactorEnum;
	      else if (strcmp(name,"StressbalanceReferential")==0) return StressbalanceReferentialEnum;
	      else if (strcmp(name,"StressbalanceReltol")==0) return StressbalanceReltolEnum;
	      else if (strcmp(name,"StressbalanceNumRequestedOutputs")==0) return StressbalanceNumRequestedOutputsEnum;
	      else if (strcmp(name,"StressbalanceRequestedOutputs")==0) return StressbalanceRequestedOutputsEnum;
	      else if (strcmp(name,"StressbalanceRestol")==0) return StressbalanceRestolEnum;
	      else if (strcmp(name,"StressbalanceRiftPenaltyLock")==0) return StressbalanceRiftPenaltyLockEnum;
	      else if (strcmp(name,"StressbalanceRiftPenaltyThreshold")==0) return StressbalanceRiftPenaltyThresholdEnum;
	      else if (strcmp(name,"StressbalanceShelfDampening")==0) return StressbalanceShelfDampeningEnum;
	      else if (strcmp(name,"StressbalanceSpcvx")==0) return StressbalanceSpcvxEnum;
	      else if (strcmp(name,"StressbalanceSpcvy")==0) return StressbalanceSpcvyEnum;
	      else if (strcmp(name,"StressbalanceSpcvz")==0) return StressbalanceSpcvzEnum;
	      else if (strcmp(name,"StressbalanceFSreconditioning")==0) return StressbalanceFSreconditioningEnum;
	      else if (strcmp(name,"StressbalanceVertexPairing")==0) return StressbalanceVertexPairingEnum;
	      else if (strcmp(name,"StressbalanceViscosityOvershoot")==0) return StressbalanceViscosityOvershootEnum;
	      else if (strcmp(name,"LoadingforceX")==0) return LoadingforceXEnum;
	      else if (strcmp(name,"LoadingforceY")==0) return LoadingforceYEnum;
	      else if (strcmp(name,"LoadingforceZ")==0) return LoadingforceZEnum;
	      else if (strcmp(name,"FlowequationBorderSSA")==0) return FlowequationBorderSSAEnum;
	      else if (strcmp(name,"FlowequationBorderHO")==0) return FlowequationBorderHOEnum;
	      else if (strcmp(name,"FlowequationBorderFS")==0) return FlowequationBorderFSEnum;
	      else if (strcmp(name,"FlowequationElementEquation")==0) return FlowequationElementEquationEnum;
	      else if (strcmp(name,"FlowequationIsSIA")==0) return FlowequationIsSIAEnum;
	      else if (strcmp(name,"FlowequationIsSSA")==0) return FlowequationIsSSAEnum;
	      else if (strcmp(name,"FlowequationIsL1L2")==0) return FlowequationIsL1L2Enum;
	      else if (strcmp(name,"FlowequationIsHO")==0) return FlowequationIsHOEnum;
	      else if (strcmp(name,"FlowequationIsFS")==0) return FlowequationIsFSEnum;
	      else if (strcmp(name,"FlowequationFeSSA")==0) return FlowequationFeSSAEnum;
	      else if (strcmp(name,"FlowequationFeHO")==0) return FlowequationFeHOEnum;
	      else if (strcmp(name,"FlowequationFeFS")==0) return FlowequationFeFSEnum;
	      else if (strcmp(name,"FlowequationVertexEquation")==0) return FlowequationVertexEquationEnum;
	      else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
	      else if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
	      else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
	      else if (strcmp(name,"FrictionM")==0) return FrictionMEnum;
	      else if (strcmp(name,"FrictionC")==0) return FrictionCEnum;
	      else if (strcmp(name,"FrictionLaw")==0) return FrictionLawEnum;
	      else if (strcmp(name,"GeometryHydrostaticRatio")==0) return GeometryHydrostaticRatioEnum;
	      else if (strcmp(name,"HydrologyModel")==0) return HydrologyModelEnum;
	      else if (strcmp(name,"Hydrologyshreve")==0) return HydrologyshreveEnum;
	      else if (strcmp(name,"HydrologyshreveSpcwatercolumn")==0) return HydrologyshreveSpcwatercolumnEnum;
	      else if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
	      else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
	      else if (strcmp(name,"SedimentHead")==0) return SedimentHeadEnum;
	      else if (strcmp(name,"SedimentHeadOld")==0) return SedimentHeadOldEnum;
	      else if (strcmp(name,"SedimentHeadResidual")==0) return SedimentHeadResidualEnum;
	      else if (strcmp(name,"EffectivePressure")==0) return EffectivePressureEnum;
	      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 if (strcmp(name,"EplHeadSlopeY")==0) return EplHeadSlopeYEnum;
	      else if (strcmp(name,"HydrologydcMaxIter")==0) return HydrologydcMaxIterEnum;
	      else if (strcmp(name,"HydrologydcRelTol")==0) return HydrologydcRelTolEnum;
	      else if (strcmp(name,"HydrologydcSpcsedimentHead")==0) return HydrologydcSpcsedimentHeadEnum;
	      else if (strcmp(name,"HydrologydcSedimentCompressibility")==0) return HydrologydcSedimentCompressibilityEnum;
	      else if (strcmp(name,"HydrologydcSedimentPorosity")==0) return HydrologydcSedimentPorosityEnum;
	      else if (strcmp(name,"HydrologydcSedimentThickness")==0) return HydrologydcSedimentThicknessEnum;
	      else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
	      else if (strcmp(name,"HydrologydcWaterCompressibility")==0) return HydrologydcWaterCompressibilityEnum;
	      else if (strcmp(name,"HydrologydcSpceplHead")==0) return HydrologydcSpceplHeadEnum;
	      else if (strcmp(name,"HydrologydcMaskEplactiveNode")==0) return HydrologydcMaskEplactiveNodeEnum;
	      else if (strcmp(name,"HydrologydcMaskEplactiveElt")==0) return HydrologydcMaskEplactiveEltEnum;
	      else if (strcmp(name,"HydrologydcEplCompressibility")==0) return HydrologydcEplCompressibilityEnum;
	      else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum;
	      else if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum;
	      else if (strcmp(name,"HydrologydcEplMaxThickness")==0) return HydrologydcEplMaxThicknessEnum;
	      else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
	      else if (strcmp(name,"HydrologydcEplThicknessOld")==0) return HydrologydcEplThicknessOldEnum;
	      else if (strcmp(name,"HydrologydcEplConductivity")==0) return HydrologydcEplConductivityEnum;
	      else if (strcmp(name,"HydrologydcIsefficientlayer")==0) return HydrologydcIsefficientlayerEnum;
	      else if (strcmp(name,"HydrologydcSedimentlimitFlag")==0) return HydrologydcSedimentlimitFlagEnum;
	      else if (strcmp(name,"HydrologydcSedimentlimit")==0) return HydrologydcSedimentlimitEnum;
	      else if (strcmp(name,"HydrologydcTransferFlag")==0) return HydrologydcTransferFlagEnum;
         else stage=2;
   }
   if(stage==2){
	      if (strcmp(name,"HydrologydcLeakageFactor")==0) return HydrologydcLeakageFactorEnum;
	      else if (strcmp(name,"HydrologydcPenaltyFactor")==0) return HydrologydcPenaltyFactorEnum;
	      else if (strcmp(name,"HydrologydcPenaltyLock")==0) return HydrologydcPenaltyLockEnum;
	      else if (strcmp(name,"HydrologydcBasalMoulinInput")==0) return HydrologydcBasalMoulinInputEnum;
	      else if (strcmp(name,"HydrologyLayer")==0) return HydrologyLayerEnum;
	      else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum;
	      else if (strcmp(name,"HydrologyEfficient")==0) return HydrologyEfficientEnum;
	      else if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum;
	      else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
	      else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
	      else if (strcmp(name,"InversionCostFunctionThreshold")==0) return InversionCostFunctionThresholdEnum;
	      else if (strcmp(name,"InversionCostFunctionsCoefficients")==0) return InversionCostFunctionsCoefficientsEnum;
	      else if (strcmp(name,"InversionCostFunctions")==0) return InversionCostFunctionsEnum;
	      else if (strcmp(name,"InversionGradientScaling")==0) return InversionGradientScalingEnum;
	      else if (strcmp(name,"InversionIscontrol")==0) return InversionIscontrolEnum;
	      else if (strcmp(name,"InversionType")==0) return InversionTypeEnum;
	      else if (strcmp(name,"InversionIncompleteAdjoint")==0) return InversionIncompleteAdjointEnum;
	      else if (strcmp(name,"InversionMaxParameters")==0) return InversionMaxParametersEnum;
	      else if (strcmp(name,"InversionMaxiterPerStep")==0) return InversionMaxiterPerStepEnum;
	      else if (strcmp(name,"InversionMaxiter")==0) return InversionMaxiterEnum;
	      else if (strcmp(name,"InversionMaxsteps")==0) return InversionMaxstepsEnum;
	      else if (strcmp(name,"InversionFatol")==0) return InversionFatolEnum;
	      else if (strcmp(name,"InversionFrtol")==0) return InversionFrtolEnum;
	      else if (strcmp(name,"InversionGatol")==0) return InversionGatolEnum;
	      else if (strcmp(name,"InversionGrtol")==0) return InversionGrtolEnum;
	      else if (strcmp(name,"InversionGttol")==0) return InversionGttolEnum;
	      else if (strcmp(name,"InversionAlgorithm")==0) return InversionAlgorithmEnum;
	      else if (strcmp(name,"InversionMinParameters")==0) return InversionMinParametersEnum;
	      else if (strcmp(name,"InversionNsteps")==0) return InversionNstepsEnum;
	      else if (strcmp(name,"InversionDxmin")==0) return InversionDxminEnum;
	      else if (strcmp(name,"InversionNumControlParameters")==0) return InversionNumControlParametersEnum;
	      else if (strcmp(name,"InversionNumCostFunctions")==0) return InversionNumCostFunctionsEnum;
	      else if (strcmp(name,"InversionStepThreshold")==0) return InversionStepThresholdEnum;
	      else if (strcmp(name,"InversionThicknessObs")==0) return InversionThicknessObsEnum;
	      else if (strcmp(name,"InversionVxObs")==0) return InversionVxObsEnum;
	      else if (strcmp(name,"InversionVyObs")==0) return InversionVyObsEnum;
	      else if (strcmp(name,"InversionVzObs")==0) return InversionVzObsEnum;
	      else if (strcmp(name,"MaskIceLevelset")==0) return MaskIceLevelsetEnum;
	      else if (strcmp(name,"QmuMaskIceLevelset")==0) return QmuMaskIceLevelsetEnum;
	      else if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum;
	      else if (strcmp(name,"MaterialsHeatcapacity")==0) return MaterialsHeatcapacityEnum;
	      else if (strcmp(name,"MaterialsLatentheat")==0) return MaterialsLatentheatEnum;
	      else if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum;
	      else if (strcmp(name,"MaterialsMixedLayerCapacity")==0) return MaterialsMixedLayerCapacityEnum;
	      else if (strcmp(name,"MaterialsRheologyB")==0) return MaterialsRheologyBEnum;
	      else if (strcmp(name,"MaterialsRheologyBbar")==0) return MaterialsRheologyBbarEnum;
	      else if (strcmp(name,"MaterialsRheologyLaw")==0) return MaterialsRheologyLawEnum;
	      else if (strcmp(name,"MaterialsRheologyN")==0) return MaterialsRheologyNEnum;
	      else if (strcmp(name,"DamageIsdamage")==0) return DamageIsdamageEnum;
	      else if (strcmp(name,"DamageD")==0) return DamageDEnum;
	      else if (strcmp(name,"DamageF")==0) return DamageFEnum;
	      else if (strcmp(name,"QmuDamageD")==0) return QmuDamageDEnum;
	      else if (strcmp(name,"DamageDbar")==0) return DamageDbarEnum;
	      else if (strcmp(name,"DamageLaw")==0) return DamageLawEnum;
	      else if (strcmp(name,"DamageC1")==0) return DamageC1Enum;
	      else if (strcmp(name,"DamageC2")==0) return DamageC2Enum;
	      else if (strcmp(name,"DamageC3")==0) return DamageC3Enum;
	      else if (strcmp(name,"DamageC4")==0) return DamageC4Enum;
	      else if (strcmp(name,"DamageElementinterp")==0) return DamageElementinterpEnum;
	      else if (strcmp(name,"DamageHealing")==0) return DamageHealingEnum;
	      else if (strcmp(name,"DamageStressThreshold")==0) return DamageStressThresholdEnum;
	      else if (strcmp(name,"DamageStabilization")==0) return DamageStabilizationEnum;
	      else if (strcmp(name,"DamagePenaltyThreshold")==0) return DamagePenaltyThresholdEnum;
	      else if (strcmp(name,"DamagePenaltyLock")==0) return DamagePenaltyLockEnum;
	      else if (strcmp(name,"DamagePenaltyFactor")==0) return DamagePenaltyFactorEnum;
	      else if (strcmp(name,"DamageMaxiter")==0) return DamageMaxiterEnum;
	      else if (strcmp(name,"DamageSpcdamage")==0) return DamageSpcdamageEnum;
	      else if (strcmp(name,"DamageMaxDamage")==0) return DamageMaxDamageEnum;
	      else if (strcmp(name,"DamageEquivStress")==0) return DamageEquivStressEnum;
	      else if (strcmp(name,"DamageEvolutionNumRequestedOutputs")==0) return DamageEvolutionNumRequestedOutputsEnum;
	      else if (strcmp(name,"DamageEvolutionRequestedOutputs")==0) return DamageEvolutionRequestedOutputsEnum;
	      else if (strcmp(name,"NewDamage")==0) return NewDamageEnum;
	      else if (strcmp(name,"MaterialsRhoIce")==0) return MaterialsRhoIceEnum;
	      else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;
	      else if (strcmp(name,"MaterialsRhoFreshwater")==0) return MaterialsRhoFreshwaterEnum;
	      else if (strcmp(name,"MaterialsMuWater")==0) return MaterialsMuWaterEnum;
	      else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
	      else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
	      else if (strcmp(name,"MaterialsTemperateiceconductivity")==0) return MaterialsTemperateiceconductivityEnum;
	      else if (strcmp(name,"MaterialsLithosphereShearModulus")==0) return MaterialsLithosphereShearModulusEnum;
	      else if (strcmp(name,"MaterialsLithosphereDensity")==0) return MaterialsLithosphereDensityEnum;
	      else if (strcmp(name,"MaterialsMantleShearModulus")==0) return MaterialsMantleShearModulusEnum;
	      else if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum;
	      else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum;
	      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 if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
	      else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
	      else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
	      else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
	      else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
	      else if (strcmp(name,"MeshUpperelements")==0) return MeshUpperelementsEnum;
	      else if (strcmp(name,"MeshVertexonbase")==0) return MeshVertexonbaseEnum;
	      else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
	      else if (strcmp(name,"MeshVertexonboundary")==0) return MeshVertexonboundaryEnum;
	      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,"MeshElementtype")==0) return MeshElementtypeEnum;
	      else if (strcmp(name,"DomainType")==0) return DomainTypeEnum;
	      else if (strcmp(name,"DomainDimension")==0) return DomainDimensionEnum;
	      else if (strcmp(name,"Domain2Dhorizontal")==0) return Domain2DhorizontalEnum;
	      else if (strcmp(name,"Domain2Dvertical")==0) return Domain2DverticalEnum;
	      else if (strcmp(name,"Domain3D")==0) return Domain3DEnum;
	      else if (strcmp(name,"MiscellaneousName")==0) return MiscellaneousNameEnum;
	      else if (strcmp(name,"MasstransportHydrostaticAdjustment")==0) return MasstransportHydrostaticAdjustmentEnum;
	      else if (strcmp(name,"MasstransportIsfreesurface")==0) return MasstransportIsfreesurfaceEnum;
	      else if (strcmp(name,"MasstransportMinThickness")==0) return MasstransportMinThicknessEnum;
	      else if (strcmp(name,"MasstransportPenaltyFactor")==0) return MasstransportPenaltyFactorEnum;
	      else if (strcmp(name,"MasstransportSpcthickness")==0) return MasstransportSpcthicknessEnum;
	      else if (strcmp(name,"MasstransportCalvingrate")==0) return MasstransportCalvingrateEnum;
	      else if (strcmp(name,"MasstransportStabilization")==0) return MasstransportStabilizationEnum;
	      else if (strcmp(name,"MasstransportVertexPairing")==0) return MasstransportVertexPairingEnum;
	      else if (strcmp(name,"MasstransportNumRequestedOutputs")==0) return MasstransportNumRequestedOutputsEnum;
	      else if (strcmp(name,"MasstransportRequestedOutputs")==0) return MasstransportRequestedOutputsEnum;
	      else if (strcmp(name,"QmuIsdakota")==0) return QmuIsdakotaEnum;
	      else if (strcmp(name,"MassFluxSegments")==0) return MassFluxSegmentsEnum;
	      else if (strcmp(name,"MassFluxSegmentsPresent")==0) return MassFluxSegmentsPresentEnum;
	      else if (strcmp(name,"QmuMassFluxSegmentsPresent")==0) return QmuMassFluxSegmentsPresentEnum;
         else stage=3;
   }
   if(stage==3){
	      if (strcmp(name,"QmuNumberofpartitions")==0) return QmuNumberofpartitionsEnum;
	      else if (strcmp(name,"QmuNumberofresponses")==0) return QmuNumberofresponsesEnum;
	      else if (strcmp(name,"QmuPartition")==0) return QmuPartitionEnum;
	      else if (strcmp(name,"QmuResponsedescriptors")==0) return QmuResponsedescriptorsEnum;
	      else if (strcmp(name,"QmuVariabledescriptors")==0) return QmuVariabledescriptorsEnum;
	      else if (strcmp(name,"QmuMaterialsRheologyB")==0) return QmuMaterialsRheologyBEnum;
	      else if (strcmp(name,"RiftsNumrifts")==0) return RiftsNumriftsEnum;
	      else if (strcmp(name,"RiftsRiftstruct")==0) return RiftsRiftstructEnum;
	      else if (strcmp(name,"SettingsResultsOnNodes")==0) return SettingsResultsOnNodesEnum;
	      else if (strcmp(name,"SettingsIoGather")==0) return SettingsIoGatherEnum;
	      else if (strcmp(name,"SettingsLowmem")==0) return SettingsLowmemEnum;
	      else if (strcmp(name,"SettingsOutputFrequency")==0) return SettingsOutputFrequencyEnum;
	      else if (strcmp(name,"SettingsWaitonlock")==0) return SettingsWaitonlockEnum;
	      else if (strcmp(name,"DebugProfiling")==0) return DebugProfilingEnum;
	      else if (strcmp(name,"ProfilingCurrentMem")==0) return ProfilingCurrentMemEnum;
	      else if (strcmp(name,"ProfilingCurrentFlops")==0) return ProfilingCurrentFlopsEnum;
	      else if (strcmp(name,"ProfilingSolutionTime")==0) return ProfilingSolutionTimeEnum;
	      else if (strcmp(name,"MaxIterationConvergenceFlag")==0) return MaxIterationConvergenceFlagEnum;
	      else if (strcmp(name,"SteadystateMaxiter")==0) return SteadystateMaxiterEnum;
	      else if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum;
	      else if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum;
	      else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
	      else if (strcmp(name,"Surface")==0) return SurfaceEnum;
	      else if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum;
	      else if (strcmp(name,"ThermalIsdynamicbasalspc")==0) return ThermalIsdynamicbasalspcEnum;
	      else if (strcmp(name,"ThermalMaxiter")==0) return ThermalMaxiterEnum;
	      else if (strcmp(name,"ThermalPenaltyFactor")==0) return ThermalPenaltyFactorEnum;
	      else if (strcmp(name,"ThermalPenaltyLock")==0) return ThermalPenaltyLockEnum;
	      else if (strcmp(name,"ThermalPenaltyThreshold")==0) return ThermalPenaltyThresholdEnum;
	      else if (strcmp(name,"ThermalSpctemperature")==0) return ThermalSpctemperatureEnum;
	      else if (strcmp(name,"ThermalStabilization")==0) return ThermalStabilizationEnum;
	      else if (strcmp(name,"ThermalNumRequestedOutputs")==0) return ThermalNumRequestedOutputsEnum;
	      else if (strcmp(name,"ThermalRequestedOutputs")==0) return ThermalRequestedOutputsEnum;
	      else if (strcmp(name,"GiaMantleViscosity")==0) return GiaMantleViscosityEnum;
	      else if (strcmp(name,"GiaLithosphereThickness")==0) return GiaLithosphereThicknessEnum;
	      else if (strcmp(name,"Thickness")==0) return ThicknessEnum;
	      else if (strcmp(name,"TimesteppingStartTime")==0) return TimesteppingStartTimeEnum;
	      else if (strcmp(name,"TimesteppingFinalTime")==0) return TimesteppingFinalTimeEnum;
	      else if (strcmp(name,"TimesteppingCflCoefficient")==0) return TimesteppingCflCoefficientEnum;
	      else if (strcmp(name,"TimesteppingTimeAdapt")==0) return TimesteppingTimeAdaptEnum;
	      else if (strcmp(name,"TimesteppingTimeStep")==0) return TimesteppingTimeStepEnum;
	      else if (strcmp(name,"TimesteppingInterpForcings")==0) return TimesteppingInterpForcingsEnum;
	      else if (strcmp(name,"TransientIsstressbalance")==0) return TransientIsstressbalanceEnum;
	      else if (strcmp(name,"TransientIsgroundingline")==0) return TransientIsgroundinglineEnum;
	      else if (strcmp(name,"TransientIsmasstransport")==0) return TransientIsmasstransportEnum;
	      else if (strcmp(name,"TransientIsthermal")==0) return TransientIsthermalEnum;
	      else if (strcmp(name,"TransientIsgia")==0) return TransientIsgiaEnum;
	      else if (strcmp(name,"TransientIsdamageevolution")==0) return TransientIsdamageevolutionEnum;
	      else if (strcmp(name,"TransientIshydrology")==0) return TransientIshydrologyEnum;
	      else if (strcmp(name,"TransientNumRequestedOutputs")==0) return TransientNumRequestedOutputsEnum;
	      else if (strcmp(name,"TransientRequestedOutputs")==0) return TransientRequestedOutputsEnum;
	      else if (strcmp(name,"Potential")==0) return PotentialEnum;
	      else if (strcmp(name,"BalancethicknessSpcpotential")==0) return BalancethicknessSpcpotentialEnum;
	      else if (strcmp(name,"BalancethicknessApparentMassbalance")==0) return BalancethicknessApparentMassbalanceEnum;
	      else if (strcmp(name,"Balancethickness2Misfit")==0) return Balancethickness2MisfitEnum;
	      else if (strcmp(name,"BalancethicknessNux")==0) return BalancethicknessNuxEnum;
	      else if (strcmp(name,"BalancethicknessNuy")==0) return BalancethicknessNuyEnum;
	      else if (strcmp(name,"BalancethicknessVxObs")==0) return BalancethicknessVxObsEnum;
	      else if (strcmp(name,"BalancethicknessVyObs")==0) return BalancethicknessVyObsEnum;
	      else if (strcmp(name,"BalancethicknessThicknessObs")==0) return BalancethicknessThicknessObsEnum;
	      else if (strcmp(name,"Surfaceforcings")==0) return SurfaceforcingsEnum;
	      else if (strcmp(name,"SMB")==0) return SMBEnum;
	      else if (strcmp(name,"SurfaceforcingsMassBalance")==0) return SurfaceforcingsMassBalanceEnum;
	      else if (strcmp(name,"SMBpdd")==0) return SMBpddEnum;
	      else if (strcmp(name,"SurfaceforcingsDelta18o")==0) return SurfaceforcingsDelta18oEnum;
	      else if (strcmp(name,"SurfaceforcingsDelta18oSurface")==0) return SurfaceforcingsDelta18oSurfaceEnum;
	      else if (strcmp(name,"SurfaceforcingsIsdelta18o")==0) return SurfaceforcingsIsdelta18oEnum;
	      else if (strcmp(name,"SurfaceforcingsPrecipitationsPresentday")==0) return SurfaceforcingsPrecipitationsPresentdayEnum;
	      else if (strcmp(name,"SurfaceforcingsTemperaturesPresentday")==0) return SurfaceforcingsTemperaturesPresentdayEnum;
	      else if (strcmp(name,"SurfaceforcingsTemperaturesLgm")==0) return SurfaceforcingsTemperaturesLgmEnum;
	      else if (strcmp(name,"SurfaceforcingsPrecipitation")==0) return SurfaceforcingsPrecipitationEnum;
	      else if (strcmp(name,"SurfaceforcingsDesfac")==0) return SurfaceforcingsDesfacEnum;
	      else if (strcmp(name,"SurfaceforcingsS0p")==0) return SurfaceforcingsS0pEnum;
	      else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
	      else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
	      else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
	      else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
	      else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
	      else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
	      else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
	      else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
	      else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
	      else if (strcmp(name,"SurfaceforcingsEvaporation")==0) return SurfaceforcingsEvaporationEnum;
	      else if (strcmp(name,"SurfaceforcingsRunoff")==0) return SurfaceforcingsRunoffEnum;
	      else if (strcmp(name,"SMBmeltcomponents")==0) return SMBmeltcomponentsEnum;
	      else if (strcmp(name,"SurfaceforcingsMelt")==0) return SurfaceforcingsMeltEnum;
	      else if (strcmp(name,"SurfaceforcingsRefreeze")==0) return SurfaceforcingsRefreezeEnum;
	      else if (strcmp(name,"SurfaceforcingsIspdd")==0) return SurfaceforcingsIspddEnum;
	      else if (strcmp(name,"SurfaceforcingsIssmbgradients")==0) return SurfaceforcingsIssmbgradientsEnum;
	      else if (strcmp(name,"SolutionType")==0) return SolutionTypeEnum;
	      else if (strcmp(name,"AnalysisType")==0) return AnalysisTypeEnum;
	      else if (strcmp(name,"ConfigurationType")==0) return ConfigurationTypeEnum;
	      else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum;
	      else if (strcmp(name,"AdjointBalancethickness2Analysis")==0) return AdjointBalancethickness2AnalysisEnum;
	      else if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum;
	      else if (strcmp(name,"AnalysisCounter")==0) return AnalysisCounterEnum;
	      else if (strcmp(name,"DefaultAnalysis")==0) return DefaultAnalysisEnum;
	      else if (strcmp(name,"BalancethicknessAnalysis")==0) return BalancethicknessAnalysisEnum;
	      else if (strcmp(name,"BalancethicknessSolution")==0) return BalancethicknessSolutionEnum;
	      else if (strcmp(name,"Balancethickness2Analysis")==0) return Balancethickness2AnalysisEnum;
	      else if (strcmp(name,"Balancethickness2Solution")==0) return Balancethickness2SolutionEnum;
	      else if (strcmp(name,"BalancethicknessSoftAnalysis")==0) return BalancethicknessSoftAnalysisEnum;
	      else if (strcmp(name,"BalancethicknessSoftSolution")==0) return BalancethicknessSoftSolutionEnum;
	      else if (strcmp(name,"BalancevelocityAnalysis")==0) return BalancevelocityAnalysisEnum;
	      else if (strcmp(name,"BalancevelocitySolution")==0) return BalancevelocitySolutionEnum;
	      else if (strcmp(name,"L2ProjectionEPLAnalysis")==0) return L2ProjectionEPLAnalysisEnum;
	      else if (strcmp(name,"L2ProjectionBaseAnalysis")==0) return L2ProjectionBaseAnalysisEnum;
	      else if (strcmp(name,"BedSlopeSolution")==0) return BedSlopeSolutionEnum;
	      else if (strcmp(name,"DamageEvolutionSolution")==0) return DamageEvolutionSolutionEnum;
	      else if (strcmp(name,"DamageEvolutionAnalysis")==0) return DamageEvolutionAnalysisEnum;
	      else if (strcmp(name,"StressbalanceAnalysis")==0) return StressbalanceAnalysisEnum;
	      else if (strcmp(name,"StressbalanceSIAAnalysis")==0) return StressbalanceSIAAnalysisEnum;
	      else if (strcmp(name,"StressbalanceSolution")==0) return StressbalanceSolutionEnum;
	      else if (strcmp(name,"StressbalanceVerticalAnalysis")==0) return StressbalanceVerticalAnalysisEnum;
	      else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum;
	      else if (strcmp(name,"FlaimAnalysis")==0) return FlaimAnalysisEnum;
	      else if (strcmp(name,"FlaimSolution")==0) return FlaimSolutionEnum;
	      else if (strcmp(name,"HydrologyShreveAnalysis")==0) return HydrologyShreveAnalysisEnum;
	      else if (strcmp(name,"HydrologyDCInefficientAnalysis")==0) return HydrologyDCInefficientAnalysisEnum;
	      else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum;
         else stage=4;
   }
   if(stage==4){
	      if (strcmp(name,"HydrologySolution")==0) return HydrologySolutionEnum;
	      else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
	      else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
	      else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
	      else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
	      else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
	      else if (strcmp(name,"SurfaceNormalVelocity")==0) return SurfaceNormalVelocityEnum;
	      else if (strcmp(name,"ExtrudeFromBaseAnalysis")==0) return ExtrudeFromBaseAnalysisEnum;
	      else if (strcmp(name,"ExtrudeFromTopAnalysis")==0) return ExtrudeFromTopAnalysisEnum;
	      else if (strcmp(name,"DepthAverageAnalysis")==0) return DepthAverageAnalysisEnum;
	      else if (strcmp(name,"SteadystateSolution")==0) return SteadystateSolutionEnum;
	      else if (strcmp(name,"SurfaceSlopeSolution")==0) return SurfaceSlopeSolutionEnum;
	      else if (strcmp(name,"SmoothedSurfaceSlopeXAnalysis")==0) return SmoothedSurfaceSlopeXAnalysisEnum;
	      else if (strcmp(name,"SmoothedSurfaceSlopeYAnalysis")==0) return SmoothedSurfaceSlopeYAnalysisEnum;
	      else if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum;
	      else if (strcmp(name,"ThermalSolution")==0) return ThermalSolutionEnum;
	      else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
	      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,"MeshdeformationSolution")==0) return MeshdeformationSolutionEnum;
	      else if (strcmp(name,"MeshdeformationAnalysis")==0) return MeshdeformationAnalysisEnum;
	      else if (strcmp(name,"LevelsetAnalysis")==0) return LevelsetAnalysisEnum;
	      else if (strcmp(name,"ExtrapolationAnalysis")==0) return ExtrapolationAnalysisEnum;
	      else if (strcmp(name,"LsfReinitializationAnalysis")==0) return LsfReinitializationAnalysisEnum;
	      else if (strcmp(name,"Approximation")==0) return ApproximationEnum;
	      else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
	      else if (strcmp(name,"SIAApproximation")==0) return SIAApproximationEnum;
	      else if (strcmp(name,"SSAApproximation")==0) return SSAApproximationEnum;
	      else if (strcmp(name,"SSAHOApproximation")==0) return SSAHOApproximationEnum;
	      else if (strcmp(name,"SSAFSApproximation")==0) return SSAFSApproximationEnum;
	      else if (strcmp(name,"L1L2Approximation")==0) return L1L2ApproximationEnum;
	      else if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum;
	      else if (strcmp(name,"HOFSApproximation")==0) return HOFSApproximationEnum;
	      else if (strcmp(name,"FSApproximation")==0) return FSApproximationEnum;
	      else if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum;
	      else if (strcmp(name,"FSpressure")==0) return FSpressureEnum;
	      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 if (strcmp(name,"Nodes")==0) return NodesEnum;
	      else if (strcmp(name,"Contours")==0) return ContoursEnum;
	      else if (strcmp(name,"Parameters")==0) return ParametersEnum;
	      else if (strcmp(name,"Vertices")==0) return VerticesEnum;
	      else if (strcmp(name,"Results")==0) return ResultsEnum;
	      else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
	      else if (strcmp(name,"AdolcParam")==0) return AdolcParamEnum;
	      else if (strcmp(name,"BoolInput")==0) return BoolInputEnum;
	      else if (strcmp(name,"BoolParam")==0) return BoolParamEnum;
	      else if (strcmp(name,"Contour")==0) return ContourEnum;
	      else if (strcmp(name,"ControlInput")==0) return ControlInputEnum;
	      else if (strcmp(name,"DatasetInput")==0) return DatasetInputEnum;
	      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;
	      else if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum;
	      else if (strcmp(name,"Element")==0) return ElementEnum;
	      else if (strcmp(name,"ExternalResult")==0) return ExternalResultEnum;
	      else if (strcmp(name,"FileParam")==0) return FileParamEnum;
	      else if (strcmp(name,"Input")==0) return InputEnum;
	      else if (strcmp(name,"IntInput")==0) return IntInputEnum;
	      else if (strcmp(name,"InputToExtrude")==0) return InputToExtrudeEnum;
	      else if (strcmp(name,"InputToL2Project")==0) return InputToL2ProjectEnum;
	      else if (strcmp(name,"InputToDepthaverage")==0) return InputToDepthaverageEnum;
	      else if (strcmp(name,"IntParam")==0) return IntParamEnum;
	      else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
	      else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
	      else if (strcmp(name,"Matice")==0) return MaticeEnum;
	      else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
	      else if (strcmp(name,"Matpar")==0) return MatparEnum;
	      else if (strcmp(name,"Node")==0) return NodeEnum;
	      else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
	      else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
	      else if (strcmp(name,"Param")==0) return ParamEnum;
	      else if (strcmp(name,"Pengrid")==0) return PengridEnum;
	      else if (strcmp(name,"Penpair")==0) return PenpairEnum;
	      else if (strcmp(name,"Profiler")==0) return ProfilerEnum;
	      else if (strcmp(name,"MatrixParam")==0) return MatrixParamEnum;
	      else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
	      else if (strcmp(name,"VectorParam")==0) return VectorParamEnum;
	      else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
	      else if (strcmp(name,"RiftfrontType")==0) return RiftfrontTypeEnum;
	      else if (strcmp(name,"Segment")==0) return SegmentEnum;
	      else if (strcmp(name,"SegmentRiftfront")==0) return SegmentRiftfrontEnum;
	      else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
	      else if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum;
	      else if (strcmp(name,"SpcTransient")==0) return SpcTransientEnum;
	      else if (strcmp(name,"StringArrayParam")==0) return StringArrayParamEnum;
	      else if (strcmp(name,"StringParam")==0) return StringParamEnum;
	      else if (strcmp(name,"Seg")==0) return SegEnum;
	      else if (strcmp(name,"SegInput")==0) return SegInputEnum;
	      else if (strcmp(name,"Tria")==0) return TriaEnum;
	      else if (strcmp(name,"TriaInput")==0) return TriaInputEnum;
	      else if (strcmp(name,"Tetra")==0) return TetraEnum;
	      else if (strcmp(name,"TetraInput")==0) return TetraInputEnum;
	      else if (strcmp(name,"Penta")==0) return PentaEnum;
	      else if (strcmp(name,"PentaInput")==0) return PentaInputEnum;
	      else if (strcmp(name,"Vertex")==0) return VertexEnum;
	      else if (strcmp(name,"VertexPId")==0) return VertexPIdEnum;
	      else if (strcmp(name,"VertexSId")==0) return VertexSIdEnum;
	      else if (strcmp(name,"Air")==0) return AirEnum;
	      else if (strcmp(name,"Ice")==0) return IceEnum;
	      else if (strcmp(name,"Melange")==0) return MelangeEnum;
	      else if (strcmp(name,"Water")==0) return WaterEnum;
	      else if (strcmp(name,"Closed")==0) return ClosedEnum;
	      else if (strcmp(name,"Free")==0) return FreeEnum;
	      else if (strcmp(name,"Open")==0) return OpenEnum;
	      else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
	      else if (strcmp(name,"Adjointx")==0) return AdjointxEnum;
	      else if (strcmp(name,"Adjointy")==0) return AdjointyEnum;
	      else if (strcmp(name,"Adjointz")==0) return AdjointzEnum;
	      else if (strcmp(name,"BalancethicknessMisfit")==0) return BalancethicknessMisfitEnum;
	      else if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum;
	      else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum;
	      else if (strcmp(name,"Boundary")==0) return BoundaryEnum;
	      else if (strcmp(name,"Converged")==0) return ConvergedEnum;
	      else if (strcmp(name,"Fill")==0) return FillEnum;
	      else if (strcmp(name,"FractionIncrement")==0) return FractionIncrementEnum;
         else stage=5;
   }
   if(stage==5){
	      if (strcmp(name,"Friction")==0) return FrictionEnum;
	      else if (strcmp(name,"Internal")==0) return InternalEnum;
	      else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
	      else if (strcmp(name,"MeltingOffset")==0) return MeltingOffsetEnum;
	      else if (strcmp(name,"Misfit")==0) return MisfitEnum;
	      else if (strcmp(name,"Pressure")==0) return PressureEnum;
	      else if (strcmp(name,"PressurePicard")==0) return PressurePicardEnum;
	      else if (strcmp(name,"QmuPressure")==0) return QmuPressureEnum;
	      else if (strcmp(name,"QmuVx")==0) return QmuVxEnum;
	      else if (strcmp(name,"QmuVy")==0) return QmuVyEnum;
	      else if (strcmp(name,"QmuVz")==0) return QmuVzEnum;
	      else if (strcmp(name,"QmuThickness")==0) return QmuThicknessEnum;
	      else if (strcmp(name,"QmuBase")==0) return QmuBaseEnum;
	      else if (strcmp(name,"QmuSurface")==0) return QmuSurfaceEnum;
	      else if (strcmp(name,"QmuMelting")==0) return QmuMeltingEnum;
	      else if (strcmp(name,"QmuVxMesh")==0) return QmuVxMeshEnum;
	      else if (strcmp(name,"QmuVyMesh")==0) return QmuVyMeshEnum;
	      else if (strcmp(name,"QmuVzMesh")==0) return QmuVzMeshEnum;
	      else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
	      else if (strcmp(name,"ResetPenalties")==0) return ResetPenaltiesEnum;
	      else if (strcmp(name,"SegmentOnIceShelf")==0) return SegmentOnIceShelfEnum;
	      else if (strcmp(name,"SurfaceAbsVelMisfit")==0) return SurfaceAbsVelMisfitEnum;
	      else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum;
	      else if (strcmp(name,"SurfaceAverageVelMisfit")==0) return SurfaceAverageVelMisfitEnum;
	      else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
	      else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
	      else if (strcmp(name,"SurfaceRelVelMisfit")==0) return SurfaceRelVelMisfitEnum;
	      else if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum;
	      else if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum;
	      else if (strcmp(name,"Temperature")==0) return TemperatureEnum;
	      else if (strcmp(name,"TemperaturePicard")==0) return TemperaturePicardEnum;
	      else if (strcmp(name,"ThicknessAbsMisfit")==0) return ThicknessAbsMisfitEnum;
	      else if (strcmp(name,"Vel")==0) return VelEnum;
	      else if (strcmp(name,"Velocity")==0) return VelocityEnum;
	      else if (strcmp(name,"VxAverage")==0) return VxAverageEnum;
	      else if (strcmp(name,"Vx")==0) return VxEnum;
	      else if (strcmp(name,"VxPicard")==0) return VxPicardEnum;
	      else if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
	      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 if (strcmp(name,"VzSSA")==0) return VzSSAEnum;
	      else if (strcmp(name,"VzHO")==0) return VzHOEnum;
	      else if (strcmp(name,"VzPicard")==0) return VzPicardEnum;
	      else if (strcmp(name,"VzFS")==0) return VzFSEnum;
	      else if (strcmp(name,"VxMesh")==0) return VxMeshEnum;
	      else if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
	      else if (strcmp(name,"VzMesh")==0) return VzMeshEnum;
	      else if (strcmp(name,"Enthalpy")==0) return EnthalpyEnum;
	      else if (strcmp(name,"EnthalpyPicard")==0) return EnthalpyPicardEnum;
	      else if (strcmp(name,"ThicknessAbsGradient")==0) return ThicknessAbsGradientEnum;
	      else if (strcmp(name,"ThicknessAlongGradient")==0) return ThicknessAlongGradientEnum;
	      else if (strcmp(name,"ThicknessAcrossGradient")==0) return ThicknessAcrossGradientEnum;
	      else if (strcmp(name,"IntMatParam")==0) return IntMatParamEnum;
	      else if (strcmp(name,"RheologyBbarAbsGradient")==0) return RheologyBbarAbsGradientEnum;
	      else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum;
	      else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
	      else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
	      else if (strcmp(name,"Watercolumn")==0) return WatercolumnEnum;
	      else if (strcmp(name,"BasalFriction")==0) return BasalFrictionEnum;
	      else if (strcmp(name,"ViscousHeating")==0) return ViscousHeatingEnum;
	      else if (strcmp(name,"QmuTemperature")==0) return QmuTemperatureEnum;
	      else if (strcmp(name,"HydrologyWaterVx")==0) return HydrologyWaterVxEnum;
	      else if (strcmp(name,"HydrologyWaterVy")==0) return HydrologyWaterVyEnum;
	      else if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
	      else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
	      else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
	      else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
	      else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
	      else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
	      else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
	      else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
	      else if (strcmp(name,"DeviatoricStress")==0) return DeviatoricStressEnum;
	      else if (strcmp(name,"DeviatoricStressxx")==0) return DeviatoricStressxxEnum;
	      else if (strcmp(name,"DeviatoricStressxy")==0) return DeviatoricStressxyEnum;
	      else if (strcmp(name,"DeviatoricStressxz")==0) return DeviatoricStressxzEnum;
	      else if (strcmp(name,"DeviatoricStressyy")==0) return DeviatoricStressyyEnum;
	      else if (strcmp(name,"DeviatoricStressyz")==0) return DeviatoricStressyzEnum;
	      else if (strcmp(name,"DeviatoricStresszz")==0) return DeviatoricStresszzEnum;
	      else if (strcmp(name,"StrainRate")==0) return StrainRateEnum;
	      else if (strcmp(name,"StrainRatexx")==0) return StrainRatexxEnum;
	      else if (strcmp(name,"StrainRatexy")==0) return StrainRatexyEnum;
	      else if (strcmp(name,"StrainRatexz")==0) return StrainRatexzEnum;
	      else if (strcmp(name,"StrainRateyy")==0) return StrainRateyyEnum;
	      else if (strcmp(name,"StrainRateyz")==0) return StrainRateyzEnum;
	      else if (strcmp(name,"StrainRatezz")==0) return StrainRatezzEnum;
	      else if (strcmp(name,"Divergence")==0) return DivergenceEnum;
	      else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
	      else if (strcmp(name,"GiadWdt")==0) return GiadWdtEnum;
	      else if (strcmp(name,"GiaW")==0) return GiaWEnum;
	      else if (strcmp(name,"P0")==0) return P0Enum;
	      else if (strcmp(name,"P1")==0) return P1Enum;
	      else if (strcmp(name,"P1DG")==0) return P1DGEnum;
	      else if (strcmp(name,"P1bubble")==0) return P1bubbleEnum;
	      else if (strcmp(name,"P1bubblecondensed")==0) return P1bubblecondensedEnum;
	      else if (strcmp(name,"P2")==0) return P2Enum;
	      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 if (strcmp(name,"P1xP2")==0) return P1xP2Enum;
	      else if (strcmp(name,"P1xP3")==0) return P1xP3Enum;
	      else if (strcmp(name,"P2xP4")==0) return P2xP4Enum;
	      else if (strcmp(name,"P1P1")==0) return P1P1Enum;
	      else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
	      else if (strcmp(name,"MINI")==0) return MINIEnum;
	      else if (strcmp(name,"MINIcondensed")==0) return MINIcondensedEnum;
	      else if (strcmp(name,"TaylorHood")==0) return TaylorHoodEnum;
	      else if (strcmp(name,"LATaylorHood")==0) return LATaylorHoodEnum;
	      else if (strcmp(name,"XTaylorHood")==0) return XTaylorHoodEnum;
	      else if (strcmp(name,"OneLayerP4z")==0) return OneLayerP4zEnum;
	      else if (strcmp(name,"CrouzeixRaviart")==0) return CrouzeixRaviartEnum;
	      else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
	      else if (strcmp(name,"BoolExternalResult")==0) return BoolExternalResultEnum;
	      else if (strcmp(name,"DoubleExternalResult")==0) return DoubleExternalResultEnum;
	      else if (strcmp(name,"DoubleMatExternalResult")==0) return DoubleMatExternalResultEnum;
	      else if (strcmp(name,"IntExternalResult")==0) return IntExternalResultEnum;
	      else if (strcmp(name,"J")==0) return JEnum;
	      else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
	      else if (strcmp(name,"Step")==0) return StepEnum;
	      else if (strcmp(name,"Time")==0) return TimeEnum;
         else stage=6;
   }
   if(stage==6){
	      if (strcmp(name,"WaterColumnOld")==0) return WaterColumnOldEnum;
	      else if (strcmp(name,"Outputdefinition")==0) return OutputdefinitionEnum;
	      else if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum;
	      else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
	      else if (strcmp(name,"MassfluxatgateName")==0) return MassfluxatgateNameEnum;
	      else if (strcmp(name,"MassfluxatgateSegments")==0) return MassfluxatgateSegmentsEnum;
	      else if (strcmp(name,"MisfitName")==0) return MisfitNameEnum;
	      else if (strcmp(name,"MisfitModelEnum")==0) return MisfitModelEnumEnum;
	      else if (strcmp(name,"MisfitObservation")==0) return MisfitObservationEnum;
	      else if (strcmp(name,"MisfitObservationEnum")==0) return MisfitObservationEnumEnum;
	      else if (strcmp(name,"MisfitTimeinterpolation")==0) return MisfitTimeinterpolationEnum;
	      else if (strcmp(name,"MisfitWeights")==0) return MisfitWeightsEnum;
	      else if (strcmp(name,"MisfitWeightsEnum")==0) return MisfitWeightsEnumEnum;
	      else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
	      else if (strcmp(name,"WeightsSurfaceObservation")==0) return WeightsSurfaceObservationEnum;
	      else if (strcmp(name,"MinVel")==0) return MinVelEnum;
	      else if (strcmp(name,"MaxVel")==0) return MaxVelEnum;
	      else if (strcmp(name,"MinVx")==0) return MinVxEnum;
	      else if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
	      else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
	      else if (strcmp(name,"MinVy")==0) return MinVyEnum;
	      else if (strcmp(name,"MaxVy")==0) return MaxVyEnum;
	      else if (strcmp(name,"MaxAbsVy")==0) return MaxAbsVyEnum;
	      else if (strcmp(name,"MinVz")==0) return MinVzEnum;
	      else if (strcmp(name,"MaxVz")==0) return MaxVzEnum;
	      else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
	      else if (strcmp(name,"IceVolume")==0) return IceVolumeEnum;
	      else if (strcmp(name,"IceVolumeAboveFloatation")==0) return IceVolumeAboveFloatationEnum;
	      else if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum;
	      else if (strcmp(name,"Absolute")==0) return AbsoluteEnum;
	      else if (strcmp(name,"Incremental")==0) return IncrementalEnum;
	      else if (strcmp(name,"AugmentedLagrangianR")==0) return AugmentedLagrangianREnum;
	      else if (strcmp(name,"AugmentedLagrangianRhop")==0) return AugmentedLagrangianRhopEnum;
	      else if (strcmp(name,"AugmentedLagrangianTheta")==0) return AugmentedLagrangianThetaEnum;
	      else if (strcmp(name,"None")==0) return NoneEnum;
	      else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
	      else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
	      else if (strcmp(name,"SubelementMigration")==0) return SubelementMigrationEnum;
	      else if (strcmp(name,"SubelementMigration2")==0) return SubelementMigration2Enum;
	      else if (strcmp(name,"Contact")==0) return ContactEnum;
	      else if (strcmp(name,"MaskGroundediceLevelset")==0) return MaskGroundediceLevelsetEnum;
	      else if (strcmp(name,"QmuMaskGroundediceLevelset")==0) return QmuMaskGroundediceLevelsetEnum;
	      else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum;
	      else if (strcmp(name,"GaussTria")==0) return GaussTriaEnum;
	      else if (strcmp(name,"GaussTetra")==0) return GaussTetraEnum;
	      else if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum;
	      else if (strcmp(name,"FSSolver")==0) return FSSolverEnum;
	      else if (strcmp(name,"Adjoint")==0) return AdjointEnum;
	      else if (strcmp(name,"Colinear")==0) return ColinearEnum;
	      else if (strcmp(name,"ControlSteady")==0) return ControlSteadyEnum;
	      else if (strcmp(name,"Fset")==0) return FsetEnum;
	      else if (strcmp(name,"Gradient1")==0) return Gradient1Enum;
	      else if (strcmp(name,"Gradient2")==0) return Gradient2Enum;
	      else if (strcmp(name,"Gradient3")==0) return Gradient3Enum;
	      else if (strcmp(name,"Gradient")==0) return GradientEnum;
	      else if (strcmp(name,"GroundinglineMigration")==0) return GroundinglineMigrationEnum;
	      else if (strcmp(name,"Gset")==0) return GsetEnum;
	      else if (strcmp(name,"Index")==0) return IndexEnum;
	      else if (strcmp(name,"Indexed")==0) return IndexedEnum;
	      else if (strcmp(name,"Intersect")==0) return IntersectEnum;
	      else if (strcmp(name,"Nodal")==0) return NodalEnum;
	      else if (strcmp(name,"OldGradient")==0) return OldGradientEnum;
	      else if (strcmp(name,"OutputFilePointer")==0) return OutputFilePointerEnum;
	      else if (strcmp(name,"OutputFileName")==0) return OutputFileNameEnum;
	      else if (strcmp(name,"LockFileName")==0) return LockFileNameEnum;
	      else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum;
	      else if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
	      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 if (strcmp(name,"Regular")==0) return RegularEnum;
	      else if (strcmp(name,"Scaled")==0) return ScaledEnum;
	      else if (strcmp(name,"Separate")==0) return SeparateEnum;
	      else if (strcmp(name,"Sset")==0) return SsetEnum;
	      else if (strcmp(name,"Verbose")==0) return VerboseEnum;
	      else if (strcmp(name,"TriangleInterp")==0) return TriangleInterpEnum;
	      else if (strcmp(name,"BilinearInterp")==0) return BilinearInterpEnum;
	      else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
	      else if (strcmp(name,"XY")==0) return XYEnum;
	      else if (strcmp(name,"XYZ")==0) return XYZEnum;
	      else if (strcmp(name,"Dense")==0) return DenseEnum;
	      else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
	      else if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
	      else if (strcmp(name,"Seq")==0) return SeqEnum;
	      else if (strcmp(name,"Mpi")==0) return MpiEnum;
	      else if (strcmp(name,"Mumps")==0) return MumpsEnum;
	      else if (strcmp(name,"Gsl")==0) return GslEnum;
	      else if (strcmp(name,"Option")==0) return OptionEnum;
	      else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
	      else if (strcmp(name,"OptionCell")==0) return OptionCellEnum;
	      else if (strcmp(name,"OptionStruct")==0) return OptionStructEnum;
	      else if (strcmp(name,"Cuffey")==0) return CuffeyEnum;
	      else if (strcmp(name,"Paterson")==0) return PatersonEnum;
	      else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
	      else if (strcmp(name,"LliboutryDuval")==0) return LliboutryDuvalEnum;
	      else if (strcmp(name,"TransientIslevelset")==0) return TransientIslevelsetEnum;
	      else if (strcmp(name,"ExtrapolationVariable")==0) return ExtrapolationVariableEnum;
	      else if (strcmp(name,"IceMaskNodeActivation")==0) return IceMaskNodeActivationEnum;
	      else if (strcmp(name,"LevelsetfunctionSlopeX")==0) return LevelsetfunctionSlopeXEnum;
	      else if (strcmp(name,"LevelsetfunctionSlopeY")==0) return LevelsetfunctionSlopeYEnum;
	      else if (strcmp(name,"LevelsetfunctionPicard")==0) return LevelsetfunctionPicardEnum;
	      else if (strcmp(name,"MaximumNumberOfDefinitions")==0) return MaximumNumberOfDefinitionsEnum;
         else stage=7;
   }
	/*If we reach this point, the string provided has not been found*/
	if(notfounderror)
		_error_("Enum " << name << " not found");
	else
		return -1;
}
