# Finish porting the Tracer Advection stencils to GT4Py ###### tags: `cycle 14` Developers: - Support: - Appetite: 3 weeks ## Background The tracer advection is close to be being completely ported to gt4py. For this project, finish it up and make it production ready! ## Goals * Have clean implementation and clean test for every g4py stencil that is in the operational code path of the tracer advection * "clean implementation" means as clean as possible, work-arounds will be required for at least some stencils because of missing gt4py features * Replace the direct, "ifdef style" integration with Liskov directives ## Non-Goals * Do not try to remove work arounds by introducing gt4py features in this task ## Known Tasks - [x] rbf_intp_edge_stencil_01 - [ ] upwind_hflux_miura_stencil_01 (liskov missing: needs mutliple data regions) - [ ] hflx_limiter_mo_stencil_01 ? maximum over sparse field? - [x] hflx_limiter_mo_stencil_02 - [x] hflx_limiter_mo_stencil_03 - [x] hflx_limiter_mo_stencil_04 - [ ] hflx_limiter_pd_stencil_01 (liskov missing: needs mutliple data regions) - [ ] hflx_limiter_pd_stencil_02 (liskov missing: needs mutliple data regions) - [x] step_advection_stencil_01 - [x] step_advection_stencil_02 - [ ] step_advection_stencil_03 (liskov missing: stencil entangled in loops) - [ ] step_advection_stencil_04 (liskov missing: stencil entangled in loops) - [ ] vert_adv_stencil_01 (liskov missing: stencil entangled in loops) - [ ] hor_adv_stencil_01 (liskov missing: stencil entangled in loops) - [ ] set_zero_c_k (liskov missing: needs mutliple data regions) - [ ] upwind_vflux_ppm_stencil_01 (liskov missing: needs mutliple data regions) - [x] face_val_ppm_stencil_01 - [x] face_val_ppm_stencil_02 (crashing) - [x] face_val_ppm_stencil_05 - [x] upwind_vflux_ppm_stencil_01 - [x] v_limit_prbl_sm_stencil_01 - [x] compute_airmass - [ ] upwind_hflux_miura_stencil_01 - [ ] upwind_hflux_miura_stencil_02 ## More TODO - [ ] incorporate data regions of before fields into stencils - [ ] refactor stencils that are entangled in loops and if statements