Skip to content

Conversation

@DrTVockerodtMO
Copy link
Contributor

@DrTVockerodtMO DrTVockerodtMO commented Jan 15, 2026

PR Summary

Sci/Tech Reviewer: @tom-j-h
Code Reviewer: @mo-lottieturner

Includes speed-ups to adjoint transport algorithms and kernels. Main algorithm speedups include removing vestigial setting of internal fields to zero, and then replacing inc_X_plus_Y invokes with setval_x. In the kernels, mostly consists of removing patterns like:

internal_field = 0.0_r_def
...
do idx = loop_min, loop_max
  internal_field = internal_field + <some calculation>
  ...
  internal_field = 0.0_r_def
end do
...

with simply:

do idx = loop_min, loop_max
  internal_field = <some calculation>
  ...
end do

I have also included putting the proper kinds on zero setting as this may trigger implicit float conversions.

Code Quality Checklist

  • I have performed a self-review of my own code
  • My code follows the project's style guidelines
  • Comments have been included that aid understanding and enhance the readability of the code
  • My changes generate no new warnings
  • All automated checks in the CI pipeline have completed successfully

Testing

  • I have tested this change locally, using the LFRic Core rose-stem suite
  • If required (e.g. API changes) I have also run the LFRic Apps test suite using this branch
  • If any tests fail (rose-stem or CI) the reason is understood and acceptable (e.g. kgo changes)
  • I have added tests to cover new functionality as appropriate (e.g. system tests, unit tests, etc.)
  • Any new tests have been assigned an appropriate amount of compute resource and have been allocated to an appropriate testing group (i.e. the developer tests are for jobs which use a small amount of compute resource and complete in a matter of minutes)

trac.log

Test Suite Results - lfric_apps - lfric_apps_speedup_adj_transport/run1

Suite Information

Item Value
Suite Name lfric_apps_speedup_adj_transport/run1
Suite User terence.vockerodt
Workflow Start 2026-01-15T14:39:30
Groups Run developer
Dependency Reference Main Like
casim MetOffice/casim@2025.12.1 True
jules MetOffice/jules@2025.12.1 True
lfric_apps DrTVockerodtMO/lfric_apps@lfric_apps_speedup_adj_transport False
lfric_core MetOffice/lfric_core@5d4d72f True
moci MetOffice/moci@2025.12.1 True
SimSys_Scripts MetOffice/SimSys_Scripts@2025.12.1 True
socrates MetOffice/socrates@2025.12.1 True
socrates-spectral MetOffice/socrates-spectral@2025.12.1 True
ukca MetOffice/ukca@2025.12.1 True

Task Information

✅ succeeded tasks - 1106

Security Considerations

  • I have reviewed my changes for potential security issues
  • Sensitive data is properly handled (if applicable)
  • Authentication and authorisation are properly implemented (if applicable)

Performance Impact

  • Performance of the code has been considered and, if applicable, suitable performance measurements have been conducted

AI Assistance and Attribution

  • Some of the content of this change has been produced with the assistance of Generative AI tool name (e.g., Met Office Github Copilot Enterprise, Github Copilot Personal, ChatGPT GPT-4, etc) and I have followed the Simulation Systems AI policy (including attribution labels)

Documentation

  • Where appropriate I have updated documentation related to this change and confirmed that it builds correctly

PSyclone Approval

  • If you have edited any PSyclone-related code (e.g. PSyKAl-lite, Kernel interface, optimisation scripts, LFRic data structure code) then please contact the TCD Team

Sci/Tech Review

  • I understand this area of code and the changes being added
  • The proposed changes correspond to the pull request description
  • Documentation is sufficient (do documentation papers need updating)
  • Sufficient testing has been completed

(Please alert the code reviewer via a tag when you have approved the SR)

Code Review

  • All dependencies have been resolved
  • Related Issues have been properly linked and addressed
  • CLA compliance has been confirmed
  • Code quality standards have been met
  • Tests are adequate and have passed
  • Documentation is complete and accurate
  • Security considerations have been addressed
  • Performance impact is acceptable

@github-actions github-actions bot added the cla-signed This contributor has signed the CLA. label Jan 15, 2026
@DrTVockerodtMO DrTVockerodtMO added this to the Spring 2026 milestone Jan 15, 2026
@DrTVockerodtMO DrTVockerodtMO self-assigned this Jan 15, 2026
@tom-j-h tom-j-h requested review from tom-j-h and removed request for mo-joshuacolclough January 16, 2026 10:29
Copy link

@tom-j-h tom-j-h left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Terry, looks great, just a couple of questions on specific bits.

@tom-j-h tom-j-h self-requested a review January 19, 2026 09:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed This contributor has signed the CLA.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Speed-up adjoint transport (algorithms + kernels)

2 participants