Ignore:
Timestamp:
01/11/23 00:42:46 (2 years ago)
Author:
inwoo
Message:

CHG: fix SMB with SEMIC.

1) Update display of SMBsemic.m
2) Enable to use different albedo scheme in SEMIC.
3) Surface mass balance is from SMB_ice in SEMIC.
4) Enable to return surface mass balance of snow in SEMIC.

File:
1 edited

Legend:

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

    r27508 r27510  
    602602              else if (strcmp(name,"SmbSemicHcrit")==0) return SmbSemicHcritEnum;
    603603              else if (strcmp(name,"SmbSemicRcrit")==0) return SmbSemicRcritEnum;
     604              else if (strcmp(name,"SmbSemicWcrit")==0) return SmbSemicWcritEnum;
     605              else if (strcmp(name,"SmbSemicMcrit")==0) return SmbSemicMcritEnum;
     606              else if (strcmp(name,"SmbSemicAfac")==0) return SmbSemicAfacEnum;
     607              else if (strcmp(name,"SmbSemicTauA")==0) return SmbSemicTauAEnum;
     608              else if (strcmp(name,"SmbSemicTauF")==0) return SmbSemicTauFEnum;
     609              else if (strcmp(name,"SmbSemicTmin")==0) return SmbSemicTminEnum;
     610              else if (strcmp(name,"SmbSemicTmid")==0) return SmbSemicTmidEnum;
     611              else if (strcmp(name,"SmbSemicTmax")==0) return SmbSemicTmaxEnum;
    604612              else if (strcmp(name,"SmbStepsPerStep")==0) return SmbStepsPerStepEnum;
    605613              else if (strcmp(name,"SmbSwIdx")==0) return SmbSwIdxEnum;
     
    621629              else if (strcmp(name,"Steps")==0) return StepsEnum;
    622630              else if (strcmp(name,"StressbalanceAbstol")==0) return StressbalanceAbstolEnum;
    623               else if (strcmp(name,"StressbalanceFSreconditioning")==0) return StressbalanceFSreconditioningEnum;
     631         else stage=6;
     632   }
     633   if(stage==6){
     634              if (strcmp(name,"StressbalanceFSreconditioning")==0) return StressbalanceFSreconditioningEnum;
    624635              else if (strcmp(name,"StressbalanceIsnewton")==0) return StressbalanceIsnewtonEnum;
    625636              else if (strcmp(name,"StressbalanceMaxiter")==0) return StressbalanceMaxiterEnum;
     
    629640              else if (strcmp(name,"StressbalanceRequestedOutputs")==0) return StressbalanceRequestedOutputsEnum;
    630641              else if (strcmp(name,"StressbalanceRestol")==0) return StressbalanceRestolEnum;
    631          else stage=6;
    632    }
    633    if(stage==6){
    634               if (strcmp(name,"StressbalanceRiftPenaltyThreshold")==0) return StressbalanceRiftPenaltyThresholdEnum;
     642              else if (strcmp(name,"StressbalanceRiftPenaltyThreshold")==0) return StressbalanceRiftPenaltyThresholdEnum;
    635643              else if (strcmp(name,"StressbalanceShelfDampening")==0) return StressbalanceShelfDampeningEnum;
    636644              else if (strcmp(name,"ThermalForcingMonthlyEffects")==0) return ThermalForcingMonthlyEffectsEnum;
     
    744752              else if (strcmp(name,"BaseOld")==0) return BaseOldEnum;
    745753              else if (strcmp(name,"BaseSlopeX")==0) return BaseSlopeXEnum;
    746               else if (strcmp(name,"BaseSlopeY")==0) return BaseSlopeYEnum;
     754         else stage=7;
     755   }
     756   if(stage==7){
     757              if (strcmp(name,"BaseSlopeY")==0) return BaseSlopeYEnum;
    747758              else if (strcmp(name,"BaselineBasalforcingsFloatingiceMeltingRate")==0) return BaselineBasalforcingsFloatingiceMeltingRateEnum;
    748759              else if (strcmp(name,"BaselineBasalforcingsSpatialDeepwaterMeltingRate")==0) return BaselineBasalforcingsSpatialDeepwaterMeltingRateEnum;
     
    752763              else if (strcmp(name,"Bed")==0) return BedEnum;
    753764              else if (strcmp(name,"BedGRD")==0) return BedGRDEnum;
    754          else stage=7;
    755    }
    756    if(stage==7){
    757               if (strcmp(name,"BedEast")==0) return BedEastEnum;
     765              else if (strcmp(name,"BedEast")==0) return BedEastEnum;
    758766              else if (strcmp(name,"BedEastGRD")==0) return BedEastGRDEnum;
    759767              else if (strcmp(name,"BedNorth")==0) return BedNorthEnum;
     
    867875              else if (strcmp(name,"HydrologyBumpSpacing")==0) return HydrologyBumpSpacingEnum;
    868876              else if (strcmp(name,"HydrologyChannelConductivity")==0) return HydrologyChannelConductivityEnum;
    869               else if (strcmp(name,"HydrologydcBasalMoulinInput")==0) return HydrologydcBasalMoulinInputEnum;
     877         else stage=8;
     878   }
     879   if(stage==8){
     880              if (strcmp(name,"HydrologydcBasalMoulinInput")==0) return HydrologydcBasalMoulinInputEnum;
    870881              else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
    871882              else if (strcmp(name,"HydrologydcEplThicknessOld")==0) return HydrologydcEplThicknessOldEnum;
     
    875886              else if (strcmp(name,"HydrologydcMaskEplactiveNode")==0) return HydrologydcMaskEplactiveNodeEnum;
    876887              else if (strcmp(name,"HydrologydcMaskThawedElt")==0) return HydrologydcMaskThawedEltEnum;
    877          else stage=8;
    878    }
    879    if(stage==8){
    880               if (strcmp(name,"HydrologydcMaskThawedNode")==0) return HydrologydcMaskThawedNodeEnum;
     888              else if (strcmp(name,"HydrologydcMaskThawedNode")==0) return HydrologydcMaskThawedNodeEnum;
    881889              else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
    882890              else if (strcmp(name,"HydrologyDrainageRate")==0) return HydrologyDrainageRateEnum;
     
    990998              else if (strcmp(name,"SealevelBarystaticOceanArea")==0) return SealevelBarystaticOceanAreaEnum;
    991999              else if (strcmp(name,"SealevelBarystaticOceanLatbar")==0) return SealevelBarystaticOceanLatbarEnum;
    992               else if (strcmp(name,"SealevelBarystaticOceanLongbar")==0) return SealevelBarystaticOceanLongbarEnum;
     1000         else stage=9;
     1001   }
     1002   if(stage==9){
     1003              if (strcmp(name,"SealevelBarystaticOceanLongbar")==0) return SealevelBarystaticOceanLongbarEnum;
    9931004              else if (strcmp(name,"SealevelBarystaticOceanLoad")==0) return SealevelBarystaticOceanLoadEnum;
    9941005              else if (strcmp(name,"SealevelNEsa")==0) return SealevelNEsaEnum;
     
    9981009              else if (strcmp(name,"BslcIce")==0) return BslcIceEnum;
    9991010              else if (strcmp(name,"BslcHydro")==0) return BslcHydroEnum;
    1000          else stage=9;
    1001    }
    1002    if(stage==9){
    1003               if (strcmp(name,"BslcOcean")==0) return BslcOceanEnum;
     1011              else if (strcmp(name,"BslcOcean")==0) return BslcOceanEnum;
    10041012              else if (strcmp(name,"BslcRate")==0) return BslcRateEnum;
    10051013              else if (strcmp(name,"Gmtslc")==0) return GmtslcEnum;
     
    10471055              else if (strcmp(name,"SmbAccumulatedRunoff")==0) return SmbAccumulatedRunoffEnum;
    10481056              else if (strcmp(name,"SmbAlbedo")==0) return SmbAlbedoEnum;
     1057              else if (strcmp(name,"SmbAlbedoInit")==0) return SmbAlbedoInitEnum;
    10491058              else if (strcmp(name,"SmbAlbedoSnow")==0) return SmbAlbedoSnowEnum;
     1059              else if (strcmp(name,"SmbAlbedoSnowInit")==0) return SmbAlbedoSnowInitEnum;
    10501060              else if (strcmp(name,"SmbA")==0) return SmbAEnum;
    10511061              else if (strcmp(name,"SmbAdiff")==0) return SmbAdiffEnum;
     
    10961106              else if (strcmp(name,"SmbGspini")==0) return SmbGspiniEnum;
    10971107              else if (strcmp(name,"SmbHIce")==0) return SmbHIceEnum;
     1108              else if (strcmp(name,"SmbHIceInit")==0) return SmbHIceInitEnum;
    10981109              else if (strcmp(name,"SmbHSnow")==0) return SmbHSnowEnum;
     1110              else if (strcmp(name,"SmbHSnowInit")==0) return SmbHSnowInitEnum;
    10991111              else if (strcmp(name,"SmbHref")==0) return SmbHrefEnum;
    11001112              else if (strcmp(name,"SmbIsInitialized")==0) return SmbIsInitializedEnum;
    11011113              else if (strcmp(name,"SmbMAdd")==0) return SmbMAddEnum;
    11021114              else if (strcmp(name,"SmbMassBalance")==0) return SmbMassBalanceEnum;
     1115              else if (strcmp(name,"SmbMassBalanceSnow")==0) return SmbMassBalanceSnowEnum;
    11031116              else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum;
    11041117              else if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum;
     
    11081121              else if (strcmp(name,"SmbMeanULW")==0) return SmbMeanULWEnum;
    11091122              else if (strcmp(name,"SmbMelt")==0) return SmbMeltEnum;
    1110               else if (strcmp(name,"SmbMonthlytemperatures")==0) return SmbMonthlytemperaturesEnum;
     1123         else stage=10;
     1124   }
     1125   if(stage==10){
     1126              if (strcmp(name,"SmbMonthlytemperatures")==0) return SmbMonthlytemperaturesEnum;
    11111127              else if (strcmp(name,"SmbMSurf")==0) return SmbMSurfEnum;
    11121128              else if (strcmp(name,"SmbNetLW")==0) return SmbNetLWEnum;
     
    11211137              else if (strcmp(name,"SmbPrecipitationsPresentday")==0) return SmbPrecipitationsPresentdayEnum;
    11221138              else if (strcmp(name,"SmbPrecipitationsReconstructed")==0) return SmbPrecipitationsReconstructedEnum;
    1123          else stage=10;
    1124    }
    1125    if(stage==10){
    1126               if (strcmp(name,"SmbRain")==0) return SmbRainEnum;
     1139              else if (strcmp(name,"SmbRain")==0) return SmbRainEnum;
    11271140              else if (strcmp(name,"SmbRe")==0) return SmbReEnum;
    11281141              else if (strcmp(name,"SmbRefreeze")==0) return SmbRefreezeEnum;
     
    12311244              else if (strcmp(name,"VyDebris")==0) return VyDebrisEnum;
    12321245              else if (strcmp(name,"Vy")==0) return VyEnum;
    1233               else if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
     1246         else stage=11;
     1247   }
     1248   if(stage==11){
     1249              if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
    12341250              else if (strcmp(name,"VyObs")==0) return VyObsEnum;
    12351251              else if (strcmp(name,"VyShear")==0) return VyShearEnum;
     
    12441260              else if (strcmp(name,"WaterfractionDrainage")==0) return WaterfractionDrainageEnum;
    12451261              else if (strcmp(name,"WaterfractionDrainageIntegrated")==0) return WaterfractionDrainageIntegratedEnum;
    1246          else stage=11;
    1247    }
    1248    if(stage==11){
    1249               if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
     1262              else if (strcmp(name,"Waterfraction")==0) return WaterfractionEnum;
    12501263              else if (strcmp(name,"Waterheight")==0) return WaterheightEnum;
    12511264              else if (strcmp(name,"WaterPressureArmaPerturbation")==0) return WaterPressureArmaPerturbationEnum;
     
    13541367              else if (strcmp(name,"Outputdefinition97")==0) return Outputdefinition97Enum;
    13551368              else if (strcmp(name,"Outputdefinition98")==0) return Outputdefinition98Enum;
    1356               else if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
     1369         else stage=12;
     1370   }
     1371   if(stage==12){
     1372              if (strcmp(name,"Outputdefinition99")==0) return Outputdefinition99Enum;
    13571373              else if (strcmp(name,"Outputdefinition9")==0) return Outputdefinition9Enum;
    13581374              else if (strcmp(name,"Outputdefinition100")==0) return Outputdefinition100Enum;
     
    13671383              else if (strcmp(name,"AmrBamg")==0) return AmrBamgEnum;
    13681384              else if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum;
    1369          else stage=12;
    1370    }
    1371    if(stage==12){
    1372               if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
     1385              else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
    13731386              else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
    13741387              else if (strcmp(name,"AutodiffJacobian")==0) return AutodiffJacobianEnum;
     
    14771490              else if (strcmp(name,"GLheightadvectionAnalysis")==0) return GLheightadvectionAnalysisEnum;
    14781491              else if (strcmp(name,"GaussPenta")==0) return GaussPentaEnum;
    1479               else if (strcmp(name,"GaussSeg")==0) return GaussSegEnum;
     1492         else stage=13;
     1493   }
     1494   if(stage==13){
     1495              if (strcmp(name,"GaussSeg")==0) return GaussSegEnum;
    14801496              else if (strcmp(name,"GaussTetra")==0) return GaussTetraEnum;
    14811497              else if (strcmp(name,"GaussTria")==0) return GaussTriaEnum;
     
    14901506              else if (strcmp(name,"GroundedAreaScaled")==0) return GroundedAreaScaledEnum;
    14911507              else if (strcmp(name,"GroundingOnly")==0) return GroundingOnlyEnum;
    1492          else stage=13;
    1493    }
    1494    if(stage==13){
    1495               if (strcmp(name,"GroundinglineMassFlux")==0) return GroundinglineMassFluxEnum;
     1508              else if (strcmp(name,"GroundinglineMassFlux")==0) return GroundinglineMassFluxEnum;
    14961509              else if (strcmp(name,"Gset")==0) return GsetEnum;
    14971510              else if (strcmp(name,"Gsl")==0) return GslEnum;
     
    16001613              else if (strcmp(name,"MinVy")==0) return MinVyEnum;
    16011614              else if (strcmp(name,"MinVz")==0) return MinVzEnum;
    1602               else if (strcmp(name,"MismipFloatingMeltRate")==0) return MismipFloatingMeltRateEnum;
     1615         else stage=14;
     1616   }
     1617   if(stage==14){
     1618              if (strcmp(name,"MismipFloatingMeltRate")==0) return MismipFloatingMeltRateEnum;
    16031619              else if (strcmp(name,"Moulin")==0) return MoulinEnum;
    16041620              else if (strcmp(name,"MpiDense")==0) return MpiDenseEnum;
     
    16131629              else if (strcmp(name,"NoneApproximation")==0) return NoneApproximationEnum;
    16141630              else if (strcmp(name,"None")==0) return NoneEnum;
    1615          else stage=14;
    1616    }
    1617    if(stage==14){
    1618               if (strcmp(name,"Numberedcostfunction")==0) return NumberedcostfunctionEnum;
     1631              else if (strcmp(name,"Numberedcostfunction")==0) return NumberedcostfunctionEnum;
    16191632              else if (strcmp(name,"NyeCO2")==0) return NyeCO2Enum;
    16201633              else if (strcmp(name,"NyeH2O")==0) return NyeH2OEnum;
     
    17231736              else if (strcmp(name,"TetraInput")==0) return TetraInputEnum;
    17241737              else if (strcmp(name,"ThermalAnalysis")==0) return ThermalAnalysisEnum;
    1725               else if (strcmp(name,"ThermalSolution")==0) return ThermalSolutionEnum;
     1738         else stage=15;
     1739   }
     1740   if(stage==15){
     1741              if (strcmp(name,"ThermalSolution")==0) return ThermalSolutionEnum;
    17261742              else if (strcmp(name,"ThicknessErrorEstimator")==0) return ThicknessErrorEstimatorEnum;
    17271743              else if (strcmp(name,"TotalCalvingFluxLevelset")==0) return TotalCalvingFluxLevelsetEnum;
     
    17361752              else if (strcmp(name,"TransientInput")==0) return TransientInputEnum;
    17371753              else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
    1738          else stage=15;
    1739    }
    1740    if(stage==15){
    1741               if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
     1754              else if (strcmp(name,"TransientSolution")==0) return TransientSolutionEnum;
    17421755              else if (strcmp(name,"Tria")==0) return TriaEnum;
    17431756              else if (strcmp(name,"TriaInput")==0) return TriaInputEnum;
Note: See TracChangeset for help on using the changeset viewer.