---
# System prepended metadata

title: ICON-DSL Integration Cleanup
tags: [functional cycle 12]

---

# ICON-DSL Integration Cleanup
###### tags: `functional cycle 12`

Developers:

Appetite: 1 week

## Problem

The current integration of the DSL stencils into ICON required a number of workarounds in the ICON Fortran code. These workarounds make it harder to merge newer versions of `icon-nwp` into `icon-exclaim`.

Specifically the order of dimensions of higher order fields is inconsistent in ICON, which led to many workarounds in the integration.

The integration also introduced a number of unnecessary changes to ICON Fortran code (added newlines, spaces, tabs) which make merges harder because they cause conflicts.

Lastly, the code added through the integration is inconsistent and inhomogeneous.

## Background

Above mentioned workarounds were used for different reasons.
* Lack of knowledge at the time
* Limitations of dusk/dawn compiler
* Limitations of older versions of ICON code?

## Known steps

* Take diff to the latest `icon-nwp` commit that was merged into `icon-dsl`, which is `be66d280c1e23a340c2a2b28154acf3379982f5c`
* Resolve all workarounds in the integration which can be resolved
* For remaining workarounds, investigate possible solutions and open follow-up tasks
    * Should solution be on the ICON or DSL or Integration side?
    * Regarding higher order fields and their order of dimensions in ICON specifically, the question is if this can be solved upstream (by DWD), or in the context of ICON-C, or with the integration/gt4py?
* Fix unnecessary changes to ICON Fortran code
* (Optional) Clean up code added for integration, decide on code style