Snow depth error of using ERA5 driving MPAS

caoyer

New member
I'm using ERA5 reanalysis data to drive MPAS global running, the variables I used are listed here,
3D :
"geopotential",
"relative_humidity",
"specific_humidity",
"temperature",
"u_component_of_wind",
"v_component_of_wind".
2D:
"10m_u_component_of_wind",
"10m_v_component_of_wind",
"2m_dewpoint_temperature",
"2m_temperature",
"mean_sea_level_pressure",
"sea_surface_temperature",
"surface_pressure",
"skin_temperature",
"snow_albedo",
"snow_depth",
"soil_temperature_level_1",
"soil_temperature_level_2",
"soil_temperature_level_3",
"soil_temperature_level_4",
"volumetric_soil_water_layer_1",
"volumetric_soil_water_layer_2",
"volumetric_soil_water_layer_3",
"volumetric_soil_water_layer_4",
"geopotential",
"land_sea_mask",
"sea_ice_cover".

I used WPS-4.2 to ungrib the ERA5 grib file (using Vtable.ERA-interim.pl) to intermediate format with prefix ERA5:xxxx-xx-xx.

the init_atmosphere_model can run successfully but when I run atmopshere model, I have error of :

forrtl: error (65): floating invalid
Image PC Routine Line Source
libpthread-2.28.s 00001457B07A7CF0 Unknown Unknown Unknown
atmosphere_model 0000000000953395 phenologymainmod_ 115 PhenologyMainMod.F90
atmosphere_model 000000000094D4C6 noahmpmainmod_mp_ 70 NoahmpMainMod.F90
atmosphere_model 000000000094C44B noahmpdrivermainm 213 NoahmpDriverMainMod.F90
atmosphere_model 0000000000913E5F mpas_atmphys_driv 1584 mpas_atmphys_driver_lsm_noahmp.F
atmosphere_model 0000000000566BF9 mpas_atmphys_driv 295 mpas_atmphys_driver.F
atmosphere_model 00000000004D8108 atm_core_mp_atm_c 1004 mpas_atm_core.F
atmosphere_model 00000000004175C4 mpas_subdriver_mp 416 mpas_subdriver.F
atmosphere_model 0000000000417521 MAIN__ 20 mpas.F
atmosphere_model 000000000041749D Unknown Unknown Unknown
libc-2.28.so 00001457B0088D85 __libc_start_main Unknown Unknown
atmosphere_model 00000000004173BE Unknown Unknown Unknown
.
I checked the source code and it may be caused unusual value of sonwh(snow depth) in PhenologyMainMod.F90 from Noah-MP land surface model.
I looked at the sonwh variable in init.nc and find the snowh in north pole and south pole is very high (which in GFS and FNL are 2m at most).
I wonder why this happen and how I can fix it? 1743851661632.png

1743851488943.png
 
HI,
Thank you for raising this issue, --- we have found the same problem and has been working to trace where the error is from. I will keep you updated once we fix this issue. It may take some time. Please remind me if you don't get any feedback in 1-2 weeks, Thanks for your patience.
 
Hi,

We have explored the reason for the MPAS crash. We believe that the information of SWE from ERA5 is not correct. A 10m SWE leads to more than 30m of snow depth, and the snow package in NoahMP cannot handle such a deep snow.

We will fix this problem in MPASv8.3.0, which will be released before the end of June 2025. As a temporary fix, please modify the code

MPAS-Model/src/core_atmosphere/physics/physics_noahmp/drivers/mpas/NoahmpInitMainMod.F90, in which you can 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

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.
 
Back
Top