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

ERRORS while reading one or more namelists from namelist.input.

sudesokin

New member
Hi,

Unfortunately, I'm having trouble with my namelist.input file this time. I researched online, but I couldn't identify the cause of the error. I'm sharing my namelist.wps and namelist.input files with you. I configured my namelist.input file as shown below. After that, I ran the real.exe step and encountered this error:

module_io_quilt_old.F 2931 T
------ ERROR while reading namelist time_control ------
Maybe here?: &time_control
Maybe here?: run_days = 4, 4, 4,
------ ERROR while reading namelist physics ------
Maybe here?: sf_surface_physics = 2, 2, 2,
Maybe here?: num_soil_layers = 4, 4, 4,
------ ERROR while reading namelist bdy_control ------
Maybe here?: &bdy_control
Maybe here?: nio_tasks_per_group = 0,
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 11680
ERRORS while reading one or more namelists from namelist.input.
-------------------------------------------
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
Proc: [[52807,0],0]
Errorcode: 1

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------

Do you have any idea what might be causing this? I would be very grateful if you could help. Thank you.
 

Attachments

  • namelist.input
    1.4 KB · Views: 6
  • namelist.wps
    717 bytes · Views: 1
I have modifed your namelist.input and correct some errors. Please try and let me know how it works:
Code:
&time_control
 run_days = 4,
 run_hours = 0,
 run_minutes = 0,
 run_seconds = 0,
 start_year = 2024, 2024, 2024,
 start_month = 05, 05, 05,
 start_day = 07, 07, 07,
 start_hour = 0, 0, 0,
 start_minute = 0, 0, 0,
 start_second = 0, 0, 0,
 end_year = 2024, 2024, 2024,
 end_month = 5, 5, 5,
 end_day = 11, 11, 11,
 end_hour = 0, 0, 0,
 end_minute = 0, 0, 0,
 end_second = 0, 0, 0,
 interval_seconds = 3600,
 input_from_file = .true., .true., .true.,
 history_interval = 30, 30, 30,
 frames_per_outfile = 1, 1, 1,
 restart = .false.,
/

&domains
 time_step = 6,
 time_step_fract_num = 0,
 time_step_fract_den = 1,
 max_dom = 1,
 e_we = 100, 148, 298,
 e_sn = 100, 148, 298,
 e_vert = 50, 50, 50,
 dx = 1000,
 dy = 1000,
 parent_id = 1, 1, 2,
 parent_grid_ratio = 1, 3, 3,
 i_parent_start = 1, 31, 41,
 j_parent_start = 1, 31, 41,
 feedback = 1,
 smooth_option = 0,
/

&physics
 mp_physics = 8, 8, 8,
 ra_lw_physics = 4, 4, 4,
 ra_sw_physics = 4, 4, 4,
 bl_pbl_physics = 1, 1, 1,
 sf_sfclay_physics = 1, 1, 1,
 sf_surface_physics = 2, 2, 2,
 num_soil_layers = 4,
 topo_shading = 1, 1, 1,
 isfflx = 1,
/

&dynamics
 hybrid_opt = 2,
 diff_opt = 2, 2, 2,
 km_opt = 4, 4, 4,
 diff_6th_opt = 2, 2, 2,
 diff_6th_factor = 0.12, 0.12, 0.12,
/

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

&namelist_quilt
nio_tasks_per_group = 0,
nio_groups = 1,
/
 
Thanks.
I tried the namelist.input you sent, and I got this error. Shouldn't max_dom = 3?
taskid: 0 hostname: a036.uhem.itu.edu.tr
module_io_quilt_old.F 2931 T
Ntasks in X 8 , ntasks in Y 16
Domain # 1: dx = 1000.000 m
For domain 1 , the domain size is too small for this many processors, or the decomposition aspect ratio is poor.
Minimum decomposed computational patch size, either x-dir or y-dir, is 10 grid cells.
e_we = 100, nproc_x = 8, with cell width in x-direction = 12
e_sn = 100, nproc_y = 16, with cell width in y-direction = 6
--- ERROR: Reduce the MPI rank count, or redistribute the tasks.
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 2815
NOTE: 1 namelist settings are wrong. Please check and reset these options
 
