Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge main into feature/capgen (merge after #493) #499

Merged
merged 91 commits into from
Sep 21, 2023
Merged

Conversation

climbfuji
Copy link
Collaborator

@climbfuji climbfuji commented Sep 11, 2023

Attention

  1. Do not use the convenient button "Update branch" below. feature/capgen is a special branch, and so is main.
  2. This PR should be merged as a merge commit, not as a squash commit.

Description

Time to merge main into feature/capgen. This PR should be merged after #493 so that the case-insensitive changes for capgen don't show up anymore (I can resolve conflicts in case there are any following the merge of #493). Other than that, it's all updates that went into ccpp_prebuild.py, the ccpp-framework stub for ccpp_prebuild.py, and the unit tests for ccpp_prebuild.py: 91 commits, 33 changed files, but all of this has been reviewed when it went into main.

User interface changes?: No

Fixes: n/a - I did not create an issue for updating feature/capgen from main, this is something we should be doing on a regular basis.

Testing:
test removed: n/a
unit tests: adds unit tests for ccpp_prebuild.py that were added for main
system tests: n/a
manual testing: building the stub is currently a manual test, we should add this to CI (that's a separate issue)

climbfuji and others added 30 commits July 19, 2021 12:02
…ll and cmake include files for the static API
…ree for that Suite:

in other words, a list of schemes in the order that they are called, including duplicates
and subcycle loops
… of schemes for a given SDF, and a dictionary that associates those schemes with their corresponding .meta files. Last step is to simply parse those .meta files for their variables!
…tadataTable objects for each scheme's .meta file; these objects can then be parsed to get all the information we need for the final step!
…subroutine name, and intent. If partial match, output list of partial matches
…le, variable name, and directory with metadata files, and outputs a list of schemes that use the given variable, along with their intent. Will convert into a more "graph-like" output later, along with other cleanup that is needed before review/testing by the group.
…ive a graphical representation of the calling tree

Also some more cleanup:
 - Change default logging level to WARNING to get rid of unnecessary log messages (debug level remains unchanged)
 - Change more strings to f strings
 - Remove more leftover debug printouts
 - Raise exception if create_metadata_filename_dict fails (esp for no .meta files found)
 - Remove check_var function (might re-introduce in the future)
…build scripts, correct unit for ccpp_constant_one in ccpp_prebuild scripts
ccpp_prebuild: Update CCPP metadata for error flag variable and constant one
climbfuji and others added 13 commits August 4, 2022 07:52
Update ccpp_prebuild to support IAP model
Limit suite names to 37 characters or less
…work with Python 3.11: global inline flags in the middle of regular expressions are deprecated since Python 3.6, and no longer supported in Python 3.11
Fix ccpp-framework errors with Python 3.11
* Fix error message for unit conversions involving unit "1"

* Add unit tests for function string_to_python_identifier()
This PR is a demo to begin adding more unit test coverage to the CCPP-framework. Since a unit test was recently added for the test_string_to_python_identifier function in common.py, I added unit tests for the remaining functions in that file.

To run these unit tests, simply navigate to the test/unit_tests directory and run the script (with Python 3.7 or higher):

$ python test_common.py 
.....
----------------------------------------------------------------------
Ran 5 tests in 0.023s

OK

Co-authored-by: goldy <[email protected]>
In order to have an ensemble of model instances in a JEDI executable, we
need for packages the model relies on to be “stateless” – meaning
that the data for an instances are not shared between instances. A more
comprehensive solution would be to implement physics so that all such
data is either passed in via arguments to the package, or allocated as
an instance of a class defining the physics.

Deferring the larger issue of revisiting CCPP requirements to cover
support for concurrent instances, this PR takes a more modest approach. It
adds a new "instance" dimension to the types already defined for GFS
physics (GFS_control, GFS_data, GFS_interstitial). And it includes some
changes that were needed to address first-time initialization latches
inside certain packages.

One of these, in Thompson MP, declears the heap allocated fields by ccpp
instance. The issue here was that only the first instance of Thompson
MP was initializing itself. The other guards against trying to allocate
data that has already been allocated (e.g. h2ointerp and ozinterp).

The extent of packages touched by the PR is only one NRL-used suite that
is a subset of all the packages in CCPP.
…name_and_update_stub

(main) ccpp_prebuild: fix hardcoded name of ccpp_t host variable, update CCPP stub, fix capgen unit tests
@climbfuji climbfuji changed the title Merge main into feature/capgen Merge main into feature/capgen (merge after #493) Sep 11, 2023
@climbfuji climbfuji marked this pull request as ready for review September 11, 2023 21:22
@climbfuji climbfuji added capgen bugs, requests, etc. that involve ccpp_capgen capgen-unification labels Sep 11, 2023
Copy link
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.

Looks good (but did not really review code prebuild code that I'm pretty sure was already reviewed for main).

@climbfuji
Copy link
Collaborator Author

@peverwhee Do you feel comfortable updating your various branches/PRs if I merge this?

@peverwhee
Copy link
Collaborator

@peverwhee Do you feel comfortable updating your various branches/PRs if I merge this?

@climbfuji Yes, that is fine. Thanks!

@climbfuji climbfuji merged commit 5f355cc into feature/capgen Sep 21, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
capgen bugs, requests, etc. that involve ccpp_capgen capgen-unification do not merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants