Changeset 25851


Ignore:
Timestamp:
12/10/20 16:38:21 (4 years ago)
Author:
schlegel
Message:

CHG: rework on GEMB grain growth

Location:
issm/trunk-jpl
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp

    r25590 r25851  
    333333                        }
    334334                        // dendricity and sphericity can not be > 1 or < 0
    335          if (gdn[i]<0.0+Gdntol)gdn[i]=0.0;
    336          if (gsp[i]<0.0+Gdntol)gsp[i]=0.0;
    337          if (gdn[i]>1.0-Gdntol)gdn[i]=1.0;
    338          if (gsp[i]>1.0-Gdntol)gsp[i]=1.0;
     335         if (gdn[i]<=0.0+Gdntol)gdn[i]=0.0;
     336         if (gsp[i]<=0.0+Gdntol)gsp[i]=0.0;
     337         if (gdn[i]>=1.0-Gdntol)gdn[i]=1.0;
     338         if (gsp[i]>=1.0-Gdntol)gsp[i]=1.0;
    339339
    340340         // determine new grain size (mm)
     
    344344                else{
    345345
    346                         //When the state of "faceted crystals" (gsp==0) is fully reached,
    347                         // snow evolves towards depth hoar if the gradient is
    348                         // higher than 15 degC m-1 (Brun et al., 1992)
    349346                        //When wet-snow grains (class 6) are submitted to a
    350347                        // temperature gradient higher than 5 degC m-1, their sphericity
     
    352349                        // reaches 0, their size increases according to the functions
    353350                        // determined by Marbouty. (Brun et al., 1992)
    354                         if(gsp[i]>0.0+Gdntol && gsp[i]<1.0-Gdntol && (dT[i]>15.0+Ttol || (dT[i]>5.0+Ttol && W[i]>0.0+Wtol)) ){
    355                                 //determine coefficients
    356                                 IssmDouble C = (-2e8 * exp(-6e3 / T[i]) * dt) * pow(dT[i],.4);
    357                                 gsp[i] +=C;
    358                                 if (gsp[i]<0.0+Gdntol)gsp[i]=0.0;
    359                                 //determine new grain size (mm)
    360                                 gsz[i] = 0.35 + (0.5-gsp[i])*0.1;
    361                         }
     351                        if(gsp[i]>0.0+Gdntol && gsp[i]<1.0-Gdntol){
     352
     353                                IssmDouble F = 0.0;
     354
     355                                if (dT[i]>5.0+Ttol){
     356                                        F = (-2e8 * exp(-6e3 / T[i]) * dt) * pow(dT[i],.4);
     357                                }
     358                                else if (W[i]>0.0+Wtol){
     359                                        F = (1.0/16.0) * pow(lwc[i],3.0) * dt;
     360                                }
     361                                else{
     362                                        F = 1e9 * exp(-6e3 / T[i]) * dt;
     363                                }
     364                                gsp[i] +=F;
     365
     366                        }
     367                        if (gsp[i]<=0.0+Gdntol)gsp[i]=0.0;
     368                        if (gsp[i]>=1.0-Gdntol)gsp[i]=1.0;
     369
    362370                        /*Dry snow metamorphism (Marbouty, 1980) grouped model coefficents
    363371                         *from Marbouty, 1980: Figure 9*/
    364                         else if(W[i]<=0.0+Wtol || (gsp[i]<=0.0+Gdntol && dT[i]>15.0+Ttol) || (gsp[i]<=0.0+Gdntol && dT[i]>5.0+Ttol && W[i]>0.0+Wtol)){
     372                        if(W[i]<=0.0+Wtol || (gsp[i]<=0.0+Gdntol && dT[i]>5.0+Ttol)){
    365373                                //_printf_("Nondendritic snow metamorphism\n");
    366374                                Q = Marbouty(T[i],d[i],dT[i]);
Note: See TracChangeset for help on using the changeset viewer.