This error is attributed to the wrong number of processors you used to run this case.

Can you reduce the number to 16, then try again? Currently you used 128 processors, i guess.
 
&time_control
run_days = 4,
run_hours = 0,
run_minutes = 0,
run_seconds = 0,
start_year = 2024, 2024, 2024,
start_month = 05, 05, 05,
start_day = 07, 07, 07,
start_hour = 0, 0, 0,
start_minute = 0, 0, 0,
start_second = 0, 0, 0,
end_year = 2024, 2024, 2024,
end_month = 5, 5, 5,
end_day = 11, 11, 11,
end_hour = 0, 0, 0,
end_minute = 0, 0, 0,
end_second = 0, 0, 0,
interval_seconds = 3600,
input_from_file = .true., .true., .true.,
history_interval = 30, 30, 30,
frames_per_outfile = 1, 1, 1,
restart = .false.,
/

&domains
time_step = 6,
time_step_fract_num = 0,
time_step_fract_den = 1,
max_dom = 3,
e_we = 100, 148, 298,
e_sn = 100, 148, 298,
e_vert = 50, 50, 50,
dx = 1000,
dy = 1000,
parent_id = 1, 1, 2,
parent_grid_ratio = 1, 3, 3,
i_parent_start = 1, 31, 41,
j_parent_start = 1, 31, 41,
feedback = 1,
smooth_option = 0,
/

&physics
mp_physics = 8, 8, 8,
ra_lw_physics = 4, 4, 4,
ra_sw_physics = 4, 4, 4,
bl_pbl_physics = 1, 1, 1,
sf_sfclay_physics = 1, 1, 1,
sf_surface_physics = 2, 2, 2,
num_soil_layers = 4,
topo_shading = 1, 1, 1,
isfflx = 1,
/

&dynamics
hybrid_opt = 2,
diff_opt = 2, 2, 2,
km_opt = 4, 4, 4,
diff_6th_opt = 2, 2, 2,
diff_6th_factor = 0.12, 0.12, 0.12,
/

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

&namelist_quilt
nio_tasks_per_group = 0,
nio_groups = 1,
/

I only changed the max_dom value to 3 in the namelist.input file you shared, used 16 processors, and got the following error:

module_io_quilt_old.F 2931 T
Ntasks in X 4 , ntasks in Y 4
Domain # 1: dx = 1000.000 m
Domain # 2: dx = 333.333 m
Domain # 3: dx = 111.111 m
REAL_EM V4.6.1 PREPROCESSOR
git commit d66e442fccc04111067e29274c9f9eaccc3cef28
*************************************
Parent domain
ids,ide,jds,jde 1 100 1 100
ims,ime,jms,jme -4 32 -4 32
ips,ipe,jps,jpe 1 25 1 25
*************************************
DYNAMICS OPTION: Eulerian Mass Coordinate
alloc_space_field: domain 1 , 60148424 bytes allocated
d01 2024-05-07_00:00:00 Yes, this special data is acceptable to use: OUTPUT FROM METGRID V4.6.0
d01 2024-05-07_00:00:00 Input data is acceptable to use: met_em.d01.2024-05-07_00:00:00.nc
metgrid input_wrf.F first_date_input = 2024-05-07_00:00:00
metgrid input_wrf.F first_date_nml = 2024-05-07_00:00:00
----------------- ERROR -------------------
namelist : num_metgrid_soil_levels = 4
input files : NUM_METGRID_SOIL_LEVELS = 0 (from met_em files).
d01 2024-05-07_00:00:00 ---- ERROR: Mismatch between namelist and global attribute NUM_METGRID_SOIL_LEVELS
d01 2024-05-07_00:00:00 input_wrf.F: SIZE MISMATCH: namelist num_metgrid_levels = 27
d01 2024-05-07_00:00:00 input_wrf.F: SIZE MISMATCH: input file BOTTOM-TOP_GRID_DIMENSION = 23
d01 2024-05-07_00:00:00 ---- ERROR: Mismatch between namelist and input file dimensions
NOTE: 2 namelist vs input data inconsistencies found.
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 1307
NOTE: Please check and reset these options
-------------------------------------------
 
