---
# System prepended metadata

title: '[Greenline] 1D turbulence Fortran granule'
tags: [cycle 24 - 08/24]

---

# [Greenline] 1D turbulence

<!-- Add the tag for the current cycle number in the top bar -->

- Shaped by:
- Appetite (FTEs, weeks): full cycle
- Developers: <!-- Filled in at the betting table unless someone is specifically required here -->

## Problem
<!-- The raw idea, a use case, or something we’ve seen that motivates us to work on this -->
Extract the 1D turbulence of ICON (Fortran) into a Fortran standalone granule. The granule should ideally match.

Use ICON-NWP as base, there was a big refactor.

## Appetite
<!-- Explain how much time we want to spend and how that constrains the solution -->

## Solution
<!-- The core elements we came up with, presented in a form that’s easy for people to immediately understand -->
The 1D turbulence granule should live in its own repository that contains all relevant source code for the module. 
We propose to open the repository at the C2SM github space to start with.

The setup of the repository should be aligned with the [microphysics Fortran granule](https://gitlab.dkrz.de/icon-libraries/muphys).

Also the same testing infrastructure/libraries might be used.

The granule should be built with CMake.

It might use libraries from [icon-libraries](https://gitlab.dkrz.de/icon-libraries). 


The interface should make it easy to be used from other languages as we want to add python bindings and use it from icon4py. The granule may keep local fields and variables as internal state if necessary, but should otherwise be stateless. See notes on [granule interface](https://pad.gwdg.de/laDDDeV7TQCpxoSKoyOt5g) from ICON-C


All model fields should be passed at runtime as simple types: arrays of scalars or scalars



The entrypoint in is in `src/atm_phy_schemes/turb_diffusion.f90`. 


## Rabbit holes
<!-- Details about the solution worth calling out to avoid problems -->

## No-gos
<!-- Anything specifically excluded from the concept: functionality or use cases we intentionally aren’t covering to fit the ## appetite or make the problem tractable -->

## Progress
<!-- Don't fill during shaping. This area is for collecting TODOs during building. As first task during building add a preliminary list of coarse-grained tasks for the project and refine them with finer-grained items when it makes sense as you work on them. -->

- [x] Task 1 ([PR#xxxx](https://github.com/GridTools/gt4py/pulls))
    - [x] Subtask A
    - [x] Subtask X
- [ ] Task 2
    - [x] Subtask H
    - [ ] Subtask J
- [ ] Discovered Task 3
    - [ ] Subtask L
    - [ ] Subtask S
- [ ] Task 4

