What are the aims of ComIn?

  • Providing a standardized public interface for third party codes (‘plugins’) coupled to ICON

  • Significantly reduced maintenance for ICON as well as for third party code developers

  • Plugins easier to migrate to new ICON releases

  • Establishing ICON as the core model for applications ranging from NWP to ESM

  • Enables multi-language support (Fortran, C/C++, Python)

Callbacks of plugins registered via ComIn are called at specific entry points  within ICON
Schematic 1: Callbacks of plugins registered via ComIn are called at specific entry points within ICON

How does ComIn work in a nutshell?

  • ComIn organizes the data exchange and simulation events between the ICON model and multiple plugins.

  • ComIn Callback Register: Subroutines of the plugins are called at pre-defined events during the ICON simulation.

  • The ComIn Adapter Library is included by ICON and the plugins. It contains descriptive data structures and regulates the access and the creation of model variables.

ComIn Schematic 2: The adapter library control exchange of variables between ICON and plugins connected via ComIn
Schematic 2: The adapter library control exchange of variables between ICON and plugins connected via ComIn

Large range of applications

  • Attaching community components and models (e.g. land, chemistry, hydrology, …)

  • Execution of Python scripts (e.g. output, in-situ data processing and ML applications)

  • Horizontal or vertical interpolation of data


Documentation

More information and instructions regarding the community interface is provided in the ICON GitLab repository.