Please see my answers below:
I only changed the max_dom value to 3 in the namelist.input file you shared, used 16 processors, and got the following error:

----------------- ERROR -------------------
namelist : num_metgrid_soil_levels = 4
input files : NUM_METGRID_SOIL_LEVELS = 0 (from met_em files).
d01 2024-05-07_00:00:00 ---- ERROR: Mismatch between namelist and global attribute NUM_METGRID_SOIL_LEVELS
This message indicates that there is no soil data in your me_em files.

What data did you ungrib?

d01 2024-05-07_00:00:00 input_wrf.F: SIZE MISMATCH: namelist num_metgrid_levels = 27

d01 2024-05-07_00:00:00 input_wrf.F: SIZE MISMATCH: input file BOTTOM-TOP_GRID_DIMENSION = 23
d01 2024-05-07_00:00:00 ---- ERROR: Mismatch between namelist and input file dimensions
NOTE: 2 namelist vs input data inconsistencies found.
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 1307
NOTE: Please check and reset these options
-------------------------------------------
Please change num_metgrid_levels = 23, which is the number of vertical levels in your met_em files.

Again, what is the data you used to drive WRF? It is important that this data should include soil information and sufficient upper air data.
 
Thank you.
I used the namelist.input file below and this time I encountered a different error. The input data I used for the model is ERA5. The contents of my ERA5 file are as follows:

NAMELIST.INPUT:
&time_control
run_days = 4,
run_hours = 0,
run_minutes = 0,
run_seconds = 0,
start_year = 2024, 2024, 2024,
start_month = 05, 05, 05,
start_day = 07, 07, 07,
start_hour = 0, 0, 0,
start_minute = 0, 0, 0,
start_second = 0, 0, 0,
end_year = 2024, 2024, 2024,
end_month = 5, 5, 5,
end_day = 11, 11, 11,
end_hour = 0, 0, 0,
end_minute = 0, 0, 0,
end_second = 0, 0, 0,
interval_seconds = 3600,
input_from_file = .true., .true., .true.,
history_interval = 30, 30, 30,
frames_per_outfile = 1, 1, 1,
restart = .false.,
/

&domains
time_step = 6,
time_step_fract_num = 0,
time_step_fract_den = 1,
max_dom = 3,
e_we = 100, 148, 298,
e_sn = 100, 148, 298,
e_vert = 50, 50, 50,
dx = 1000,
dy = 1000,
parent_id = 1, 1, 2,
parent_grid_ratio = 1, 3, 3,
i_parent_start = 1, 31, 41,
j_parent_start = 1, 31, 41,
feedback = 1,
smooth_option = 0,
num_metgrid_soil_levels = 0,
num_metgrid_levels = 23,
/

&physics
mp_physics = 8, 8, 8,
ra_lw_physics = 4, 4, 4,
ra_sw_physics = 4, 4, 4,
bl_pbl_physics = 1, 1, 1,
sf_sfclay_physics = 1, 1, 1,
sf_surface_physics = 2, 2, 2,
num_soil_layers = 4,
topo_shading = 1, 1, 1,
isfflx = 1,
/

&dynamics
hybrid_opt = 2,
diff_opt = 2, 2, 2,
km_opt = 4, 4, 4,
diff_6th_opt = 2, 2, 2,
diff_6th_factor = 0.12, 0.12, 0.12,
/

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

