Input

From icon-art guide
Jump to: navigation, search


Requirements for a Simulation

To run a Simulation with ICON-ART there are three main points to consider: Setting the namelist parameters, preparing the xmls, and optionally prepare additional Input data.

Namelist Inputs

To run a simulation with ICON-ART installed the first thing to prepare is the runfile. It is usually best to start with an existing and working runfile and adapt parts as needed. The runfile contains the majority of parameters to run a simulation, like the length, timesteps and grids used, as well as a variety of options for methods and parametrisations used in the model. The runfile contents are then split up in several namelists that the model reads at the beginning of a simulation. An overview of the Namelist Parameters can be found in Namelist.

To enable ART in an ICON simulation, the switch lart = .TRUE. has to be set in the section &run_nml. This is the global on/off switch for ICON-ART. This is how this could look like in the context of a runfile:

1 ! run_nml: general switches ----------
2 &run_nml
3  ltestcase = .FALSE.
4  num_lev = 50
5  ltransport = .TRUE.
6 .............
7  lart = .TRUE.

Generally the first letters of a namelist switch refer to its type, the "l" in "lart" stands for logical, meaning it has to be either True or False. Here are some examples.

Some namelist switches and their data types.
namelist switch type
lart logical
cart_aerosol_xml character
iart_init_aero integer


The namelist &art_nml is used for general options of the ART simulation. To run a certain kind of simulation the according switch has to be set to .TRUE.. For Example to include a point source the switch cart_aerosol_xml has to be set to .TRUE..

XML Inputs

This enables the inclusion of a .xml file containing additional information like location and strength of the point source. The table below contains the most important &art_nml namelist parameters and additional namelist parameters required if they are set to .TRUE..


