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

real.exe "ERROR while reading namelist domains" near ref_lat for simple 1-domain ERA5 run (WRF 4.7.1)

rohan

New member
Hi all,


I’m running WRF v4.7.1 with ERA5 forcing over a small Lambert domain in New South Wales (Australia). geogrid.exe, ungrib.exe, and metgrid.exe all complete successfully, but real.exe fails immediately with:


Code:
------ ERROR while reading namelist domains ------
Maybe here?:
Maybe here?:      ref_lat                 = -32.678,
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  <stdin>  LINE:   11700
ERRORS while reading one or more namelists from namelist.input.


This happens consistently, even though the &domains block looks standard and ref_lat itself seems fine.

Setup​


  • WRF version: 4.7.1 (real.exe and wrf.exe compiled successfully)
  • Forcing: ERA5 (pressure + single levels), 3-hourly
  • Projection: Lambert conformal, centered roughly over NSW
  • WPS and WRF are in ~/WRF/WPS and ~/WRF/WRF/run



What works​


1. geogrid.exe​


geogrid.exe completes successfully and produces geo_em.d01.nc. The domain extents are:


Code:
# using xarray
lat: -36.6449 to -28.6218
lon: 146.2059 to 156.0697


2. ungrib.exe + metgrid.exe​


ungrib.exe runs without errors.


metgrid.exe also completes cleanly:



Code:
*** Successful completion of program metgrid.exe ***
OUTPUT/met_em.d01.2025-07-01_00:00:00.nc
OUTPUT/met_em.d01.2025-07-01_03:00:00.nc
...


So WPS appears to be configured correctly, and the met_em files for d01 exist and cover the requested period.

What fails: real.exe​


In ~/WRF/WRF/run I run:


Code:
rm -f rsl.out.0* rsl.error.0*
./real.exe
tail -n 60 rsl.error.0000


And I consistently get:


Code:
starting wrf task            0  of            1
taskid: 0 hostname: <hostname>
module_io_quilt_old.F        2931 T
------ ERROR while reading namelist domains ------
Maybe here?:
Maybe here?:      ref_lat                 = -32.678,
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  <stdin>  LINE:   11700
ERRORS while reading one or more namelists from namelist.input.
-------------------------------------------
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0


No wrfinput_d01 or wrfbdy_d01 files are created.


As a sanity check, if I copy an official test namelist from ../test/em_quarter_ss/namelist.input, real.exe does get past &domains and then fails later with a date error (as expected for that test case). So the binary itself seems fine.


I also checked for hidden characters:



cat -vet namelist.input | sed -n '1,120p'


Everything looks normal (only $ at end of lines), no strange characters around ref_lat.

My current namelists​


namelist.wps​

Code:
&share
 wrf_core = 'ARW',
 max_dom = 1,
 start_date = '2025-07-01_00:00:00',
 end_date   = '2025-10-31_23:00:00',
 interval_seconds = 10800,
 io_form_geogrid  = 2,
 opt_output_from_geogrid_path = '/home/rohan/WRF/WPS/OUTPUT/',
/


&geogrid
 parent_id         = 1,
 parent_grid_ratio = 1,
 i_parent_start    = 1,
 j_parent_start    = 1,
 e_we              = 100,
 e_sn              = 100,
 dx                = 9000.,
 dy                = 9000.,


 map_proj = 'lambert',
 ref_lat  = -32.678,
 ref_lon  = 151.132,
 truelat1 = -30.,
 truelat2 = -35.,
 stand_lon = 151.,


 geog_data_res = 'default',
 geog_data_path = '/home/rohan/WRF/WPS_GEOG_HIGHRES',
 opt_geogrid_tbl_path = './geogrid/',
/


&ungrib
 out_format = 'WPS',
 prefix = 'ERA5',
/


&metgrid
 fg_name = 'ERA5',
 io_form_metgrid = 2,
 opt_output_from_metgrid_path = '/home/rohan/WRF/WPS/OUTPUT/',
/

namelist.input (current):
Code:
&time_control
 run_days        = 122,
 run_hours       = 23,
 run_minutes     = 0,
 run_seconds     = 0,


 start_year      = 2025, 2025, 2025, 2025, 2025,
 start_month     = 07,   07,   07,   07,   07,
 start_day       = 01,   01,   01,   01,   01,
 start_hour      = 00,   00,   00,   00,   00,


 end_year        = 2025, 2025, 2025, 2025, 2025,
 end_month       = 10,   10,   10,   10,   10,
 end_day         = 31,   31,   31,   31,   31,
 end_hour        = 23,   23,   23,   23,   23,


 interval_seconds        = 10800,
 input_from_file         = .true., .true., .true., .true., .true.,
 history_interval        = 60, 60, 60, 60, 60,
 frames_per_outfile      = 1, 1, 1, 1, 1,
 restart                 = .false.,
 restart_interval        = 1440,
 io_form_history         = 2,
 io_form_restart         = 2,
 io_form_input           = 2,
 io_form_boundary        = 2,
