Skip to content

Use XIOS write initial condition functionality in IO_demo - #420

Draft
Nathan Mannall (NMannall) wants to merge 7 commits into
MetOffice:mainfrom
NMannall:399-io-demo-write-initial-condition
Draft

Use XIOS write initial condition functionality in IO_demo#420
Nathan Mannall (NMannall) wants to merge 7 commits into
MetOffice:mainfrom
NMannall:399-io-demo-write-initial-condition

Conversation

@NMannall

Copy link
Copy Markdown

PR Summary

Sci/Tech Reviewer:
Code Reviewer:

This PR enables the I/O demo application to write out field data at timestep 0 (i.e. the initial condition of the simulation). The implementation requires XIOS version 3.0.4.1 or greater to use the write_initial_condition file attribute.

The main changes include:

  • A new initial_step function to write out the diffusion_field at timestep 0 before the clock is ticked.
  • A new write_initial_condition member variable for lfric_xios_file with default value true
  • When the I/O is advanced, fields are now sent at the first clock step (i.e. timestep 0)

For a given field, if write_initial_condition = false, this implementation relies on XIOS to prevent data from being sent at timestep 0 using the xios_field_is_active function.

Related to #399

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

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-required The CLA has not yet been signed by the author of this PR - added by GA label Jul 3, 2026
@github-actions github-actions Bot added cla-signed The CLA has been signed as part of this PR - added by GA and removed cla-required The CLA has not yet been signed by the author of this PR - added by GA labels Jul 3, 2026
@NMannall
Nathan Mannall (NMannall) force-pushed the 399-io-demo-write-initial-condition branch from 714051e to aa156f1 Compare July 31, 2026 12:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The CLA has been signed as part of this PR - added by GA

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants