Best Practices for namelist.input Settings


See below the default namelist.input file used for running the WRF model (which includes real.exe, wrf.exe, tc.exe, and ndown.exe). Further below are namelist parameter descriptions and suggested practices, along with some additional options that could be useful.

In the below file, some parameters are domain-dependent and therefore expect a setting for each domain, and others only expect a single entry. The number of domains used is determined by max_dom, whose settings tells WRF how many domains to process. It will only read the entries for the number of columns that match max_dom.


Important

Do not remove information in additional columns and Do not add multiple settings for single setting parameters. Doing so will create a running error.



&time_control
 run_days                            = 0,
 run_hours                           = 36,
 run_minutes                         = 0,
 run_seconds                         = 0,
 start_year                          = 2019, 2019,
 start_month                         = 09,   09,
 start_day                           = 04,   04,
 start_hour                          = 12,   12,
 end_year                            = 2019, 2019,
 end_month                           = 09,   09,
 end_day                             = 06,   06,
 end_hour                            = 00,   00,
 interval_seconds                    = 10800
 input_from_file                     = .true.,.true.,
 history_interval                    = 60,  60,
 frames_per_outfile                  = 1, 1,
 restart                             = .false.,
 restart_interval                    = 7200,
 io_form_history                     = 2
 io_form_restart                     = 2
 io_form_input                       = 2
 io_form_boundary                    = 2
 /

 &domains
 time_step                           = 90,
 time_step_fract_num                 = 0,
 time_step_fract_den                 = 1,
 max_dom                             = 2,
 e_we                                = 150,    220,
 e_sn                                = 130,    214,
 e_vert                              = 45,     45,
 dzstretch_s                         = 1.1
 p_top_requested                     = 5000,
 num_metgrid_levels                  = 34,
 num_metgrid_soil_levels             = 4,
 dx                                  = 15000,
 dy                                  = 15000,
 grid_id                             = 1,     2,
 parent_id                           = 0,     1,
 i_parent_start                      = 1,     53,
 j_parent_start                      = 1,     25,
 parent_grid_ratio                   = 1,     3,
 parent_time_step_ratio              = 1,     3,
 feedback                            = 1,
 smooth_option                       = 0
 /

 &physics
 physics_suite                       = 'CONUS'
 mp_physics                          = -1,    -1,
 cu_physics                          = -1,    -1,
 ra_lw_physics                       = -1,    -1,
 ra_sw_physics                       = -1,    -1,
 bl_pbl_physics                      = -1,    -1,
 sf_sfclay_physics                   = -1,    -1,
 sf_surface_physics                  = -1,    -1,
 radt                                = 15,    15,
 bldt                                = 0,     0,
 cudt                                = 0,     0,
 icloud                              = 1,
 num_land_cat                        = 21,
 sf_urban_physics                    = 0,     0,
 fractional_seaice                   = 1,
 /

 &fdda
 /

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

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

 &grib2
 /

 &namelist_quilt
 nio_tasks_per_group = 0,
 nio_groups = 1,
 /



&time_control Namelist Record


parameter name

Description

Notes & Best Practice(s)

run_days
run_hours
run_minutes
run_seconds

The duration for which the simulation should run

These parameters are ignored when running real.exe - only the beginning/ending date/time are used.

When running wrf.exe these values overwrite the end dates if they are less than the end dates. If these are all set to 0 wrf.exe uses the beginning/ending date/time.

These parameters are not domain-dependent - do not add additional columns when nesting.