/


&domains
 time_step               = 45,
 max_dom                 = 1,


 e_we                    = 100, 100, 100, 100, 100,
 e_sn                    = 100, 100, 100, 100, 100,
 e_vert                  = 40,  40,  40,  40,  40,


 p_top_requested         = 5000.,
 num_metgrid_levels      = 37,
 num_metgrid_soil_levels = 4,


 dx                      = 9000., 3000., 1000., 333.3333, 111.1111,
 dy                      = 9000., 3000., 1000., 333.3333, 111.1111,


 grid_id                 = 1, 2, 3, 4, 5,
 parent_id               = 1, 1, 2, 3, 4,
 parent_grid_ratio       = 1, 3, 3, 3, 3,
 parent_time_step_ratio  = 1, 3, 3, 3, 3,


 i_parent_start          = 1, 34, 34, 34, 34,
 j_parent_start          = 1, 34, 34, 34, 34,


 feedback                = 0,
 smooth_option           = 0,


 ref_lat                 = -32.678,
 ref_lon                 = 151.132,
 truelat1                = -30.,
 truelat2                = -35.,
 stand_lon               = 151.,
/


&physics
 mp_physics              = 3, 3, 3, 3, 3,
 ra_lw_physics           = 1, 1, 1, 1, 1,
 ra_sw_physics           = 1, 1, 1, 1, 1,
 radt                    = 30, 30, 30, 30, 30,
 sf_sfclay_physics       = 1, 1, 1, 1, 1,
 sf_surface_physics      = 2, 2, 2, 2, 2,
 bl_pbl_physics          = 1, 1, 1, 1, 1,
 bldt                    = 0, 0, 0, 0, 0,
 cu_physics              = 0, 0, 0, 0, 0,
 cudt                    = 0, 0, 0, 0, 0,
 isfflx                  = 1,
 ifsnow                  = 0,
 icloud                  = 1,
 surface_input_source    = 1,
 num_soil_layers         = 4,
 num_land_cat            = 21,
/


&fdda
/


&dynamics
 hybrid_opt              = 2,
 w_damping               = 0,
 diff_opt                = 2, 2, 2,
 km_opt                  = 4, 4, 4,
 diff_6th_opt            = 0, 0, 0,
 diff_6th_factor         = 0.12, 0.12, 0.12,
 base_temp               = 290.,
 damp_opt                = 3,
 zdamp                   = 5000.,
 dampcoef                = 0.2,
 khdif                   = 0,
 kvdif                   = 0,
 non_hydrostatic         = .true., .true., .true., .true., .true.,
 moist_adv_opt           = 1, 1, 1, 1, 1,
 scalar_adv_opt          = 1, 1, 1, 1, 1,
 gwd_opt                 = 1, 1, 1, 1, 1,
/


&bdy_control
 spec_bdy_width          = 5,
 specified               = .true.,
/


&grib2
/


&namelist_quilt
 nio_tasks_per_group     = 0,
 nio_groups              = 1,
/

What I’ve already tried​


  • Shorter run (1–2 days) and corresponding shorter WPS period → same ref_lat error.
  • Changing max_dom to 1 and removing extra elements in arrays → same error.
  • Re-typing the &domains block from scratch, checking with cat -vet.
  • Using a test-case namelist from ../test: confirms real.exe itself parses a namelist correctly and then fails for other (expected) reasons.



Questions​


  1. Is there anything obviously wrong or inconsistent in my &domains block that could cause real.exe to fail at “ERROR while reading namelist domains” even though the syntax looks fine?
  2. Is it a problem that max_dom = 1 but some arrays (e.g. e_we, dx, etc.) still have 5 entries, or should that be acceptable as long as the first value is used?
  3. Are there any known issues with WRF 4.7.1 + ERA5 where num_metgrid_levels / num_metgrid_soil_levels or the Lambert settings might trigger a namelist parsing error?

I realise this is difficult to reproduce end-to-end (I can’t easily share all forcing files), but I hope the full namelist and log snippet above are enough to spot what I’m missing.


Any pointers would be greatly appreciated.


Thanks in advance!
 
Thanks, ---- I need uploaded namelist.input, which makes it easy for me to check.

Please delete the following options, then try again:

Code:
 ref_lat                 = -32.678,
 ref_lon                 = 151.132,
 truelat1                = -30.,
 truelat2                = -35.,
 stand_lon               = 151.,
 
starting wrf task 0 of 1
taskid: 0 hostname: rohan-Dell-Pro-Slim-Plus-QBS1250
module_io_quilt_old.F 2931 T
------ ERROR while reading namelist domains ------
Maybe here?:
Maybe here?: # ref_lat = -32.678,
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 11700
ERRORS while reading one or more namelists from namelist.input.
-------------------------------------------
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0


I have commented out those variables inside namelist.input, and after running again I got above error.
 
Top