Abhi,
I suspect it has to do with the initial conditions, in particular the temperature extrapolation at levels close to the surface.Â
We have a hotfix release coming up soon for MPAS 5.0, in which we will give the users the possibility to choose between different temperature extrapolation options at runtime (in namelist.init_atmosphere).
In the meanwhile, could you try the following and let me know if it makes any difference?
edit src/core_init_atmosphere/mpas_init_atm_cases.F
go to line 4409/4410 and change
      t(k,iCell) = vertical_interp(target_z, nfglevels_actual-1, &
                 sorted_arr(:,1:nfglevels_actual-1), order=1, extrap=1)
to
      t(k,iCell) = vertical_interp(target_z, nfglevels_actual-1, &
                 sorted_arr(:,1:nfglevels_actual-1), order=1, extrap=0)
Then, do a clean-compile of the init_atmosphere core and rerun the vertical interpolation step to regenerate
init.nc (maybe keep the old
init.nc with a different name for a later comparison).
Cheers,
Dom