# CDO post processing A CDO post-processing job is available, to be activated with the `--cdo` option in the init script. This job is basically a wrapper job to run (nearly) arbitrary CDO jobs on the simulation output. To configure these, add a `CDO` section in your `conf/art/experiments/.yml` file. A full description of the current syntax is available in the `conf/art/experiments/template.yml` file. In general, this looks as follows: ```yaml CDO: SELDUST: OPERATOR: selname ARGS: [dusta, dustb, dustc] FILES: 'icon-art-%EXPNAME%-aero*' OUTPUT: '/aero/dust/' ADD: OPERATOR: add BINARY: True FILES: 'icon-art-%EXPNAME%-dust*.nc': name: [dusta, dustb, dustc] OUTPUT: PASSEACH VAR_RENAME: OPERATOR: chname ARGS: [dusta, dust_total] FILES: ADD OUTPUT: '/dust/all_dust_total/' ``` Each section stands for a different (set of) operator call(s) and contains as information * the operator to invoke * (optional) further arguments * input file(s) * output file(s) As input, one can also specify a section (the output from this operator will be used as input via operator chaining), or a selection of specific variables from an input file (that will be selected with a chained `sel`. As output, one can specify a specific file name, a substitution pattern (s.t. each input file will produce a single output file with substituted patterns) or the PASS or PASSEACH keywords that indicate that the output will be used as input for another operator. From the above configuration, the SELDUST section, will result in operator calls like ```bash cdo selname,dusta,dustb,dustc icon-art-MY_EXPNAME-aero-DOM01_ML_0001.nc icon-art-MY_EXPNAME-dust-DOM01_ML_0001.nc cdo selname,dusta,dustb,dustc icon-art-MY_EXPNAME-aero-DOM01_ML_0002.nc icon-art-MY_EXPNAME-dust-DOM01_ML_0002.nc cdo selname,dusta,dustb,dustc icon-art-MY_EXPNAME-aero-DOM01_ML_0003.nc icon-art-MY_EXPNAME-dust-DOM01_ML_0003.nc ... ``` The ADD and VAR_RENAME will result in more complex operator calls: ```bash cdo chname,dusta,dust_total \ -add -selname,dusta icon-art-MY_EXPNAME-dust-DOM01_ML_0001.nc \ -add -selname,dustb icon-art-MY_EXPNAME-dust-DOM01_ML_0001.nc \ -selname,dustc icon-art-MY_EXPNAME-dust-DOM01_ML_0001.nc \ icon-art-MY_EXPNAME-all_dust_total-DOM01_ML_0001.nc cdo chname,dusta,dust_total \ -add -selname,dusta icon-art-MY_EXPNAME-dust-DOM01_ML_0002.nc \ -add -selname,dustb icon-art-MY_EXPNAME-dust-DOM01_ML_0002.nc \ -selname,dustc icon-art-MY_EXPNAME-dust-DOM01_ML_0002.nc \ icon-art-MY_EXPNAME-all_dust_total-DOM01_ML_0002.nc ... ``` :::{important} Many CDO operators are I/O-bound and thus do not require substantial CPU or memory resources. Thus, per default the CDO job runs on the login node. If you plan to run a high amount of CDO post-processing or CPU/memory intensive tasks, you need to tell *auto-icon* to submit it to the job queue. To do so, you should change in `conf/common/jobs/post-cdo.yml` the field `JOBS.POST_CDO.PLATFORM:` to `"%DEFAULT.HPCARCH%"`. You might also want to adjust the partition if there is a designated partition for such jobs (as the `shared` partition on Levante) with `JOBS.POST_CDO.PARTITION: ""`. :::