&namelist_quilt
nio_tasks_per_group = 0,
nio_groups = 1,
/
ERROR:
taskid: 0 hostname: a062.uhem.itu.edu.tr
module_io_quilt_old.F 2931 T
Ntasks in X 4 , ntasks in Y 4
Domain # 1: dx = 1000.000 m
Domain # 2: dx = 333.333 m
Domain # 3: dx = 111.111 m
REAL_EM V4.6.1 PREPROCESSOR
git commit d66e442fccc04111067e29274c9f9eaccc3cef28
*************************************
Parent domain
ids,ide,jds,jde 1 100 1 100
ims,ime,jms,jme -4 32 -4 32
ips,ipe,jps,jpe 1 25 1 25
*************************************
DYNAMICS OPTION: Eulerian Mass Coordinate
alloc_space_field: domain 1 , 59447496 bytes allocated
d01 2024-05-07_00:00:00 Yes, this special data is acceptable to use: OUTPUT FROM METGRID V4.6.0
d01 2024-05-07_00:00:00 Input data is acceptable to use: met_em.d01.2024-05-07_00:00:00.nc
metgrid input_wrf.F first_date_input = 2024-05-07_00:00:00
metgrid input_wrf.F first_date_nml = 2024-05-07_00:00:00
d01 2024-05-07_00:00:00 Timing for input 0 s.
Max map factor in domain 1 = 0.97. Scale the dt in the model accordingly.
Missing surface temp, replaced with closest level, use_surface set to false.
Missing surface RH, replaced with closest level, use_surface set to false.
Missing surface u wind, replaced with closest level, use_surface set to false.
Missing surface v wind, replaced with closest level, use_surface set to false.
ERROR in psfc: flag_psfc = 0, flag_soilhgt = 0, flag_slp = 0, sfcp_to_sfcp = F
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 1429
not enough info for a p sfc computation
-------------------------------------------
ERA5:
import cdsapi

dataset = "reanalysis-era5-pressure-levels"
request = {
"product_type": ["reanalysis"],
"variable": [
"geopotential",
"relative_humidity",
"specific_humidity",
"temperature",
"u_component_of_wind",
"v_component_of_wind",
"vertical_velocity"
],
"year": ["2024"],
"month": ["05"],
"day": [
"07", "08", "09",
"10", "11"
],
"time": [
"00:00", "01:00", "02:00",
"03:00", "04:00", "05:00",
"06:00", "07:00", "08:00",
"09:00", "10:00", "11:00",
"12:00", "13:00", "14:00",
"15:00", "16:00", "17:00",
"18:00", "19:00", "20:00",
"21:00", "22:00", "23:00"
],
"pressure_level": [
"50", "100", "150",
"200", "250", "300",
"350", "400", "450",
"500", "550", "600",
"650", "700", "750",
"800", "850", "900",
"925", "950", "975",
"1000"
],
"data_format": "grib",
"download_format": "unarchived"
}

client = cdsapi.Client()
client.retrieve(dataset, request).download('era5_data.grib')
 
The error message below indicates that you don't have sufficient data for running WRF:
Code:
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 1429
not enough info for a p sfc computation
 
You need to figure out what is wrong first....

Simply repeat what you did before would lead to the same error, I guess.
 
You don't have surface level in your download script.

Try this one below. Also you will need to run ungrib twice, once for the pressure level and once for the surface level.

Python:
import cdsapi
import sys
from datetime import datetime, timedelta