XML files and their namelist dependencies
XML File Description Namelist parameter dependency Default Further Information
cart_chemtracer_xml Switch for simple OH chemistry lart_chemtracer .FALSE. Chemistry Tracers
cart_mecca_xml Switch for kpp chemistry lart_mecca .FALSE. Atmospheric Chemistry
cart_pntSrc_xml Enables creation of point sources emitting given Aerosols at a given rate lart_pntSrc .FALSE. Point Source
cart_aerosol_xml Main switch for the treatment of atmospheric aerosols lart_aerosol .FALSE. Aerosol Tracers
cart_modes_xml Main switch for the treatment of atmospheric aerosols lart_aerosol .FALSE. Aerosol Modes
cart_diagnostics_xml Enables diagnostic output fields lart_diag_out .FALSE. -
cart_emiss_xml_file XML File for emission metadata - - Aerosol Emission
cart_ext_data_xml XML File for metadata of datasets prescribing tracers - - -
cart_coag_xml XML File containing additional information about coagulation - - -
Aerosol Tracers
tag type options description
htop_proc real in m top height for processes
initc character file initialize from Input file
inucl integer 0 (off), 1 (on) H2SO4 nucleation for so4 tracer (default=1); 1 for so4_sol_ait, 0 for other so4 tracer)
label character e.g., dusta allows to name tracers individually
latbc character file read data for LBC
lfeedback integer 0 (off), 1 (on) child -> parent feedback in nested simulations (default=0)
mode character insol_acc, mixed_acc,.. indicates in which modes the tracer occurs
mol_weight real in kg/mol value for molar weight
moment integer 0, 3 zeroth (number) or third (mass) moment
rho real in g/m3 density of tracer, not needed for zeroth moment
sol integer 0 (no), 1 (yes) indicates whether the tracer is soluble or not
transport character stdaero, stdchem, ..., off choice of transport template
unit character e.g., mug kg-1, kg-1 unit of tracer
bold letters indicate which tags are always required.
Aerosol Modes
tag type options description
condensation integer 0 (off), 1 (on) condensation of H2SO4 on this mode?
d_gn real in m value for the initial median diameter of the number distribution
dissfac_mean real dissociation factor (needed with ikoehler=1)
icoag integer 0 (off), 1 (on) mode involved in coagulation? If 1 for any mode, then provide coagulate.xml
ikoehler integer 0 (off), 1 (on) Activation via Köhler theory (warm clouds), needs dissfac_mean tag
kind character 1mom or 2mom 1-moment or 2-moment description of distribution
sigma_g real standard deviation of the distribution
shift2larger character e.g., sol_acc Name of larger mode to be shifted to, when diameter threshold (shift_diam) exceeded
shift2mixed character e.g., mixed_acc Name of mixed mode to be shifted to, when soluble mass threshold of 5% exceeded
shift_diam real in m diameter threshold for shift2larger
Aerosol Emission
tag type options description
nmodes integer number of emission modes
d_g0_* real median diameter of number distribution of mode * (e.g., d_g0_1, d_g0_2, d_g0_3)
d_g3_* real median diameter of mass distribution of mode * (e.g., d_g3_1, d_g3_2, d_g3_3)
rho real in kg/m3 particle density (same for all modes)
sigma_g_* real standard deviation of mode *
substance character ash, dust, na, cl, soot emitted substance
bold letters indicate which tags are always required.
routine options: volc, volc fplume, dust, biomass burn, seas smith, seas monahan, seas martensson, seas mode1, seas mode2, seas mode3
Point Source
tag type options description
dg3_emiss real in m median diameter of aerosol mass distribution
emiss_profile character anti-derivative of emission profile
endTime character end time of emission (default=9999-12-31T00:00:00)
height real in m emission height
height_bot real in m bottom height
lat real in degree latitude
lon real in degree longitude
sigma_emiss real standard deviation of aerosol distribution
startTime character start time of emission (default=1582-10-15T00:00:00)
source_strength real emission source strength
substance character e.g., TRSO2 substance nme from tracer xml
unit character e.g., kg s-1 unit of source strength
bold letters indicate which tags are always required.
Chemistry Tracers
tag type options description
c_solve character param, lt, cold, OH, linoz, simnoy, passive solving mechanism/strategy
emissions anthropogenic, biogenic, biomassBurning usage see in tracers_chemtracer_amip.xml (*)
htop_proc real in m top height for processes
iconv integer 0 (off), 1 (on) transport by convection (default=1)
initc character file initialize from Input file
init_mode integer 0 (off), 1 (on) initialize tracer
init_name character name of tracer in initialization file
iturb integer 0 (off), 1 (on) transport by turbulence (default=1)
latbc character file read data for LBC
lfeedback integer 0 (off), 1 (on) child -> parent feedback in nested simulations (default=0)
lifetime real in s value for lifetime
mol_weight real in kg/mol value for molar weight
products character name of tracer name of resulting tracer after depletion
tag001,... character name of tag to be added to tracer name
transport character stdaero, stdchem, ..., off choice of transport template
unit character e.g., mol mol-1 unit of tracer
bold letters indicate which tags are always required. <br\> (*) in icon-kit/externals/art/runctrl_examples/xml_ctrl/


The reason for the use of those additional .xml files is that the ART variables they contain (sea salt, mineral dust etc.) might be different for every run which differs from the Icon Variables (Temperature, Pressure, etc.) which usually don’t change between runs. .xml files are readable for both humans and machines, which makes them easy to tweak and integrate. An Example for the contents of an .xml file adding ash particles can be seen below.

1 <modes>
2   <aerosol id="asha">
3     <kind type="char">2mom</kind>
4     <d_gn type="real">1.190E-6</d_gn>
5     <sigma_g type="real">1.410E+0</sigma_g>
6     <rho type="real">2.600E+3</rho>
7   </aerosol>
8 </modes>

Here is an example for a more complex .xml using AERODYN: This is an example for the number and mass concentration of dust in a tracer .xml.

 1 <tracers>  
 2     <aerosol id="nmb">    
 3       <moment type="int">0</moment>    
 4       <mode type="char">insol_acc,insol_coa</mode>    
 5       <unit type="char">kg-1</unit>    
 6       <transport type="char">hadv52aero</transport>  
 7     </aerosol>  
 8     <aerosol id="dust">    
 9       <moment type="int">3</moment>    
10       <mode type="char">insol_acc,insol_coa</mode>    
11       <sol type="real">1.0</sol>    
12       <mol_weight type="real">50.00E-3</mol_weight>    
13       <rho type="real">2.650E3</rho>    
14       <unit type="char">mug kg-1</unit>    
15       <transport type="char">hadv52aero</transport>  
16     </aerosol>
17 </tracers>



