Ignore:
Timestamp:
07/01/22 15:15:14 (3 years ago)
Author:
caronlam
Message:

CHG: Memory and runtime optimization of sealevelchange core.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r27129 r27131  
    297297              else if (strcmp(name,"LoveInnerCoreBoundary")==0) return LoveInnerCoreBoundaryEnum;
    298298              else if (strcmp(name,"LoveComplexComputation")==0) return LoveComplexComputationEnum;
    299               else if (strcmp(name,"LoveIntStepsPerLayer")==0) return LoveIntStepsPerLayerEnum;
     299              else if (strcmp(name,"LoveQuadPrecision")==0) return LoveQuadPrecisionEnum;
     300              else if (strcmp(name,"LoveMinIntegrationSteps")==0) return LoveMinIntegrationStepsEnum;
     301              else if (strcmp(name,"LoveMaxIntegrationdr")==0) return LoveMaxIntegrationdrEnum;
    300302              else if (strcmp(name,"LoveKernels")==0) return LoveKernelsEnum;
    301303              else if (strcmp(name,"LoveMu0")==0) return LoveMu0Enum;
     
    309311              else if (strcmp(name,"LoveUnderflowTol")==0) return LoveUnderflowTolEnum;
    310312              else if (strcmp(name,"LovePostWidderThreshold")==0) return LovePostWidderThresholdEnum;
     313              else if (strcmp(name,"LoveDebug")==0) return LoveDebugEnum;
     314              else if (strcmp(name,"LoveHypergeomNZ")==0) return LoveHypergeomNZEnum;
     315              else if (strcmp(name,"LoveHypergeomNAlpha")==0) return LoveHypergeomNAlphaEnum;
    311316              else if (strcmp(name,"MassFluxSegments")==0) return MassFluxSegmentsEnum;
    312317              else if (strcmp(name,"MassFluxSegmentsPresent")==0) return MassFluxSegmentsPresentEnum;
     
    378383              else if (strcmp(name,"Modelname")==0) return ModelnameEnum;
    379384              else if (strcmp(name,"SamplingAlpha")==0) return SamplingAlphaEnum;
    380               else if (strcmp(name,"SamplingNumRequestedOutputs")==0) return SamplingNumRequestedOutputsEnum;
     385         else stage=4;
     386   }
     387   if(stage==4){
     388              if (strcmp(name,"SamplingNumRequestedOutputs")==0) return SamplingNumRequestedOutputsEnum;
    381389              else if (strcmp(name,"SamplingRequestedOutputs")==0) return SamplingRequestedOutputsEnum;
    382390              else if (strcmp(name,"SamplingRobin")==0) return SamplingRobinEnum;
    383391              else if (strcmp(name,"SamplingSeed")==0) return SamplingSeedEnum;
    384392              else if (strcmp(name,"SaveResults")==0) return SaveResultsEnum;
    385          else stage=4;
    386    }
    387    if(stage==4){
    388               if (strcmp(name,"SolidearthPartitionIce")==0) return SolidearthPartitionIceEnum;
     393              else if (strcmp(name,"SolidearthPartitionIce")==0) return SolidearthPartitionIceEnum;
    389394              else if (strcmp(name,"SolidearthPartitionHydro")==0) return SolidearthPartitionHydroEnum;
    390395              else if (strcmp(name,"SolidearthPartitionOcean")==0) return SolidearthPartitionOceanEnum;
     
    398403              else if (strcmp(name,"SolidearthSettingsElastic")==0) return SolidearthSettingsElasticEnum;
    399404              else if (strcmp(name,"SolidearthSettingsViscous")==0) return SolidearthSettingsViscousEnum;
     405              else if (strcmp(name,"SolidearthSettingsSatelliteGravi")==0) return SolidearthSettingsSatelliteGraviEnum;
     406              else if (strcmp(name,"SolidearthSettingsDegreeAccuracy")==0) return SolidearthSettingsDegreeAccuracyEnum;
    400407              else if (strcmp(name,"SealevelchangeGeometryDone")==0) return SealevelchangeGeometryDoneEnum;
    401408              else if (strcmp(name,"SealevelchangeViscousNumSteps")==0) return SealevelchangeViscousNumStepsEnum;
     
    420427              else if (strcmp(name,"LoveTimeFreq")==0) return LoveTimeFreqEnum;
    421428              else if (strcmp(name,"LoveIsTime")==0) return LoveIsTimeEnum;
     429              else if (strcmp(name,"LoveHypergeomZ")==0) return LoveHypergeomZEnum;
     430              else if (strcmp(name,"LoveHypergeomTable1")==0) return LoveHypergeomTable1Enum;
     431              else if (strcmp(name,"LoveHypergeomTable2")==0) return LoveHypergeomTable2Enum;
    422432              else if (strcmp(name,"SealevelchangeGSelfAttraction")==0) return SealevelchangeGSelfAttractionEnum;
    423433              else if (strcmp(name,"SealevelchangeGViscoElastic")==0) return SealevelchangeGViscoElasticEnum;
     
    496506              else if (strcmp(name,"SmbIsfirnwarming")==0) return SmbIsfirnwarmingEnum;
    497507              else if (strcmp(name,"SmbIsgraingrowth")==0) return SmbIsgraingrowthEnum;
    498               else if (strcmp(name,"SmbIsmelt")==0) return SmbIsmeltEnum;
     508         else stage=5;
     509   }
     510   if(stage==5){
     511              if (strcmp(name,"SmbIsmelt")==0) return SmbIsmeltEnum;
    499512              else if (strcmp(name,"SmbIsmungsm")==0) return SmbIsmungsmEnum;
    500513              else if (strcmp(name,"SmbIsprecipscaled")==0) return SmbIsprecipscaledEnum;
     
    506519              else if (strcmp(name,"SmbK")==0) return SmbKEnum;
    507520              else if (strcmp(name,"SmbLapseRates")==0) return SmbLapseRatesEnum;
    508          else stage=5;
    509    }
    510    if(stage==5){
    511               if (strcmp(name,"SmbNumBasins")==0) return SmbNumBasinsEnum;
     521              else if (strcmp(name,"SmbNumBasins")==0) return SmbNumBasinsEnum;
    512522              else if (strcmp(name,"SmbNumElevationBins")==0) return SmbNumElevationBinsEnum;
    513523              else if (strcmp(name,"SmbNumRequestedOutputs")==0) return SmbNumRequestedOutputsEnum;
     
    619629              else if (strcmp(name,"Approximation")==0) return ApproximationEnum;
    620630              else if (strcmp(name,"BalancethicknessMisfit")==0) return BalancethicknessMisfitEnum;
    621               else if (strcmp(name,"BalancethicknessOmega0")==0) return BalancethicknessOmega0Enum;
     631         else stage=6;
     632   }
     633   if(stage==6){
     634              if (strcmp(name,"BalancethicknessOmega0")==0) return BalancethicknessOmega0Enum;
    622635              else if (strcmp(name,"BalancethicknessOmega")==0) return BalancethicknessOmegaEnum;
    623636              else if (strcmp(name,"BalancethicknessSpcthickness")==0) return BalancethicknessSpcthicknessEnum;
     
    629642              else if (strcmp(name,"BasalforcingsFloatingiceMeltingRate")==0) return BasalforcingsFloatingiceMeltingRateEnum;
    630643              else if (strcmp(name,"BasalforcingsGeothermalflux")==0) return BasalforcingsGeothermalfluxEnum;
    631          else stage=6;
    632    }
    633    if(stage==6){
    634               if (strcmp(name,"BasalforcingsGroundediceMeltingRate")==0) return BasalforcingsGroundediceMeltingRateEnum;
     644              else if (strcmp(name,"BasalforcingsGroundediceMeltingRate")==0) return BasalforcingsGroundediceMeltingRateEnum;
    635645              else if (strcmp(name,"BasalforcingsLinearBasinId")==0) return BasalforcingsLinearBasinIdEnum;
    636646              else if (strcmp(name,"BasalforcingsPerturbationMeltingRate")==0) return BasalforcingsPerturbationMeltingRateEnum;
     
    742752              else if (strcmp(name,"EsaYmotion")==0) return EsaYmotionEnum;
    743753              else if (strcmp(name,"EtaDiff")==0) return EtaDiffEnum;
    744               else if (strcmp(name,"FlowequationBorderFS")==0) return FlowequationBorderFSEnum;
     754         else stage=7;
     755   }
     756   if(stage==7){
     757              if (strcmp(name,"FlowequationBorderFS")==0) return FlowequationBorderFSEnum;
    745758              else if (strcmp(name,"FrictionAs")==0) return FrictionAsEnum;
    746759              else if (strcmp(name,"FrictionC")==0) return FrictionCEnum;
     
    752765              else if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
    753766              else if (strcmp(name,"FrictionPressureAdjustedTemperature")==0) return FrictionPressureAdjustedTemperatureEnum;
    754          else stage=7;
    755    }
    756    if(stage==7){
    757               if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
     767              else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
    758768              else if (strcmp(name,"FrictionSedimentCompressibilityCoefficient")==0) return FrictionSedimentCompressibilityCoefficientEnum;
    759769              else if (strcmp(name,"FrictionTillFrictionAngle")==0) return FrictionTillFrictionAngleEnum;
     
    865875              else if (strcmp(name,"SampleOld")==0) return SampleOldEnum;
    866876              else if (strcmp(name,"SampleNoise")==0) return SampleNoiseEnum;
    867               else if (strcmp(name,"SamplingBeta")==0) return SamplingBetaEnum;
     877         else stage=8;
     878   }
     879   if(stage==8){
     880              if (strcmp(name,"SamplingBeta")==0) return SamplingBetaEnum;
    868881              else if (strcmp(name,"SamplingKappa")==0) return SamplingKappaEnum;
    869882              else if (strcmp(name,"SamplingPhi")==0) return SamplingPhiEnum;
     
    871884              else if (strcmp(name,"Sealevel")==0) return SealevelEnum;
    872885              else if (strcmp(name,"SealevelGRD")==0) return SealevelGRDEnum;
     886              else if (strcmp(name,"SatGraviGRD")==0) return SatGraviGRDEnum;
    873887              else if (strcmp(name,"SealevelBarystaticMask")==0) return SealevelBarystaticMaskEnum;
    874888              else if (strcmp(name,"SealevelBarystaticIceMask")==0) return SealevelBarystaticIceMaskEnum;
    875889              else if (strcmp(name,"SealevelBarystaticIceWeights")==0) return SealevelBarystaticIceWeightsEnum;
    876890              else if (strcmp(name,"SealevelBarystaticIceArea")==0) return SealevelBarystaticIceAreaEnum;
    877          else stage=8;
    878    }
    879    if(stage==8){
    880               if (strcmp(name,"SealevelBarystaticIceLatbar")==0) return SealevelBarystaticIceLatbarEnum;
     891              else if (strcmp(name,"SealevelBarystaticIceLatbar")==0) return SealevelBarystaticIceLatbarEnum;
    881892              else if (strcmp(name,"SealevelBarystaticIceLongbar")==0) return SealevelBarystaticIceLongbarEnum;
    882893              else if (strcmp(name,"SealevelBarystaticIceLoad")==0) return SealevelBarystaticIceLoadEnum;
     
    913924              else if (strcmp(name,"SealevelUNorthEsa")==0) return SealevelUNorthEsaEnum;
    914925              else if (strcmp(name,"SealevelchangeIndices")==0) return SealevelchangeIndicesEnum;
    915               else if (strcmp(name,"SealevelchangeG")==0) return SealevelchangeGEnum;
    916               else if (strcmp(name,"SealevelchangeGU")==0) return SealevelchangeGUEnum;
    917               else if (strcmp(name,"SealevelchangeGE")==0) return SealevelchangeGEEnum;
    918               else if (strcmp(name,"SealevelchangeGN")==0) return SealevelchangeGNEnum;
     926              else if (strcmp(name,"SealevelchangeAlphaIndex")==0) return SealevelchangeAlphaIndexEnum;
     927              else if (strcmp(name,"SealevelchangeAzimuthIndex")==0) return SealevelchangeAzimuthIndexEnum;
    919928              else if (strcmp(name,"SealevelchangeGrot")==0) return SealevelchangeGrotEnum;
     929              else if (strcmp(name,"SealevelchangeGSatGravirot")==0) return SealevelchangeGSatGravirotEnum;
    920930              else if (strcmp(name,"SealevelchangeGUrot")==0) return SealevelchangeGUrotEnum;
    921931              else if (strcmp(name,"SealevelchangeGNrot")==0) return SealevelchangeGNrotEnum;
    922932              else if (strcmp(name,"SealevelchangeGErot")==0) return SealevelchangeGErotEnum;
    923               else if (strcmp(name,"SealevelchangeGsubelOcean")==0) return SealevelchangeGsubelOceanEnum;
    924               else if (strcmp(name,"SealevelchangeGUsubelOcean")==0) return SealevelchangeGUsubelOceanEnum;
    925               else if (strcmp(name,"SealevelchangeGEsubelOcean")==0) return SealevelchangeGEsubelOceanEnum;
    926               else if (strcmp(name,"SealevelchangeGNsubelOcean")==0) return SealevelchangeGNsubelOceanEnum;
    927               else if (strcmp(name,"SealevelchangeGsubelIce")==0) return SealevelchangeGsubelIceEnum;
    928               else if (strcmp(name,"SealevelchangeGUsubelIce")==0) return SealevelchangeGUsubelIceEnum;
    929               else if (strcmp(name,"SealevelchangeGEsubelIce")==0) return SealevelchangeGEsubelIceEnum;
    930               else if (strcmp(name,"SealevelchangeGNsubelIce")==0) return SealevelchangeGNsubelIceEnum;
    931               else if (strcmp(name,"SealevelchangeGsubelHydro")==0) return SealevelchangeGsubelHydroEnum;
    932               else if (strcmp(name,"SealevelchangeGUsubelHydro")==0) return SealevelchangeGUsubelHydroEnum;
    933               else if (strcmp(name,"SealevelchangeGEsubelHydro")==0) return SealevelchangeGEsubelHydroEnum;
    934               else if (strcmp(name,"SealevelchangeGNsubelHydro")==0) return SealevelchangeGNsubelHydroEnum;
     933              else if (strcmp(name,"SealevelchangeAlphaIndexOcean")==0) return SealevelchangeAlphaIndexOceanEnum;
     934              else if (strcmp(name,"SealevelchangeAlphaIndexIce")==0) return SealevelchangeAlphaIndexIceEnum;
     935              else if (strcmp(name,"SealevelchangeAlphaIndexHydro")==0) return SealevelchangeAlphaIndexHydroEnum;
     936              else if (strcmp(name,"SealevelchangeAzimuthIndexOcean")==0) return SealevelchangeAzimuthIndexOceanEnum;
     937              else if (strcmp(name,"SealevelchangeAzimuthIndexIce")==0) return SealevelchangeAzimuthIndexIceEnum;
     938              else if (strcmp(name,"SealevelchangeAzimuthIndexHydro")==0) return SealevelchangeAzimuthIndexHydroEnum;
    935939              else if (strcmp(name,"SealevelchangeViscousRSL")==0) return SealevelchangeViscousRSLEnum;
     940              else if (strcmp(name,"SealevelchangeViscousSG")==0) return SealevelchangeViscousSGEnum;
    936941              else if (strcmp(name,"SealevelchangeViscousU")==0) return SealevelchangeViscousUEnum;
    937942              else if (strcmp(name,"SealevelchangeViscousN")==0) return SealevelchangeViscousNEnum;
     
    993998              else if (strcmp(name,"SmbECini")==0) return SmbECiniEnum;
    994999              else if (strcmp(name,"SmbEla")==0) return SmbElaEnum;
    995               else if (strcmp(name,"SmbEvaporation")==0) return SmbEvaporationEnum;
     1000         else stage=9;
     1001   }
     1002   if(stage==9){
     1003              if (strcmp(name,"SmbEvaporation")==0) return SmbEvaporationEnum;
    9961004              else if (strcmp(name,"SmbFAC")==0) return SmbFACEnum;
    9971005              else if (strcmp(name,"SmbGdn")==0) return SmbGdnEnum;
    9981006              else if (strcmp(name,"SmbGdnini")==0) return SmbGdniniEnum;
    9991007              else if (strcmp(name,"SmbGsp")==0) return SmbGspEnum;
    1000          else stage=9;
    1001    }
    1002    if(stage==9){
    1003               if (strcmp(name,"SmbGspini")==0) return SmbGspiniEnum;
     1008              else if (strcmp(name,"SmbGspini")==0) return SmbGspiniEnum;
    10041009              else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
    10051010              else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
     
    11161121              else if (strcmp(name,"VxBase")==0) return VxBaseEnum;
    11171122              else if (strcmp(name,"Vx")==0) return VxEnum;
    1118               else if (strcmp(name,"VxMesh")==0) return VxMeshEnum;
     1123         else stage=10;
     1124   }
     1125   if(stage==10){
     1126              if (strcmp(name,"VxMesh")==0) return VxMeshEnum;
    11191127              else if (strcmp(name,"VxObs")==0) return VxObsEnum;
    11201128              else if (strcmp(name,"VxShear")==0) return VxShearEnum;
    11211129              else if (strcmp(name,"VxSurface")==0) return VxSurfaceEnum;
    11221130              else if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
    1123          else stage=10;
    1124    }
    1125    if(stage==10){
    1126               if (strcmp(name,"VyBase")==0) return VyBaseEnum;
     1131              else if (strcmp(name,"VyBase")==0) return VyBaseEnum;
    11271132              else if (strcmp(name,"Vy")==0) return VyEnum;
    11281133              else if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
     
    12391244              else if (strcmp(name,"Outputdefinition91")==0) return Outputdefinition91Enum;
    12401245              else if (strcmp(name,"Outputdefinition92")==0) return Outputdefinition92Enum;
    1241               else if (strcmp(name,"Outputdefinition93")==0) return Outputdefinition93Enum;
     1246         else stage=11;
     1247   }
     1248   if(stage==11){
     1249              if (strcmp(name,"Outputdefinition93")==0) return Outputdefinition93Enum;
    12421250              else if (strcmp(name,"Outputdefinition94")==0) return Outputdefinition94Enum;
    12431251              else if (strcmp(name,"Outputdefinition95")==0) return Outputdefinition95Enum;
    12441252              else if (strcmp(name,"Outputdefinition96")==0) return Outputdefinition96Enum;
    12451253              else if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum;
    1246          else stage=11;
    1247    }
    1248    if(stage==11){
    1249               if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
     1254              else if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
    12501255              else if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
    12511256              else if (strcmp(name,"Outputdefinition9")==0) return Outputdefinition9Enum;
     
    13621367              else if (strcmp(name,"FrontalForcingsRignotAutoregression")==0) return FrontalForcingsRignotAutoregressionEnum;
    13631368              else if (strcmp(name,"Fset")==0) return FsetEnum;
    1364               else if (strcmp(name,"FullMeltOnPartiallyFloating")==0) return FullMeltOnPartiallyFloatingEnum;
     1369         else stage=12;
     1370   }
     1371   if(stage==12){
     1372              if (strcmp(name,"FullMeltOnPartiallyFloating")==0) return FullMeltOnPartiallyFloatingEnum;
    13651373              else if (strcmp(name,"GLheightadvectionAnalysis")==0) return GLheightadvectionAnalysisEnum;
    13661374              else if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum;
    13671375              else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum;
    13681376              else if (strcmp(name,"GaussTetra")==0) return GaussTetraEnum;
    1369          else stage=12;
    1370    }
    1371    if(stage==12){
    1372               if (strcmp(name,"GaussTria")==0) return GaussTriaEnum;
     1377              else if (strcmp(name,"GaussTria")==0) return GaussTriaEnum;
    13731378              else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
    13741379              else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
     
    14461451              else if (strcmp(name,"LovePMTF1t")==0) return LovePMTF1tEnum;
    14471452              else if (strcmp(name,"LovePMTF2t")==0) return LovePMTF2tEnum;
     1453              else if (strcmp(name,"LoveYi")==0) return LoveYiEnum;
     1454              else if (strcmp(name,"LoveRhs")==0) return LoveRhsEnum;
    14481455              else if (strcmp(name,"LoveSolution")==0) return LoveSolutionEnum;
    14491456              else if (strcmp(name,"MINI")==0) return MINIEnum;
     
    14831490              else if (strcmp(name,"MismipFloatingMeltRate")==0) return MismipFloatingMeltRateEnum;
    14841491              else if (strcmp(name,"Moulin")==0) return MoulinEnum;
    1485               else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
     1492         else stage=13;
     1493   }
     1494   if(stage==13){
     1495              if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
    14861496              else if (strcmp(name,"Mpi")==0) return MpiEnum;
    14871497              else if (strcmp(name,"MpiSparse")==0) return MpiSparseEnum;
     
    14901500              else if (strcmp(name,"NoMeltOnPartiallyFloating")==0) return NoMeltOnPartiallyFloatingEnum;
    14911501              else if (strcmp(name,"Nodal")==0) return NodalEnum;
    1492          else stage=13;
    1493    }
    1494    if(stage==13){
    1495               if (strcmp(name,"Nodalvalue")==0) return NodalvalueEnum;
     1502              else if (strcmp(name,"Nodalvalue")==0) return NodalvalueEnum;
    14961503              else if (strcmp(name,"NodeSId")==0) return NodeSIdEnum;
    14971504              else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
     
    16061613              else if (strcmp(name,"ThicknessErrorEstimator")==0) return ThicknessErrorEstimatorEnum;
    16071614              else if (strcmp(name,"TotalCalvingFluxLevelset")==0) return TotalCalvingFluxLevelsetEnum;
    1608               else if (strcmp(name,"TotalCalvingMeltingFluxLevelset")==0) return TotalCalvingMeltingFluxLevelsetEnum;
     1615         else stage=14;
     1616   }
     1617   if(stage==14){
     1618              if (strcmp(name,"TotalCalvingMeltingFluxLevelset")==0) return TotalCalvingMeltingFluxLevelsetEnum;
    16091619              else if (strcmp(name,"TotalFloatingBmb")==0) return TotalFloatingBmbEnum;
    16101620              else if (strcmp(name,"TotalFloatingBmbScaled")==0) return TotalFloatingBmbScaledEnum;
     
    16131623              else if (strcmp(name,"TotalSmb")==0) return TotalSmbEnum;
    16141624              else if (strcmp(name,"TotalSmbScaled")==0) return TotalSmbScaledEnum;
    1615          else stage=14;
    1616    }
    1617    if(stage==14){
    1618               if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum;
     1625              else if (strcmp(name,"TransientArrayParam")==0) return TransientArrayParamEnum;
    16191626              else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
    16201627              else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
Note: See TracChangeset for help on using the changeset viewer.