Changeset 27287


Ignore:
Timestamp:
09/20/22 08:31:02 (3 years ago)
Author:
Mathieu Morlighem
Message:

NEW: Implemented Pollard and DeContol magical calving law

Location:
issm/trunk-jpl/src/c
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp

    r27285 r27287  
    132132                        iomodel->ConstantToInput(inputs,elements,0.,CalvingratexEnum,P1Enum);
    133133                        iomodel->ConstantToInput(inputs,elements,0.,CalvingrateyEnum,P1Enum);
     134                        break;
     135                case CalvingPollardEnum:
    134136                        break;
    135137
     
    228230                        parameters->AddObject(iomodel->CopyConstantObject("md.calving.vel_threshold",CalvingVelThresholdEnum));
    229231                        parameters->AddObject(iomodel->CopyConstantObject("md.calving.vel_upperbound",CalvingVelUpperboundEnum));
     232                        break;
     233                case CalvingPollardEnum:
     234                        parameters->AddObject(iomodel->CopyConstantObject("md.calving.rc",CalvingRcEnum));
    230235                        break;
    231236                default:
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r27285 r27287  
    297297   this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,&values[0],P1Enum);
    298298}/*}}}*/
    299 void       Element::CalvingFromRate(){/*{{{*/
     299void       Element::CalvingRateToVector(){/*{{{*/
    300300
    301301        /*We are provided a calving rate, figure out the x/y components*/
     
    36943694                                                                                                          case CalvingLevermannEnum:
    36953695                                                                                                                  this->CalvingRateLevermann();
     3696                                                                                                                  break;
     3697                                                                                                          case CalvingPollardEnum:
     3698                                                                                                                  this->CalvingPollard();
    36963699                                                                                                                  break;
    36973700                                                                                                          case CalvingVonmisesEnum:
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Element.h

    r27285 r27287  
    7272                void               BasinLinearFloatingiceMeltingRate(IssmDouble* deepwaterel,IssmDouble* upperwatermelt,IssmDouble* upperwaterel,IssmDouble* perturbation);
    7373                void               CalvingSetZeroRate(void);
    74                 void               CalvingFromRate(void);
     74                void               CalvingRateToVector(void);
    7575                void               ComputeLambdaS(void);
    7676                void               ComputeNewDamage();
     
    238238                virtual void       CalvingCrevasseDepth(void){_error_("not implemented yet");};
    239239                virtual void        CalvingRateLevermann(void)=0;
     240                virtual void        CalvingPollard(void){_error_("not implemented yet");};
    240241                virtual void       CalvingFluxLevelset(void){_error_("not implemented yet");};
    241242                virtual void       CalvingMeltingFluxLevelset(void){_error_("not implemented yet");};
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r27271 r27287  
    324324        /*Add input*/
    325325        this->AddBasalInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
    326         this->CalvingFromRate();
     326        this->CalvingRateToVector();
    327327
    328328        /*Extrude*/
     
    365365        /*Add input*/
    366366        this->AddBasalInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
    367         this->CalvingFromRate();
     367        this->CalvingRateToVector();
    368368}/*}}}*/
    369369void       Penta::CalvingFluxLevelset(){/*{{{*/
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r27280 r27287  
    364364        /*Add input*/
    365365        this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
    366    this->CalvingFromRate();
     366   this->CalvingRateToVector();
    367367}
    368368/*}}}*/
     
    558558        /*Add input*/
    559559        this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
    560         this->CalvingFromRate();
     560        this->CalvingRateToVector();
     561}/*}}}*/
     562void       Tria::CalvingPollard(){/*{{{*/
     563
     564        /*Intermediaries*/
     565        IssmDouble calvingrate[NUMVERTICES];
     566        IssmDouble xyz_list[NUMVERTICES][3];
     567        IssmDouble dvx[2], dvy[2];
     568        IssmDouble B, n, H, bed, vx, vy, vel, smb;
     569        IssmDouble ds, db, da, dt, dw, r, R;
     570
     571        /*Retrieve all inputs and parameters we will need*/
     572        IssmDouble rc        = FindParam(CalvingRcEnum);
     573        IssmDouble rho_ice   = FindParam(MaterialsRhoIceEnum);
     574        IssmDouble rho_water = FindParam(MaterialsRhoSeawaterEnum);
     575        IssmDouble gravity   = FindParam(ConstantsGEnum);
     576   IssmDouble mig_max   = FindParam(MigrationMaxEnum);
     577
     578        /*Retrieve all inputs and parameters we will need */
     579        Input *bs_input  = this->GetInput(BaseEnum);                  _assert_(bs_input);
     580        Input *vx_input  = this->GetInput(VxEnum);                    _assert_(vx_input);
     581        Input *vy_input  = this->GetInput(VyEnum);                    _assert_(vy_input);
     582        Input *B_input   = this->GetInput(MaterialsRheologyBbarEnum); _assert_(B_input);
     583        Input *n_input   = this->GetInput(MaterialsRheologyNEnum);    _assert_(n_input);
     584        Input *H_input   = this->GetInput(ThicknessEnum);             _assert_(H_input);
     585        Input *smb_input = this->GetInput(SmbMassBalanceEnum);        _assert_(smb_input);
     586
     587        /* Start looping on the number of vertices: */
     588        GaussTria gauss;
     589        for (int iv=0;iv<NUMVERTICES;iv++){
     590                gauss.GaussVertex(iv);
     591
     592                /* Get the value we need*/
     593                bs_input->GetInputValue(&bed,&gauss);
     594
     595                /*Only calve if bed is below sea level, as always*/
     596                if(bed<=0.){
     597
     598                        /*Get Triangle node coordinates*/
     599                        ::GetVerticesCoordinates(&xyz_list[0][0],vertices,NUMVERTICES);
     600
     601                        /*Get strain rates*/
     602                        vx_input->GetInputDerivativeValue(&dvx[0],&xyz_list[0][0],&gauss);
     603                        vy_input->GetInputDerivativeValue(&dvy[0],&xyz_list[0][0],&gauss);
     604
     605                        /*Get other inputs*/
     606                        B_input->GetInputValue(&B,&gauss);
     607         n_input->GetInputValue(&n,&gauss);
     608         H_input->GetInputValue(&H,&gauss);
     609         vx_input->GetInputValue(&vx,&gauss);
     610         vy_input->GetInputValue(&vy,&gauss);
     611         smb_input->GetInputValue(&smb,&gauss);
     612
     613                        /*1. with surface crevasses, ds*/
     614                        ds = 2./(rho_ice*gravity) * B * pow( max(0.,dvx[0]) + max(0.,dvy[1]) , 1./n);
     615
     616         /*2. basal crevasses*/
     617         db = (rho_ice)/(rho_water - rho_ice) * ds;
     618
     619         /*3. "Additional" crevasse opening*/
     620         vel = sqrt(vx*vx + vy*vy)/(365.25*24*3600);
     621         da = H* max(0., log(vel/1600.))/log(1.2);
     622
     623         /*4. deal with shallow ice*/
     624         dt = H* max(0., min(1., (150. - H)/50.));
     625
     626         /*5. water induced opening*/
     627         dw = 0.;
     628         R = smb*365.25*24*3600; //convert from m/s to m/yr
     629         if(R>1.5 && R<=3.){
     630            dw = 4*1.5*(R - 1.5);
     631         }
     632         else if(R>3.){
     633            dw = R*R;
     634         }
     635
     636         /*Total calving rate*/
     637         r = (ds+db+da+dt+dw)/H;
     638                        calvingrate[iv]= mig_max * max(0., min(1., (r - rc)/(1 - rc))); //P&DC: mig_max = 3000 m/yr
     639                        _assert_(!xIsNan<IssmDouble>(calvingrate[iv]));
     640                        _assert_(!xIsInf<IssmDouble>(calvingrate[iv]));
     641                }
     642                else
     643                 calvingrate[iv]=0.;
     644        }
     645
     646        /*Add input*/
     647        this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
     648        this->CalvingRateToVector();
    561649}/*}}}*/
    562650void       Tria::CalvingFluxLevelset(){/*{{{*/
     
    9511039        this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
    9521040        this->AddInput(SigmaVMEnum,&sigma_vm[0],P1DGEnum);
    953         this->CalvingFromRate();
     1041        this->CalvingRateToVector();
    9541042
    9551043        /*Clean up and return*/
     
    43124400                case CalvingVonmisesEnum:
    43134401                case CalvingLevermannEnum:
     4402                case CalvingPollardEnum:
    43144403                case CalvingTestEnum:
    43154404                case CalvingParameterizationEnum:
     
    43574446                        case CalvingParameterizationEnum:
    43584447                        case CalvingLevermannEnum:
     4448                        case CalvingPollardEnum:
    43594449                                calvingratex_input->GetInputValue(&c[0],&gauss);
    43604450                                calvingratey_input->GetInputValue(&c[1],&gauss);
  • TabularUnified issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r27131 r27287  
    5858                void        CalvingCrevasseDepth();
    5959                void                    CalvingRateLevermann();
     60                void                    CalvingPollard();
    6061                void                    CalvingFluxLevelset();
    6162                void                    CalvingMeltingFluxLevelset();
  • TabularUnified issm/trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp

    r26983 r27287  
    2020                        break;
    2121                case DefaultCalvingEnum:
    22                         femmodel->ElementOperationx(&Element::CalvingFromRate);
     22                        femmodel->ElementOperationx(&Element::CalvingRateToVector);
    2323                        break;
    2424                case CalvingCrevasseDepthEnum:
     
    3131                        break;
    3232                case CalvingLevermannEnum:
    33                         if(VerboseModule()) _printf0_("   computing Levermann's calving rate\n");
    3433                        femmodel->StrainRateparallelx();
    3534                        femmodel->StrainRateperpendicularx();
     
    4645                        femmodel->ElementOperationx(&Element::CalvingRateParameterization);
    4746                        break;
     47                case CalvingPollardEnum:
     48                        femmodel->ElementOperationx(&Element::CalvingPollard);
     49                        break;
    4850                default:
    4951                        _error_("Caving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
  • TabularUnified issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r27285 r27287  
    129129syn keyword cConstant CalvingVelThresholdEnum
    130130syn keyword cConstant CalvingVelUpperboundEnum
     131syn keyword cConstant CalvingRcEnum
    131132syn keyword cConstant ConfigurationTypeEnum
    132133syn keyword cConstant ConstantsGEnum
     
    12891290syn keyword cConstant CalvingParameterizationEnum
    12901291syn keyword cConstant CalvingVonmisesEnum
     1292syn keyword cConstant CalvingPollardEnum
    12911293syn keyword cConstant CfdragcoeffabsgradEnum
    12921294syn keyword cConstant CfsurfacelogvelEnum
  • TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r27285 r27287  
    123123        CalvingVelThresholdEnum,
    124124        CalvingVelUpperboundEnum,
     125        CalvingRcEnum,
    125126        ConfigurationTypeEnum,
    126127        ConstantsGEnum,
     
    12881289        CalvingParameterizationEnum,
    12891290        CalvingVonmisesEnum,
     1291        CalvingPollardEnum,
    12901292        CfdragcoeffabsgradEnum,
    12911293        CfsurfacelogvelEnum,
  • TabularUnified issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r27285 r27287  
    131131                case CalvingVelThresholdEnum : return "CalvingVelThreshold";
    132132                case CalvingVelUpperboundEnum : return "CalvingVelUpperbound";
     133                case CalvingRcEnum : return "CalvingRc";
    133134                case ConfigurationTypeEnum : return "ConfigurationType";
    134135                case ConstantsGEnum : return "ConstantsG";
     
    12911292                case CalvingParameterizationEnum : return "CalvingParameterization";
    12921293                case CalvingVonmisesEnum : return "CalvingVonmises";
     1294                case CalvingPollardEnum : return "CalvingPollard";
    12931295                case CfdragcoeffabsgradEnum : return "Cfdragcoeffabsgrad";
    12941296                case CfsurfacelogvelEnum : return "Cfsurfacelogvel";
  • TabularUnified issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim

    r27285 r27287  
    122122syn keyword juliaConstC CalvingVelThresholdEnum
    123123syn keyword juliaConstC CalvingVelUpperboundEnum
     124syn keyword juliaConstC CalvingRcEnum
    124125syn keyword juliaConstC ConfigurationTypeEnum
    125126syn keyword juliaConstC ConstantsGEnum
     
    12821283syn keyword juliaConstC CalvingParameterizationEnum
    12831284syn keyword juliaConstC CalvingVonmisesEnum
     1285syn keyword juliaConstC CalvingPollardEnum
    12841286syn keyword juliaConstC CfdragcoeffabsgradEnum
    12851287syn keyword juliaConstC CfsurfacelogvelEnum
  • TabularUnified issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r27285 r27287  
    131131              else if (strcmp(name,"CalvingVelThreshold")==0) return CalvingVelThresholdEnum;
    132132              else if (strcmp(name,"CalvingVelUpperbound")==0) return CalvingVelUpperboundEnum;
     133              else if (strcmp(name,"CalvingRc")==0) return CalvingRcEnum;
    133134              else if (strcmp(name,"ConfigurationType")==0) return ConfigurationTypeEnum;
    134135              else if (strcmp(name,"ConstantsG")==0) return ConstantsGEnum;
     
    136137              else if (strcmp(name,"ConstantsReferencetemperature")==0) return ConstantsReferencetemperatureEnum;
    137138              else if (strcmp(name,"ConstantsYts")==0) return ConstantsYtsEnum;
    138               else if (strcmp(name,"ControlInputSizeM")==0) return ControlInputSizeMEnum;
    139139         else stage=2;
    140140   }
    141141   if(stage==2){
    142               if (strcmp(name,"ControlInputSizeN")==0) return ControlInputSizeNEnum;
     142              if (strcmp(name,"ControlInputSizeM")==0) return ControlInputSizeMEnum;
     143              else if (strcmp(name,"ControlInputSizeN")==0) return ControlInputSizeNEnum;
    143144              else if (strcmp(name,"ControlInputInterpolation")==0) return ControlInputInterpolationEnum;
    144145              else if (strcmp(name,"CumBslc")==0) return CumBslcEnum;
     
    259260              else if (strcmp(name,"HydrologyStepAdapt")==0) return HydrologyStepAdaptEnum;
    260261              else if (strcmp(name,"HydrologydcTransferFlag")==0) return HydrologydcTransferFlagEnum;
    261               else if (strcmp(name,"HydrologydcUnconfinedFlag")==0) return HydrologydcUnconfinedFlagEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
     265              if (strcmp(name,"HydrologydcUnconfinedFlag")==0) return HydrologydcUnconfinedFlagEnum;
     266              else if (strcmp(name,"HydrologyshreveStabilization")==0) return HydrologyshreveStabilizationEnum;
    266267              else if (strcmp(name,"IcecapToEarthComm")==0) return IcecapToEarthCommEnum;
    267268              else if (strcmp(name,"Index")==0) return IndexEnum;
     
    382383              else if (strcmp(name,"QmuVariableDescriptors")==0) return QmuVariableDescriptorsEnum;
    383384              else if (strcmp(name,"QmuVariablePartitions")==0) return QmuVariablePartitionsEnum;
    384               else if (strcmp(name,"QmuVariablePartitionsNpart")==0) return QmuVariablePartitionsNpartEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"QmuVariablePartitionsNt")==0) return QmuVariablePartitionsNtEnum;
     388              if (strcmp(name,"QmuVariablePartitionsNpart")==0) return QmuVariablePartitionsNpartEnum;
     389              else if (strcmp(name,"QmuVariablePartitionsNt")==0) return QmuVariablePartitionsNtEnum;
    389390              else if (strcmp(name,"QmuResponsePartitions")==0) return QmuResponsePartitionsEnum;
    390391              else if (strcmp(name,"QmuResponsePartitionsNpart")==0) return QmuResponsePartitionsNpartEnum;
     
    505506              else if (strcmp(name,"SmbCldFrac")==0) return SmbCldFracEnum;
    506507              else if (strcmp(name,"SmbDelta18o")==0) return SmbDelta18oEnum;
    507               else if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
     511              if (strcmp(name,"SmbDelta18oSurface")==0) return SmbDelta18oSurfaceEnum;
     512              else if (strcmp(name,"SmbDenIdx")==0) return SmbDenIdxEnum;
    512513              else if (strcmp(name,"SmbDt")==0) return SmbDtEnum;
    513514              else if (strcmp(name,"Smb")==0) return SmbEnum;
     
    628629              else if (strcmp(name,"Velocity")==0) return VelocityEnum;
    629630              else if (strcmp(name,"Xxe")==0) return XxeEnum;
    630               else if (strcmp(name,"Yye")==0) return YyeEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"Zze")==0) return ZzeEnum;
     634              if (strcmp(name,"Yye")==0) return YyeEnum;
     635              else if (strcmp(name,"Zze")==0) return ZzeEnum;
    635636              else if (strcmp(name,"Areae")==0) return AreaeEnum;
    636637              else if (strcmp(name,"WorldComm")==0) return WorldCommEnum;
     
    751752              else if (strcmp(name,"DragCoefficientAbsGradient")==0) return DragCoefficientAbsGradientEnum;
    752753              else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum;
    753               else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"Dummy")==0) return DummyEnum;
     757              if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum;
     758              else if (strcmp(name,"Dummy")==0) return DummyEnum;
    758759              else if (strcmp(name,"EffectivePressure")==0) return EffectivePressureEnum;
    759760              else if (strcmp(name,"EffectivePressureSubstep")==0) return EffectivePressureSubstepEnum;
     
    874875              else if (strcmp(name,"MeshVertexonsurface")==0) return MeshVertexonsurfaceEnum;
    875876              else if (strcmp(name,"Misfit")==0) return MisfitEnum;
    876               else if (strcmp(name,"MovingFrontalVx")==0) return MovingFrontalVxEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"MovingFrontalVy")==0) return MovingFrontalVyEnum;
     880              if (strcmp(name,"MovingFrontalVx")==0) return MovingFrontalVxEnum;
     881              else if (strcmp(name,"MovingFrontalVy")==0) return MovingFrontalVyEnum;
    881882              else if (strcmp(name,"Neumannflux")==0) return NeumannfluxEnum;
    882883              else if (strcmp(name,"NewDamage")==0) return NewDamageEnum;
     
    997998              else if (strcmp(name,"SmbCcsnowValue")==0) return SmbCcsnowValueEnum;
    998999              else if (strcmp(name,"SmbCciceValue")==0) return SmbCciceValueEnum;
    999               else if (strcmp(name,"SmbCotValue")==0) return SmbCotValueEnum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"SmbD")==0) return SmbDEnum;
     1003              if (strcmp(name,"SmbCotValue")==0) return SmbCotValueEnum;
     1004              else if (strcmp(name,"SmbD")==0) return SmbDEnum;
    10041005              else if (strcmp(name,"SmbDailyairdensity")==0) return SmbDailyairdensityEnum;
    10051006              else if (strcmp(name,"SmbDailyairhumidity")==0) return SmbDailyairhumidityEnum;
     
    11201121              else if (strcmp(name,"SurfaceCrevasse")==0) return SurfaceCrevasseEnum;
    11211122              else if (strcmp(name,"Surface")==0) return SurfaceEnum;
    1122               else if (strcmp(name,"SurfaceOld")==0) return SurfaceOldEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
     1126              if (strcmp(name,"SurfaceOld")==0) return SurfaceOldEnum;
     1127              else if (strcmp(name,"SurfaceLogVelMisfit")==0) return SurfaceLogVelMisfitEnum;
    11271128              else if (strcmp(name,"SurfaceLogVxVyMisfit")==0) return SurfaceLogVxVyMisfitEnum;
    11281129              else if (strcmp(name,"SurfaceObservation")==0) return SurfaceObservationEnum;
     
    12431244              else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
    12441245              else if (strcmp(name,"Outputdefinition68")==0) return Outputdefinition68Enum;
    1245               else if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
    12461246         else stage=11;
    12471247   }
    12481248   if(stage==11){
    1249               if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
     1249              if (strcmp(name,"Outputdefinition69")==0) return Outputdefinition69Enum;
     1250              else if (strcmp(name,"Outputdefinition6")==0) return Outputdefinition6Enum;
    12501251              else if (strcmp(name,"Outputdefinition70")==0) return Outputdefinition70Enum;
    12511252              else if (strcmp(name,"Outputdefinition71")==0) return Outputdefinition71Enum;
     
    13211322              else if (strcmp(name,"CalvingParameterization")==0) return CalvingParameterizationEnum;
    13221323              else if (strcmp(name,"CalvingVonmises")==0) return CalvingVonmisesEnum;
     1324              else if (strcmp(name,"CalvingPollard")==0) return CalvingPollardEnum;
    13231325              else if (strcmp(name,"Cfdragcoeffabsgrad")==0) return CfdragcoeffabsgradEnum;
    13241326              else if (strcmp(name,"Cfsurfacelogvel")==0) return CfsurfacelogvelEnum;
     
    13651367              else if (strcmp(name,"DoubleParam")==0) return DoubleParamEnum;
    13661368              else if (strcmp(name,"DoubleVecParam")==0) return DoubleVecParamEnum;
    1367               else if (strcmp(name,"Element")==0) return ElementEnum;
    1368               else if (strcmp(name,"ElementHook")==0) return ElementHookEnum;
    13691369         else stage=12;
    13701370   }
    13711371   if(stage==12){
    1372               if (strcmp(name,"ElementSId")==0) return ElementSIdEnum;
     1372              if (strcmp(name,"Element")==0) return ElementEnum;
     1373              else if (strcmp(name,"ElementHook")==0) return ElementHookEnum;
     1374              else if (strcmp(name,"ElementSId")==0) return ElementSIdEnum;
    13731375              else if (strcmp(name,"EnthalpyAnalysis")==0) return EnthalpyAnalysisEnum;
    13741376              else if (strcmp(name,"EsaAnalysis")==0) return EsaAnalysisEnum;
     
    14881490              else if (strcmp(name,"MassFlux")==0) return MassFluxEnum;
    14891491              else if (strcmp(name,"Masscon")==0) return MassconEnum;
    1490               else if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum;
    1491               else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
    14921492         else stage=13;
    14931493   }
    14941494   if(stage==13){
    1495               if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
     1495              if (strcmp(name,"Massconaxpby")==0) return MassconaxpbyEnum;
     1496              else if (strcmp(name,"Massfluxatgate")==0) return MassfluxatgateEnum;
     1497              else if (strcmp(name,"MasstransportAnalysis")==0) return MasstransportAnalysisEnum;
    14961498              else if (strcmp(name,"MasstransportSolution")==0) return MasstransportSolutionEnum;
    14971499              else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
     
    16111613              else if (strcmp(name,"SmbAnalysis")==0) return SmbAnalysisEnum;
    16121614              else if (strcmp(name,"SmbSolution")==0) return SmbSolutionEnum;
    1613               else if (strcmp(name,"SmoothAnalysis")==0) return SmoothAnalysisEnum;
    1614               else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
    16151615         else stage=14;
    16161616   }
    16171617   if(stage==14){
    1618               if (strcmp(name,"SpatialLinearFloatingMeltRate")==0) return SpatialLinearFloatingMeltRateEnum;
     1618              if (strcmp(name,"SmoothAnalysis")==0) return SmoothAnalysisEnum;
     1619              else if (strcmp(name,"SoftMigration")==0) return SoftMigrationEnum;
     1620              else if (strcmp(name,"SpatialLinearFloatingMeltRate")==0) return SpatialLinearFloatingMeltRateEnum;
    16191621              else if (strcmp(name,"SpcDynamic")==0) return SpcDynamicEnum;
    16201622              else if (strcmp(name,"SpcStatic")==0) return SpcStaticEnum;
  • TabularUnified issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp

    r27250 r27287  
    261261int IoCodeToEnumCalving(int enum_in){/*{{{*/
    262262        switch(enum_in){
    263                 case 1: return DefaultCalvingEnum;
    264                 case 2: return CalvingVonmisesEnum;
    265                 case 3: return CalvingLevermannEnum;
    266                 case 4: return CalvingMinthicknessEnum;
    267                 case 5: return CalvingHabEnum;
    268                 case 6: return CalvingCrevasseDepthEnum;
    269                 case 7: return CalvingDev2Enum;
    270                 case 9: return CalvingParameterizationEnum;
    271                 case 8: return CalvingTestEnum;
     263                case 1:  return DefaultCalvingEnum;
     264                case 2:  return CalvingVonmisesEnum;
     265                case 3:  return CalvingLevermannEnum;
     266                case 4:  return CalvingMinthicknessEnum;
     267                case 5:  return CalvingHabEnum;
     268                case 6:  return CalvingCrevasseDepthEnum;
     269                case 7:  return CalvingDev2Enum;
     270                case 8:  return CalvingTestEnum;
     271                case 9:  return CalvingParameterizationEnum;
     272                case 10: return CalvingPollardEnum;
    272273                default: _error_("Marshalled Calving law code \""<<enum_in<<"\" not supported yet");
    273274        }
Note: See TracChangeset for help on using the changeset viewer.