def retrieve_data(date, c):
    year = date.strftime('%Y')
    month = date.strftime('%m')
    day = date.strftime('%d')

    # Retrieve pressure levels data
    c.retrieve(
        'reanalysis-era5-pressure-levels',
        {
            'product_type': 'reanalysis',
            'format': 'grib',
            'variable': [
                'geopotential', 'relative_humidity', 'temperature',
                'u_component_of_wind', 'v_component_of_wind',
            ],
            'pressure_level': [
                '1', '2', '3',
                '5', '7', '10',
                '20', '30', '50',
                '70', '100', '125',
                '150', '175', '200',
                '225', '250', '300',
                '350', '400', '450',
                '500', '550', '600',
                '650', '700', '750',
                '775', '800', '825',
                '850', '875', '900',
                '925', '950', '975',
                '1000',
            ],
            'year': year,
            'month': month,
            'day': day,
            'time': [
                '00:00', '03:00', '06:00',
                '09:00', '12:00', '15:00',
                '18:00', '21:00',
            ],
            'area': [
                50, 5, 37, 24,  # North, West, South, East
            ],
        },
        f'era5_pl_{year}{month}{day}.grib'
    )

    # Retrieve surface levels data
    c.retrieve(
        'reanalysis-era5-single-levels',
        {
            'product_type': 'reanalysis',
            'variable': [
                '10m_u_component_of_wind', '10m_v_component_of_wind', '2m_dewpoint_temperature',
                '2m_temperature', 'geopotential', 'land_sea_mask', 'mean_sea_level_pressure', 'sea_ice_cover',
                'sea_surface_temperature', 'snow_depth', 'soil_temperature_level_1', 'skin_temperature',
                'soil_temperature_level_2', 'soil_temperature_level_3', 'soil_temperature_level_4', 'surface_pressure',
                'volumetric_soil_water_layer_1', 'volumetric_soil_water_layer_2', 'volumetric_soil_water_layer_3', 'volumetric_soil_water_layer_4',
            ],
            'year': year,
            'month': month,
            'day': day,
            'time': [
                '00:00', '03:00', '06:00',
                '09:00', '12:00', '15:00',
                '18:00', '21:00',
            ],
            'area': [
                50, 5, 37, 24,  # North, West, South, East
            ],
            'format': 'grib',
        },
        f'era5_sfc_{year}{month}{day}.grib'
    )

def main():
    if len(sys.argv) != 2:
        print("Usage: script.py YYYYMMDD-YYYYMMDD")
        sys.exit(1)

    date_range = sys.argv[1]
    start_date_str, end_date_str = date_range.split('-')

    start_date = datetime.strptime(start_date_str, '%Y%m%d')
    end_date = datetime.strptime(end_date_str, '%Y%m%d')

    c = cdsapi.Client()

    current_date = start_date
    while current_date <= end_date:
        retrieve_data(current_date, c)
        current_date += timedelta(days=1)

if __name__ == "__main__":
    main()
 
I used the script below to download the input ERA5 data, thank you so much for this.
I also left the namelist.input as shown below. Then I followed the steps in this link and completed the metgrid step, but I got the following error during the real.exe step.
My input data actually covers the entire global area, yet I still can't understand why I'm getting this error.
Can you help me with this?

ERROR:
Nesting domain
ids,ide,jds,jde 1 148 1 148
ims,ime,jms,jme -4 48 -4 48
ips,ipe,jps,jpe 1 37 1 37
INTERMEDIATE domain
ids,ide,jds,jde 29 83 29 83
ims,ime,jms,jme 24 52 24 52
ips,ipe,jps,jpe 27 42 27 42
*************************************
d01 2024-05-11_00:00:00 alloc_space_field: domain 2 , 11410688 bytes allocated
d01 2024-05-11_00:00:00 alloc_space_field: domain 2 , 113805496 bytes allocated
d02 2024-05-07_00:00:00 Yes, this special data is acceptable to use: OUTPUT FROM METGRID V4.6.0
d02 2024-05-07_00:00:00 Input data is acceptable to use: met_em.d02.2024-05-07_00:00:00.nc
metgrid input_wrf.F first_date_input = 2024-05-07_00:00:00
metgrid input_wrf.F first_date_nml = 2024-05-07_00:00:00
d02 2024-05-07_00:00:00 Timing for input 0 s.
d02 2024-05-07_00:00:00 flag_soil_layers read from met_em file is 1
Using sfcprs3 to compute psfc
d02 2024-05-07_00:00:00 No average surface temperature for use with inland lakes
Assume Noah LSM input
d02 2024-05-07_00:00:00 forcing artificial silty clay loam at 36 points, out of 1369
d02 2024-05-07_00:00:00 Timing for processing 0 s.
d02 2024-05-07_00:00:00 Timing for output 0 s.
d02 2024-05-07_00:00:00 Timing for loop # 1 = 1 s.
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 189
real_em.F: Could not find the parent domain
-------------------------------------------
ERA5:
import cdsapi
import sys
from datetime import datetime, timedelta

