Hi Julia,
We found the issue that caused MPAS crash.This is because, SWE from ERA5 is up to 10m, which leads to more than 30m of snow depth. As a result, NoahMP snow package becomes physically unreasonable and yields TSK that is totally wrong. TSK subsequently affects radiation, eventually leading to model crash.
There are 2 temporary solutions to this issue:
(1) exclude snow from ERA5,
or
(2) cap SWE in NoahMP
Michael suggests that we add limitations to snow in init_atmopshere. This is the approach I like, because it will address similar issues caused by wrong information in MPAS input data, --- while it is hard for us to explore each individual forcing data to detect wrong information, this approach potentially can correct wrong information at the right beginning. I suppose this new feature will be included in MPASV8.3.0, which will be released before the MPAS/WRF workshop.
If you din't feel like to wait until the release of MPASV8.3.0, then you can modify the code:
MPAS-Model/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpInitMainMod.F90, in which please find the following piece of code (`~lines 53-65):
Code:
do i = its, its
if ( NoahmpIO%snow(i) < 0.0 ) NoahmpIO%snow(i) = 0.0
if ( NoahmpIO%snowh(i) < 0.0 ) NoahmpIO%snowh(i) = 0.0
if ( (NoahmpIO%snow(i) > 0.0) .and. (NoahmpIO%snowh(i) == 0.0) ) &
NoahmpIO%snowh(i) = NoahmpIO%snow(i) * 0.005
if ( (NoahmpIO%snowh(i) > 0.0) .and. (NoahmpIO%snow(i) == 0.0) ) &
NoahmpIO%snow(i) = NoahmpIO%snowh(i) / 0.005
if ( NoahmpIO%snow(i) > 2000.0 ) then
NoahmpIO%snowh(i) = NoahmpIO%snowh(i) * 2000.0 / NoahmpIO%snow(i) !snow in mm and snowh in m.
NoahmpIO%snow (i) = 2000.0 !cap snow at 2000 to maintain
!density.
endif
enddo
And change the first line from do i = its, its to do i = its, ite. Then recompile and run your case again.
Please let me know if you still have any issues. Thanks.