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

ACM2 PBL: frequent RIBX never exceeds RIC

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.


New member
I'm trying to test the effect of using soil moisture nudging in Australia using the PX LSM and ACM2 PBL scheme. I have two runs that are identical expect for the values of pxlsm_smois_init and pxlsm_soil_nudge:

# grep -e bl_pbl -e sf_sfclay -e sf_surface SM_nudge/2017-10-18/namelist.input.wrf
 sf_surface_physics                  = 7,     7,     7,     7,     7,
 sf_sfclay_physics                   = 7,     7,     7,     7,     7,
 bl_pbl_physics                      = 7,     7,     7,     7,     7,

# diff_namelist SM_nudge/2017-10-18/namelist.input SM_no_nudge/2017-10-18/namelist.input
<   pxlsm_smois_init                    = 1,     1,     1,     1
>   pxlsm_smois_init                    = 0,     0,     0,     0
<   pxlsm_soil_nudge                    = 1,      1,      1,      1
>   pxlsm_soil_nudge                    = 0,      0,      0,      0

(That's the beginning of the with-nudging 5-day run, subsequent runs will re-start from it and use pxlsm_smois_init = 0)

For the with-nudging, I get the common RIBX never exceeds RIC, RIB(i,kte) error after 22 simulated hours, almost halfway between the 4th and 5th 6-hourly metoa_em files, in d02 (a least that's the last line in rsl.error.0000). d04 would be the next loop, but d04 is only 100x100 points, and the RIBX happens at 57,159, so it could be in d02 or d03 which are both 160x160. It's suspect that it's about halfway between metoa_em files, which I'm using for analysis nudging.

# tail -5 rsl.error.0000
Timing for main (dt= 11.86): time 2017-10-18_09:50:55 on domain   4:    0.16249 elapsed seconds
Timing for main (dt= 11.86): time 2017-10-18_09:51:07 on domain   4:    0.15057 elapsed seconds
Timing for main (dt= 11.86): time 2017-10-18_09:51:18 on domain   4:    0.15237 elapsed seconds
Timing for main (dt= 35.59): time 2017-10-18_09:51:18 on domain   3:    0.98769 elapsed seconds
Timing for main (dt= 71.17): time 2017-10-18_09:51:18 on domain   2:    2.58357 elapsed seconds

# tail -5 rsl.error.0058
d04 2017-10-18_06:00:00 Input data processed for aux input   9 for domain   4
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  <stdin>  LINE:     425
  RIBX never exceeds RIC, RIB(i,kte) =              NaN  THETAV(i,1) =     197.1508      MOL=   -18.71513      TCONV =              NaN  WST =              NaN  KMIX =             4  UST =    0.5062621      TST =   -0.6880610      U,V =    -3.220325        5.207067      I,J=           57          159

For the no-nudging case, I can run the the 5.5-day inits simultaneously because each does not depend on the previous. Out of 15 5.5-day overlapping runs, 12 or so had that error (or CFL errors in d01 over Tasmania). With-nudging runs used 64 cores, no-nudging runs each used 8 cores, with the same WRF-4.2 executable.

Previous posts say to look for bad inputs. Using ncview to look at the metoa_em files, I don't see anything particularly out of the ordinary. The location of the RIBX error is usually in d02 (DX=9km) near I,J = 57,159, about 75km (d02) or 12km (d03) from the coast, with no surface OBS nearby (so probably not an SST problem, or a bad OBS problem). That is, however, a cell at the very top boundary of my domain - but d01 near there looks fine to me as well.

I did notice that the field SOILTEMP looks blocky near the coast, but smoother inland, and the point I,J = 57,159 is near the edge of one of those blocks. ST0000007 does not look blocky, nor does SKINTEMP. I don't see SOILTEMP in METGRID.TBL, so I'm not even sure where it comes from or what it gets used for, nor how to make it less blocky.

I did try using two different SST datasets (FNMOC and RTG) but both tests used ERA5 as inputs. Both had the same RIBX problem.

Any hints on what I should be looking for? Does the NaN for w-star imply too much convection?
I would like to confirm that for the nudging case,
(1) pxlsm_smois_init =0 and pxlsm_soil_nudge =1
(2) you have included the correct mask for SST
and for the no-ndging case
(3) you set pxlsm_smois_init =0 and pxlsm_soil_nudge =0, the case can run to the end

If pxlsm_smois_init =1 and pxlsm_soil_nudge =0, can this case run to the end?
(1) For the the very beginning of the WRF run one should set pxlsm_smois_init =0 and pxlsm_soil_nudge =1. Subsequent 5-day runs that re-start from the end of the first 5-day init should have pxlsm_smois_init =1 and pxlsm_soil_nudge =1. But my first init only runs for part of a day before crashing with the RIBX error.

(2) I tried using FNMOC SST, which has a broken landsea mask, and with RTG SST which does not supply a land-sea mask. So no, no landsea mask.

If I run with no high-res SST product (just ERA5 SST field) then it runs 55 hours, and has an RIBX error over Tasmania. No NaNs this time, just very high vertical wind speeds.

(3) When using pxlsm_smois_init =0 and pxlsm_soil_nudge =0, the 5-day runs don't depend on each other, and can be run simultaneously. The first 2.5 months had about a dozen inits that stopped with the RIBX error.