# Frequently Asked Questions
## Recommendations
Submit runs individually and quality control.
Check all steps in the process have run correctly.
Check main.bash.o has “substituting initial chemistry from restart” if do not want a cold start.
Manage space requirements, as run and output folders can get very large.
Run main.bash in 2 week chunks to fit within 48 hours.
Information on improving performance [here](https://github.com/wrfchem-leeds/WRFotron/issues/29).
A selection of data science scripts using Python [here](https://github.com/wrfchem-leeds/python-scripts).
## Anthropogenic emissions
Check that: - The anthro_emis input namelist (e.g., emis_edgarhtap2_mozmos.inp) has the following mappings (i.e., WRFChem variable assigned to inventory variable):
ORGI and ORGJ assigned to POM (particulate organic matter). - The emissions of Organic Carbon (OC) need to be converted to total particulate organic matter (POM), which includes the associated oxygen, hydrogen and other elements.
PM25I and PM25J assigned to OIN_PM2.5 (other inorganic matter under 2.5 $mu m$).
PM_10 assigned to PM2.5_10 (coarse particulate matter for 2.5-10 $mu m$).
These 3 inventory variables (i.e., POM, OIN_PM2.5, and PM2.5_10) have their own NetCDF files: - Ideally, these are provided directly from the emission inventory. - If not, then you can calculate them for your data offline.
Ensure that these files have their units attribute set to “kg m-2 s-1” ([reference](https://github.com/wrfchem-leeds/WRFotron/issues/48)). - This can be done using the following command for all emission variables within the files. For example, for the POM file for the variable emis_tot use: ncatted -O -a units,emis_tot,a,c,”kg m-2 s-1” EDGARHTAP2_MEIC2015_POM_2010.0.1x0.1.nc
Example for EDGARHTAP2.2/MEIC emissions using chem_opt = 202: - This inventory provided OC (organic carbon), PM2.5 (all PM2.5), and PM10 (all PM10). - First, create the required variables (save them all as new NetCDF files using the chemical names POM, OIN_PM2.5, and PM2.5_10):
Create POM file by multiplying OC by a scaling factor. - The scaling factor is usually in the range of 1.4-1.7 and is ideally sector-specific.
Create OIN_PM2.5 as equal to PM2.5 - BC - POM. - Here, you are subtracting POM, which you calculated above. - Set any negative values to 0 (as this can cause errors).
Create PM2.5_10 as equal PM10 - PM2.5. - Take care here to ensure subtacting PM2.5, and not just OIN_PM2.5. - Set any negative values to 0 (as this can cause errors).
Then, open the anthro_emis input namelist emis_edgarhtap2-meic2015_mozmos.inp. - Check that src_names has:
‘POM(12)’
‘OIN_PM2.5(1)’
‘PM2.5_10(1)’
Check that emis_map has: - ‘ORGJ(a)->0.9*POM(emis_tot)’ - ‘PM25J(a)->0.9*OIN_PM2.5(emis_tot)’ - ‘PM_10(a)->PM2.5_10(emis_tot)’
These instructions may be different for other emission inventories and chemical mechanisms.
## Troubleshooting and errors
Find the errors’ first occurance, checking rsl.error, rsl.out, .e, .o, and .log files within the run folder.
You need to make sure all programs are compiled and useable, and that the paths in your config.bash point to the correct locations.
You need to ensure that your data is all available for the period you want to simulate (including meteo spin-up).
You need to ensure your namelists are correct.
[If the error if related to a FORTRAN run-time error](https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-list-of-run-time-error-messages).
[Check WRF FAQ’s](http://www2.mmm.ucar.edu/wrf/users/FAQ_files/).
[Check WRF forums](http://forum.wrfforum.com/).
- Check Google groups for:
[WRFChem](https://groups.google.com/a/ucar.edu/forum/#!forum/wrf-chem).
[fire_emiss](https://groups.google.com/a/ucar.edu/forum/#!forum/wrf-chem-fire_emiss).
[anthro_emis](https://groups.google.com/a/ucar.edu/forum/#!forum/wrf-chem-anthro_emiss).
[Runs](https://groups.google.com/a/ucar.edu/forum/#!forum/wrf-chem-run).
Try increasing the debug level.
Timesteps for meteorology (time_step in namelist.wrf), chemistry (chemdt in namelist.chem), and biogenics (bioemdt in namelist.chem) need to match (careful of units).
- If no error message given at the bottom of rsl.error. file:
- Potentially a violation of the CFL criterion:
Try reducing the timestep.
Try turning w_damping off.
- Potentially a memory error:
Increase the number of cores.
Increase the memory per core.
## Download ECMWF meteorlogy files
[Create an account with ECMWF](https://apps.ecmwf.int/registration/).
[Follow the steps](https://confluence.ecmwf.int/display/WEBAPI/Access+ECMWF+Public+Datasets).
Login.
Retrieve your key.
Copy the information to ~/.ecmwfapirc
- Create a python2 environment for ecmwf-api-client (this library has not yet been updated for python 3).
`bash conda create -n python2_ecwmf -c conda-forge ecmwf-api-client `
Go to the folder initial_boundary_meteo_ecmwf.
- Edit the python scripts:
Both surface and pressurelevels.
Only need to change the date and target name.
Qsub the .bash scripts
Edit pre.bash to comment out the GFS and comment in the ECMWF files
Ensure the date and target name correspond to those you want to run with
Change the number of meteorological vertical levels from 27 (GFS) to 38 (ECMWF)
- Also, the number of meteorological soil levels from 4 (GFS):
To 3 for ECMWF with WRFChem4
To 4 for ECMWF with WRFChem3
## To run with a nest
Offline nests: - See [step-by-step guide to run with a nest document from Carly Reddington](https://github.com/wrfchem-leeds/WRFotron/blob/master/guides/Guide_to_offline_nesting_CR.pdf). - Uses ndown.exe for one-way nesting - Feedback = 0 - Parent and nest domain may drift apart
Online nests: - Turn off urban physics (i.e. sf_urban_physics = 0, 0, 0) in physics subsection of namelist.wrf. - Requires a large amount of cores, as memory intensive - Uses wrf.exe for two-way nesting - Feedback = 1 - Have an odd number for the parent_grid_ratio. - For nest 2, (e_we-s_we+1) must be one greater than an integer multiple of the parent_grid_ratio (3 or 5). - WRF will decompose each domain in the exact same way, so ensure all the domains are similar shapes (i.e. don’t have a square domain within a rectangular domain, or even a rectangular domain which is longer in the x-direction within another domain which is longer in the y-direction). - Check all namelist settings and check all required nest parameters are set (use registry to check which parameters need to be set for every domain). - All variables with dimension = max_domains or (max_dom) need to be set for the nests - Careful the domains are not too big, otherwise wrfinput won’t be created - Use same physics options and physics calling options e.g. radt/cudt
An exception is cumulus scheme. One may need to turn it off for a nest that has grid distance of a few kilometers or less.
For nest, e_we and e_sn for a parent_grid_ratio of 3 must be return a whole number when minus 1 and divide by parent_grid_ratio (3)
Decrease restart_interval to 720 (2/day) from 360 (4/day)
Tests with less than 24 hours break the coarsest domains mozbc
- Add diurnal cycle for all domains:
Within MAIN_emission_processing.ncl, change to all domains.
- Timestep:
Decrease propotionally
Radiation timestep should coincide with the finest domain resolution (1 minute per km dx), but it usually is not necessary to go below 5 minutes. All domains should use the same value, so that radiation forcing is applied at the same time for all domains.
- Other namelist.wrf settings specific for domains < 3km res
- &domains
smooth_option = 0
- &physics
cugd_avedx = 3
smooth_option = 0
cu_rad_feedback = .false.
cu_diag = 0
slope_rad = 1
topo_shading = 1
- &dynamics
non_hydrostatic = .false.
## To run with cumulus parameterisation off
Namelist.chem - cldchem_onoff = 1 - chem_conv_tr = 0 (subgrid convective transport) - conv_tr_wetscav = 0 (subgrid convective wet scavenging) - conv_tr_aqchem = 0 (subgrid convective aqueous chemistry)
Namelist.wps - Resolution < 5 km
Namelist.wrf - Resolution < 5 km - cu_physics = 0 (cumulus parameterization off) - cugd_avedx = 3 (number of grid boxes over which subsidence is spread)
Master.bash, turn off nudging - s/GRIDFDDA/0/g
## Changes for WRFChem4
Select updates for WRFChem4 - Bug fixes:
NOAH land surface scheme
Thompson microphysics scheme
Boundary layer and surface schemes from MYNN.
Chemical reaction rate constant for reaction: SO<sub>2</sub> + OH -> SO<sub>4</sub>
Dust < 0.46 microns contribution to AOD.
Dust and salt bin contributions to AOD.
Urban physics.
Fires (module_mosaic_addemiss.F).
glysoa not needed as no longer uses to_toa variable which has the summation error (module_mosaic_driver.F).
GEOGRID.TBL within WPS4/geogrid is a hard copy of the GEOGRID.TBL.ARW_CHEM including erod.
- New defaults
Hybrid sigma-pressure vertical coordinate.
Temperature variable is now moist theta.
Method to compute vertical levels, smooth variation of dz.
- Various improved options available:
RRTMK (ra_sw_physics = 14, ra_lw_physics = 14) improves RRTMG
## To run with WRFChem3.7.1 or WRFChem4.2 Within config.bash: - Replace all instances of 4.2 with 3.7.1, or vice-versa. - Use the appropriate geography files, being either /nobackup/WRFChem/WPSGeog3 or /nobackup/WRFChem/WPSGeog4.
Within namelist.wps.blueprint: - For the geog_data_res variable (within &geogrid), use ‘modis_30s+30s’ for WRFChem3.7.1 and use ‘default’ for WRFChem4.2.
Within namelist.wrf.blueprint: - Remove the force_use_old_data variable (within &time_control) for WRFChem3.7.1 and have it set to T for WRFChem4.2. - For the num_metgrid_soil_layers variable (within &domains), use 4 for WRFChem3.7.1 and 3 for WRFChem4.2. - For the num_soil_layers variable (within &physics), use 4 for WRFChem3.7.1 and 3 for WRFChem4.2. - For the num_land_cat variable (within &physics), use 20 for WRFChem3.7.1 and 21 for WRFChem4.2.
## To run with a diurnal cycle
Choosing the diurnal cycle: - There are several different diurnal cycles in WRF_UoM_EMIT. - They are contained in the emission_script_data*.ncl files. Whichever of these files is named emission_script_data.ncl will be the diurnal cycle that is read by MAIN_emission_processing.ncl. The current emission_script_data.ncl is a copy of emission_script_data_EU.ncl.
EU = European diurnal cycles based on Olivier et al 2003
EX = Exaggerated diurnal cycle with 99% of emissions during daytime
QH = Qinghua diurnal cycle
- Change settings in MAIN_emission_processing.ncl
time_offset
oc_om_scale
- To check if the diurnal cycle application was successful, run the following python script, which should be within WRF_UoM_EMIT, and is automatically linked to your run folder during pre.bash. Take a copy of the file from the following location if you don’t have it:
`bash python plot_wrfchemi.py `
## To run with NAEI emissions
[Follow the guide created by Ailish Graham](https://github.com/wrfchem-leeds/WRFotron/blob/master/guides/Guide_to_NAEI_emissions_AG.pdf).
## To add (or remove) variables to wrfout files
First, check whether the variable is in the Registry. If it isn’t, then add it using the steps [here](https://www.climatescience.org.au/sites/default/files/WRF_gill_registry.pdf).
Then, if you’re running with chemistry edit the file iofields.chem, otherwise edit the file iofields.met, which are both in WRFotron.
- There are lines of text such as:
`bash +:h:0:ccn1,ccn2,ccn3,ccn4,ccn5,ccn6 `
The + is to add or - is to remove a variable.
The h is for the history (wrfout) stream. Can have history, restarts, or both.
The 0 is for the stream number. Generally, stream numbers of 10-24 are okay, and avoid 22-23.
Then list the variables.
## To include upper boundary conditions
Turn on the have_bcs_upper boolean within namelist.chem.blueprint.
Set the lowest pressure level where the upper boundary concentrations are overwritten: fixed_ubc_press variable, default is 50 (hPa).
- Provide 2 data files: a climatology for tropopause levels (clim_p_trop.nc) and an input file with upper boundary conditions for gas species (fixed_ubc_inname).
Climatologies for 4 different time periods derived from WACCM RCP simulations are [here](https://www2.acom.ucar.edu/wrf-chem/wrf-chem-tools-community). A direct download link is [here](http://www.acom.ucar.edu/wrf-chem/UBC_inputs.tar). Within here is the clim_p_trop.nc file, along with the 4 different climatology time periods: ubvals_b40.20th.track1_1950-1959.nc, ubvals_b40.20th.track1_1980-1989.nc, ubvals_b40.20th.track1_1996-2005.nc, and ubvals_rcp4_5.2deg_2020-2029.nc where the years used to produce the climatology are specified in the file names.
- Copy the climatology files over to each run folder by adding the following to the bottom of pre.bash:
`bash msg "bringing over upper boundary condition files" cp /nobackup/${USER}/where_you_place_these_files/{clim_p_trop.nc,ubvals_b40.20th.track1_1996-2005.nc} . `
More information is [here](https://www2.acom.ucar.edu/sites/default/files/wrf-chem/8A_2_Barth_WRFWorkshop_11.pdf) and within Chapter 2 [here](https://github.com/wrfchem-leeds/WRFotron/blob/master/guides/MOZCART_UsersGuide.pdf).
## To run with the chemistry option T1-MOZCART (chem_opt = 114)
Replace the contents of mozbc.inp with that from mozbc.inp.blueprint_114_mz4.
Delete ONIT from boundary condition input file (i.e. moz0001.nc), as this is not currently in our version of WRFChem.
Delete N2O from boundary condition input file (i.e. moz0001.nc), as this is not in the MOZBC netcdf file.
Make the following changes to namelist.chem.blueprint: - cldchem_onoff = 0, was previously 1. - biomass_burn_opt = 4, was previously 2.
Make the following change to namelist.wrf.blueprint: - auxinput6_inname = ‘wrfbiochemi_d<domain>’, ! biogenic emission filename, was previously ‘wrfbiochemi_d<domain>_<date>’.
More information is [here](https://github.com/wrfchem-leeds/WRFotron/blob/master/guides/T1-MOZCART-UsersGuide-27April2018.pdf).
## Benchmarking and Testing
Run together automatically by submitting . benchmark_and_test.bash.
This runs short (48 hour) simulations per season over the default domain and evaluates against either the China measurements or from OpenAQ.
To select which measurement set the model is evaluated against, set the corresponding Boolean in benchmark.py.
They run from the output directory, and can both be run manually using qsub benchmark.bash and qsub tests.bash.
To discuss these further and suggest improvements, see the discussions for them: [Benchmarks](https://github.com/wrfchem-leeds/WRFotron/discussions/34) and [Tests](https://github.com/wrfchem-leeds/WRFotron/discussions/33).
## Run WRFChem for long-term scenarios (Climate WRF)
Use a version of WRFChem compiled with climate functionality. - Use manual compilation.
After running ./configure and creating the configure.wrf file within a clean WRFChem folder, edit the configure.wrf file to add -DCLWRFGHG ` to line 212 (after `-DNETCDF). - The flag CLWRFGHG compiles green house gases computation (for CAM ra_lw/sw).
Run the compilation (./compile em_real >& log.compile).
Within the WRFChem/run folder, link one of the scenarios e.g., ln -sf CAMtr_volume_mixing_ratio.RCP4.5 CAMtr_volume_mixing_ratio.
More information here: - [Slides from Rajesh Kumar, NCAR](https://github.com/wrfchem-leeds/WRFotron/blob/master/guides/Future_AQ_steps_WRF-Chem.pdf). - [Setup wiki](http://www.meteo.unican.es/wiki/cordexwrf/SoftwareTools/ClWrf). - [Slides: clWRF: Hands-On tasks](http://www.xn–llusfb-5va.cat/curriculum/ConDocs/LluisCORWESHandsOn_tasks.pdf). - [CLWRF (CLimate WRF)](https://www.meteo.unican.es/en/software/clwrf). - [NCAR technical note](http://dx.doi.org/10.5065/D6445JJ7).
## To change the MOZBC boundary conditions - Change the data reference in [pre.bash](https://github.com/wrfchem-leeds/WRFotron/blob/master/pre.bash#L201-L208). - Change mozbc.inp to be a copy of the corresponding MOZBC blueprint in the namelists folder, e.g., to use WACCM instead of MZ4 make [mozbc.inp](https://github.com/wrfchem-leeds/WRFotron/blob/master/mozbc.inp) a copy of [mozbc.inp.blueprint_202_waccm](https://github.com/wrfchem-leeds/WRFotron/blob/master/namelists/mozbc.inp.blueprint_202_waccm).
## Heterogeneous chemistry with chem_opt = 202 - Follow instructions [here](https://github.com/wrfchem-leeds/WRFotron/tree/master/guides/heterogeneous_chem_WRFChem_guide.pdf).
## Misc.
To see details of all the variables, see the registry files e.g. for chemistry: WRFChem{version}/Registry/registry.chem
To see the equations used for your mechanism, see the file: WRFChem{version}/chem/KPP/mechanisms/{mechanism}/{mechanism}.eqn
To see the variable mappings between the mechanism and WRFChem (which can have different names), see the file: WRFChem{version}/chem/KPP/mechanisms/{mechanism}/{mechanism}.equiv
To see the rate constants used per equation, see the file (note, that these match the equations in sequential order e.g., the final rate constant for equation 346 matches to equation {S060}): WRFChem{version}/chem/KPP/mechanisms/{mechanism}/{mechanism}_Rates.f90