ICOsahedral Nonhydrostatic weather- and climate model with Aerosols and Reactive Trace gases (ICON-ART / std)

Description

This is the plugin to run ICON-ART.

“ICON-ART is a state-of-the-science seamless model system for the whole atmosphere (physics and composition) that comprises the key components of the next generation Earth system model in Germany. ICON is a global weather and climate model solves the full three-dimensional non-hydrostatic and compressible Navier-Stokes equations on an icosahedral grid and allows seamless predictions from local to global scales. Aerosol and Reactive Trace gases (ART), as a submodule of ICON, supplements the model by including emissions, transport, gas phase chemistry, and aerosol dynamics in the troposphere and stratosphere.” KIT

You can also find example runscripts in the CIF gitlab repository

More information about ICON and ICON-ART can be found in the following links

Official ICON website

ICON documentation

Yaml arguments

The following arguments are used to configure the plugin. pyCIF will return an exception at the initialization if mandatory arguments are not specified, or if any argument does not fit accepted values or type:

Mandatory arguments

icon_dir: (mandatory)

Directory where ICON-ART is installed on the computer. Radiation, ART files, etc, are stored in this directory.

accepted type: str

icon_exe: (mandatory)

Path to the ICON executable to use. Might be a location different from the icon_dir.

accepted type: str

namelist_file: (mandatory)

The iconart namelist file. Some of the namelist parameter cannot be specified and will be overriden by this plugin. You will get warning inside the log file for these parameters.

accepted type: str

meteo_inicond_file: (mandatory)

File containing the meteorological variables required for initializing ICON.

accepted type: str

Optional arguments

autoflush: (optional): False

Cleans big temporary files when the simulation is done. Triggers the function flushrun of the model if available

accepted type: bool

periods: (optional): 1D

Frequency for sub-simulations

accepted type: str

output_resolution: (optional): 1H

Temporal resolution of outputs

accepted type: str

input_resolution: (optional): 1H

Temporal resolution of inputs. Must not be less that 1H.

accepted type: str

meteo_lbc_dir: (optional): False

Directory where the meteorological lateral boundary conditions files are found.

The directory must contain files with the following format: ‘<meteo_lbc_basename>_%Y%m%d%H_lbc.nc’.

accepted type: str

meteo_lbc_file: (optional): ifs

Format of the meteorological lateral boundary conditions files.

accepted type: str

inicond_dry2moist: (optional): False

Convert inicond variable from dry vmr to moist vmr before dumping the file.

accepted type: bool

lbc_dry2moist: (optional): False

Convert inicond variable from dry vmr to moist vmr before dumping the file.

accepted type: bool

use_hourofyear: (optional): True

If True, dump OEM temporal scaling factors using the hour_of_year feature, allowing more flux representativeness.

Users should be aware that when using this option, only the first 241 hours are dumped to avoid oom errors, therefore ICON (sub-)periods cannot exceed 10 days.

accepted type: bool

run_icon_with_another_job: (optional): False

If True, a new job will be launched to specifically run the model. The platform option ‘nodes_model’ allows to specify the number of nodes to be used. A Platform plugin is required if this option is True.

accepted type: bool

dump_output_latlon: (optional): False

Also dump outputs on a regular lat/lon grid.

accepted type: bool

output_interp_neighbors: (optional): 5

Number of adjacent cells to consider for horizontal interpolation.

To convert ICON outputs to observation equivalents, a distance-weighted interpolation is applied. It takes the closest cells to the station into account and calculate the distance between the station and the center of the nth closest adjacent cells.

accepted type: int

full_interpolation: (optional): True

If only the level is provided for an observation rather than the altitude (typically for satellites), this option allows to find the levels of the adjacent values corresponding to the same altitude of the observation.

If this option is set to False, the same level is used to fetch the adjacent values.

This option might improve the comparison to satellite observations but also multiply the numbers of observations to interpolate by a factor of nlev * output_interp_neighbors. Therefore, the computational time is drastically increase and may become too large if the number of observations to process is high (typically >1e5).

accepted type: bool

interpolation_apply_nchunks: (optional): 10

Number of chunks used to apply the interpolation to the ICON outputs for each observation.

Maximum value should be 36 with Daint.

If the number of tracers is important, using the maximum value might result in oom errors.

accepted type: int

dont_run: (optional): False

If True, the model will not run. Useful for checking the inputs.

accepted type: bool

force_clean_run: (optional): False

Clean run subdirectory just after running to limit disk space usage.

accepted type: bool

Yaml template

Please find below a template for a Yaml configuration:

 1model:
 2  plugin:
 3    name: ICON-ART
 4    version: std
 5    type: model
 6
 7  # Mandatory arguments
 8  icon_dir: XXXXX  # str
 9  icon_exe: XXXXX  # str
10  namelist_file: XXXXX  # str
11  meteo_inicond_file: XXXXX  # str
12
13  # Optional arguments
14  autoflush: XXXXX  # bool
15  periods: XXXXX  # str
16  output_resolution: XXXXX  # str
17  input_resolution: XXXXX  # str
18  meteo_lbc_dir: XXXXX  # str
19  meteo_lbc_file: XXXXX  # str
20  inicond_dry2moist: XXXXX  # bool
21  lbc_dry2moist: XXXXX  # bool
22  use_hourofyear: XXXXX  # bool
23  run_icon_with_another_job: XXXXX  # bool
24  dump_output_latlon: XXXXX  # bool
25  output_interp_neighbors: XXXXX  # int
26  full_interpolation: XXXXX  # bool
27  interpolation_apply_nchunks: XXXXX  # int
28  dont_run: XXXXX  # bool
29  force_clean_run: XXXXX  # bool