Allow substepping of just tracers - #733
Thomas Bendall (tommbendall) wants to merge 8 commits into
Conversation
Update stable for vn3.1
Merge vn3.2 stable
James Kent (jameskent-metoffice)
left a comment
There was a problem hiding this comment.
This change allows the substepping of just tracers by extending the check_reference_field function. This will provide an extra layer of stability for certain optional configs. The code looks correct and I'm happy kgos won't change for this PR. Happy to approve
|
Ricky Wong (@mo-rickywong) this is ready for code review |
|
Your CLA signature was found on the base branch, but you appear to have modified the CONTRIBUTORS.md file in this PR. Please do not edit the CONTRIBUTORS.md file. If you have already signed the CLA, revert changes to the file and your signature will be picked up. |
|
Further investigation of the changes in this PR in operational-type runs highlighted more bugs (in existing transport code) that needed fixing in order to get tracer transport working correctly with TR-BDF2. These changes have been science reviewed separately as #814, but I have merged them into this branch since they are necessary to get the changes in this PR working correctly, and so that the changes are only code reviewed once. |
PR Summary
Sci/Tech Reviewer: James Kent (@jameskent-metoffice)
Code Reviewer: Ricky Wong (@mo-rickywong)
Some groups of tracers are transported separately from the standard dynamics prognostics, in the following situations:
The transport of these tracers involves resetting and recalculating various quantities that are shared across a transport step. However the process of resetting this hasn't previously involved all of our standard stability mechanisms, and in particular substepping has been missing.
This PR implements that substepping, which has allowed some failures in high resolution, large timestep TR-BDF2 simulations to be avoided. It also highlighted three subtle science/code issues, which this PR fixes in order to get the tracer transport correct for TR-BDF2:
ffsl_precomputationsobject is incorrect. This caused the wrong stencil extent to be calculated for substepped transport.total_ref_fluxowned by theflux_precomputationsobject is deallocated, so does not persist between separately initialised instances.At present this PR does not change KGOs in the test suite, but it will change KGOs once #714 is merged.
Code Quality Checklist
Testing
trac.log
Test Suite Results - lfric_apps - tracer_substep_more/run2
Suite Information
Task Information
✅ succeeded tasks - 1594
Performance Impact
AI Assistance and Attribution
Documentation
PSyclone Approval
Sci/Tech Review
(Please alert the code reviewer via a tag when you have approved the SR)
Code Review