Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

Noah-MP water budget error on restart

RCarpenter

Member
When restarting a WRF run in v4.3.3, a water budget error is sometimes triggered. This seems to be called from phys/module_sf_noahmplsm.F, where a criterion of ABS(ERRWAT) > 0.1 is used. I do not see this error if the model runs to completion without being restarted.

Output:
Code:
The model is gaining water (ERRWAT is positive)
 ERRWAT =  0.2096077     kg m{-2} timestep{-1}
    I      J     END_WB     BEG_WB       PRCP       ECAN       EDIR      ETRAN      RUNSRF     RUNSUB
    51     50        5468.429       5468.628    0.00000    0.41931   -0.00220   -0.00032    0.00000   -0.00747    2.50000
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  <stdin>  LINE:    1648
Water budget problem in NOAHMP LSM

Physics namelist:
Code:
&physics
 physics_suite = 'conus'
 cu_physics = 6, 0
 grav_settling = 2, 2
 mp_physics = 8, 8
 num_land_cat = 21
 ra_lw_physics = 4, 4
 ra_sw_physics = 4, 4
 scalar_pblmix = 1, 1
 swint_opt = 1
 radt = 5, 5
 bl_pbl_physics = 5, 5
 sf_sfclay_physics = 5, 5
 sf_surface_physics = 4, 4
 slope_rad = 0, 1
 topo_shading = 0, 1
 usemonalb = .TRUE.
 rdlai2d = .TRUE.
 num_soil_layers = 4
 surface_input_source = 3
 do_radar_ref = 0
/
 
Hi,
Thanks for reporting this issue. I wonder whether this error occurs frequently or just occasionally? thanks.
 
The problem seems to occur fairly often when restarting. The error is seen in the rsl output on one or more patches.

It may related to adaptive time stepping. There is a bug in which the restart dumps on nested grids don't occur exactly on output times (I and others have reported this). For instance, one restart file is wrfrst_d02_2021-11-07_22:00:06. Note that it is 6 seconds past the hour. In order for WRF to use this I have to create a symlink to wrfrst_d02_2021-11-07_22:00:00. Perhaps there is enough accumulation of water in those few seconds to trigger the error?
 
I will talk to our expert and ask his opinion on this issue. It may take time. Thanks for your patience.
 
We have the same problem that RCarpenter: "When restarting a WRF run in v4.2.2, a water budget error is sometimes triggered. This seems to be called from phys/module_sf_noahmplsm.F, where a criterion of ABS(ERRWAT) > 0.1 is used. I do not see this error if the model runs to completion without being restarted. The problem seems to occur fairly often when restarting. The error is seen in the rsl output on one or more patches" but in our case not use adaptive time stepping. We run the model with fix time_step.

Output:
The model is gaining water (ERRWAT is positive)
ERRWAT = 8.104321 kg m{-2} timestep{-1}
I J END_WB BEG_WB PRCP EDIR RUNSRF RUNSUB
118 424 8.105 0.000 0.00002 -0.00043 0.00000 0.00000
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 3024
Water budget problem in NOAHMP GLACIER
-------------------------------------------

Any comment or solution? We are going to run long simulations (30 years) in a continuous way and we will certainly have to use restart files.
 
Our expert provided the following comments:
For this water budget error, it looks like it is because the BEG_WB variable did not get the correct initial value when restarting (which is currently 0.0 in this glacier point). In glacier point, BEG_WB will get initialized in NoahMP by using snow water equivalent (BEG_WB = SNEQV). I would suggest the user check the snow water equivalent variable (I believe it is called "SNOW" in WRF) in their restart file to see if it is correctly assigned a value.

Let us know what you find out. The expert also suggested to try the latest version (4.4) and see if the error remains.
 
Last edited:
We have the same problem that RCarpenter: "When restarting a WRF run in v4.2.2, a water budget error is sometimes triggered. This seems to be called from phys/module_sf_noahmplsm.F, where a criterion of ABS(ERRWAT) > 0.1 is used. I do not see this error if the model runs to completion without being restarted. The problem seems to occur fairly often when restarting. The error is seen in the rsl output on one or more patches" but in our case not use adaptive time stepping. We run the model with fix time_step.

Output:
The model is gaining water (ERRWAT is positive)
ERRWAT = 8.104321 kg m{-2} timestep{-1}
I J END_WB BEG_WB PRCP EDIR RUNSRF RUNSUB
118 424 8.105 0.000 0.00002 -0.00043 0.00000 0.00000
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 3024
Water budget problem in NOAHMP GLACIER
-------------------------------------------

Any comment or solution? We are going to run long simulations (30 years) in a continuous way and we will certainly have to use restart files.

When restarting a WRF run in v4.3.3, a water budget error is sometimes triggered. This seems to be called from phys/module_sf_noahmplsm.F, where a criterion of ABS(ERRWAT) > 0.1 is used. I do not see this error if the model runs to completion without being restarted.

Output:
Code:
The model is gaining water (ERRWAT is positive)
 ERRWAT =  0.2096077     kg m{-2} timestep{-1}
    I      J     END_WB     BEG_WB       PRCP       ECAN       EDIR      ETRAN      RUNSRF     RUNSUB
    51     50        5468.429       5468.628    0.00000    0.41931   -0.00220   -0.00032    0.00000   -0.00747    2.50000
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  <stdin>  LINE:    1648
Water budget problem in NOAHMP LSM

Physics namelist:
Code:
&physics
 physics_suite = 'conus'
 cu_physics = 6, 0
 grav_settling = 2, 2
 mp_physics = 8, 8
 num_land_cat = 21
 ra_lw_physics = 4, 4
 ra_sw_physics = 4, 4
 scalar_pblmix = 1, 1
 swint_opt = 1
 radt = 5, 5
 bl_pbl_physics = 5, 5
 sf_sfclay_physics = 5, 5
 sf_surface_physics = 4, 4
 slope_rad = 0, 1
 topo_shading = 0, 1
 usemonalb = .TRUE.
 rdlai2d = .TRUE.
 num_soil_layers = 4
 surface_input_source = 3
 do_radar_ref = 0
/
I have the same problem and try to change the source code 'IF (ABS(ERRWAT)>0.1)' to 'IF (ABS(ERRWAT)>1)' in line 1641 of /phys/module_sf_noahmplsm.F, but the error is still seen in the rsl output after recompiling
Do you have soluted this problem? Please give me some Any comment
 
Would you please tell which version of WRF you are running? Have you looked at the snow water equivalent variable ("SNOW" in WRF) in your restart file to see if it is correctly assigned a value?
 
Top