-
Notifications
You must be signed in to change notification settings - Fork 64
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
Conversation
…ll and cmake include files for the static API
…ing variable against standard names
…sh out argument parsing routine more
…ree for that Suite: in other words, a list of schemes in the order that they are called, including duplicates and subcycle loops
…etadata converted properly (?)
… 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)
…ve duplicate calls
…build scripts, correct unit for ccpp_constant_one in ccpp_prebuild scripts
… into ccpp_error_code_in_prebuild
ccpp_prebuild: Update CCPP metadata for error flag variable and constant one
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 <1588651+gold2718@users.noreply.github.com>
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.
…e information from host model
…rrect path to TEST_FILE
…name_and_update_stub (main) ccpp_prebuild: fix hardcoded name of ccpp_t host variable, update CCPP stub, fix capgen unit tests
There was a problem hiding this 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).
@peverwhee Do you feel comfortable updating your various branches/PRs if I merge this? |
@climbfuji Yes, that is fine. Thanks! |
Attention
feature/capgen
is a special branch, and so ismain
.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 forccpp_prebuild.py
, and the unit tests forccpp_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
frommain
, 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 mainsystem tests: n/a
manual testing: building the stub is currently a manual test, we should add this to CI (that's a separate issue)