LFRic Core vn3.1 release notes
Key Changes
- New api for namelist configuration access #175, the old method of access is deprecated. Usage is detailed in the Using the config object
- Changes to the partitioning strategy so that MPI ranks for cubed-sphere runs are no longer limited to a factor of 6, and can now run with a factor of 2 or 3. #220
Breaking Changes
These changes will affect suites upgrading to this release
- No known breaking changes at this release.
Known Issues
- No known issues at this release.
Linked Changes
This release is part of the 2026.03.1 Simulation Systems Release..
What's Changed
- Sphinx setup initial setup by Andrew Coughtrie (@andrewcoughtrie) in #1
- Some initial documentation. by Andrew Coughtrie (@andrewcoughtrie) in #2
- First draft of DistMem doc. by Mike Hobson (@mike-hobson) in #4
- Configurator documentation by Matthew Hambley (@MatthewHambley) in #10
- Import top-level LFRic documentation by Steve Mullerworth (@stevemullerworth) in #9
- Improve data model document by Steve Mullerworth (@stevemullerworth) in #15
- Addressing the most obvious flaws in the dist mem docs. by Mike Hobson (@mike-hobson) in #11
- Added XIOS file definition standards as well as some general tweaks. by Andrew Coughtrie (@andrewcoughtrie) in #17
- First draft of clock and time documentation. by Matthew Hambley (@MatthewHambley) in #19
- Add deploy docs badge by Andrew Coughtrie (@andrewcoughtrie) in #21
- Rename readme and doc deployment by Andrew Coughtrie (@andrewcoughtrie) in #22
- Update the workflow to use newer actions by Andrew Coughtrie (@andrewcoughtrie) in #20
- Doc structure by Steve Mullerworth (@stevemullerworth) in #24
- Add a glossary page with some initial definitions as a starting point… by Ricky Wong (@mo-rickywong) in #27
- Pydata restructure by Andrew Coughtrie (@andrewcoughtrie) in #31
- Update sphinx workflow by Andrew Coughtrie (@andrewcoughtrie) in #32
- Add sphinx design to pip install in workflow by Andrew Coughtrie (@andrewcoughtrie) in #33
- Added the glossary as a link in the guide to documentation by Andrew Coughtrie (@andrewcoughtrie) in #34
- Create CODEOWNERS by Andrew Coughtrie (@andrewcoughtrie) in #36
- Fix edit source link in conf.py by Andrew Coughtrie (@andrewcoughtrie) in #38
- Update module info in readme by Andrew Coughtrie (@andrewcoughtrie) in #39
- Fix link to the GitHub repo by Andrew Coughtrie (@andrewcoughtrie) in #40
- Write-up of external fields. by Matthew Hambley (@MatthewHambley) in #25
- Application schematic added to docs by Steve Mullerworth (@stevemullerworth) in #37
- 30 document prognostics and diagnostics system by Steve Mullerworth (@stevemullerworth) in #35
- Document templaterator and templates by Matthew Hambley (@MatthewHambley) in #51
- Added issue templates by Andrew Coughtrie (@andrewcoughtrie) in #42
- Update figures in the lfric datamodel docs by Andrew Coughtrie (@andrewcoughtrie) in #49
- Data structures by Steve Mullerworth (@stevemullerworth) in #45
- Document Modeldb by Mike Hobson (@mike-hobson) in #50
- Improve issue templates by Andrew Coughtrie (@andrewcoughtrie) in #56
- Correct info on mixed-precision field collection iterators. by Mike Hobson (@mike-hobson) in #61
- 18 sphinx style guide by Steve Mullerworth (@stevemullerworth) in #65
- Some small fixes to the issue templates forms by Andrew Coughtrie (@andrewcoughtrie) in #70
- Fix yaml files by Mike Hobson (@mike-hobson) in #71
- Apply style changes to all the docs by Steve Mullerworth (@stevemullerworth) in #74
- Add info on coupling to the documentation by Mike Hobson (@mike-hobson) in #77
- Fix field collection iterator example code by Mike Hobson (@mike-hobson) in #79
- Getting going documentation by Steve Mullerworth (@stevemullerworth) in #78
- Add Fortran style guide by Steve Mullerworth (@stevemullerworth) in #83
- Doxygen usage copied from SRS and updated by Matthew Hambley (@MatthewHambley) in #67
- Moved configurator documentation to developer guide by Matthew Hambley (@MatthewHambley) in #88
- Mesh generation user guide documentation - Quick Start & Restructure by Ricky Wong (@mo-rickywong) in #63
- Fix the reference numbers for figures in the dist-mem docs. by Mike Hobson (@mike-hobson) in #85
- Clean up the data model doc and move it to developer documentation by Steve Mullerworth (@stevemullerworth) in #89
- Adding unit test documentation by Mike Hobson (@mike-hobson) in #80
- Dependerator documentation by Matthew Hambley (@MatthewHambley) in #87
- 62 documentation add configuration documentation by Ricky Wong (@mo-rickywong) in #84
- Update GitHub actions to bring in line with lfric_apps by Andrew Coughtrie (@andrewcoughtrie) in #94
- Update workflow badge by Andrew Coughtrie (@andrewcoughtrie) in #95
- Update function space documentation for split element orders by mo-jdendy in #91
- Updated modeldb documentation by allynt in #101
- Fixed a missing link by Matthew Hambley (@MatthewHambley) in #102
- Placeholder documentation for components. by Matthew Hambley (@MatthewHambley) in #92
- Introduce the simple I/O system. by Matthew Hambley (@MatthewHambley) in #105
- Introduction to logging framework. by Matthew Hambley (@MatthewHambley) in #104
- Describe the use of "big PF." by Matthew Hambley (@MatthewHambley) in #109
- Update fortran_coding_standards.rst by Mike Hobson (@mike-hobson) in #111
- Make prohibition on application specifics in driver component more explicit by Matthew Hambley (@MatthewHambley) in #112
- Add PSyclone Makefile docs by Oakley Brunt (@oakleybrunt) in #110
- Add deploy target to MakeFile by Andrew Coughtrie (@andrewcoughtrie) in #114
- Add integration testing documentation by Matthew Hambley (@MatthewHambley) in #117
- Update software_dependencies.rst by Andrew Coughtrie (@andrewcoughtrie) in #120
- Update the dist mem docs to explain the alternative to inner halos by Mike Hobson (@mike-hobson) in #121
- Refine comments on kind specification by Steve Mullerworth (@stevemullerworth) in #125
- Migrate Python style guide from SRS by Matthew Hambley (@MatthewHambley) in #124
- A primer for code reviewers by Matthew Hambley (@MatthewHambley) in #122
- Started a page of testing tips by Matthew Hambley (@MatthewHambley) in #123
- Character style by Steve Mullerworth (@stevemullerworth) in #118
- Correct Gnu version and fix formatting by Steve Mullerworth (@stevemullerworth) in #126
- Renamed the main sections of the documentation. by Andrew Coughtrie (@andrewcoughtrie) in #127
- Fix copyright format by Andrew Coughtrie (@andrewcoughtrie) in #128
- Update the README.md file by Andrew Coughtrie (@andrewcoughtrie) in #129
- Document use of the lfric mpi module by Mike Hobson (@mike-hobson) in #130
- Add basic PR template by Andrew Coughtrie (@andrewcoughtrie) in #132
- Simplify the data section by referencing other sections by Steve Mullerworth (@stevemullerworth) in #136
- Extend and refactor logging information by Steve Mullerworth (@stevemullerworth) in #137
- Configuration documentation by Steve Mullerworth (@stevemullerworth) in #138
- Add in details of File_prefix which appears to have been omitted by Ricky Wong (@mo-rickywong) in #139
- Adding a FAQs page by Andrew Coughtrie (@andrewcoughtrie) in #141
- Update glossary.rst by Mike Hobson (@mike-hobson) in #143
- Updated workflow packages to be pegged at specific versions. by Andrew Coughtrie (@andrewcoughtrie) in #142
- An illustration of the testing continuum by Matthew Hambley (@MatthewHambley) in #148
- Code style guide for kernels by Andrew Coughtrie (@andrewcoughtrie) in #145
- Removed system integration testing from diagram but discussed it more… by Matthew Hambley (@MatthewHambley) in #149
- Update README.md by Steve Mullerworth (@stevemullerworth) in #146
- Split GitHub workflows by Andrew Coughtrie (@andrewcoughtrie) in #150
- Add accessibility statement by Steve Mullerworth (@stevemullerworth) in #153
- Add escalation of warnings to errors in the build of the Sphinx docs. by Andrew Coughtrie (@andrewcoughtrie) in #155
- Fix formatting to be more pleasant on mobile devices by Andrew Coughtrie (@andrewcoughtrie) in #159
- Add section on Mesh file contents and Ugrid compliance by Ricky Wong (@mo-rickywong) in #144
- Add reference to
log_at_levelAPI by Matthew Hambley (@MatthewHambley) in #160 - Remove date from all copyright statements by Steve Mullerworth (@stevemullerworth) in #162
- Update issue templates by Andrew Coughtrie (@andrewcoughtrie) in #164
- Lfric core git test by James Bruten (@james-bruten-mo) in #161
- fix extraction by James Bruten (@james-bruten-mo) in #165
- Modified files to reduce resources requested by LBC rose stem tasks by Ricky Wong (@mo-rickywong) in #166
- add github files by James Bruten (@james-bruten-mo) in #168
- update dependency by James Bruten (@james-bruten-mo) in #169
- Fix climate runs performance issue. by Jenny Hickson (@jennyhickson) in #170
- add cla files by James Bruten (@james-bruten-mo) in #172
- Pre release vn3.0 by Jenny Hickson (@jennyhickson) in #174
- Release vn3.0 by Jenny Hickson (@jennyhickson) in #178
- Stable to Main, vn3.0 by James Bruten (@james-bruten-mo) in #179
- Docs deploy only triggers on upstream by mo-marqh in #180
- Codeowners update by Andrew Coughtrie (@andrewcoughtrie) in #182
- Add some words about the reason for testing by Matthew Hambley (@MatthewHambley) in #185
- Remove contact details from Issue template by Yaswant Pradhan (@yaswant) in #189
- Update root Readme file. by Andrew Coughtrie (@andrewcoughtrie) in #188
- Change TM to R by Andrew Coughtrie (@andrewcoughtrie) in #193
- Update gitignore by James Bruten (@james-bruten-mo) in #194
- Fail gracefully if the configuration namelist doesn't exist by Mike Hobson (@mike-hobson) in #191
- Fixed duplication of directory ownership, should have been a differen… by Andrew Coughtrie (@andrewcoughtrie) in #190
- Add Harry Shepherd to CONTRIBUTORS.md by Harry Shepherd (@harry-shepherd) in #207
- Remove additional leading space from make message calls by Ed Hone (@EdHone) in #210
- Remove references to FCM following Git migration by Steve Mullerworth (@stevemullerworth) in #208
- Reusing xt xmap by Mike Hobson (@mike-hobson) in #198
- add project workflow by James Bruten (@james-bruten-mo) in #214
- Timing Mod wrapper rewrite by Jed Baker (@jedbakerMO) in #201
- Avoid
panel_decomposition_modcausing a divide-by-zero by Tom Hill (@tom-j-h) in #227 - Reformat pull request template by Yaswant Pradhan (@yaswant) in #211
- Verniered Calipers performance 25 core by mo-marqh in #233
- Correction to team in code owner file by Thomas Bendall (@tommbendall) in #244
- Mpifort makefile by Andrew Coughtrie (@andrewcoughtrie) in #251
- Small fixes to better enable running with XIOS 3 by Ed Hone (@EdHone) in #218
- Change gitattributes diff to fortran-free-form by Andrew Coughtrie (@andrewcoughtrie) in #253
- Only build docs when docs files changed by Andrew Coughtrie (@andrewcoughtrie) in #256
- Reworked Configuration Namelist Access API by Ricky Wong (@mo-rickywong) in #175
- Add tag to avoid vernier CCE MPI bug by Benjamin Went (@MetBenjaminWent) in #261
- Adding logging to tweak_iodef by Lottie Turner (@mo-lottieturner) in #187
- Update exchange_map_collection with copyright header by Mike Hobson (@mike-hobson) in #228
- Add support for the test suite on monsoon 3 by Sam Clarke-Green (@t00sa) in #248
- Fix jedi config by Ricky Wong (@mo-rickywong) in #264
- Add nonuniform partitioning options to docs by James CS (@jcsmeto) in #267
- Fix Correction to Sampling Physics Winds by Thomas Bendall (@tommbendall) in #221
- Decompose across panels by thomasmelvin in #220
- Add link to milestones to README by Andrew Coughtrie (@andrewcoughtrie) in #268
- update trigger project workflow by James Bruten (@james-bruten-mo) in #269
- Fix averaging kernel used in stochastic physics filter by Thomas Bendall (@tommbendall) in #222
- run remote_init on shared by James Bruten (@james-bruten-mo) in #275
- Allow computation and storage of height at W0 by Thomas Bendall (@tommbendall) in #229
- Take XIOS file frequency configuration from iodef.xml where possible by Ed Hone (@EdHone) in #212
- Add GH_SCALAR_ARRAY to argument_mod by Alistair Pirrie (@mo-alistairp) in #223
- Lift adjustable psyclone command options into adjustable flag by Benjamin Went (@MetBenjaminWent) in #271
- Improve partitioner unit tests by Mike Hobson (@mike-hobson) in #254
- Additions and corrections to code owners files by Thomas Bendall (@tommbendall) in #278
- Allow different meshes to have different maximum halo depths by Thomas Bendall (@tommbendall) in #237
- Catch build system up with name change of generated configuration source by Matthew Hambley (@MatthewHambley) in #281
- Update CODEOWNERS file to have more comprehensive coverage by Andrew Coughtrie (@andrewcoughtrie) in #283
- Remove module scope access of namelist variables by coordinate/native jacobian. by Ricky Wong (@mo-rickywong) in #249
- Apps vn3.1 upgrade by Erica Neininger (@ericaneininger) in #295
- Main to Stable 2026.03.1 by Jenny Hickson (@jennyhickson) in #297
New Contributors
- Andrew Coughtrie (@andrewcoughtrie) made their first contribution in #1
- Mike Hobson (@mike-hobson) made their first contribution in #4
- Matthew Hambley (@MatthewHambley) made their first contribution in #10
- Steve Mullerworth (@stevemullerworth) made their first contribution in #9
- Ricky Wong (@mo-rickywong) made their first contribution in #27
- mo-jdendy made their first contribution in #91
- allynt made their first contribution in #101
- Oakley Brunt (@oakleybrunt) made their first contribution in #110
- James Bruten (@james-bruten-mo) made their first contribution in #161
- mo-marqh made their first contribution in #180
- Yaswant Pradhan (@yaswant) made their first contribution in #189
- Harry Shepherd (@harry-shepherd) made their first contribution in #207
- Ed Hone (@EdHone) made their first contribution in #210
- Jed Baker (@jedbakerMO) made their first contribution in #201
- Tom Hill (@tom-j-h) made their first contribution in #227
- Thomas Bendall (@tommbendall) made their first contribution in #244
- Benjamin Went (@MetBenjaminWent) made their first contribution in #261
- Lottie Turner (@mo-lottieturner) made their first contribution in #187
- Sam Clarke-Green (@t00sa) made their first contribution in #248
- James CS (@jcsmeto) made their first contribution in #267
- thomasmelvin made their first contribution in #220
- Alistair Pirrie (@mo-alistairp) made their first contribution in #223
- Erica Neininger (@ericaneininger) made their first contribution in #295
Full Changelog: https://github.com/MetOffice/lfric_core/commits/vn3.1