MetOffice / MetOffice/lfric_apps

Umbrella Transmute fixes and OMP kernels

Open
#424 3 comments 0 reactions 1 assignee View on GitHub

@MetBenjaminWent is already working on this.

Since Apr 9, 2026.

enhancement
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.