Index: ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp =================================================================== --- ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp (revision 22735) +++ ../trunk-jpl/src/c/modules/SurfaceMassBalancex/Gembx.cpp (revision 22736) @@ -1332,7 +1332,7 @@ for(int i=0;i(n); for(int i=0;i 0.0 + Ttol){ + while (cellsum(surpE,n) > 0.0 + Ttol && i zMax %f \n", Ztot); // mass and energy loss mAdd = -(m[n-1]+W[n-1]); - addE = -(T[n-1]*m[n-1]*CI); + addE = -(T[n-1]*m[n-1]*CI) - (W[n-1]*(LF+CtoK*CI)); dz_add=-(dz[n-1]); // remove a grid cell from the bottom @@ -1744,7 +1743,6 @@ celldelete(&EW,n,D,D_size); n=D_size; xDelete(D); - } //// CHECK FOR MASS AND ENERGY CONSERVATION @@ -1762,7 +1760,7 @@ /*only in forward mode! avoid round in AD mode as it is not differentiable: */ #ifndef _HAVE_ADOLC_ - dm = round(mSum0 - mSum1 + mAdd); + dm = round((mSum0 - mSum1 + mAdd)*1000); dE = round(sumE0 - sumE1 - sumER + addE); if (dm !=0 || dE !=0) _error_("mass or energy are not conserved in melt equations\n" << "dm: " << dm << " dE: " << dE << "\n");