# Explore scan() for implementation of ICON graupel()
###### tags: `functional cycle 10`
Explore new `scan()` functionality for writing single column solvers with ICON graupel() routine.
Developers: David, Nikki, Linus
Appetite: 3 weeks
## Idea
Write a toy implementation of the primary algorithmic motif of graupel(): vector multiply + implicit sedimentation in functional GT4Py. Continuously implement special cases on that toy.
## Goals
1. Test scan
2. Gather and implement missing features, specifically of scan but also in general, for this scheme
## Not (yet) goals:
- Performance, code beauty
- Completeness, scientific usefullness (wont implement a real scheme)
- Full single column abstraction
## Potential Issues
- Handling of lower boundary conditions
- Explicit indices
- offsets on IF statements
## Required Featrues:
### For [satad](https://github.com/C2SM/icon4py/tree/satad):
- [x] Docstings in field_operator (Nikki)
- [ ] Discuss/shape fixed-size for loop or recursion (Linus)
- [ ] Shape multiple returns form where (Nikki)
- [ ] local, global, compile-time constants (Peter)
### For [graupel_stub](https://github.com/leuty/graupel_standalone/tree/graupel_stub)
- [x] ternary in scan_operator (Till, fast track)
- [ ] Shape local IF statement in scan_operator (Till)
- [ ] think about optimized returning CellDim field. Maybe hotfix possible? (Till)