EAMxx: Change DPxx large scale subsidence routine to semi Lagrangian formulation (draft) #7413
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates the large-scale (LS) subsidence routine used in DPxx, replacing the centered-difference scheme with a semi-Lagrangian approach. This change addresses an issue observed in an edge case with strong LS subsidence, where the original method produced an unstable signature in the water vapor (qv) profile. A comparison plot illustrating this issue—contrasting the control simulation with the new solution implemented in this PR—can be found here: Full diagnostics
The updated code compiles and runs as expected. However, I acknowledge that it likely does not yet conform to EAMxx coding standards. In particular, I implemented a custom inline linear interpolation routine, as I was unable to get EKAT’s interpolation utility to compile properly when interfacing with it. I’m submitting this as a draft PR to request feedback and guidance on making the code PR-ready. Assistance with integrating the EKAT interpolation routine—or any other suggestions for bringing the code up to standard—would be greatly appreciated.