Further .xml examples can be fount in /your_ART_Directory/runctrl_examples/xml_ctrl.

Input Data

Depending on the type of simulation there might be additional input files required. These are essential files that are not contained in classical ICON initialisation data. For example for the emission of mineral dust there has to be information about the soil types supplied to the model. The additional input files should be renamed to a netcdf file and follow the naming convention shown in fig 1.1. Please note that the XXX has to be replaced by one of the indices mentionend in Table input-init and input-emissions.

ICON-ART input file naming convention.
Additional input files for the initialisation
Species Namelist switch Options XXX
Gas iart_init_gas 0 (cold start), 5 (from file) ICE
Aerosol iart_init_aero 0 (cold start), 5 (from file) IAE



Obtaining Input Data

The 2 ways of obtaining input data are to generate it yourself or download it.

How to generate input data

How to download input data


Emission Data

In every ICON-ART, there is the possibility to add additional input data like emission data that correspond with different sources. A quick overview about them can be found below.

Additional input files for the emissions
Type Data XXX
Point souces XML-file -
Sea salt no extra data necessary -
Mineral Dust Soil Type Data ART_STY
Biogenic VOCs Emissions or Vegetatiom ART_STY
Athropogenic emissions Emission data sets ART_BIO ART_ANT
Biomass burning Satellite data ART_BCF

Chemical Tracer

Emission data can be obtained from several sources. The following table should give an overview about which emission data are available for a corresponding tracer. To find out when to use which emission data type we recommend respective further reading.

Emission Data Sources
Tracer Emission Type Emission Resolution
C2H6 ANT EDGA R2B04_ECHAM
EDGAR+ R2B05_0014
EDGAR-monthly R2B05_0014
R2B06_0024
B2B06_EU_nest
R2B07_nest
R2B07_NSR_D_nest
R3B07_0026
MACCity R2B04_0012
R2B05_0014
R2B06_0016
R2B07_0018
R2B07_polstrNest
R3B07_0022
BBE GFED R2B04_ECHAM
GFED3 R2B06_0024
R2B06_EU_nest
R2B07_nest
R2B07_NSR_D_nest
BIO MEGA R2B04_ECHAM
MEGAN-MACC R2B04_0012
R2B05_0014
R2B06_0016
R2B06_0024
R2B06_EU_nest
R2B07_nest
R2B07_NSR_D_nest
R2B07_0018
R2B07_polstrNest
R3B07_0022
C3H8 ANT EDGA R2B04_ECHAM
EDGAR+ R2B05_0014
EDGAR432-monthly R2B05_0014
R2B06_0024
B2B06_EU_nest
R2B07_nest
R2B07_NSR_D_nest
R3B07_0026
MACCity R2B04_0012
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
BBE GFED R2B04_ECHAM
GFED3 R2B06_0024
R2B06_EU_nest
R2B07_nest
R2B07_NSR_D_nest
BIO MEGA R2B04_ECHAM
MEGAN-MACC R2B04_0012
R2B05_0014
R2B06_0016
R2B06_0024
R2B07_nest
R2B07_0018
R3B07_0022
C5H8 BBE MACCity R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
BIO MEGAN-MACC R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
CFCl3 ANT GEIA R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
CH3CN BBE GFED.1s_Akagi_daily R2B04_0012
R2B04_ECHAM
GFED.1s_Akagi_monthly R2B04_0012
R2B04_ECHAM
GFED.1s_Stockwell_daily R2B04_0012
R2B04_ECHAM
GFED.1s_Stockwell_monthly R2B04_0012
R2B04_ECHAM
MACCity R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
CH3COCH3 ANT MACCity R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
R3B07_0026
POET R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
BBE GFED3 R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
GICC R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
GUESS-ES R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
POET R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
RETRO R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
BIO MEGAN-MACC R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
MEGANv2 R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
CH3I BIO Bell R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
Ziska R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
CH4 ANT EDGA R2B04_ECHAM
EDGAR+ R2B05_0014
EDGAR432-monthly R2B05_0014
R2B06_0024
B2B06_EU_nest
R2B07_nest
R2B07_NSR_D_nest
R3B07_0026
R3B08_0049
EDGARv4.2 R2B04_0012
R2B05_0014
R2B06_0016
R2B07_0018
R2B07_polstrNest
R3B07_0022
EDGARv4.3.1 R2B04_0012
R2B05_0014
CHBr3 BIO Liang R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
Ordonez R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
Ziska R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
CO ANT EDGAR R2B04_ECHAM
EDGAR+ R2B05_0014
EDGAR432-monthly R2B05_0014
R2B06_0024
B2B06_EU_nest
R2B07_nest
R2B07_NSR_D_nest
R3B07_0026
EDGARv4.2 R2B04_0012
R2B05_0014
R2B06_0016
R2B07_0018
R2B07_polstrNest
R3B07_0022
MACCity R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
POET R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
BBE GFED3 R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
GICC R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
GUESS-ES R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
RETRO R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
BIO MEGAN R2B04_ECHAM
MEGAN-MACC R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
MEGANv2 R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
CO2 ANT EDGARv4.2 R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B06_0024
R2B06_0031_nest
R2B07_0018
R2B07_nest
R3B07_0022
B3B07_0026
BBE GFED3 R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
DMS BBE GFED3 R2B04_0012
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
MACCity R2B04_0012
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
N2O ANT EDGARv4.2 R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R2B07_polstrNest
R3B07_0022
BBE GFED3 R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R2B07_polstrNest
R3B07_0022
NH3 ANT MACCity R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
MACCity_agriculture R2B06_0016
MACCity_agric_waste R2B06_0016
MACCity_energy R2B06_0016
MACCity_industrial R2B06_0016
MACCity_residential R2B06_0016
MACCity_transport R2B06_0016
SF6 ANT EDGARLevin R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022
SO2 ANT MACCity R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B06_0016
R2B07_0018
R2B07_nest
R3B07_0022
GFED3 R2B04_0012
R2B04_ECHAM
R2B05_0014
R2B06_0016
R2B07_0018
R3B07_0022

