Changeset 27313


Ignore:
Timestamp:
10/17/22 07:25:14 (2 years ago)
Author:
jwilner
Message:

NEW: set calving rate to 0 where there is no ice

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Tria.cpp

    r27308 r27313  
    569569        IssmDouble ds, db, da, dt, dw, r, R;
    570570
     571        if(!IsIceInElement()){
     572                for (int iv=0;iv<NUMVERTICES;iv++) calvingrate[iv]=0.;
     573                this->AddInput(CalvingCalvingrateEnum,&calvingrate[0],P1DGEnum);
     574                this->CalvingRateToVector();
     575                return;
     576        }
     577
    571578        /*Retrieve all inputs and parameters we will need*/
    572579        IssmDouble rc        = FindParam(CalvingRcEnum);
     
    618625
    619626         /*3. "Additional" crevasse opening*/
    620          vel = sqrt(vx*vx + vy*vy)/(365.25*24*3600);
    621          da = H* max(0., log(vel/1600.))/log(1.2);
     627                        vel = sqrt(vx*vx + vy*vy);
     628                        da = H* max(0., log(vel*365*24*3600/1600.))/log(1.2);
    622629
    623630         /*4. deal with shallow ice*/
     
    627634         dw = 0.;
    628635         R = smb*365.25*24*3600; //convert from m/s to m/yr
    629          if(R>1.5 && R<=3.){
     636                        if(R>1.5 && R<=3.){
    630637            dw = 4*1.5*(R - 1.5);
    631638         }
     
    636643         /*Total calving rate*/
    637644         r = (ds+db+da+dt+dw)/H;
     645                        //if(this->Id()==1){
     646                        //      printf("rc = %g\n",rc);
     647                        //      printf("ds = %g\n",ds);
     648                        //}
    638649                        calvingrate[iv]= mig_max * max(0., min(1., (r - rc)/(1 - rc))); //P&DC: mig_max = 3000 m/yr
    639650                        _assert_(!xIsNan<IssmDouble>(calvingrate[iv]));
Note: See TracChangeset for help on using the changeset viewer.