For simulations longer than one day, both run_days and run_hours can be used, or just run_hours (e.g., if the total run length is 36 hours, run_days may be set to 1, and run_hours is set to 12, or just set run_days=0 and run_hours=36.

start_year
start_month
start_day
start_hour

The starting date and time for each model domain

These settings will override the run_ settings during real.exe.

It is okay for a nest start time to be later than its parent domain start time.

Additional options not included in the default namelist are start_minutes and start_seconds

end_year
end_month
end_day
end_hour

The ending date and time for each model domain

These settings will override the run_ settings during real.exe.

Additional options not included in the default namelist are end_minutes and end_seconds

interval_seconds

The periodic frequency of incoming data (from WPS) in seconds

met_em files must be available for all times being processed

input_from_files

A logical that determines whether a nested run will have input files for domains other than d01

Setting this to true for nested domains allows real.exe to create wrfinput_d0 files for the nested domains (if this is set to false no wrfinput_d0 files are created for the nested domains

These files will then be read-in as input during the wrf.exe step.

history_interval

Frequency at which data is written to the history (wrfout) file

Default values are in minutes, but an _s or _h can be appended to the end of the variable name (e.g., history_interval_s) to change this to seconds or hours

The value can be different for different domains.

This does not determine the frequency to output a new history file - that is determined by frames_per_outfile (see below).

When troubleshooting to determine exactly where the model is crashing, it may be best to set this to output at every time_step.

frames_per_outfile

How many history_interval time periods are written to each history file

Example 1: start time/date: 2024-08-29_00:00:00, run_hours=6, history_interval=180, frames_per_outfile=1000 - only a single output file (wrfout_d01_2024-08-29_00:00:00) is created. The file will contain 3 output times (hour 00, hour 03, and hour 06)

Example 2 start time/date: 2024-08-29_00:00:00, run_hours=6, history_interval=180, frames_per_outfile=1 - three output files (wrfout_d01_2024-08-29_00:00:00, wrfout_d01_2024-08-29_03:00:00, and wrfout_d01_2024-08-29_06:00:00) are created. Each file will contain only a single output time.

To see the times in each output file, use the command ncdump -v Times wrfout_d0X_YYYY-MM-DD_hh:mm:ss (using the actual file name).

If running a moving nest, it is best to write one output per file in order to avoid plotting issues during post-processing.

restart

A logical that determines whether this is a restart run

This can only be set to true if restart files (wrfrst_d0) are available from a previous simulation

restart_interval

The interval at which restart files (wrfrst_d0) will be written

Restart files are always a single time per file.

When running a very high-resolution or very long simulation, it is wise to output restart files at a reasonable frequency in case the run stops in the middle for any reason. It is less-costly to start from a restart file, than to start the run from the beginning.

io_form_history

The output format for history files (wrfout_d0)

Available Options: 2 = netCDF (default; recommended); 1 = binary format (no supported post-processing software available); 4 = PHDF5 format (no supported post-processing software available); 5 = GRIB1 format; 10 = GRIB2 format; 11 = parallel netCDF format; 102 = split netCDF (no supported post-processing software available)

io_form_history=102 is useful when simulating a very large domain, which can cause files to exceed the 4 GB maximum, or when needing to write output very quickly. This is 1 file per processor.

It is recommended to leave this set to 2 unless you have a great deal of experience with computing.

io_form_restart

The output format for restart files (wrfrst_d0)

Available Options: 2 = netCDF (default; recommended); 102 = split netCDF

io_form_restart=102 can be useful when domain sizes are larger than 500x500. This option is easy to use for restart purposes (no experience necessary). This is 1 file per processor, and with a restart run, the same number of processors must be used as were used for the original simulation.

It is recommended to leave this set to 2 unless you have a great deal of experience with computing.

io_form_input

The output format of the input files (met_em.d0)

Available Options: 2 = netCDF (default; recommended); 102 = split netCDF (no supported post-processing software available)

io_form_input=102 allows real.exe to read-in split met_em files, and write split wrfinput files. To use this option, the same number of processors must be used for both real.exe and wrf.exe, which could be very limiting.

There is no option for splitting the wrfbdy_d01 file.

It is recommended to leave this set to 2 unless you have a great deal of experience with computing.

io_form_boundary

The output format of the boundary file (wrfbdy_d01)

Available Options: 2 = netCDF (default; recommended); 4 = PHDF5 format (no supported post-processing software available); 5 = GRIB1 format; 10 = GRIB2 format; 11 = parallel netCDF format

It is recommended to leave this set to 2 unless you have a great deal of experience with computing.

debug_level

Increasing this value provides more printed information in the run log files

Setting this to anything other than 0 rarely provides any useful information for error reasoning, and instead clutters the log file, making it difficult to read, and increasing the size. This parameter is not included in the default namelist file, and it is recommended to not add it, or to set it to 0 if it is already in the namelist.

See How can I debug the code to find where the model is stopping for better debugging alternatives.




&domains Namelist Record


parameter name

Description

Notes & Best Practice(s)

time_step

Time step (in seconds) for model integration

It is recommended to keep this value equal to, or less than, 6xDX (in km).

When using many vertical levels and/or with map-scale-factors much larger than 1, a smaller time_step will be required.

If the model is stopping due to CFL errors (which indicate the model is becoming unstable), decreasing this value to about 4xDX (or perhaps even 3xDX) can be helpful.

It is recommended to use a time step that evenly divides into the history_interval so that output times will be evenly spaced.

time_step_fract_num
time_step_fract_den

Numerator and denominator settings for a fractional time step

E.g., if desiring a time step of 60.3 seconds, set time_step=60; time_step_fract_num=3; and time_step_fract_den=10

max_dom

The number of domains used in the simulation

The model will not read any more columns than the number specified here. So, for e.g., of the namelist includes four columns, but max_dom=1, only the information in the first column will be read by the model.

e_we
e_sn

Each domain’s full west-east and south-north dimensions (or grid spaces)

The values given to these parameters should be the same as those used for these parameters in namelist.wps

Domains should not be smaller than 100x100 grid spaces.

e_vert

The number of vertical (or Eta) levels onto which real.exe will interpolate the incoming data

This number must be the same for each domain.

real.exe calculates reasonable levels from the number of levels requested. To see a list of these levels, use the command ncdump -v ZNW file_name.

To overwrite the levels calculated, use the eta_levels namelist parameter to specify the desired levels (see &domains namelist options in the WRF Users’ Guide for specifics on eta_levels.

It is not recommended to use fewer than 35 levels. Typically 40-60 levels is recommended. Higher model tops require more levels for a constant dZ.

dzstretch_s

surface stretch factor when using auto_levels_opt=2

See Setting Model Vertical Levels in the WRF Users’ Guide for additional information.

p_top_requested

The pressure top (in Pa) to use in the model

This level must be available in the incoming WPS data.

The default and recommended value is 5000 Pa, and it is not suggested to use a level any lower (in the atmosphere) than this.

num_metgrid_levels

The number of incoming (from WPS input data) vertical levels. This is determined by the input data used

If unsure about the number of levels in the data, you can use the following command: ncdump -h met_em.d01.<date> >& log.ncdump and look for the value near the top of the log.ncdump file.

num_metgrid_soil_levels

The number of incoming (from WPS input data) vertical soil levels. This is determined by the input data used

If unsure about the number of levels in the data, you can use the following command: ncdump -h met_em.d01.<date> >& log.ncdump and look for the value near the top of the log.ncdump file.

dx
dy

Grid distance (or grid resolution) in the x and y directions

The values for nested domains are based on the value for d01 and the parent_grid_ratio. For e.g., if max_dom=2; parent_grid_ratio=1, 3; and dx*=*dy*=12000, because this is a 3:1 ratio, the value calculated for d02 will be 4000, but only the value for d01 is required in the namelist.

These values must be the same as those in the input file (met_em.d0). Use the command ncdump -h met_em.d01.<date> >& log.ncdump to determine this value.

grid_id

The domain number

The coarsest grid should be set to 1.

The values given correspond to each domain. For e.g., the parent domain is set to 1; a nest inside that parent is set to 2; a nest inside that nest is set to 3, etc.

parent_id

The domain number (ID) of each domain’s parent

These should be set to the same values as were given in namelist.wps. See Best Practices for namelist.wps for additional information.

i_parent_start
j_parent_start

The parent domain coordinates at the x and y (or i and j) location that overlaps the starting point for the nest in the i and j directions

These should be set to the same values as were given in namelist.wps. See Best Practices for namelist.wps for additional information.

parent_grid_ratio

The nesting ratio relative to the domain’s parent

These should be set to the same values as were given in namelist.wps. See Best Practices for namelist.wps for additional information.

parent_time_step_ratio

This is how the model defines the time_step for nest domains

This should be set to 1 for the coarsest domain.

It is not mandatory to match these values to the parent_grid_ratio; however, it is recommended to do so unless you are very familiar with the model.

It is recommended to keep the ratios the same for each domain, unless you are very knowledgeable of the model and have a good reason to not do so.

feedback

This determines whether feedback (two-way nesting) will be used when using nesting

When feedback is on (feedback=1), coarse domain field values are overwritten by the child domain field values (average of cell values for mass points, and average of the cell-face values for horizontal momentum points) at coincident points.

For masked fields, only the single point value at the collocating points is fed back.

If parent_grid_ratio is even, an arbitrary choice of the southwest corner point value is used for feedback, which is why an odd parent_grid_ratio is recommended.

When feedback is off (feedback=0), it is equivalent to a one-way nested run since nest results are not reflected in the parent domain.

smooth_option

Determines whether smoothing is used for the parent domain in the area of the nest if feedback is on (feedback=1)

Three options are available: 0 = no smoothing; 1 = 1-2-1 smoothing; 2 = smoothing-desmoothing

It is typically recommended to keep this option set to 0.




&physics Namelist Record


See also

For all physics options listed below, see the following resources for additional information:


parameter name

Description

Notes & Best Practice(s)

physics_suite

A set of physics options that performs well for a given application, and is supported by a sponsoring group

Options are tropical and CONUS.

This setting determines the values for mp_physics, cu_physics, bl_pbl_physics, sf_sfclay_physics, sf_surface_physics, ra_sw_physics, ra_lw_physics

See Physics Suites for detailed information.

mp_physics

Microphysics scheme option

The value should be the same for each domain. If a different option is used for one or more domains, the model chooses the most complex scheme to use for all domains.

cu_physics

Cumulus parameterization scheme option

For a grid size >10 km, a cumulus scheme is necessary. It is not necessary when the grid size is < 4km. In between 4km and 10km is a somewhat gray area - try to avoid this range if possible. If you must use this size, try the GF (cu_physics=3) or MSKF (cu_physics=11) scheme, which are scale-aware.

ra_sw_physics

Shortwave radiation scheme option, which determines computation of clear-sky and cloudy solar fluxes

The same option should be used for each domain.

It is recommended to use the RRTMG scheme (option 4).

bl_pbl_physics

Planetary boundary layer (PBL) scheme option - used to distribute surface fluxes with boundary layer eddy fluxes and allow for PBL growth by entrainment

This option should be used for domains of grid size > 500 meters

sf_sfclay_physics

Surface layer physics scheme option

Some options only work with specific bl_pbl_physics and/or sf_surface_physics options. See the Physics chapter in the WRF Users’ Guide for details.

The same option should be used for each domain.

sf_surface_physics

Land surface model (LSM) scheme option

num_soil_layers must match this option.

The same option should be used for each domain.

radt

Minutes between radiation physics calls during model integration

It is recommended to use 1 minute per km of dx (e.g., set to 10 for 10 km parent domain).

If using a high-resolution domain and compute time is a concern, then it is okay to set radt to 10-15 min, along with setting swint_opt.

The same option should be used for each domain.

bldt

Minutes between boundary layer physics calls during model integration

The same option should be used for each domain.

The recommended setting is 0 (every time step) since this does not use much computation.

cudt

Minutes between cumulus physics calls during model integration

The same option should be used for each domain.

The recommended setting is 0 (every time step) since this does not use much computation.

When using the KF scheme (cu_physics=1) this is also used for averaging time for the vertical velocity trigger.

This options is not used by the G3 (cu_physics=5)or GD (cu_physics=93) schemes.

icloud

Option to compute cloud fraction for radiation

num_land_cat

The number of land categories in the input static geogrid data

This value must match the value produced during WPS/geogrid.

Available options are: 24: for USGS (default); 28: for USGS if including lake category; 20: for MODIS; 21: for MODIS if including lake category; 40: for NCLD

sf_urban_physics

Option that determines which (if any) urban scheme option is used

The same option should be used for each domain.

fractional_seaice

Turning on (=1) tells the model to treat seaice as a fractional field

This option only works with sf_sfclay_physics=1,2,3,4,5,7,91

When turning this option on, seaice_threshold=0 must also be set.

When fractional_sea_ice=0, a flag is used for ice or no ice.

isfflx

Determines heat and moisture fluxes from the surface

Use this option to turn off surface sensible and latent heat fluxes for some of the surface physics options.

This option may be used to control how surface fluxes are used in idealized simulations (e.g., LES). See the Physics chapter in the WRF Users’ Guide for details.

ifsnow

This option can be turned off to remove snow effects for the simple soil model (sf_surface_physics = 1)




&dynamics Namelist Record


parameter name

Description

Notes & Best Practice(s)

hybrid_opt

Dynamical coordinate option

Options are 0 - uses the original WRF terrain-following coordinate that was default for WRFV3; 1 - uses the Klemp cubic form for etac, which is the default for WRFV4

w_damping

Vertical velocity damping flag

Options are 1 - with damping; 0 - without damping

For real-time/operational runs, this should always be turned on for model stability (it is only activated when required)

Do not use this option for budget studies.

diff_opt

Turbulence and mixing option

km_opt

Eddy coefficient option

diff_6th_opt

6th order numerical diffusion option

diff_6th_factor

6th order numerical diffusion non-dimensional rate

The maximum value is 1.0, which corresponds to complete removal of 2dx wave in one timestep.

base_temp

Base state sea-level (surface) temperature (in K)

This option can help to improve simulations when the model top is higher than 20 km (~ 50 mb)

This option is only available for real data simulations.

This is a representative temperature at sea-level in the middle of the domain, regardless of the topography height at that point.

Typical values range from 270-300 K.

This value must be set to the same value through initialization, model runs, and restarts.

damp_opt

Upper-level damping flag

zdamp

Damping depth (in meters) from the model top

dampcoef

Damping coefficient (also see damp_opt above)

khdif

Horizontal diffusion constant (in m 2/s)

kvdif

Vertical diffusion constant (in m 2/s)

non_hydrostatic

Whether running the model in hydrostatic or non-hydrotstatic (default) mode

moist_adv_opt

Positive-definite or monotonic advection to help eliminate over/under prediction of moisture

Options are: 0 - advection with no bounds or filters in place; 1 - positive-definite advection of moisure (default); 2 - monotonic option

scalar_adv_opt

Positive-definite advection of scalars

Options are: 0 - advection with no bounds or filters in place; 1 - positive-definite advection of moisure (default); 2 - monotonic option

gwd_opt

Gravity wave drag option

Can be used for all grid sizes with appropriate input fields from geogrid

Options are: 0 - off; 1 - gravity wave drag and blocking; 3 - gravity wave drag, blocking, small-scall gravity drag and turbulent orographic form drag.




&bdy_control Namelist Record


parameter name

Description

Notes & Best Practice(s)

spec_bdy_width

The number of rows for specified boundary value nudging

This value is the total of spec_zone and relax_zone (see below).

A wider boundary zone may work better for coarser driving data.

The max value that should be used is 10.

specified

Specified boundary conditions

The first row and column are specified with external model values (spec_zone = 1,which should not be changed).

The rows and columns in relax_zone have values blended from an external model and WRF.

The value of relax_zone may be changed, as long as spec_bdy_width = spec_zone + relax_zone.

This can be used with periodic_x in tropical channel simulations.

This can only be turned on (.true.) for domain 01 - must be false for all other domains.

This is for real data cases only.

spec_zone

The number of points in the specified zone (specific boundary condition option)

Leave this set to the default of 1.

relax_zone

The number of points in the relaxation zone (specific boundary condition option)

A wider boundary zone may work better for coarser driving data.

nested

Nested boundary conditions

This must be set to true for nests.

This can be used for real or idealized cases.