Changeset 27688


Ignore:
Timestamp:
04/10/23 22:53:06 (2 years ago)
Author:
youngmc3
Message:

CHG: added calvingvonmisesAD for sigma_max inversion

Location:
issm/trunk-jpl/src
Files:
1 added
12 edited

Legend:

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

    r27354 r27688  
    107107                        iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
    108108                        break;
     109                case CalvingVonmisesADEnum:
     110                        iomodel->FetchDataToInput(inputs,elements,"md.calving.basin_id",CalvingBasinIdEnum);
     111                        iomodel->FetchDataToInput(inputs,elements,"md.geometry.bed",BedEnum);
     112                        break;
    109113                case CalvingDev2Enum:
    110114                        iomodel->FetchDataToInput(inputs,elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum);
     
    187191                case CalvingVonmisesEnum:
    188192                        parameters->AddObject(iomodel->CopyConstantObject("md.calving.min_thickness",CalvingMinthicknessEnum));
     193                        break;
     194                case CalvingVonmisesADEnum:
     195                        parameters->AddObject(iomodel->CopyConstantObject("md.calving.min_thickness",CalvingMinthicknessEnum));
     196                        parameters->AddObject(iomodel->CopyConstantObject("md.calving.num_basins",CalvingNumberofBasinsEnum));
     197
     198                        iomodel->FetchData(&transparam,&M,&N,"md.calving.stress_threshold_groundedice");
     199         _assert_(M>=1 && N>=1);
     200         parameters->AddObject(new DoubleVecParam(CalvingADStressThresholdGroundediceEnum,transparam,M));
     201         xDelete<IssmDouble>(transparam);
     202
     203         iomodel->FetchData(&transparam,&M,&N,"md.calving.stress_threshold_floatingice");
     204         _assert_(M>=1 && N>=1);
     205         parameters->AddObject(new DoubleVecParam(CalvingADStressThresholdFloatingiceEnum,transparam,M));
     206         xDelete<IssmDouble>(transparam);
     207         
    189208                        break;
    190209                case CalvingMinthicknessEnum:
     
    729748
    730749        /*Apply minimum thickness criterion*/
    731         if(calvinglaw==CalvingMinthicknessEnum || calvinglaw==CalvingVonmisesEnum || calvinglaw==CalvingParameterizationEnum){
     750        if(calvinglaw==CalvingMinthicknessEnum || calvinglaw==CalvingVonmisesEnum || calvinglaw==CalvingParameterizationEnum || calvinglaw==CalvingVonmisesADEnum){
    732751
    733752                IssmDouble mig_max = femmodel->parameters->FindParam(MigrationMaxEnum);
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r27655 r27688  
    38123812                                                                                                          case CalvingDev2Enum:
    38133813                                                                                                                  this->CalvingRateVonmises();
     3814                                                                                                                  break;
     3815                                                                                                          case CalvingVonmisesADEnum:
     3816                                                                                                                  this->CalvingRateVonmisesAD();
    38143817                                                                                                                  break;
    38153818                                                                                                          case CalvingCrevasseDepthEnum:
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r27498 r27688  
    239239                virtual void       CalvingRateParameterization(void){_error_("not implemented yet");};
    240240                virtual void       CalvingRateVonmises(void){_error_("not implemented yet");};
     241                virtual void       CalvingRateVonmisesAD(void){_error_("not implemented yet");};
    241242                virtual void       CalvingRateTest(void){_error_("not implemented yet");};
    242243                virtual void       CalvingCrevasseDepth(void){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r27452 r27688  
    345345                smax_fl_input->GetInputValue(&sigma_max_floating,&gauss);
    346346                smax_gr_input->GetInputValue(&sigma_max_grounded,&gauss);
     347                sl_input->GetInputValue(&sealevel,&gauss);
     348
     349                /*Tensile stress threshold*/
     350                if(groundedice<0)
     351                 sigma_max = sigma_max_floating;
     352                else
     353                 sigma_max = sigma_max_grounded;
     354
     355                /*Assign values*/
     356                if(bed>sealevel){
     357                        calvingrate[iv] = 0.;
     358                }
     359                else{
     360                        calvingrate[iv] = sqrt(vx*vx+vy*vy)*sigma_vm/sigma_max;
     361                }
     362        }
     363
     364        /*Add input*/
     365        this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
     366   this->CalvingRateToVector();
     367}
     368/*}}}*/
     369void       Tria::CalvingRateVonmisesAD(){/*{{{*/
     370
     371        /*First, compute Von Mises Stress*/
     372        this->ComputeSigmaVM();
     373
     374        /*Now compute calving rate*/
     375        IssmDouble  calvingrate[NUMVERTICES];
     376        IssmDouble  sigma_vm,vx,vy;
     377        IssmDouble  sigma_max,sigma_max_floating,sigma_max_grounded,n;
     378        IssmDouble  groundedice,bed,sealevel;
     379        int M;
     380        int basinid;
     381        IssmDouble* sigma_max_floating_basin=NULL;
     382        IssmDouble* sigma_max_grounded_basin=NULL;
     383
     384        /*Retrieve all inputs and parameters we will need*/
     385        Input* vx_input       = this->GetInput(VxEnum); _assert_(vx_input);
     386        Input* vy_input       = this->GetInput(VyEnum); _assert_(vy_input);
     387        Input* gr_input       = this->GetInput(MaskOceanLevelsetEnum); _assert_(gr_input);
     388        Input* bs_input       = this->GetInput(BaseEnum);                    _assert_(bs_input);
     389        Input* sl_input       = this->GetInput(SealevelEnum); _assert_(sl_input);
     390        Input* sigma_vm_input = this->GetInput(SigmaVMEnum); _assert_(sigma_vm_input);
     391
     392        this->Element::GetInputValue(&basinid,CalvingBasinIdEnum);
     393
     394        parameters->FindParam(&sigma_max_floating_basin,&M,CalvingADStressThresholdFloatingiceEnum);
     395        parameters->FindParam(&sigma_max_grounded_basin,&M,CalvingADStressThresholdGroundediceEnum);
     396
     397        sigma_max_floating = sigma_max_floating_basin[basinid];
     398        sigma_max_grounded = sigma_max_grounded_basin[basinid];
     399
     400        _print0_("basinid: " << basinid << "\n");
     401        _print0_("sigma_max_grounded: " << sigma_max_grounded << "\n");
     402       
     403        /* Start looping on the number of vertices: */
     404        GaussTria gauss;
     405        for(int iv=0;iv<NUMVERTICES;iv++){
     406                gauss.GaussVertex(iv);
     407
     408                /*Get velocity components and thickness*/
     409                sigma_vm_input->GetInputValue(&sigma_vm,&gauss);
     410                vx_input->GetInputValue(&vx,&gauss);
     411                vy_input->GetInputValue(&vy,&gauss);
     412                gr_input->GetInputValue(&groundedice,&gauss);
     413                bs_input->GetInputValue(&bed,&gauss);
    347414                sl_input->GetInputValue(&sealevel,&gauss);
    348415
     
    44144481                case DefaultCalvingEnum:
    44154482                case CalvingVonmisesEnum:
     4483                case CalvingVonmisesADEnum:
    44164484                case CalvingLevermannEnum:
    44174485                case CalvingPollardEnum:
     
    44584526                        case DefaultCalvingEnum:
    44594527                        case CalvingVonmisesEnum:
     4528                        case CalvingVonmisesADEnum:
    44604529                        case CalvingTestEnum:
    44614530                        case CalvingParameterizationEnum:
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r27308 r27688  
    5555                void        AverageOntoPartition(Vector<IssmDouble>* partition_contributions,Vector<IssmDouble>* partition_areas,IssmDouble* vertex_response,IssmDouble* qmu_part);
    5656                void                    CalvingRateVonmises();
     57                void                    CalvingRateVonmisesAD();
    5758                void                    CalvingRateTest();
    5859                void        CalvingCrevasseDepth();
  • issm/trunk-jpl/src/c/modules/Calvingx/Calvingx.cpp

    r27287 r27688  
    3939                        femmodel->ElementOperationx(&Element::CalvingRateVonmises);
    4040                        break;
     41                case CalvingVonmisesADEnum:
     42                        femmodel->ElementOperationx(&Element::CalvingRateVonmisesAD);
     43                        break;
    4144                case CalvingTestEnum:
    4245                        femmodel->ElementOperationx(&Element::CalvingRateTest);
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r27686 r27688  
    114114syn keyword cConstant BasalforcingsUpperwaterElevationEnum
    115115syn keyword cConstant BasalforcingsUpperwaterMeltingRateEnum
     116syn keyword cConstant CalvingADStressThresholdFloatingiceEnum
     117syn keyword cConstant CalvingADStressThresholdGroundediceEnum
    116118syn keyword cConstant CalvingCrevasseDepthEnum
    117119syn keyword cConstant CalvingCrevasseThresholdEnum
     
    131133syn keyword cConstant CalvingVelUpperboundEnum
    132134syn keyword cConstant CalvingRcEnum
     135syn keyword cConstant CalvingNumberofBasinsEnum
    133136syn keyword cConstant ConfigurationTypeEnum
    134137syn keyword cConstant ConstantsGEnum
     
    753756syn keyword cConstant BottomPressureEnum
    754757syn keyword cConstant BottomPressureOldEnum
     758syn keyword cConstant CalvingBasinIdEnum
    755759syn keyword cConstant CalvingCalvingrateEnum
    756760syn keyword cConstant CalvingHabFractionEnum
     
    13861390syn keyword cConstant CalvingParameterizationEnum
    13871391syn keyword cConstant CalvingVonmisesEnum
     1392syn keyword cConstant CalvingVonmisesADEnum
    13881393syn keyword cConstant CalvingPollardEnum
    13891394syn keyword cConstant CfdragcoeffabsgradEnum
     
    17621767syn keyword cType Cfdragcoeffabsgrad
    17631768syn keyword cType Cflevelsetmisfit
     1769syn keyword cType Cfrheologybbarabsgrad
    17641770syn keyword cType Cfsurfacelogvel
    17651771syn keyword cType Cfsurfacesquare
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r27686 r27688  
    108108        BasalforcingsUpperwaterElevationEnum,
    109109        BasalforcingsUpperwaterMeltingRateEnum,
     110        CalvingADStressThresholdFloatingiceEnum,
     111        CalvingADStressThresholdGroundediceEnum,
    110112        CalvingCrevasseDepthEnum,
    111113        CalvingCrevasseThresholdEnum,
     
    125127        CalvingVelUpperboundEnum,
    126128        CalvingRcEnum,
     129        CalvingNumberofBasinsEnum,
    127130        ConfigurationTypeEnum,
    128131        ConstantsGEnum,
     
    749752        BottomPressureEnum,
    750753        BottomPressureOldEnum,
     754        CalvingBasinIdEnum,
    751755        CalvingCalvingrateEnum,
    752756        CalvingHabFractionEnum,
     
    13851389        CalvingParameterizationEnum,
    13861390        CalvingVonmisesEnum,
     1391        CalvingVonmisesADEnum,
    13871392        CalvingPollardEnum,
    13881393        CfdragcoeffabsgradEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r27686 r27688  
    116116                case BasalforcingsUpperwaterElevationEnum : return "BasalforcingsUpperwaterElevation";
    117117                case BasalforcingsUpperwaterMeltingRateEnum : return "BasalforcingsUpperwaterMeltingRate";
     118                case CalvingADStressThresholdFloatingiceEnum : return "CalvingADStressThresholdFloatingice";
     119                case CalvingADStressThresholdGroundediceEnum : return "CalvingADStressThresholdGroundedice";
    118120                case CalvingCrevasseDepthEnum : return "CalvingCrevasseDepth";
    119121                case CalvingCrevasseThresholdEnum : return "CalvingCrevasseThreshold";
     
    133135                case CalvingVelUpperboundEnum : return "CalvingVelUpperbound";
    134136                case CalvingRcEnum : return "CalvingRc";
     137                case CalvingNumberofBasinsEnum : return "CalvingNumberofBasins";
    135138                case ConfigurationTypeEnum : return "ConfigurationType";
    136139                case ConstantsGEnum : return "ConstantsG";
     
    755758                case BottomPressureEnum : return "BottomPressure";
    756759                case BottomPressureOldEnum : return "BottomPressureOld";
     760                case CalvingBasinIdEnum : return "CalvingBasinId";
    757761                case CalvingCalvingrateEnum : return "CalvingCalvingrate";
    758762                case CalvingHabFractionEnum : return "CalvingHabFraction";
     
    13881392                case CalvingParameterizationEnum : return "CalvingParameterization";
    13891393                case CalvingVonmisesEnum : return "CalvingVonmises";
     1394                case CalvingVonmisesADEnum : return "CalvingVonmisesAD";
    13901395                case CalvingPollardEnum : return "CalvingPollard";
    13911396                case CfdragcoeffabsgradEnum : return "Cfdragcoeffabsgrad";
  • issm/trunk-jpl/src/c/shared/Enum/Enumjl.vim

    r27686 r27688  
    107107syn keyword juliaConstC BasalforcingsUpperwaterElevationEnum
    108108syn keyword juliaConstC BasalforcingsUpperwaterMeltingRateEnum
     109syn keyword juliaConstC CalvingADStressThresholdFloatingiceEnum
     110syn keyword juliaConstC CalvingADStressThresholdGroundediceEnum
    109111syn keyword juliaConstC CalvingCrevasseDepthEnum
    110112syn keyword juliaConstC CalvingCrevasseThresholdEnum
     
    124126syn keyword juliaConstC CalvingVelUpperboundEnum
    125127syn keyword juliaConstC CalvingRcEnum
     128syn keyword juliaConstC CalvingNumberofBasinsEnum
    126129syn keyword juliaConstC ConfigurationTypeEnum
    127130syn keyword juliaConstC ConstantsGEnum
     
    746749syn keyword juliaConstC BottomPressureEnum
    747750syn keyword juliaConstC BottomPressureOldEnum
     751syn keyword juliaConstC CalvingBasinIdEnum
    748752syn keyword juliaConstC CalvingCalvingrateEnum
    749753syn keyword juliaConstC CalvingHabFractionEnum
     
    13791383syn keyword juliaConstC CalvingParameterizationEnum
    13801384syn keyword juliaConstC CalvingVonmisesEnum
     1385syn keyword juliaConstC CalvingVonmisesADEnum
    13811386syn keyword juliaConstC CalvingPollardEnum
    13821387syn keyword juliaConstC CfdragcoeffabsgradEnum
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r27686 r27688  
    116116              else if (strcmp(name,"BasalforcingsUpperwaterElevation")==0) return BasalforcingsUpperwaterElevationEnum;
    117117              else if (strcmp(name,"BasalforcingsUpperwaterMeltingRate")==0) return BasalforcingsUpperwaterMeltingRateEnum;
     118              else if (strcmp(name,"CalvingADStressThresholdFloatingice")==0) return CalvingADStressThresholdFloatingiceEnum;
     119              else if (strcmp(name,"CalvingADStressThresholdGroundedice")==0) return CalvingADStressThresholdGroundediceEnum;
    118120              else if (strcmp(name,"CalvingCrevasseDepth")==0) return CalvingCrevasseDepthEnum;
    119121              else if (strcmp(name,"CalvingCrevasseThreshold")==0) return CalvingCrevasseThresholdEnum;
     
    133135              else if (strcmp(name,"CalvingVelUpperbound")==0) return CalvingVelUpperboundEnum;
    134136              else if (strcmp(name,"CalvingRc")==0) return CalvingRcEnum;
     137              else if (strcmp(name,"CalvingNumberofBasins")==0) return CalvingNumberofBasinsEnum;
    135138              else if (strcmp(name,"ConfigurationType")==0) return ConfigurationTypeEnum;
    136               else if (strcmp(name,"ConstantsG")==0) return ConstantsGEnum;
    137               else if (strcmp(name,"ConstantsNewtonGravity")==0) return ConstantsNewtonGravityEnum;
    138               else if (strcmp(name,"ConstantsReferencetemperature")==0) return ConstantsReferencetemperatureEnum;
    139139         else stage=2;
    140140   }
    141141   if(stage==2){
    142               if (strcmp(name,"ConstantsYts")==0) return ConstantsYtsEnum;
     142              if (strcmp(name,"ConstantsG")==0) return ConstantsGEnum;
     143              else if (strcmp(name,"ConstantsNewtonGravity")==0) return ConstantsNewtonGravityEnum;
     144              else if (strcmp(name,"ConstantsReferencetemperature")==0) return ConstantsReferencetemperatureEnum;
     145              else if (strcmp(name,"ConstantsYts")==0) return ConstantsYtsEnum;
    143146              else if (strcmp(name,"ControlInputSizeM")==0) return ControlInputSizeMEnum;
    144147              else if (strcmp(name,"ControlInputSizeN")==0) return ControlInputSizeNEnum;
     
    257260              else if (strcmp(name,"Hydrologyarmamalagcoefs")==0) return HydrologyarmamalagcoefsEnum;
    258261              else if (strcmp(name,"HydrologyarmamaOrder")==0) return HydrologyarmamaOrderEnum;
    259               else if (strcmp(name,"HydrologyarmaMonthlyFactors")==0) return HydrologyarmaMonthlyFactorsEnum;
    260               else if (strcmp(name,"HydrologyarmaNumBreaks")==0) return HydrologyarmaNumBreaksEnum;
    261               else if (strcmp(name,"HydrologyarmaNumParams")==0) return HydrologyarmaNumParamsEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"Hydrologyarmapolyparams")==0) return HydrologyarmapolyparamsEnum;
     265              if (strcmp(name,"HydrologyarmaMonthlyFactors")==0) return HydrologyarmaMonthlyFactorsEnum;
     266              else if (strcmp(name,"HydrologyarmaNumBreaks")==0) return HydrologyarmaNumBreaksEnum;
     267              else if (strcmp(name,"HydrologyarmaNumParams")==0) return HydrologyarmaNumParamsEnum;
     268              else if (strcmp(name,"Hydrologyarmapolyparams")==0) return HydrologyarmapolyparamsEnum;
    266269              else if (strcmp(name,"HydrologyarmaTimestep")==0) return HydrologyarmaTimestepEnum;
    267270              else if (strcmp(name,"HydrologyAveraging")==0) return HydrologyAveragingEnum;
     
    380383              else if (strcmp(name,"MasstransportRequestedOutputs")==0) return MasstransportRequestedOutputsEnum;
    381384              else if (strcmp(name,"MasstransportStabilization")==0) return MasstransportStabilizationEnum;
    382               else if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum;
    383               else if (strcmp(name,"MaterialsEarthDensity")==0) return MaterialsEarthDensityEnum;
    384               else if (strcmp(name,"MaterialsEffectiveconductivityAveraging")==0) return MaterialsEffectiveconductivityAveragingEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"MaterialsHeatcapacity")==0) return MaterialsHeatcapacityEnum;
     388              if (strcmp(name,"MaterialsBeta")==0) return MaterialsBetaEnum;
     389              else if (strcmp(name,"MaterialsEarthDensity")==0) return MaterialsEarthDensityEnum;
     390              else if (strcmp(name,"MaterialsEffectiveconductivityAveraging")==0) return MaterialsEffectiveconductivityAveragingEnum;
     391              else if (strcmp(name,"MaterialsHeatcapacity")==0) return MaterialsHeatcapacityEnum;
    389392              else if (strcmp(name,"MaterialsLatentheat")==0) return MaterialsLatentheatEnum;
    390393              else if (strcmp(name,"MaterialsMeltingpoint")==0) return MaterialsMeltingpointEnum;
     
    503506              else if (strcmp(name,"SolidearthSettingsHoriz")==0) return SolidearthSettingsHorizEnum;
    504507              else if (strcmp(name,"SolidearthSettingsMaxiter")==0) return SolidearthSettingsMaxiterEnum;
    505               else if (strcmp(name,"SolidearthSettingsGrdOcean")==0) return SolidearthSettingsGrdOceanEnum;
    506               else if (strcmp(name,"SolidearthSettingsOceanAreaScaling")==0) return SolidearthSettingsOceanAreaScalingEnum;
    507               else if (strcmp(name,"StochasticForcingCovariance")==0) return StochasticForcingCovarianceEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"StochasticForcingDefaultDimension")==0) return StochasticForcingDefaultDimensionEnum;
     511              if (strcmp(name,"SolidearthSettingsGrdOcean")==0) return SolidearthSettingsGrdOceanEnum;
     512              else if (strcmp(name,"SolidearthSettingsOceanAreaScaling")==0) return SolidearthSettingsOceanAreaScalingEnum;
     513              else if (strcmp(name,"StochasticForcingCovariance")==0) return StochasticForcingCovarianceEnum;
     514              else if (strcmp(name,"StochasticForcingDefaultDimension")==0) return StochasticForcingDefaultDimensionEnum;
    512515              else if (strcmp(name,"StochasticForcingDimensions")==0) return StochasticForcingDimensionsEnum;
    513516              else if (strcmp(name,"StochasticForcingFields")==0) return StochasticForcingFieldsEnum;
     
    626629              else if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum;
    627630              else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
    628               else if (strcmp(name,"Step")==0) return StepEnum;
    629               else if (strcmp(name,"Steps")==0) return StepsEnum;
    630               else if (strcmp(name,"StressbalanceAbstol")==0) return StressbalanceAbstolEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"StressbalanceFSreconditioning")==0) return StressbalanceFSreconditioningEnum;
     634              if (strcmp(name,"Step")==0) return StepEnum;
     635              else if (strcmp(name,"Steps")==0) return StepsEnum;
     636              else if (strcmp(name,"StressbalanceAbstol")==0) return StressbalanceAbstolEnum;
     637              else if (strcmp(name,"StressbalanceFSreconditioning")==0) return StressbalanceFSreconditioningEnum;
    635638              else if (strcmp(name,"StressbalanceIsnewton")==0) return StressbalanceIsnewtonEnum;
    636639              else if (strcmp(name,"StressbalanceMaxiter")==0) return StressbalanceMaxiterEnum;
     
    749752              else if (strcmp(name,"BasalforcingsPicoSubShelfOceanTemp")==0) return BasalforcingsPicoSubShelfOceanTempEnum;
    750753              else if (strcmp(name,"BasalStressx")==0) return BasalStressxEnum;
    751               else if (strcmp(name,"BasalStressy")==0) return BasalStressyEnum;
    752               else if (strcmp(name,"BasalStress")==0) return BasalStressEnum;
    753               else if (strcmp(name,"Base")==0) return BaseEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"BaseOld")==0) return BaseOldEnum;
     757              if (strcmp(name,"BasalStressy")==0) return BasalStressyEnum;
     758              else if (strcmp(name,"BasalStress")==0) return BasalStressEnum;
     759              else if (strcmp(name,"Base")==0) return BaseEnum;
     760              else if (strcmp(name,"BaseOld")==0) return BaseOldEnum;
    758761              else if (strcmp(name,"BaseSlopeX")==0) return BaseSlopeXEnum;
    759762              else if (strcmp(name,"BaseSlopeY")==0) return BaseSlopeYEnum;
     
    773776              else if (strcmp(name,"BottomPressure")==0) return BottomPressureEnum;
    774777              else if (strcmp(name,"BottomPressureOld")==0) return BottomPressureOldEnum;
     778              else if (strcmp(name,"CalvingBasinId")==0) return CalvingBasinIdEnum;
    775779              else if (strcmp(name,"CalvingCalvingrate")==0) return CalvingCalvingrateEnum;
    776780              else if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum;
     
    871875              else if (strcmp(name,"GroundinglineHeight")==0) return GroundinglineHeightEnum;
    872876              else if (strcmp(name,"HydraulicPotential")==0) return HydraulicPotentialEnum;
    873               else if (strcmp(name,"HydraulicPotentialOld")==0) return HydraulicPotentialOldEnum;
     877         else stage=8;
     878   }
     879   if(stage==8){
     880              if (strcmp(name,"HydraulicPotentialOld")==0) return HydraulicPotentialOldEnum;
    874881              else if (strcmp(name,"HydrologyBasalFlux")==0) return HydrologyBasalFluxEnum;
    875882              else if (strcmp(name,"HydrologyBasinsId")==0) return HydrologyBasinsIdEnum;
    876883              else if (strcmp(name,"HydrologyBumpHeight")==0) return HydrologyBumpHeightEnum;
    877          else stage=8;
    878    }
    879    if(stage==8){
    880               if (strcmp(name,"HydrologyBumpSpacing")==0) return HydrologyBumpSpacingEnum;
     884              else if (strcmp(name,"HydrologyBumpSpacing")==0) return HydrologyBumpSpacingEnum;
    881885              else if (strcmp(name,"HydrologyChannelConductivity")==0) return HydrologyChannelConductivityEnum;
    882886              else if (strcmp(name,"HydrologydcBasalMoulinInput")==0) return HydrologydcBasalMoulinInputEnum;
     
    994998              else if (strcmp(name,"SealevelBarystaticBpMask")==0) return SealevelBarystaticBpMaskEnum;
    995999              else if (strcmp(name,"SealevelBarystaticBpWeights")==0) return SealevelBarystaticBpWeightsEnum;
    996               else if (strcmp(name,"SealevelBarystaticBpArea")==0) return SealevelBarystaticBpAreaEnum;
     1000         else stage=9;
     1001   }
     1002   if(stage==9){
     1003              if (strcmp(name,"SealevelBarystaticBpArea")==0) return SealevelBarystaticBpAreaEnum;
    9971004              else if (strcmp(name,"SealevelBarystaticBpLoad")==0) return SealevelBarystaticBpLoadEnum;
    9981005              else if (strcmp(name,"SealevelBarystaticOceanMask")==0) return SealevelBarystaticOceanMaskEnum;
    9991006              else if (strcmp(name,"SealevelBarystaticOceanWeights")==0) return SealevelBarystaticOceanWeightsEnum;
    1000          else stage=9;
    1001    }
    1002    if(stage==9){
    1003               if (strcmp(name,"SealevelBarystaticOceanArea")==0) return SealevelBarystaticOceanAreaEnum;
     1007              else if (strcmp(name,"SealevelBarystaticOceanArea")==0) return SealevelBarystaticOceanAreaEnum;
    10041008              else if (strcmp(name,"SealevelBarystaticOceanLatbar")==0) return SealevelBarystaticOceanLatbarEnum;
    10051009              else if (strcmp(name,"SealevelBarystaticOceanLongbar")==0) return SealevelBarystaticOceanLongbarEnum;
     
    11171121              else if (strcmp(name,"SmbMassBalanceSnow")==0) return SmbMassBalanceSnowEnum;
    11181122              else if (strcmp(name,"SmbMassBalanceIce")==0) return SmbMassBalanceIceEnum;
    1119               else if (strcmp(name,"SmbMassBalanceSemic")==0) return SmbMassBalanceSemicEnum;
     1123         else stage=10;
     1124   }
     1125   if(stage==10){
     1126              if (strcmp(name,"SmbMassBalanceSemic")==0) return SmbMassBalanceSemicEnum;
    11201127              else if (strcmp(name,"SmbMassBalanceSubstep")==0) return SmbMassBalanceSubstepEnum;
    11211128              else if (strcmp(name,"SmbMassBalanceTransient")==0) return SmbMassBalanceTransientEnum;
    11221129              else if (strcmp(name,"SmbMask")==0) return SmbMaskEnum;
    1123          else stage=10;
    1124    }
    1125    if(stage==10){
    1126               if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum;
     1130              else if (strcmp(name,"SmbMeanLHF")==0) return SmbMeanLHFEnum;
    11271131              else if (strcmp(name,"SmbMeanSHF")==0) return SmbMeanSHFEnum;
    11281132              else if (strcmp(name,"SmbMeanULW")==0) return SmbMeanULWEnum;
     
    12401244              else if (strcmp(name,"VxAverage")==0) return VxAverageEnum;
    12411245              else if (strcmp(name,"VxBase")==0) return VxBaseEnum;
    1242               else if (strcmp(name,"VxDebris")==0) return VxDebrisEnum;
     1246         else stage=11;
     1247   }
     1248   if(stage==11){
     1249              if (strcmp(name,"VxDebris")==0) return VxDebrisEnum;
    12431250              else if (strcmp(name,"Vx")==0) return VxEnum;
    12441251              else if (strcmp(name,"VxMesh")==0) return VxMeshEnum;
    12451252              else if (strcmp(name,"VxObs")==0) return VxObsEnum;
    1246          else stage=11;
    1247    }
    1248    if(stage==11){
    1249               if (strcmp(name,"VxShear")==0) return VxShearEnum;
     1253              else if (strcmp(name,"VxShear")==0) return VxShearEnum;
    12501254              else if (strcmp(name,"VxSurface")==0) return VxSurfaceEnum;
    12511255              else if (strcmp(name,"VyAverage")==0) return VyAverageEnum;
     
    13631367              else if (strcmp(name,"Outputdefinition85")==0) return Outputdefinition85Enum;
    13641368              else if (strcmp(name,"Outputdefinition86")==0) return Outputdefinition86Enum;
    1365               else if (strcmp(name,"Outputdefinition87")==0) return Outputdefinition87Enum;
     1369         else stage=12;
     1370   }
     1371   if(stage==12){
     1372              if (strcmp(name,"Outputdefinition87")==0) return Outputdefinition87Enum;
    13661373              else if (strcmp(name,"Outputdefinition88")==0) return Outputdefinition88Enum;
    13671374              else if (strcmp(name,"Outputdefinition89")==0) return Outputdefinition89Enum;
    13681375              else if (strcmp(name,"Outputdefinition8")==0) return Outputdefinition8Enum;
    1369          else stage=12;
    1370    }
    1371    if(stage==12){
    1372               if (strcmp(name,"Outputdefinition90")==0) return Outputdefinition90Enum;
     1376              else if (strcmp(name,"Outputdefinition90")==0) return Outputdefinition90Enum;
    13731377              else if (strcmp(name,"Outputdefinition91")==0) return Outputdefinition91Enum;
    13741378              else if (strcmp(name,"Outputdefinition92")==0) return Outputdefinition92Enum;
     
    14211425              else if (strcmp(name,"CalvingParameterization")==0) return CalvingParameterizationEnum;
    14221426              else if (strcmp(name,"CalvingVonmises")==0) return CalvingVonmisesEnum;
     1427              else if (strcmp(name,"CalvingVonmisesAD")==0) return CalvingVonmisesADEnum;
    14231428              else if (strcmp(name,"CalvingPollard")==0) return CalvingPollardEnum;
    14241429              else if (strcmp(name,"Cfdragcoeffabsgrad")==0) return CfdragcoeffabsgradEnum;
     
    14851490              else if (strcmp(name,"FSvelocity")==0) return FSvelocityEnum;
    14861491              else if (strcmp(name,"FemModel")==0) return FemModelEnum;
    1487               else if (strcmp(name,"FileParam")==0) return FileParamEnum;
     1492         else stage=13;
     1493   }
     1494   if(stage==13){
     1495              if (strcmp(name,"FileParam")==0) return FileParamEnum;
    14881496              else if (strcmp(name,"FixedTimestepping")==0) return FixedTimesteppingEnum;
    14891497              else if (strcmp(name,"FloatingArea")==0) return FloatingAreaEnum;
    14901498              else if (strcmp(name,"FloatingAreaScaled")==0) return FloatingAreaScaledEnum;
    14911499              else if (strcmp(name,"FloatingMeltRate")==0) return FloatingMeltRateEnum;
    1492          else stage=13;
    1493    }
    1494    if(stage==13){
    1495               if (strcmp(name,"Free")==0) return FreeEnum;
     1500              else if (strcmp(name,"Free")==0) return FreeEnum;
    14961501              else if (strcmp(name,"FreeSurfaceBaseAnalysis")==0) return FreeSurfaceBaseAnalysisEnum;
    14971502              else if (strcmp(name,"FreeSurfaceTopAnalysis")==0) return FreeSurfaceTopAnalysisEnum;
     
    16081613              else if (strcmp(name,"MaxAbsVx")==0) return MaxAbsVxEnum;
    16091614              else if (strcmp(name,"MaxAbsVy")==0) return MaxAbsVyEnum;
    1610               else if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
     1615         else stage=14;
     1616   }
     1617   if(stage==14){
     1618              if (strcmp(name,"MaxAbsVz")==0) return MaxAbsVzEnum;
    16111619              else if (strcmp(name,"MaxDivergence")==0) return MaxDivergenceEnum;
    16121620              else if (strcmp(name,"MaxVel")==0) return MaxVelEnum;
    16131621              else if (strcmp(name,"MaxVx")==0) return MaxVxEnum;
    16141622              else if (strcmp(name,"MaxVy")==0) return MaxVyEnum;
    1615          else stage=14;
    1616    }
    1617    if(stage==14){
    1618               if (strcmp(name,"MaxVz")==0) return MaxVzEnum;
     1623              else if (strcmp(name,"MaxVz")==0) return MaxVzEnum;
    16191624              else if (strcmp(name,"Melange")==0) return MelangeEnum;
    16201625              else if (strcmp(name,"MeltingAnalysis")==0) return MeltingAnalysisEnum;
     
    17311736              else if (strcmp(name,"StressbalanceConvergenceNumSteps")==0) return StressbalanceConvergenceNumStepsEnum;
    17321737              else if (strcmp(name,"StressbalanceSIAAnalysis")==0) return StressbalanceSIAAnalysisEnum;
    1733               else if (strcmp(name,"StressbalanceSolution")==0) return StressbalanceSolutionEnum;
     1738         else stage=15;
     1739   }
     1740   if(stage==15){
     1741              if (strcmp(name,"StressbalanceSolution")==0) return StressbalanceSolutionEnum;
    17341742              else if (strcmp(name,"StressbalanceVerticalAnalysis")==0) return StressbalanceVerticalAnalysisEnum;
    17351743              else if (strcmp(name,"StringArrayParam")==0) return StringArrayParamEnum;
    17361744              else if (strcmp(name,"StringExternalResult")==0) return StringExternalResultEnum;
    17371745              else if (strcmp(name,"StringParam")==0) return StringParamEnum;
    1738          else stage=15;
    1739    }
    1740    if(stage==15){
    1741               if (strcmp(name,"SubelementFriction1")==0) return SubelementFriction1Enum;
     1746              else if (strcmp(name,"SubelementFriction1")==0) return SubelementFriction1Enum;
    17421747              else if (strcmp(name,"SubelementFriction2")==0) return SubelementFriction2Enum;
    17431748              else if (strcmp(name,"SubelementMelt1")==0) return SubelementMelt1Enum;
  • issm/trunk-jpl/src/c/shared/io/Marshalling/IoCodeConversions.cpp

    r27666 r27688  
    282282                case 9:  return CalvingParameterizationEnum;
    283283                case 10: return CalvingPollardEnum;
     284                case 11: return CalvingVonmisesADEnum;
    284285                default: _error_("Marshalled Calving law code \""<<enum_in<<"\" not supported yet");
    285286        }
Note: See TracChangeset for help on using the changeset viewer.