Remapping Emissions

A comprehensible manual can be found here. The document was provided by M. Weimer (June 2019). This document provides an overview of the workflow to be done in order to remap a set of emission data onto your own ICON grid. The raw emission data can be taken from emission inventories such as Edgar, MACCity, etc. (see above). The desired files can be copied to an own directory where they serve as input for the remap procedure described in the manual. Additional remarks:

  • The mentioned workflow was initially designed for FH2. Should be tested on other machines as well
  • The automatic addition of emission tags to the tracer.xml (add_emissions_to_tracer_xml.py) is very sensitive to tracer names and emission species. In doubt, add emission tags manually.
  • In any case, double check if all emission tags have been assigned to the correct tracer

Running a Limited Area Meteorology (LAM) Simulation

General

Here are some notes on setting up an ICON-ART LAM simulation. Theses settings are important if you use initial data and boundary data from different sources. It is preferable to use data from the same source to be consistent. However, in certain situations this is not possible due to limitations of the model (e.g. initialization routines).

Required data for LAM domain

Grid of LAM domain external parameters of LAM domain external parameters containing soil parameters (only necessary for dust simulations) initial data (ICON-ART or IFS)

Required data for LAM boundaries

Auxiliary grid (grid containing boundary area of the LAM domain, generated during remapping process with ICONtools) forcing data for the boundaries

Initialization

There are two different possible methods to read in the dust during initialization. You can either pass a file containing meteorological variables and a second file containing dust data. The vertical levels may differ between these two files and the dust must be delivered as ART_IAE file. The corresponding namelist setting in &art_nml is iart_init_aero=5

The other possibility is to pass all variables required for the initialization in a single file. The vertical levels must all be consistent and the corresponding namelist setting in &art_nml is iart_init_aero=0 . Furthermore you have to add file in the tracer xml file.

Boundary Data

The boundary data can only be passed to the model as one single file per time step. The vertical levels for all time steps must be the same. Otherwise an error occurs. If you use data from a different source than the one used for initialization, it is crucial to decouple the reading of the boundary data from the reading of initial data. During the start of the simulation it is possible to read the first boundary data from the initial data when using ICON-ART data. To prevent this and to read the boundary data from a separate file during initialization, set init_latbc_from_fg = .FALSE. in &limarea_nml . Additionally you have to add file in the tracer xml file.


#Aerosol Tracers

