Changeset 23652


Ignore:
Timestamp:
01/23/19 13:41:28 (6 years ago)
Author:
youngmc3
Message:

NEW: add new class md.frontalforcings

Location:
issm/trunk-jpl
Files:
4 added
26 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/Makefile.am

    r23644 r23652  
    227227                                        ./modules/FloatingiceMeltingRatex/FloatingiceMeltingRatex.cpp\
    228228                                        ./modules/FloatingiceMeltingRatePicox/FloatingiceMeltingRatePicox.cpp\
     229                                        ./modules/FrontalForcingsx/FrontalForcingsx.cpp\
    229230                                        ./modules/ConfigureObjectsx/ConfigureObjectsx.cpp\
    230231                                        ./modules/SpcNodesx/SpcNodesx.cpp\
  • issm/trunk-jpl/src/c/analyses/LevelsetAnalysis.cpp

    r23644 r23652  
    5858                case DefaultCalvingEnum:
    5959                        iomodel->FetchDataToInput(elements,"md.calving.calvingrate",CalvingCalvingrateEnum);
    60                         iomodel->FetchDataToInput(elements,"md.calving.meltingrate",CalvingMeltingrateEnum);
    6160                        break;
    6261                case CalvingLevermannEnum:
    6362                        iomodel->FetchDataToInput(elements,"md.calving.coeff",CalvinglevermannCoeffEnum);
    64                         iomodel->FetchDataToInput(elements,"md.calving.meltingrate",CalvinglevermannMeltingrateEnum);
    6563                        break;
    6664                case CalvingVonmisesEnum:
    6765                        iomodel->FetchDataToInput(elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum);
    6866                        iomodel->FetchDataToInput(elements,"md.calving.stress_threshold_floatingice",CalvingStressThresholdFloatingiceEnum);
    69                         iomodel->FetchDataToInput(elements,"md.calving.meltingrate",CalvingMeltingrateEnum);
    7067                        break;
    7168                case CalvingMinthicknessEnum:
    72                         iomodel->FetchDataToInput(elements,"md.calving.meltingrate",CalvingMeltingrateEnum);
    7369                        break;
    7470                case CalvingHabEnum:
    75                         iomodel->FetchDataToInput(elements,"md.calving.meltingrate",CalvingMeltingrateEnum);
    7671                        iomodel->FetchDataToInput(elements,"md.calving.flotation_fraction",CalvingHabFractionEnum);
    7772                        break;
    7873                case CalvingCrevasseDepthEnum:
    79                         iomodel->FetchDataToInput(elements,"md.calving.meltingrate",CalvingMeltingrateEnum);
    8074                        iomodel->FetchDataToInput(elements,"md.calving.water_height",WaterheightEnum);
    8175                        break;
     
    8377                        iomodel->FetchDataToInput(elements,"md.calving.stress_threshold_groundedice",CalvingStressThresholdGroundediceEnum);
    8478                        iomodel->FetchDataToInput(elements,"md.calving.stress_threshold_floatingice",CalvingStressThresholdFloatingiceEnum);
    85                         iomodel->FetchDataToInput(elements,"md.calving.meltingrate",CalvingMeltingrateEnum);
    8679                        break;
    8780                default:
    8881                        _error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
     82        }
     83
     84        /*Get frontal melt parameters*/
     85        int melt_parameterization;
     86        iomodel->FindConstant(&melt_parameterization,"md.frontalforcings.melt_parameterization");
     87        switch(melt_parameterization){
     88                case 0:
     89                        iomodel->FetchDataToInput(elements,"md.frontalforcings.meltingrate",CalvingMeltingrateEnum);
     90                        break;
     91                case 1:
     92                        iomodel->FetchDataToInput(elements,"md.frontalforcings.basin",FrontalForcingsBasinIdEnum);
     93                        iomodel->FetchDataToInput(elements,"md.frontalforcings.subglacial_discharge",FrontalForcingsSubglacialDischargeEnum);
     94                        iomodel->FetchDataToInput(elements,"md.frontalforcings.thermalforcing",FrontalForcingsThermalForcingEnum);
     95                break;
     96                default:
     97                        _error_("Frontal forcing model not supported yet");
    8998        }
    9099}
     
    94103        parameters->AddObject(iomodel->CopyConstantObject("md.levelset.reinit_frequency",LevelsetReinitFrequencyEnum));
    95104        parameters->AddObject(iomodel->CopyConstantObject("md.levelset.calving_max",CalvingMaxEnum));
     105        parameters->AddObject(iomodel->CopyConstantObject("md.frontalforcings.melt_parameterization",FrontalForcingsParamEnum));
     106       
    96107        int  calvinglaw;
    97108        iomodel->FindConstant(&calvinglaw,"md.calving.law");
     
    114125                default:
    115126                        _error_("Calving law "<<EnumToStringx(calvinglaw)<<" not supported yet");
     127        }
     128
     129        /*Get frontal melt parameters*/
     130        int melt_parameterization;
     131        iomodel->FindConstant(&melt_parameterization,"md.frontalforcings.melt_parameterization");
     132        if(melt_parameterization==1){
     133                parameters->AddObject(iomodel->CopyConstantObject("md.frontalforcings.numberofbasins",FrontalForcingsNumberofBasinsEnum));
    116134        }
    117135        return;
     
    250268                                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    251269                        }
    252                         meltingrate_input = basalelement->GetInput(CalvinglevermannMeltingrateEnum);     _assert_(meltingrate_input);
     270                        meltingrate_input = basalelement->GetInput(CalvingMeltingrateEnum);     _assert_(meltingrate_input);
    253271                        break;
    254272                case CalvingMinthicknessEnum:
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r23644 r23652  
    223223                virtual void       GetGroundedPart(int* point1,IssmDouble* fraction1,IssmDouble* fraction2, bool* mainlyfloating)=0;
    224224                virtual IssmDouble GetGroundedPortion(IssmDouble* xyz_list)=0;
     225                virtual IssmDouble GetIcefrontArea(){_error_("not implemented");};
    225226                virtual void       GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum)=0;
    226227                virtual void       GetInputValue(IssmDouble* pvalue,Node* node,int enumtype)=0;
     
    300301                virtual void       ResetFSBasalBoundaryCondition()=0;
    301302                virtual void       ResetHooks()=0;
     303                virtual void       RignotMeltParameterization(void){_error_("not implemented yet");};
    302304                virtual void       SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index,int offset,int N,int M)=0;
    303305                virtual void       SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index)=0;
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r23644 r23652  
    13971397
    13981398        return phi;
     1399}
     1400/*}}}*/
     1401IssmDouble Tria::GetIcefrontArea(){/*{{{*/
     1402       
     1403        IssmDouble  bed[NUMVERTICES]; //basinId[NUMVERTICES];
     1404        IssmDouble      Haverage,frontarea;
     1405        IssmDouble  x1,y1,x2,y2,distance;
     1406        IssmDouble lsf[NUMVERTICES], Haux[NUMVERTICES], surfaces[NUMVERTICES], bases[NUMVERTICES];
     1407        int* indices=NULL;
     1408        IssmDouble* H=NULL;;
     1409        int nrfrontbed,numiceverts;
     1410
     1411        /*Retrieve all inputs and parameters*/
     1412        GetInputListOnVertices(&bed[0],BedEnum);
     1413        GetInputListOnVertices(&surfaces[0],SurfaceEnum);
     1414        GetInputListOnVertices(&bases[0],BaseEnum);
     1415        GetInputListOnVertices(&lsf[0],MaskIceLevelsetEnum);
     1416
     1417        if(!IsZeroLevelset(MaskIceLevelsetEnum)) return 0;
     1418
     1419        nrfrontbed=0;
     1420        for(int i=0;i<NUMVERTICES;i++){
     1421                /*Find if bed<0*/
     1422                if(bed[i]<0.) nrfrontbed++;
     1423        }
     1424
     1425        if(nrfrontbed==3){
     1426                /*2. Find coordinates of where levelset crosses 0*/
     1427                int         numiceverts;
     1428                IssmDouble  s[2],x[2],y[2];
     1429                int        *indices = NULL;
     1430                this->GetLevelsetIntersection(&indices, &numiceverts,&s[0],MaskIceLevelsetEnum,0.);
     1431                _assert_(numiceverts);
     1432
     1433                /*3 Write coordinates*/
     1434                IssmDouble  xyz_list[NUMVERTICES][3];
     1435                ::GetVerticesCoordinates(&xyz_list[0][0],this->vertices,NUMVERTICES);
     1436                int counter = 0;
     1437                if((numiceverts>0) && (numiceverts<NUMVERTICES)){
     1438                        for(int i=0;i<numiceverts;i++){
     1439                                for(int n=numiceverts;n<NUMVERTICES;n++){ // iterate over no-ice vertices
     1440                                        x[counter] = xyz_list[indices[i]][0]+s[counter]*(xyz_list[indices[n]][0]-xyz_list[indices[i]][0]);
     1441                                        y[counter] = xyz_list[indices[i]][1]+s[counter]*(xyz_list[indices[n]][1]-xyz_list[indices[i]][1]);
     1442                                        counter++;
     1443                                }
     1444                        }
     1445                }
     1446                else if(numiceverts==NUMVERTICES){ //NUMVERTICES ice vertices: calving front lies on element edge
     1447
     1448                        for(int i=0;i<NUMVERTICES;i++){
     1449                                if(lsf[indices[i]]==0.){
     1450                                        x[counter]=xyz_list[indices[i]][0];
     1451                                        y[counter]=xyz_list[indices[i]][1];
     1452                                        counter++;
     1453                                }
     1454                                if(counter==2) break;
     1455                        }
     1456                        if(counter==1){
     1457                                /*We actually have only 1 vertex on levelset, write a single point as a segment*/
     1458                                x[counter]=x[0];
     1459                                y[counter]=y[0];
     1460                                counter++;
     1461                        }
     1462                }
     1463                else{
     1464                        _error_("not sure what's going on here...");
     1465                }
     1466                x1=x[0]; y1=y[0]; x2=x[1]; y2=y[1];
     1467                distance=sqrt(pow((x1-x2),2)+pow((y1-y2),2));
     1468        }
     1469        else return 0; 
     1470       
     1471        IssmDouble s[2]; // s:fraction of intersected triangle edges, that lies inside ice
     1472        this->GetLevelsetIntersection(&indices, &numiceverts, s, MaskIceLevelsetEnum, 0.);     
     1473        int numthk=numiceverts+2;
     1474        H=xNew<IssmDouble>(numthk);
     1475        for(int iv=0;iv<NUMVERTICES;iv++) Haux[iv]=-bed[indices[iv]]; //sort bed in ice/noice
     1476
     1477        switch(numiceverts){
     1478                case 1: // average over triangle
     1479                        H[0]=Haux[0];
     1480                        H[1]=Haux[0]+s[0]*(Haux[1]-Haux[0]);
     1481                        H[2]=Haux[0]+s[1]*(Haux[2]-Haux[0]);
     1482                        Haverage=(H[1]+H[2])/2;
     1483                        break;
     1484                case 2: // average over quadrangle
     1485                        H[0]=Haux[0];
     1486                        H[1]=Haux[1];
     1487                        H[2]=Haux[0]+s[0]*(Haux[2]-Haux[0]);
     1488                        H[3]=Haux[1]+s[1]*(Haux[2]-Haux[1]);
     1489                        Haverage=(H[2]+H[3])/2;
     1490                        break;
     1491                default:
     1492                        _error_("Number of ice covered vertices wrong in Tria::GetIceFrontArea(void)");
     1493                        break;
     1494        }
     1495        frontarea=distance*Haverage;
     1496        _assert_(frontarea>0);
     1497        return frontarea;
    13991498}
    14001499/*}}}*/
     
    32623361}
    32633362/*}}}*/
     3363void       Tria::RignotMeltParameterization(){/*{{{*/
     3364
     3365   IssmDouble A, B, alpha, beta;
     3366        IssmDouble bed,qsg,qsg_basin,TF,yts;
     3367        int numbasins;
     3368        IssmDouble basinid[NUMVERTICES];
     3369        IssmDouble* basin_icefront_area=NULL;
     3370
     3371        /* Coefficients */
     3372        A    = 3e-4;        //
     3373        B    = 0.15;        //
     3374        alpha = 0.39;
     3375        beta = 1.18;
     3376       
     3377        /*Get inputs*/
     3378        Input* bed_input = this->GetInput(BedEnum);                     _assert_(bed_input);
     3379        Input* qsg_input = this->GetInput(FrontalForcingsSubglacialDischargeEnum);               _assert_(qsg_input);
     3380        Input* TF_input  = this->GetInput(FrontalForcingsThermalForcingEnum);          _assert_(TF_input);
     3381        GetInputListOnVertices(&basinid[0],FrontalForcingsBasinIdEnum);
     3382       
     3383        this->FindParam(&yts, ConstantsYtsEnum);
     3384        this->parameters->FindParam(&numbasins,FrontalForcingsNumberofBasinsEnum);
     3385        this->parameters->FindParam(&basin_icefront_area,&numbasins,FrontalForcingsBasinIcefrontAreaEnum);
     3386
     3387        IssmDouble meltrates[NUMVERTICES];  //frontal melt-rate
     3388       
     3389        /* Start looping on the number of vertices: */
     3390        GaussTria* gauss=new GaussTria();
     3391        for(int iv=0;iv<NUMVERTICES;iv++){
     3392                gauss->GaussVertex(iv);
     3393
     3394                /* Get variables */
     3395                bed_input->GetInputValue(&bed,gauss);
     3396                qsg_input->GetInputValue(&qsg,gauss);
     3397                TF_input->GetInputValue(&TF,gauss);
     3398
     3399                if(basin_icefront_area[reCast<int>(basinid[iv])-1]==0.) meltrates[iv]=0.;
     3400                else{
     3401                        /* change the unit of qsg (m^3/d -> m/d) with ice front area */
     3402                        qsg_basin=qsg/basin_icefront_area[reCast<int>(basinid[iv])-1];
     3403
     3404                        /* calculate melt rates */
     3405                        meltrates[iv]=(A*max(-bed,0.)*pow(max(qsg_basin,0.),alpha)+B)*pow(max(TF,0.),beta)/86400; //[m/s]
     3406                }       
     3407
     3408                if(xIsNan<IssmDouble>(meltrates[iv])) _error_("NaN found in vector");
     3409                if(xIsInf<IssmDouble>(meltrates[iv])) _error_("Inf found in vector");
     3410        }
     3411
     3412        /*Add input*/
     3413        this->inputs->AddInput(new TriaInput(CalvingMeltingrateEnum,&meltrates[0],P1Enum));
     3414   
     3415        /*Cleanup and return*/
     3416        delete gauss;
     3417}
     3418/*}}}*/
    32643419void       Tria::SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index,int offset,int N, int M){/*{{{*/
    32653420
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r23644 r23652  
    7979                void        GetGroundedPart(int* point1,IssmDouble* fraction1, IssmDouble* fraction2,bool* mainlyfloating);
    8080                IssmDouble  GetGroundedPortion(IssmDouble* xyz_list);
     81                IssmDouble  GetIcefrontArea();
    8182                void          GetIcefrontCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum);
    8283                void          GetLevelCoordinates(IssmDouble** pxyz_front,IssmDouble* xyz_list,int levelsetenum,IssmDouble level);
     
    120121                void        ResetHooks();
    121122                void        ResetLevelsetFromSegmentlist(IssmDouble* segments,int numsegments);
     123                void        RignotMeltParameterization();
    122124                void        SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index,int offset,int N,int M);
    123125                void        SetControlInputsFromVector(IssmDouble* vector,int control_enum,int control_index);
  • issm/trunk-jpl/src/c/classes/FemModel.cpp

    r23644 r23652  
    14961496
    14971497}/*}}}*/
     1498void FemModel::IcefrontAreax(){/*{{{*/
     1499
     1500        int numvertices      = this->GetElementsWidth();
     1501        int numbasins;
     1502        IssmDouble* BasinId   = xNew<IssmDouble>(numvertices);
     1503        this->parameters->FindParam(&numbasins,FrontalForcingsNumberofBasinsEnum);
     1504        IssmDouble* basin_icefront_area           = xNewZeroInit<IssmDouble>(numbasins);
     1505
     1506        for(int basin=1;basin<numbasins+1;basin++){
     1507                IssmDouble local_icefront_area = 0;
     1508                IssmDouble total_icefront_area;
     1509
     1510                for(int i=0;i<this->elements->Size();i++){
     1511                        Element* element=xDynamicCast<Element*>(this->elements->GetObjectByOffset(i));
     1512                        element->GetInputListOnVertices(BasinId,FrontalForcingsBasinIdEnum);
     1513                        for(int j=0;j<numvertices;j++){
     1514                                if(BasinId[j]==basin){
     1515                                        local_icefront_area+=element->GetIcefrontArea();
     1516                                        break;
     1517                                }
     1518                        }
     1519                }
     1520                ISSM_MPI_Reduce(&local_icefront_area,&total_icefront_area,1,ISSM_MPI_DOUBLE,ISSM_MPI_SUM,0,IssmComm::GetComm());
     1521                ISSM_MPI_Bcast(&total_icefront_area,1,ISSM_MPI_DOUBLE,0,IssmComm::GetComm());
     1522       
     1523                basin_icefront_area[basin-1]=total_icefront_area;
     1524        }
     1525       
     1526        this->parameters->AddObject(new DoubleVecParam(FrontalForcingsBasinIcefrontAreaEnum,basin_icefront_area,numbasins));
     1527       
     1528        xDelete<IssmDouble>(basin_icefront_area);
     1529}/*}}}*/
    14981530void FemModel::IceMassx(IssmDouble* pM, bool scaled){/*{{{*/
    14991531
     
    23902422}
    23912423/*}}}*/
     2424void FemModel::RignotMeltParameterizationx(){/*{{{*/
     2425
     2426        for(int i=0;i<elements->Size();i++){
     2427                Element* element=dynamic_cast<Element*>(this->elements->GetObjectByOffset(i));
     2428                element->RignotMeltParameterization();
     2429        }
     2430}
     2431/*}}}*/
    23922432void FemModel::StrainRateparallelx(){/*{{{*/
    23932433
  • issm/trunk-jpl/src/c/classes/FemModel.h

    r23642 r23652  
    100100                void GetLocalVectorWithClonesNodes(IssmDouble** plocal_vector,Vector<IssmDouble> *vector);
    101101                void GroundedAreax(IssmDouble* pV, bool scaled);
     102                void IcefrontAreax();
    102103                void IceMassx(IssmDouble* pV, bool scaled);
    103104                void IceVolumex(IssmDouble* pV, bool scaled);
     
    122123                void StrainRateeffectivex();
    123124                void StressIntensityFactorx();
     125                void RignotMeltParameterizationx();
    124126                void TotalFloatingBmbx(IssmDouble* pFbmb, bool scaled);
    125127                void TotalGroundedBmbx(IssmDouble* pGbmb, bool scaled);
  • issm/trunk-jpl/src/c/cores/movingfront_core.cpp

    r23232 r23652  
    3636        /* start the work from here */
    3737        Calvingx(femmodel);
     38        FrontalForcingsx(femmodel);
    3839        if(VerboseSolution()) _printf0_("   computing level set transport\n");
    3940
  • issm/trunk-jpl/src/c/modules/modules.h

    r23602 r23652  
    3838#include "./Gradjx/Gradjx.h"
    3939#include "./GroundinglineMigrationx/GroundinglineMigrationx.h"
     40#include "./FrontalForcingsx/FrontalForcingsx.h"
    4041#include "./InputDepthAverageAtBasex/InputDepthAverageAtBasex.h"
    4142#include "./InputDuplicatex/InputDuplicatex.h"
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r23644 r23652  
    134134        FrictionDeltaEnum,
    135135        FrictionVoidRatioEnum,
     136        FrontalForcingsBasinIcefrontAreaEnum,
     137        FrontalForcingsBasinIdEnum,
     138        FrontalForcingsNumberofBasinsEnum,
     139        FrontalForcingsParamEnum,
    136140        GiaCrossSectionShapeEnum,
    137141        GroundinglineMigrationEnum,
     
    444448        CalvingHabFractionEnum,
    445449        CalvinglevermannCoeffEnum,
    446         CalvinglevermannMeltingrateEnum,
    447450        CalvingMeltingrateEnum,
    448451        CalvingratexAverageEnum,
     
    495498        FrictionQEnum,
    496499        FrictionWaterLayerEnum,
     500        FrontalForcingsSubglacialDischargeEnum,
     501        FrontalForcingsThermalForcingEnum,
    497502        HydrologyWatercolumnMaxEnum,
    498503        FrictionTillFrictionAngleEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r23644 r23652  
    142142                case FrictionDeltaEnum : return "FrictionDelta";
    143143                case FrictionVoidRatioEnum : return "FrictionVoidRatio";
     144                case FrontalForcingsBasinIcefrontAreaEnum : return "FrontalForcingsBasinIcefrontArea";
     145                case FrontalForcingsBasinIdEnum : return "FrontalForcingsBasinId";
     146                case FrontalForcingsNumberofBasinsEnum : return "FrontalForcingsNumberofBasins";
     147                case FrontalForcingsParamEnum : return "FrontalForcingsParam";
    144148                case GiaCrossSectionShapeEnum : return "GiaCrossSectionShape";
    145149                case GroundinglineMigrationEnum : return "GroundinglineMigration";
     
    450454                case CalvingHabFractionEnum : return "CalvingHabFraction";
    451455                case CalvinglevermannCoeffEnum : return "CalvinglevermannCoeff";
    452                 case CalvinglevermannMeltingrateEnum : return "CalvinglevermannMeltingrate";
    453456                case CalvingMeltingrateEnum : return "CalvingMeltingrate";
    454457                case CalvingratexAverageEnum : return "CalvingratexAverage";
     
    501504                case FrictionQEnum : return "FrictionQ";
    502505                case FrictionWaterLayerEnum : return "FrictionWaterLayer";
     506                case FrontalForcingsSubglacialDischargeEnum : return "FrontalForcingsSubglacialDischarge";
     507                case FrontalForcingsThermalForcingEnum : return "FrontalForcingsThermalForcing";
    503508                case HydrologyWatercolumnMaxEnum : return "HydrologyWatercolumnMax";
    504509                case FrictionTillFrictionAngleEnum : return "FrictionTillFrictionAngle";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r23644 r23652  
    145145              else if (strcmp(name,"FrictionDelta")==0) return FrictionDeltaEnum;
    146146              else if (strcmp(name,"FrictionVoidRatio")==0) return FrictionVoidRatioEnum;
     147              else if (strcmp(name,"FrontalForcingsBasinIcefrontArea")==0) return FrontalForcingsBasinIcefrontAreaEnum;
     148              else if (strcmp(name,"FrontalForcingsBasinId")==0) return FrontalForcingsBasinIdEnum;
     149              else if (strcmp(name,"FrontalForcingsNumberofBasins")==0) return FrontalForcingsNumberofBasinsEnum;
     150              else if (strcmp(name,"FrontalForcingsParam")==0) return FrontalForcingsParamEnum;
    147151              else if (strcmp(name,"GiaCrossSectionShape")==0) return GiaCrossSectionShapeEnum;
    148152              else if (strcmp(name,"GroundinglineMigration")==0) return GroundinglineMigrationEnum;
     
    256260              else if (strcmp(name,"ModelId")==0) return ModelIdEnum;
    257261              else if (strcmp(name,"Nodes")==0) return NodesEnum;
    258               else if (strcmp(name,"NumModels")==0) return NumModelsEnum;
     262         else stage=3;
     263   }
     264   if(stage==3){
     265              if (strcmp(name,"NumModels")==0) return NumModelsEnum;
    259266              else if (strcmp(name,"OceanGridNx")==0) return OceanGridNxEnum;
    260267              else if (strcmp(name,"OceanGridNy")==0) return OceanGridNyEnum;
    261268              else if (strcmp(name,"OceanGridX")==0) return OceanGridXEnum;
    262          else stage=3;
    263    }
    264    if(stage==3){
    265               if (strcmp(name,"OceanGridY")==0) return OceanGridYEnum;
     269              else if (strcmp(name,"OceanGridY")==0) return OceanGridYEnum;
    266270              else if (strcmp(name,"OutputBufferPointer")==0) return OutputBufferPointerEnum;
    267271              else if (strcmp(name,"OutputBufferSizePointer")==0) return OutputBufferSizePointerEnum;
     
    379383              else if (strcmp(name,"StressbalanceNumRequestedOutputs")==0) return StressbalanceNumRequestedOutputsEnum;
    380384              else if (strcmp(name,"StressbalancePenaltyFactor")==0) return StressbalancePenaltyFactorEnum;
    381               else if (strcmp(name,"StressbalanceReltol")==0) return StressbalanceReltolEnum;
     385         else stage=4;
     386   }
     387   if(stage==4){
     388              if (strcmp(name,"StressbalanceReltol")==0) return StressbalanceReltolEnum;
    382389              else if (strcmp(name,"StressbalanceRequestedOutputs")==0) return StressbalanceRequestedOutputsEnum;
    383390              else if (strcmp(name,"StressbalanceRestol")==0) return StressbalanceRestolEnum;
    384391              else if (strcmp(name,"StressbalanceRiftPenaltyThreshold")==0) return StressbalanceRiftPenaltyThresholdEnum;
    385          else stage=4;
    386    }
    387    if(stage==4){
    388               if (strcmp(name,"StressbalanceShelfDampening")==0) return StressbalanceShelfDampeningEnum;
     392              else if (strcmp(name,"StressbalanceShelfDampening")==0) return StressbalanceShelfDampeningEnum;
    389393              else if (strcmp(name,"ThermalIsdynamicbasalspc")==0) return ThermalIsdynamicbasalspcEnum;
    390394              else if (strcmp(name,"ThermalIsenthalpy")==0) return ThermalIsenthalpyEnum;
     
    459463              else if (strcmp(name,"CalvingHabFraction")==0) return CalvingHabFractionEnum;
    460464              else if (strcmp(name,"CalvinglevermannCoeff")==0) return CalvinglevermannCoeffEnum;
    461               else if (strcmp(name,"CalvinglevermannMeltingrate")==0) return CalvinglevermannMeltingrateEnum;
    462465              else if (strcmp(name,"CalvingMeltingrate")==0) return CalvingMeltingrateEnum;
    463466              else if (strcmp(name,"CalvingratexAverage")==0) return CalvingratexAverageEnum;
     
    503506              else if (strcmp(name,"FrictionC")==0) return FrictionCEnum;
    504507              else if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum;
    505               else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
    506               else if (strcmp(name,"FrictionEffectivePressure")==0) return FrictionEffectivePressureEnum;
    507               else if (strcmp(name,"FrictionM")==0) return FrictionMEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
     511              if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
     512              else if (strcmp(name,"FrictionEffectivePressure")==0) return FrictionEffectivePressureEnum;
     513              else if (strcmp(name,"FrictionM")==0) return FrictionMEnum;
     514              else if (strcmp(name,"FrictionP")==0) return FrictionPEnum;
    512515              else if (strcmp(name,"FrictionPressureAdjustedTemperature")==0) return FrictionPressureAdjustedTemperatureEnum;
    513516              else if (strcmp(name,"FrictionQ")==0) return FrictionQEnum;
    514517              else if (strcmp(name,"FrictionWaterLayer")==0) return FrictionWaterLayerEnum;
     518              else if (strcmp(name,"FrontalForcingsSubglacialDischarge")==0) return FrontalForcingsSubglacialDischargeEnum;
     519              else if (strcmp(name,"FrontalForcingsThermalForcing")==0) return FrontalForcingsThermalForcingEnum;
    515520              else if (strcmp(name,"HydrologyWatercolumnMax")==0) return HydrologyWatercolumnMaxEnum;
    516521              else if (strcmp(name,"FrictionTillFrictionAngle")==0) return FrictionTillFrictionAngleEnum;
     
    624629              else if (strcmp(name,"SmbDini")==0) return SmbDiniEnum;
    625630              else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
    626               else if (strcmp(name,"SmbDswrf")==0) return SmbDswrfEnum;
     631         else stage=6;
     632   }
     633   if(stage==6){
     634              if (strcmp(name,"SmbDswrf")==0) return SmbDswrfEnum;
    627635              else if (strcmp(name,"SmbDz")==0) return SmbDzEnum;
    628636              else if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum;
    629637              else if (strcmp(name,"SmbDzMin")==0) return SmbDzMinEnum;
    630638              else if (strcmp(name,"SmbDzTop")==0) return SmbDzTopEnum;
    631          else stage=6;
    632    }
    633    if(stage==6){
    634               if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
     639              else if (strcmp(name,"SmbEAir")==0) return SmbEAirEnum;
    635640              else if (strcmp(name,"SmbEC")==0) return SmbECEnum;
    636641              else if (strcmp(name,"SmbECini")==0) return SmbECiniEnum;
     
    747752              else if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum;
    748753              else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
    749               else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
     754         else stage=7;
     755   }
     756   if(stage==7){
     757              if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
    750758              else if (strcmp(name,"AmrBamg")==0) return AmrBamgEnum;
    751759              else if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum;
    752760              else if (strcmp(name,"AndroidFrictionCoefficient")==0) return AndroidFrictionCoefficientEnum;
    753761              else if (strcmp(name,"Arrhenius")==0) return ArrheniusEnum;
    754          else stage=7;
    755    }
    756    if(stage==7){
    757               if (strcmp(name,"AutodiffJacobian")==0) return AutodiffJacobianEnum;
     762              else if (strcmp(name,"AutodiffJacobian")==0) return AutodiffJacobianEnum;
    758763              else if (strcmp(name,"Balancethickness2Analysis")==0) return Balancethickness2AnalysisEnum;
    759764              else if (strcmp(name,"Balancethickness2Solution")==0) return Balancethickness2SolutionEnum;
     
    870875              else if (strcmp(name,"Gset")==0) return GsetEnum;
    871876              else if (strcmp(name,"Gsl")==0) return GslEnum;
    872               else if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum;
     877         else stage=8;
     878   }
     879   if(stage==8){
     880              if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum;
    873881              else if (strcmp(name,"HOFSApproximation")==0) return HOFSApproximationEnum;
    874882              else if (strcmp(name,"Hook")==0) return HookEnum;
    875883              else if (strcmp(name,"HydrologyBasalFlux")==0) return HydrologyBasalFluxEnum;
    876884              else if (strcmp(name,"HydrologyDCEfficientAnalysis")==0) return HydrologyDCEfficientAnalysisEnum;
    877          else stage=8;
    878    }
    879    if(stage==8){
    880               if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
     885              else if (strcmp(name,"Hydrologydc")==0) return HydrologydcEnum;
    881886              else if (strcmp(name,"HydrologydcEplThicknessStacked")==0) return HydrologydcEplThicknessStackedEnum;
    882887              else if (strcmp(name,"HydrologydcEplThickness")==0) return HydrologydcEplThicknessEnum;
     
    993998              else if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum;
    994999              else if (strcmp(name,"Outputdefinition17")==0) return Outputdefinition17Enum;
    995               else if (strcmp(name,"Outputdefinition18")==0) return Outputdefinition18Enum;
     1000         else stage=9;
     1001   }
     1002   if(stage==9){
     1003              if (strcmp(name,"Outputdefinition18")==0) return Outputdefinition18Enum;
    9961004              else if (strcmp(name,"Outputdefinition19")==0) return Outputdefinition19Enum;
    9971005              else if (strcmp(name,"Outputdefinition20")==0) return Outputdefinition20Enum;
    9981006              else if (strcmp(name,"Outputdefinition21")==0) return Outputdefinition21Enum;
    9991007              else if (strcmp(name,"Outputdefinition22")==0) return Outputdefinition22Enum;
    1000          else stage=9;
    1001    }
    1002    if(stage==9){
    1003               if (strcmp(name,"Outputdefinition23")==0) return Outputdefinition23Enum;
     1008              else if (strcmp(name,"Outputdefinition23")==0) return Outputdefinition23Enum;
    10041009              else if (strcmp(name,"Outputdefinition24")==0) return Outputdefinition24Enum;
    10051010              else if (strcmp(name,"Outputdefinition25")==0) return Outputdefinition25Enum;
     
    11161121              else if (strcmp(name,"SealevelAbsolute")==0) return SealevelAbsoluteEnum;
    11171122              else if (strcmp(name,"SealevelEmotion")==0) return SealevelEmotionEnum;
    1118               else if (strcmp(name,"SealevelInertiaTensorXZ")==0) return SealevelInertiaTensorXZEnum;
     1123         else stage=10;
     1124   }
     1125   if(stage==10){
     1126              if (strcmp(name,"SealevelInertiaTensorXZ")==0) return SealevelInertiaTensorXZEnum;
    11191127              else if (strcmp(name,"SealevelInertiaTensorYZ")==0) return SealevelInertiaTensorYZEnum;
    11201128              else if (strcmp(name,"SealevelInertiaTensorZZ")==0) return SealevelInertiaTensorZZEnum;
    11211129              else if (strcmp(name,"SealevelNmotion")==0) return SealevelNmotionEnum;
    11221130              else if (strcmp(name,"SealevelriseAnalysis")==0) return SealevelriseAnalysisEnum;
    1123          else stage=10;
    1124    }
    1125    if(stage==10){
    1126               if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum;
     1131              else if (strcmp(name,"SealevelriseSolution")==0) return SealevelriseSolutionEnum;
    11271132              else if (strcmp(name,"SealevelriseStericRate")==0) return SealevelriseStericRateEnum;
    11281133              else if (strcmp(name,"SealevelUmotion")==0) return SealevelUmotionEnum;
  • issm/trunk-jpl/src/m/classes/calving.m

    r21049 r23652  
    3030                function self = extrude(self,md) % {{{
    3131                        self.calvingrate=project3d(md,'vector',self.calvingrate,'type','node');
    32                         self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
    3332                end % }}}
    3433                function self = setdefaultparameters(self) % {{{
     
    4039
    4140                        md = checkfield(md,'fieldname','calving.calvingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
    42                         md = checkfield(md,'fieldname','calving.meltingrate','>=',0,'timeseries',1,'NaN',1,'Inf',1);
    4341                end % }}}
    4442                function disp(self) % {{{
    4543                        disp(sprintf('   Calving parameters:'));
    4644                        fielddisplay(self,'calvingrate','calving rate at given location [m/a]');
    47                         fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
    4845                end % }}}
    4946                function marshall(self,prefix,md,fid) % {{{
     
    5148                        WriteData(fid,prefix,'name','md.calving.law','data',1,'format','Integer');
    5249                        WriteData(fid,prefix,'object',self,'fieldname','calvingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
    53                         WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
    5450                end % }}}
    5551                function savemodeljs(self,fid,modelname) % {{{
  • issm/trunk-jpl/src/m/classes/calvingcrevassedepth.m

    r23609 r23652  
    3030                end % }}}
    3131                function self = extrude(self,md) % {{{
    32                         self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
    3332                end % }}}
    3433                function self = setdefaultparameters(self) % {{{
     
    4342                        md = checkfield(md,'fieldname','calving.crevasse_opening_stress','numel',[1],'values',[0,1]);
    4443                        md = checkfield(md,'fieldname','calving.water_height','NaN',1,'Inf',1,'timeseries',1,'>=',0);
    45                         md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0);
    4644                end % }}}
    4745                function disp(self) % {{{
     
    4947                        fielddisplay(self,'crevasse_opening_stress','0: stress only in the ice-flow direction, 1: max principal');
    5048                        fielddisplay(self,'water_height','water height in the crevasse [m]');
    51                         fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
    5249
    5350                end % }}}
     
    5754                        WriteData(fid,prefix,'object',self,'fieldname','crevasse_opening_stress','format','Integer');
    5855                        WriteData(fid,prefix,'object',self,'fieldname','water_height','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts);
    59                         WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
    6056                end % }}}
    6157        end
  • issm/trunk-jpl/src/m/classes/calvinglevermann.m

    r22292 r23652  
    3030                function self = extrude(self,md) % {{{
    3131                        self.coeff=project3d(md,'vector',self.coeff,'type','node');
    32                         self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
    3332                end % }}}
    3433                function self = setdefaultparameters(self) % {{{
     
    4241
    4342                        md = checkfield(md,'fieldname','calving.coeff','>',0,'size',[md.mesh.numberofvertices 1]);
    44                         md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0);
    4543                end % }}}
    4644                function disp(self) % {{{
    4745                        disp(sprintf('   Calving Levermann parameters:'));
    4846                        fielddisplay(self,'coeff','proportionality coefficient in Levermann model');
    49                         fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
    5047
    5148                end % }}}
     
    5451                        WriteData(fid,prefix,'name','md.calving.law','data',3,'format','Integer');
    5552                        WriteData(fid,prefix,'object',self,'fieldname','coeff','format','DoubleMat','mattype',1);
    56                         WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
    5753                end % }}}
    5854        end
  • issm/trunk-jpl/src/m/classes/calvingminthickness.m

    r21992 r23652  
    2929                end % }}}
    3030                function self = extrude(self,md) % {{{
    31                         self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
    3231                end % }}}
    3332                function self = setdefaultparameters(self) % {{{
     
    4140
    4241                        md = checkfield(md,'fieldname','calving.min_thickness','>',0,'NaN',1,'Inf',1);
    43                         md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1],'>=',0);
    4442                end % }}}
    4543                function disp(self) % {{{
    4644                        disp(sprintf('   Calving Minimum thickness:'));
    4745                        fielddisplay(self,'min_thickness','minimum thickness below which no ice is allowed');
    48                         fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
    4946
    5047                end % }}}
     
    5350                        WriteData(fid,prefix,'name','md.calving.law','data',4,'format','Integer');
    5451                        WriteData(fid,prefix,'object',self,'fieldname','min_thickness','format','Double');
    55                         WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'scale',1./yts);
    5652                end % }}}
    5753        end
  • issm/trunk-jpl/src/m/classes/calvingvonmises.m

    r22192 r23652  
    88                stress_threshold_groundedice = 0.;
    99                stress_threshold_floatingice = 0.;
    10                 meltingrate   = NaN;
     10                meltingrate=NaN;
    1111        end
    1212        methods
     
    3030                end % }}}
    3131                function self = extrude(self,md) % {{{
    32                         self.meltingrate=project3d(md,'vector',self.meltingrate,'type','node');
    3332                end % }}}
    3433                function self = setdefaultparameters(self) % {{{
     
    4443                        md = checkfield(md,'fieldname','calving.stress_threshold_groundedice','>',0,'nan',1,'Inf',1);
    4544                        md = checkfield(md,'fieldname','calving.stress_threshold_floatingice','>',0,'nan',1,'Inf',1);
    46                         md = checkfield(md,'fieldname','calving.meltingrate','NaN',1,'Inf',1,'timeseries',1,'>=',0);
    4745                end % }}}
    4846                function disp(self) % {{{
     
    5048                        fielddisplay(self,'stress_threshold_groundedice','sigma_max applied to grounded ice only [Pa]');
    5149                        fielddisplay(self,'stress_threshold_floatingice','sigma_max applied to floating ice only [Pa]');
    52                         fielddisplay(self,'meltingrate','melting rate at given location [m/a]');
    5350
    5451                end % }}}
     
    5855                        WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_groundedice','format','DoubleMat','mattype',1);
    5956                        WriteData(fid,prefix,'object',self,'fieldname','stress_threshold_floatingice','format','DoubleMat','mattype',1);
    60                         WriteData(fid,prefix,'object',self,'fieldname','meltingrate','format','DoubleMat','mattype',1,'timeserieslength',md.mesh.numberofvertices+1,'yts',md.constants.yts,'scale',1./yts);
    6157                end % }}}
    6258        end
  • issm/trunk-jpl/src/m/classes/model.m

    r23503 r23652  
    4040                levelset                          = 0;
    4141                calving          = 0;
     42                frontalforcings  = 0;
    4243                love                         = 0;
    4344                gia                               = 0;
     
    153154                                md.settings.sb_coupling_frequency=1;
    154155                        end
    155 
     156                        %2019 Jan..
     157                        if isa(md.frontalforcings,'double');
     158                                if(~isnan(md.calving.meltingrate))
     159                                        disp('Warning: md.calving.meltingrate is now in md.frontalforcings');
     160                                end
     161                                md.frontalforcings=frontalforcings(md.calving);
     162                        end
    156163                end% }}}
    157164        end
     
    307314                                md.calving.coeff=project2d(md,md.calving.coeff,1);
    308315                        end
    309                         if isprop(md.calving,'meltingrate') & ~isnan(md.calving.meltingrate),
    310                                 md.calving.meltingrate=project2d(md,md.calving.meltingrate,1);
     316                        if isprop(md.frontalforcings,'meltingrate') & ~isnan(md.frontalforcings.meltingrate),
     317                                md.frontalforcings.meltingrate=project2d(md,md.frontalforcings.meltingrate,1);
    311318                        end
    312319
     
    840847                        md.levelset=extrude(md.levelset,md);
    841848                        md.calving=extrude(md.calving,md);
     849                        md.frontalforcings=extrude(md.frontalforcings,md);
    842850                        md.hydrology = extrude(md.hydrology,md);
    843851                        md.slr = extrude(md.slr,md);
     
    11481156                                md.smb=SMBhenning(structmd.surfaceforcings);
    11491157                        end
    1150 
    11511158                end% }}}
    11521159                function md = setdefaultparameters(md) % {{{
     
    11821189                        md.levelset         = levelset();
    11831190                        md.calving          = calving();
     1191                        md.frontalforcings  = frontalforcings();
    11841192                        md.gia                            = giaivins();
    11851193                        md.esa              = esa();
     
    13571365                        disp(sprintf('%19s: %-22s -- %s','levelset'        ,['[1x1 ' class(self.levelset) ']'],'parameters for moving boundaries (level-set method)'));
    13581366                        disp(sprintf('%19s: %-22s -- %s','calving'         ,['[1x1 ' class(self.calving) ']'],'parameters for calving'));
     1367                        disp(sprintf('%19s: %-22s -- %s','frontalforcings' ,['[1x1 ' class(self.frontalforcings) ']'],'parameters for frontalforcings'));
    13591368                        disp(sprintf('%19s: %-22s -- %s','gia'             ,['[1x1 ' class(self.gia) ']'],'parameters for gia solution'));
    13601369                        disp(sprintf('%19s: %-22s -- %s','esa'             ,['[1x1 ' class(self.esa) ']'],'parameters for elastic adjustment solution'));
  • issm/trunk-jpl/test/NightlyRun/test540.m

    r22563 r23652  
    1010md.mask.ice_levelset = 1e4*(md.mask.ice_levelset + 0.5);
    1111md.calving=calvingvonmises();
    12 md.calving.meltingrate = zeros(md.mesh.numberofvertices,1);
     12md.frontalforcings.meltingrate = zeros(md.mesh.numberofvertices,1);
    1313md.transient.ismovingfront = 1;
    1414md.levelset.spclevelset = NaN(md.mesh.numberofvertices,1);
  • issm/trunk-jpl/test/NightlyRun/test804.m

    r21585 r23652  
    1616
    1717md.calving.calvingrate=1000.*ones(md.mesh.numberofvertices,1);
    18 md.calving.meltingrate=zeros(md.mesh.numberofvertices,1);
     18md.frontalforcings.meltingrate=zeros(md.mesh.numberofvertices,1);
    1919
    2020md=solve(md,'Transient');
  • issm/trunk-jpl/test/NightlyRun/test805.m

    r23010 r23652  
    2323
    2424md.calving.calvingrate=1000.*ones(md.mesh.numberofvertices,1);
    25 md.calving.meltingrate=zeros(md.mesh.numberofvertices,1);
     25md.frontalforcings.meltingrate=zeros(md.mesh.numberofvertices,1);
    2626md.groundingline.melt_interpolation='SubelementMelt1';
    2727md.levelset.stabilization=2;
  • issm/trunk-jpl/test/NightlyRun/test806.m

    r21585 r23652  
    2727md.calving=calvinglevermann();
    2828md.calving.coeff=4.89e13*ones(md.mesh.numberofvertices,1);
    29 md.calving.meltingrate=zeros(md.mesh.numberofvertices,1);
     29md.frontalforcings.meltingrate=zeros(md.mesh.numberofvertices,1);
    3030md.levelset.spclevelset=NaN(md.mesh.numberofvertices,1);
    3131
  • issm/trunk-jpl/test/NightlyRun/test807.m

    r21585 r23652  
    2626
    2727md.calving.calvingrate=zeros(md.mesh.numberofvertices,1);
    28 md.calving.meltingrate=10000*ones(md.mesh.numberofvertices,1);
     28md.frontalforcings.meltingrate=10000*ones(md.mesh.numberofvertices,1);
    2929md.levelset.spclevelset=NaN(md.mesh.numberofvertices,1);
    3030
  • issm/trunk-jpl/test/NightlyRun/test808.m

    r23094 r23652  
    2727md.calving=calvingminthickness();
    2828md.calving.min_thickness=400;
    29 md.calving.meltingrate=zeros(md.mesh.numberofvertices,1);
     29md.frontalforcings.meltingrate=zeros(md.mesh.numberofvertices,1);
    3030md.levelset.spclevelset=NaN(md.mesh.numberofvertices,1);
    3131md.levelset.reinit_frequency=1;
  • issm/trunk-jpl/test/NightlyRun/test809.m

    r23608 r23652  
    2020md.calving.crevasse_opening_stress=1;
    2121md.calving.water_height=50*ones(md.mesh.numberofvertices,1);
    22 md.calving.meltingrate=zeros(md.mesh.numberofvertices,1);
     22md.frontalforcings.meltingrate=zeros(md.mesh.numberofvertices,1);
    2323md.levelset.spclevelset=NaN(md.mesh.numberofvertices,1);
    2424md.levelset.reinit_frequency=1;
  • issm/trunk-jpl/test/Par/ValleyGlacierShelf.par

    r22575 r23652  
    7575%Masstransport;
    7676md.calving.calvingrate = 0.*ones(md.mesh.numberofvertices,1);
    77 md.calving.meltingrate = 0.*ones(md.mesh.numberofvertices,1);
     77md.frontalforcings.meltingrate = 0.*ones(md.mesh.numberofvertices,1);
    7878md.levelset.spclevelset=NaN(md.mesh.numberofvertices,1);
    7979md.masstransport.stabilization = 1.;
Note: See TracChangeset for help on using the changeset viewer.