def retrieve_data(date, c):
year = date.strftime('%Y')
month = date.strftime('%m')
day = date.strftime('%d')

# Retrieve pressure levels data
c.retrieve(
'reanalysis-era5-pressure-levels',
{
'product_type': 'reanalysis',
'format': 'grib',
'variable': [
'geopotential', 'relative_humidity', 'specific_humidity', 'temperature',
'u_component_of_wind', 'v_component_of_wind', 'vertical_velocity'
],
'pressure_level': [
"50", "100", "150",
"200", "250", "300",
"350", "400", "450",
"500", "550", "600",
"650", "700", "750",
"800", "850", "900",
"925", "950", "975",
"1000"
],
'year': year,
'month': month,
'day': day,
'time': [
"00:00", "01:00", "02:00",
"03:00", "04:00", "05:00",
"06:00", "07:00", "08:00",
"09:00", "10:00", "11:00",
"12:00", "13:00", "14:00",
"15:00", "16:00", "17:00",
"18:00", "19:00", "20:00",
"21:00", "22:00", "23:00"
],
# 'area': [44, 26, 38, 32]
},
f'era5_pl_{year}{month}{day}.grib'
)

# Retrieve surface levels data
c.retrieve(
'reanalysis-era5-single-levels',
{
'product_type': 'reanalysis',
'variable': [
'10m_u_component_of_wind', '10m_v_component_of_wind', '2m_dewpoint_temperature',
'2m_temperature', 'geopotential', 'land_sea_mask', 'mean_sea_level_pressure', 'sea_ice_cover',
'sea_surface_temperature', 'snow_depth', 'soil_temperature_level_1', 'skin_temperature',
'soil_temperature_level_2', 'soil_temperature_level_3', 'soil_temperature_level_4', 'surface_pressure',
'volumetric_soil_water_layer_1', 'volumetric_soil_water_layer_2', 'volumetric_soil_water_layer_3', 'volumetric_soil_water_layer_4',
],
'year': year,
'month': month,
'day': day,
'time': [
"00:00", "01:00", "02:00",
"03:00", "04:00", "05:00",
"06:00", "07:00", "08:00",
"09:00", "10:00", "11:00",
"12:00", "13:00", "14:00",
"15:00", "16:00", "17:00",
"18:00", "19:00", "20:00",
"21:00", "22:00", "23:00"
],
'format': 'grib',
# 'area': [44, 26, 38, 32]
},
f'era5_sfc_{year}{month}{day}.grib'
)

def main():
if len(sys.argv) != 2:
print("Usage: script.py YYYYMMDD-YYYYMMDD")
sys.exit(1)

date_range = sys.argv[1]
start_date_str, end_date_str = date_range.split('-')

start_date = datetime.strptime(start_date_str, '%Y%m%d')
end_date = datetime.strptime(end_date_str, '%Y%m%d')

c = cdsapi.Client()

current_date = start_date
while current_date <= end_date:
retrieve_data(current_date, c)
current_date += timedelta(days=1)

if __name__ == "__main__":
main()
 

Attachments

  • namelist.input
    1.3 KB · Views: 3
  • namelist.wps
    751 bytes · Views: 2
Top