Changeset 22742


Ignore:
Timestamp:
05/04/18 16:33:13 (7 years ago)
Author:
schlegel
Message:

CHG: revert to surplus energy loop from clang

File:
1 edited

Legend:

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

    r22736 r22742  
    13561356                for(int i=0;i<n;i++)if(d[i]>dIce-Dtol)d[i]=dIce;
    13571357                for(int i=0;i<n;i++) dz[i]= m[i]/d[i];
     1358
    13581359        }
    13591360
     
    13751376                // LF/CI = 159.1342)
    13761377                surpT=xNew<IssmDouble>(n); for(int i=0;i<n;i++)surpT[i] = fmax(0.0, exsT[i]- LF/CI);
    1377        
    1378                 if (cellsum(surpT,n) > 0.0 + Ttol){
     1378
     1379                if (cellsum(surpT,n) > 0.0 + Ttol ){
    13791380                        // _printf_("T Surplus");
    13801381                        // calculate surplus energy
    13811382                        surpE=xNew<IssmDouble>(n); for(int i=0;i<n;i++)surpE[i] = surpT[i] * CI * m[i];
    1382            
     1383
    13831384                        int i = 0;
    1384                         while (cellsum(surpE,n) > 0.0 + Ttol && i<n-1){
    1385 
     1385                        while (cellsum(surpE,n) > 0.0 + Ttol){
    13861386                                // use surplus energy to increase the temperature of lower cell
    13871387                                T[i+1] = surpE[i]/m[i+1]/CI + T[i+1];
    1388                                 surpT[i+1] = fmax(0.0, (T[i+1] - CtoK - LF/CI));
     1388
     1389                                exsT[i+1] = fmax(0.0, T[i+1] - CtoK) + exsT[i+1];
     1390                                T[i+1] = fmin(CtoK, T[i+1]);
     1391
     1392                                surpT[i+1] = fmax(0.0, exsT[i+1] - LF/CI);
    13891393                                surpE[i+1] = surpT[i+1] * CI * m[i+1];
    13901394
    13911395                                // adjust current cell properties (again 159.1342 is the max T)
    1392                                 T[i] = T[i]-surpE[i]/m[i+1]/CI;
     1396                                exsT[i] = LF/CI;
    13931397                                surpE[i] = 0.0;
    13941398                                i = i + 1;
    13951399                        }
    1396                         // recalculate temperature excess above 0 deg C
    1397                         for(int i=0;i<n;i++) exsT[i] = fmax(0.0, T[i] - CtoK); 
    13981400                }
    13991401
Note: See TracChangeset for help on using the changeset viewer.