Creating A Nested ICON-Grid

There are four steps to create a grid. The steps have to be run separately as they are dependent on each other.

Graph Generation

The first step is creating the graph. Ensure that you specify R and B for the finest nest! I.e. if you plan a global R2B6 grid with a R2B7 Nest, you have to set R=2 and B=7. An example namelist in a runscript looks like this:

1 cat > NAMELIST_GRAPH << EOF
2 &graph_ini
3   nroot       = ${R}
4   grid_levels = ${B}
5 /
6 EOF
7 
8 echo global_graph_generator null > $commandFile
9 job_submit -c p -p 1 -t 60 -m 32000 ${run_commmand}

You might have to increase the allocated memory (-m 64000) if the process crashes (-p 1 is maximum because of lacking parallelization)

Grid generation

The second step is the generation of all (global) grids. I.e., if you choose R=2 and B=7, you get global grids for R2B1, R2B2, R2B3, R2B4, R2B5, R2B6 and R2B7. Even if you want R2B7 to be your nest, you have to do this step down to R2B7! This means, that the values of R and B for step 1 and 2 must not differ. As far as I could figure out, the spring dynamics optimization is the one to choose. Therefore, you should choose @itype_optimize = 4@. An example namelist looks like this:

 1 cat > NAMELIST_GRID << EOF
 2 &grid_ini
 3  nroot       = ${R}
 4  grid_levels = ${B}
 5 /
 6 &grid_options
 7  itype_optimize = 4
 8 /
 9 EOF
10 
11 echo global_grid_generator null > $commandFile
12 job_submit -c p -p 1 -t 600 -m 32000 ${run_commmand}

If you want to generate a finer grid (e.g. R2B10) you might have to increase the allocated memory (-m 256000).

Modify the filenames

The spring-dynamics-optimized files carry this information within their filename. In order to continue, the names have to be changed to the standard names of grids. This can be done within a script as shown in the following. (@maxlev_optim@ is a parameter, that specifies the maximum level to which optimizations are applied. This is set in the previous step within the grid_options namelist. As the default is 100, there is usually no need to change this. You just have to set the variable @maxlev_optim@ within the script for the copying):

1 level=1;
2 while [[ $level -le $maxlev_optim ]] ; do
3     cp iconR${R}B0${level}-grid_spr0.90.nc iconR${R}B0${level}-grid.nc
4     ((level=$level+1))
5 done

Nested grid creation

As a last step, you have to specify the nests. In the following example, three nests are added to a global R2B6 grid. Therefore, @start_lev = 6@ and @n_dom = 4@. As these nests are subsequent, the @parent_id@ of each nest is the one of the domain with one rank higher. I.e. R2B6 has the ID 1, therefore the @parent_id@ of R2B7 is 1. R2B8 has the ID of the R2B7 as @parent_id@ and therefore 2. The different domains are seperated by commas in the namelist. The global domain does of course not show up (you produced the global grid files in step 2). In this example, the further namelist variables mean the following: @l_circ@ gives the nests a circular instead of an rectangular shape. @l_plot@ provides output which can be used to plot the grids with GMT scripts. @radius, center_lon, center_lat@ define the location of the nests. With @lsep_gridref_info = .true.@ the grid information is stored within an additional grid description file. This needs then to be specified within ICON!

 1 cat > NAMELIST_GRIDREF << EOF
 2 &gridref_ini
 3   grid_root  = 2
 4   start_lev  = 6
 5   n_dom      = 4
 6   parent_id  = 1,2,3
 7   l_circ     = .true.
 8   l_plot     = .true.
 9   radius     =  20.,12.,12.
10   center_lon =  10.,5.,5.
11   center_lat =  40.,47.5,47.5
12   bdy_indexing_depth = 14
13   lsep_gridref_info = .false.
14 /
15 EOF
16 
17 echo global_grid_refine null > $commandFile
18 job_submit -c p -p 64 -t 60 -m 16000 ${run_commmand}

If you want to generate a finer grid (e.g. R2B10) you might have to increase the allocated memory (-m 64000).

All input data required for standard configurations

XML data are art/runctrl_examples/xml_ctrl

Runscripts are art/runctrl_examples/run_scripts

All grid, IC, BC and emission data are here