Skip to content

Update Main branch with innovations from the Develop branch#627

Closed
dustinswales wants to merge 10 commits into
mainfrom
develop
Closed

Update Main branch with innovations from the Develop branch#627
dustinswales wants to merge 10 commits into
mainfrom
develop

Conversation

@dustinswales
Copy link
Copy Markdown
Member

@dustinswales dustinswales commented Jan 27, 2025

Update Main branch with innovations from the Develop branch

Details documented within the PRs into the develop branch.
Tested in UFS and all regression tests pass.

User interface changes?: No

Fixes: N/A

Testing:
test removed:
unit tests:
system tests:
manual testing:

climbfuji and others added 5 commits December 9, 2024 14:25
…1205

Update develop from main 2024/12/05
…ts (#617)

**This PR affects ccpp-prebuild only. It can be merged into develop (or
main), but it must come to main as soon as possible for use in
UFS/SCM.**

This PR adds workarounds for handling optional arguments the right way
(finally!) in `scripts/ccpp_prebuild.py` and `scripts/mkcap.py`. This
update is already in use in NEPTUNE and is required for @dustinswales'
work to update/revert the optional arguments in ccpp-physics in the UFS
and the SCM.

The workaround for `ccpp-prebuild` allows us to treat only those
arguments as optional that are truly optional for a CCPP scheme. In the
past, any argument that was conditionally allocated by any of the host
models had to be declared as optional, even if it was required by the
physics.

User interface changes?: Yes and No. This can be merged without making
any changes (it won't break the previous functionality where any
conditionally allocated variable had to be declared as optional in the
physics). But it will allow to declare many CCPP physics variables as
non-optional if they aren't really optional.

This finally resolves #566
(by making ccpp-prebuild behave the same as capgen, which is the correct
way to handle optional arguments).

Testing:
  test removed: none
  unit tests: all pass
  system tests: all pass
  manual testing: implemented and tested thoroughly in NEPTUNE
Added test using a DDT host object to pass information
Fix problems so that test passes
Improve formatting for readability

User interface changes?: No

Fixes: #589 

Testing:
  test removed: None
  unit tests: Pass
  system tests: Pass, added DDT host object test
  manual testing: Ran doctests, examined generated code for system tests

---------

Co-authored-by: Steve Goldhaber <stevenng@met.no>
Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>
PR to address issue with variable intents *across* groups.

**Description**
- Current behavior for variables across groups: the intent for the first
group is used as the "truth".
- If variable "foo" is intent "out" in Group A and intent "in" in Group
B, "foo" will be added to the variable dictionary used by the host as
intent "out", which then the host assumes means that the framework will
handle it
- Updated behavior for variables across groups: adjust the intent of the
existing variable to "inout" if a conflict arises across groups (or
suites)

User interface changes?: No

Testing:
  test removed: N/A
unit tests: Updated capgen & ddt test - variable intents across suites
also affected; PASS
  system tests: all PASS
  manual testing: Ran in CAM-SIMA
Fixes a bug where a ddt used in only one phase (thereby not promoted to
the group level) does not get the necessary "use" statement added at the
subroutine level in the suite cap.
@climbfuji
Copy link
Copy Markdown
Collaborator

Time to test I suppose!

Copy link
Copy Markdown
Collaborator

@gold2718 gold2718 left a comment

Choose a reason for hiding this comment

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

This looks pretty straightforward. Please fill out the PR header.

Copy link
Copy Markdown
Collaborator

@peverwhee peverwhee left a comment

Choose a reason for hiding this comment

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

CAM-SIMA tests pass!

Copy link
Copy Markdown
Collaborator

@climbfuji climbfuji left a comment

Choose a reason for hiding this comment

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

NEPTUNE tests passed. Please make sure to restore the develop branch if it gets deleted as part of the merge. Normally, we would create a branch starting from main, pulling in develop, and then create a PR (rather than going straight from develop to main) to avoid this.

@dustinswales
Copy link
Copy Markdown
Member Author

Please make sure to restore the develop branch if it gets deleted as part of the merge. Normally, we would create a branch starting from main, pulling in develop, and then create a PR (rather than going straight from develop to main) to avoid this.

@climbfuji Good point. Will do.

Copy link
Copy Markdown
Collaborator

@mkavulich mkavulich left a comment

Choose a reason for hiding this comment

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

@dustinswales Another reason that we need to open PRs as a dedicated branch is because develop is not fixed. Now that #629 has been merged the tests will need to be re-run (or the PR moved to a new branch based on the previously tested hash).

@climbfuji
Copy link
Copy Markdown
Collaborator

@dustinswales Another reason that we need to open PRs as a dedicated branch is because develop is not fixed. Now that #629 has been merged the tests will need to be re-run (or the PR moved to a new branch based on the previously tested hash).

If this PR is replaced by one with hash 3d4e455 (which is what Courtney and I tested), then we only need UFS testing/approval and no retesting for SIMA and NEPTUNE.

@dustinswales
Copy link
Copy Markdown
Member Author

Sorrt for the confusion. Closing this in favor of #638

@mkavulich
Copy link
Copy Markdown
Collaborator

For future reference, you can change the source branch of a PR by clicking the "edit" box next to the title, no need to close and re-open.

@dustinswales
Copy link
Copy Markdown
Member Author

@mkavulich Unfortunately, you can only edit the PR target, not the branch where the PR originates from.

@mkavulich
Copy link
Copy Markdown
Collaborator

Ah you're right, I thought it could be both.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants