Changeset 19479


Ignore:
Timestamp:
Aug 4, 2015, 4:22:56 PM (11 years ago)
Author:
seroussi
Message:

New: added new basalforcings and friction law classes for mismip+

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

Legend:

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

    r19386 r19479  
    828828                        iomodel->FetchDataToInput(elements,TemperatureEnum);
    829829                        break;
     830                case 7:
     831                        iomodel->FetchDataToInput(elements,FrictionCoefficientEnum);
     832                        iomodel->FetchDataToInput(elements,FrictionCoefficientcoulombEnum);
     833                        iomodel->FetchDataToInput(elements,FrictionPEnum);
     834                        iomodel->FetchDataToInput(elements,FrictionQEnum);
     835                        break;
    830836                default:
    831837                        _error_("not supported");
  • issm/trunk-jpl/src/c/classes/Elements/Element.cpp

    r19395 r19479  
    99#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
    1010#endif
     11#include <math.h>
    1112#include <stdio.h>
    1213#include <string.h>
    … …  
    16481649}
    16491650/*}}}*/
     1651void       Element::MismipFloatingiceMeltingRate(){/*{{{*/
     1652
     1653        int numvertices      = this->GetNumberOfVertices();
     1654        IssmDouble  meltratefactor,thresholdthickness,upperdepthmelt;
     1655        IssmDouble* base     = xNew<IssmDouble>(numvertices);
     1656        IssmDouble* bed      = xNew<IssmDouble>(numvertices);
     1657        IssmDouble* values   = xNew<IssmDouble>(numvertices);
     1658
     1659        parameters->FindParam(&meltratefactor,BasalforcingsMeltrateFactorEnum);
     1660        parameters->FindParam(&thresholdthickness,BasalforcingsThresholdThicknessEnum);
     1661        parameters->FindParam(&upperdepthmelt,BasalforcingsUpperdepthMeltEnum);
     1662
     1663        this->GetInputListOnVertices(base,BaseEnum);
     1664        this->GetInputListOnVertices(bed,BedEnum);
     1665        for(int i=0;i<numvertices;i++){
     1666                if(base[i]<upperdepthmelt)  values[i]=0;
     1667                else values[i]=meltratefactor*(tanh(base[i]-bed[i])/thresholdthickness)*(upperdepthmelt-bed[i]);
     1668        }
     1669
     1670        this->AddInput(BasalforcingsFloatingiceMeltingRateEnum,values,P1Enum);
     1671        xDelete<IssmDouble>(base);
     1672        xDelete<IssmDouble>(bed);
     1673        xDelete<IssmDouble>(values);
     1674
     1675}/*}}}*/
    16501676ElementMatrix* Element::NewElementMatrix(int approximation_enum){/*{{{*/
    16511677        return new ElementMatrix(nodes,this->GetNumberOfNodes(),this->parameters,approximation_enum);
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r19476 r19479  
    123123                void               MarshallElement(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction,int numanalyses);
    124124                void               MigrateGroundingLine(IssmDouble* sheet_ungrounding);
     125                void               MismipFloatingiceMeltingRate();
    125126                ElementMatrix*     NewElementMatrix(int approximation_enum=NoneApproximationEnum);
    126127                ElementMatrix*     NewElementMatrixCoupling(int number_nodes,int approximation_enum=NoneApproximationEnum);
  • issm/trunk-jpl/src/c/classes/Loads/Friction.cpp

    r19373 r19479  
    211211                        GetAlpha2WeertmanTemp(palpha2,gauss);
    212212                        break;
     213                case 7:
     214                        GetAlpha2Coulomb(palpha2,gauss);
     215                        break;
    213216          default:
    214217                        _error_("not supported");
    215218        }
    216219
     220}/*}}}*/
     221void Friction::GetAlpha2Coulomb(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
     222
     223        /*This routine calculates the basal friction coefficient
     224          alpha2= drag^2 * Neff ^r * | vel | ^(s-1), with Neff=rho_ice*g*thickness+rho_ice*g*base, r=q/p and s=1/p**/
     225
     226        /*diverse: */
     227        IssmDouble  r,s;
     228        IssmDouble  drag_p, drag_q;
     229        IssmDouble  Neff;
     230        IssmDouble  thickness,base,bed,floatation_thickness;
     231        IssmDouble  vx,vy,vz,vmag;
     232        IssmDouble  drag_coefficient,drag_coefficient_coulomb;
     233        IssmDouble  alpha2,alpha2_coulomb;
     234
     235        /*Recover parameters: */
     236        element->GetInputValue(&drag_p,FrictionPEnum);
     237        element->GetInputValue(&drag_q,FrictionQEnum);
     238        element->GetInputValue(&thickness, gauss,ThicknessEnum);
     239        element->GetInputValue(&base, gauss,BaseEnum);
     240        element->GetInputValue(&bed, gauss,BedEnum);
     241        element->GetInputValue(&drag_coefficient, gauss,FrictionCoefficientEnum);
     242        element->GetInputValue(&drag_coefficient_coulomb, gauss,FrictionCoefficientcoulombEnum);
     243        IssmDouble rho_freshwater   = element->GetMaterialParameter(MaterialsRhoFreshwaterEnum);
     244        IssmDouble rho_water        = element->GetMaterialParameter(MaterialsRhoSeawaterEnum);
     245        IssmDouble rho_ice          = element->GetMaterialParameter(MaterialsRhoIceEnum);
     246        IssmDouble gravity          = element->GetMaterialParameter(ConstantsGEnum);
     247
     248        //compute r and q coefficients: */
     249        r=drag_q/drag_p;
     250        s=1./drag_p;
     251
     252        //From base and thickness, compute effective pressure when drag is viscous:
     253        Neff=gravity*(rho_ice*thickness+rho_water*base);
     254        if(Neff<0)Neff=0;
     255
     256        switch(dim){
     257                case 1:
     258                        element->GetInputValue(&vx,gauss,VxEnum);
     259                        vmag=sqrt(vx*vx);
     260                        break;
     261                case 2:
     262                        element->GetInputValue(&vx,gauss,VxEnum);
     263                        element->GetInputValue(&vy,gauss,VyEnum);
     264                        vmag=sqrt(vx*vx+vy*vy);
     265                        break;
     266                case 3:
     267                        element->GetInputValue(&vx,gauss,VxEnum);
     268                        element->GetInputValue(&vy,gauss,VyEnum);
     269                        element->GetInputValue(&vz,gauss,VzEnum);
     270                        vmag=sqrt(vx*vx+vy*vy+vz*vz);
     271                        break;
     272                default:
     273                        _error_("not supported");
     274        }
     275
     276        /*Check to prevent dividing by zero if vmag==0*/
     277        if(vmag==0. && (s-1.)<0.) alpha2=0.;
     278        else alpha2=drag_coefficient*drag_coefficient*pow(Neff,r)*pow(vmag,(s-1.));
     279
     280        floatation_thickness=0;
     281        if(bed<0) floatation_thickness=-rho_freshwater/rho_ice*bed;
     282        if(vmag==0.) alpha2_coulomb=0.;
     283        else alpha2_coulomb=drag_coefficient_coulomb*drag_coefficient_coulomb*rho_water*gravity*(thickness-floatation_thickness)/vmag;
     284
     285        if(alpha2_coulomb<alpha2) alpha2=alpha2_coulomb;
     286
     287        _assert_(!xIsNan<IssmDouble>(alpha2));
     288
     289        /*Assign output pointers:*/
     290        *palpha2=alpha2;
    217291}/*}}}*/
    218292void Friction::GetAlpha2Hydro(IssmDouble* palpha2, Gauss* gauss){/*{{{*/
  • issm/trunk-jpl/src/c/classes/Loads/Friction.h

    r18992 r19479  
    3333                void  GetAlphaHydroComplement(IssmDouble* alpha_complement,Gauss* gauss);
    3434                void  GetAlpha2(IssmDouble* palpha2,Gauss* gauss);
     35                void  GetAlpha2Coulomb(IssmDouble* palpha2,Gauss* gauss);
    3536                void  GetAlpha2Hydro(IssmDouble* palpha2,Gauss* gauss);
    3637                void  GetAlpha2Temp(IssmDouble* palpha2,Gauss* gauss);
  • issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp

    r18521 r19479  
    2424                        LinearFloatingiceMeltingRatex(femmodel);
    2525                        break;
     26                case MismipFloatingMeltRateEnum:
     27                        if(VerboseSolution())_printf_(" call Mismip Floating melting rate module\n");
     28                        MismipFloatingiceMeltingRatex(femmodel);
     29                        break;
    2630                default:
    2731                        _error_("Basal forcing model "<<EnumToStringx(basalforcing_model)<<" not supported yet");
    … …  
    3842
    3943}/*}}}*/
     44void MismipFloatingiceMeltingRatex(FemModel* femmodel){/*{{{*/
     45
     46        for(int i=0;i<femmodel->elements->Size();i++){
     47                Element* element=xDynamicCast<Element*>(femmodel->elements->GetObjectByOffset(i));
     48                element->MismipFloatingiceMeltingRate();
     49        }
     50
     51}/*}}}*/
  • issm/trunk-jpl/src/c/modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.h

    r18093 r19479  
    1111void FloatingiceMeltingRatex(FemModel* femmodel);
    1212void LinearFloatingiceMeltingRatex(FemModel* femmodel);
     13void MismipFloatingiceMeltingRatex(FemModel* femmodel);
    1314
    1415#endif  /* _FloatingiceMeltingRatex_H*/
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r19333 r19479  
    182182                        parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsUpperwaterElevationEnum));
    183183                        break;
     184                case MismipFloatingMeltRateEnum:
     185                        parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsMeltrateFactorEnum));
     186                        parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsThresholdThicknessEnum));
     187                        parameters->AddObject(iomodel->CopyConstantObject(BasalforcingsUpperdepthMeltEnum));
     188                        break;
    184189                default:
    185190                        _error_("Basal forcing model "<<EnumToStringx(smb_model)<<" not supported yet");
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r19381 r19479  
    4848        BasalforcingsDeepwaterElevationEnum,
    4949        BasalforcingsUpperwaterElevationEnum,
     50        BasalforcingsMeltrateFactorEnum,
     51        BasalforcingsThresholdThicknessEnum,
     52        BasalforcingsUpperdepthMeltEnum,
    5053        FloatingMeltRateEnum,
    5154        LinearFloatingMeltRateEnum,
     55        MismipFloatingMeltRateEnum,
    5256        BedEnum,
    5357        BaseEnum,
    … …  
    9397        FrictionAsEnum,
    9498        FrictionCoefficientEnum,
     99        FrictionCoefficientcoulombEnum,
    95100        FrictionPEnum,
    96101        FrictionQEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r19381 r19479  
    5454                case BasalforcingsDeepwaterElevationEnum : return "BasalforcingsDeepwaterElevation";
    5555                case BasalforcingsUpperwaterElevationEnum : return "BasalforcingsUpperwaterElevation";
     56                case BasalforcingsMeltrateFactorEnum : return "BasalforcingsMeltrateFactor";
     57                case BasalforcingsThresholdThicknessEnum : return "BasalforcingsThresholdThickness";
     58                case BasalforcingsUpperdepthMeltEnum : return "BasalforcingsUpperdepthMelt";
    5659                case FloatingMeltRateEnum : return "FloatingMeltRate";
    5760                case LinearFloatingMeltRateEnum : return "LinearFloatingMeltRate";
     61                case MismipFloatingMeltRateEnum : return "MismipFloatingMeltRate";
    5862                case BedEnum : return "Bed";
    5963                case BaseEnum : return "Base";
    … …  
    99103                case FrictionAsEnum : return "FrictionAs";
    100104                case FrictionCoefficientEnum : return "FrictionCoefficient";
     105                case FrictionCoefficientcoulombEnum : return "FrictionCoefficientcoulomb";
    101106                case FrictionPEnum : return "FrictionP";
    102107                case FrictionQEnum : return "FrictionQ";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r19381 r19479  
    5454              else if (strcmp(name,"BasalforcingsDeepwaterElevation")==0) return BasalforcingsDeepwaterElevationEnum;
    5555              else if (strcmp(name,"BasalforcingsUpperwaterElevation")==0) return BasalforcingsUpperwaterElevationEnum;
     56              else if (strcmp(name,"BasalforcingsMeltrateFactor")==0) return BasalforcingsMeltrateFactorEnum;
     57              else if (strcmp(name,"BasalforcingsThresholdThickness")==0) return BasalforcingsThresholdThicknessEnum;
     58              else if (strcmp(name,"BasalforcingsUpperdepthMelt")==0) return BasalforcingsUpperdepthMeltEnum;
    5659              else if (strcmp(name,"FloatingMeltRate")==0) return FloatingMeltRateEnum;
    5760              else if (strcmp(name,"LinearFloatingMeltRate")==0) return LinearFloatingMeltRateEnum;
     61              else if (strcmp(name,"MismipFloatingMeltRate")==0) return MismipFloatingMeltRateEnum;
    5862              else if (strcmp(name,"Bed")==0) return BedEnum;
    5963              else if (strcmp(name,"Base")==0) return BaseEnum;
    … …  
    99103              else if (strcmp(name,"FrictionAs")==0) return FrictionAsEnum;
    100104              else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
     105              else if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum;
    101106              else if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
    102107              else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
    … …  
    132137              else if (strcmp(name,"HydrologydcSedimentTransmitivity")==0) return HydrologydcSedimentTransmitivityEnum;
    133138              else if (strcmp(name,"HydrologydcWaterCompressibility")==0) return HydrologydcWaterCompressibilityEnum;
    134               else if (strcmp(name,"HydrologydcSpceplHead")==0) return HydrologydcSpceplHeadEnum;
     139         else stage=2;
     140   }
     141   if(stage==2){
     142              if (strcmp(name,"HydrologydcSpceplHead")==0) return HydrologydcSpceplHeadEnum;
    135143              else if (strcmp(name,"HydrologydcMaskEplactiveNode")==0) return HydrologydcMaskEplactiveNodeEnum;
    136144              else if (strcmp(name,"HydrologydcMaskEplactiveElt")==0) return HydrologydcMaskEplactiveEltEnum;
    137145              else if (strcmp(name,"HydrologydcEplCompressibility")==0) return HydrologydcEplCompressibilityEnum;
    138146              else if (strcmp(name,"HydrologydcEplPorosity")==0) return HydrologydcEplPorosityEnum;
    139          else stage=2;
    140    }
    141    if(stage==2){
    142               if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum;
     147              else if (strcmp(name,"HydrologydcEplInitialThickness")==0) return HydrologydcEplInitialThicknessEnum;
    143148              else if (strcmp(name,"HydrologydcEplColapseThickness")==0) return HydrologydcEplColapseThicknessEnum;
    144149              else if (strcmp(name,"HydrologydcEplMaxThickness")==0) return HydrologydcEplMaxThicknessEnum;
    … …  
    255260              else if (strcmp(name,"MaterialsMantleDensity")==0) return MaterialsMantleDensityEnum;
    256261              else if (strcmp(name,"MeshAverageVertexConnectivity")==0) return MeshAverageVertexConnectivityEnum;
    257               else if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
     262         else stage=3;
     263   }
     264   if(stage==3){
     265              if (strcmp(name,"MeshElements2d")==0) return MeshElements2dEnum;
    258266              else if (strcmp(name,"MeshElements")==0) return MeshElementsEnum;
    259267              else if (strcmp(name,"MeshLowerelements")==0) return MeshLowerelementsEnum;
    260268              else if (strcmp(name,"MeshNumberofelements2d")==0) return MeshNumberofelements2dEnum;
    261269              else if (strcmp(name,"MeshNumberofelements")==0) return MeshNumberofelementsEnum;
    262          else stage=3;
    263    }
    264    if(stage==3){
    265               if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
     270              else if (strcmp(name,"MeshNumberoflayers")==0) return MeshNumberoflayersEnum;
    266271              else if (strcmp(name,"MeshNumberofvertices2d")==0) return MeshNumberofvertices2dEnum;
    267272              else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
    … …  
    378383              else if (strcmp(name,"SurfaceforcingsDpermil")==0) return SurfaceforcingsDpermilEnum;
    379384              else if (strcmp(name,"SMBgradients")==0) return SMBgradientsEnum;
    380               else if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
     385         else stage=4;
     386   }
     387   if(stage==4){
     388              if (strcmp(name,"SurfaceforcingsMonthlytemperatures")==0) return SurfaceforcingsMonthlytemperaturesEnum;
    381389              else if (strcmp(name,"SurfaceforcingsHref")==0) return SurfaceforcingsHrefEnum;
    382390              else if (strcmp(name,"SurfaceforcingsSmbref")==0) return SurfaceforcingsSmbrefEnum;
    383391              else if (strcmp(name,"SurfaceforcingsBPos")==0) return SurfaceforcingsBPosEnum;
    384392              else if (strcmp(name,"SurfaceforcingsBNeg")==0) return SurfaceforcingsBNegEnum;
    385          else stage=4;
    386    }
    387    if(stage==4){
    388               if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
     393              else if (strcmp(name,"SMBhenning")==0) return SMBhenningEnum;
    389394              else if (strcmp(name,"SMBcomponents")==0) return SMBcomponentsEnum;
    390395              else if (strcmp(name,"SurfaceforcingsAccumulation")==0) return SurfaceforcingsAccumulationEnum;
    … …  
    501506              else if (strcmp(name,"IntParam")==0) return IntParamEnum;
    502507              else if (strcmp(name,"IntVecParam")==0) return IntVecParamEnum;
    503               else if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
     508         else stage=5;
     509   }
     510   if(stage==5){
     511              if (strcmp(name,"TransientParam")==0) return TransientParamEnum;
    504512              else if (strcmp(name,"Matice")==0) return MaticeEnum;
    505513              else if (strcmp(name,"Matdamageice")==0) return MatdamageiceEnum;
    506514              else if (strcmp(name,"Matpar")==0) return MatparEnum;
    507515              else if (strcmp(name,"Node")==0) return NodeEnum;
    508          else stage=5;
    509    }
    510    if(stage==5){
    511               if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
     516              else if (strcmp(name,"Numericalflux")==0) return NumericalfluxEnum;
    512517              else if (strcmp(name,"NumericalfluxType")==0) return NumericalfluxTypeEnum;
    513518              else if (strcmp(name,"Param")==0) return ParamEnum;
    … …  
    624629              else if (strcmp(name,"DrivingStressX")==0) return DrivingStressXEnum;
    625630              else if (strcmp(name,"DrivingStressY")==0) return DrivingStressYEnum;
    626               else if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
     631         else stage=6;
     632   }
     633   if(stage==6){
     634              if (strcmp(name,"SigmaNN")==0) return SigmaNNEnum;
    627635              else if (strcmp(name,"StressTensor")==0) return StressTensorEnum;
    628636              else if (strcmp(name,"StressTensorxx")==0) return StressTensorxxEnum;
    629637              else if (strcmp(name,"StressTensorxy")==0) return StressTensorxyEnum;
    630638              else if (strcmp(name,"StressTensorxz")==0) return StressTensorxzEnum;
    631          else stage=6;
    632    }
    633    if(stage==6){
    634               if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
     639              else if (strcmp(name,"StressTensoryy")==0) return StressTensoryyEnum;
    635640              else if (strcmp(name,"StressTensoryz")==0) return StressTensoryzEnum;
    636641              else if (strcmp(name,"StressTensorzz")==0) return StressTensorzzEnum;
    … …  
    747752              else if (strcmp(name,"Outputdefinition58")==0) return Outputdefinition58Enum;
    748753              else if (strcmp(name,"Outputdefinition59")==0) return Outputdefinition59Enum;
    749               else if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
     754         else stage=7;
     755   }
     756   if(stage==7){
     757              if (strcmp(name,"Outputdefinition60")==0) return Outputdefinition60Enum;
    750758              else if (strcmp(name,"Outputdefinition61")==0) return Outputdefinition61Enum;
    751759              else if (strcmp(name,"Outputdefinition62")==0) return Outputdefinition62Enum;
    752760              else if (strcmp(name,"Outputdefinition63")==0) return Outputdefinition63Enum;
    753761              else if (strcmp(name,"Outputdefinition64")==0) return Outputdefinition64Enum;
    754          else stage=7;
    755    }
    756    if(stage==7){
    757               if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
     762              else if (strcmp(name,"Outputdefinition65")==0) return Outputdefinition65Enum;
    758763              else if (strcmp(name,"Outputdefinition66")==0) return Outputdefinition66Enum;
    759764              else if (strcmp(name,"Outputdefinition67")==0) return Outputdefinition67Enum;
    … …  
    870875              else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum;
    871876              else if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
    872               else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
     877         else stage=8;
     878   }
     879   if(stage==8){
     880              if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
    873881              else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
    874882              else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
    875883              else if (strcmp(name,"Regular")==0) return RegularEnum;
    876884              else if (strcmp(name,"Scaled")==0) return ScaledEnum;
    877          else stage=8;
    878    }
    879    if(stage==8){
    880               if (strcmp(name,"Separate")==0) return SeparateEnum;
     885              else if (strcmp(name,"Separate")==0) return SeparateEnum;
    881886              else if (strcmp(name,"Sset")==0) return SsetEnum;
    882887              else if (strcmp(name,"Verbose")==0) return VerboseEnum;
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r19381 r19479  
    4646def BasalforcingsDeepwaterElevationEnum(): return StringToEnum("BasalforcingsDeepwaterElevation")[0]
    4747def BasalforcingsUpperwaterElevationEnum(): return StringToEnum("BasalforcingsUpperwaterElevation")[0]
     48def BasalforcingsMeltrateFactorEnum(): return StringToEnum("BasalforcingsMeltrateFactor")[0]
     49def BasalforcingsThresholdThicknessEnum(): return StringToEnum("BasalforcingsThresholdThickness")[0]
     50def BasalforcingsUpperdepthMeltEnum(): return StringToEnum("BasalforcingsUpperdepthMelt")[0]
    4851def FloatingMeltRateEnum(): return StringToEnum("FloatingMeltRate")[0]
    4952def LinearFloatingMeltRateEnum(): return StringToEnum("LinearFloatingMeltRate")[0]
     53def MismipFloatingMeltRateEnum(): return StringToEnum("MismipFloatingMeltRate")[0]
    5054def BedEnum(): return StringToEnum("Bed")[0]
    5155def BaseEnum(): return StringToEnum("Base")[0]
    … …  
    9195def FrictionAsEnum(): return StringToEnum("FrictionAs")[0]
    9296def FrictionCoefficientEnum(): return StringToEnum("FrictionCoefficient")[0]
     97def FrictionCoefficientcoulombEnum(): return StringToEnum("FrictionCoefficientcoulomb")[0]
    9398def FrictionPEnum(): return StringToEnum("FrictionP")[0]
    9499def FrictionQEnum(): return StringToEnum("FrictionQ")[0]
Note: See TracChangeset for help on using the changeset viewer.