MetOffice / MetOffice/lfric_apps
Umbrella Transmute fixes and OMP kernels
@MetBenjaminWent is already working on this.
Since Apr 9, 2026.
- Dominant language
- Fortran
- Stars
- 31
- Forks
- 118
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 8
Description
### Are there any linked Issues or Pull Requests?
# Kernel Transmute Scripts: #
conv_gr_kernel_mod - https://github.com/MetOffice/lfric_apps/issues/583 - DONE
https://github.com/MetOffice/lfric_apps/issues/361 - CR - Note this has accidentally turned off `mphys_kernel_mod` as the options sit in global? - DONE
Extend OMP in kernels: #608 - DONE
Further Socretes: https://github.com/MetOffice/lfric_apps/issues/619 - INPROG
Nowaits and align parallelism #738 - TBD
# Adjacent Transmute fixes: #
Transmute not kernels : #630 - DONE
Transmute testing: https://github.com/MetOffice/lfric_apps/issues/755 - INPROG
# Adjacent PSyclone work #
### Brief description
A number of Domain kernels still do not have effective OMP coverage, which is affecting performance.
These are low hanging things to help OMP performance.
Some have already been attempted, but do not appear to be giving us the expected performance boost.
We can try them with the new Transmute Local script
This would provide a small uplift in kernel runtime performance with OMP.
Furthermore for PSyclone 3.3.1 fix Transmute issues
Potentially explore further Transmute testing
### Further details of the issue.
These are done (Or in progress):
```
bl_exp_kernel_mod \
bl_imp_kernel_mod \
bl_imp2_kernel_mod \
bm_tau_kernel_mod \
conv_gr_kernel_mod \
jules_exp_kernel_mod \
jules_extra_kernel_mod \
jules_imp_kernel_mod \
lw_kernel_mod \
mphys_kernel_mod \
pc2_initiation_kernel_mod \
pc2_conv_coupling_kernel_mod \
sw_kernel_mod \
sw_rad_tile_kernel_mod \
```
These are not:
```
interfaces/jules_interface/source/kernel/lw_rad_tile_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/jules_interface/source/kernel/sw_rad_tile_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/aerosol_ukca_kernel_mod.F90: integer :: operates_on = DOMAIN - LOOPS
interfaces/physics_schemes_interface/source/kernel/bm_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/conv_comorph_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/lsp_prognostic_tnuc_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/mphys_turb_gen_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/photol_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/smith_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/spectral_gwd_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/tracer_mix_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/socrates_interface/source/kernel/cosp_kernel_mod.f90: integer :: operates_on = DOMAIN
interfaces/socrates_interface/source/kernel/lw_inc_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/socrates_interface/source/kernel/lw_mts_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/socrates_interface/source/kernel/sw_inc_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/socrates_interface/source/kernel/sw_mts_kernel_mod.F90: integer :: operates_on = DOMAIN
```
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.