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

Updates for CCPP version 7 release #73

Merged
merged 17 commits into from
Sep 9, 2024

Conversation

mkavulich
Copy link
Collaborator

@mkavulich mkavulich commented Aug 4, 2024

Updates to the technical documentation in advance of the CCPP v7 release. The rendered version of this branch can be found here: https://mike-k-tech-doc.readthedocs.io/en/latest/

Note that not all items in #71 have been completed; I have checked off the items that I was able to finish.

To do:

  • Update all links to Sci Doc once published
  • Update all links to code in repository once tag is created

…rences and links to v6, de-emphasizing "operational" suites
…able (still need to update descriptions), further revise language about "operational" suites
…d to be updated to final version later)

 - Update links to SCM users guide in new RTD location
 - Update rest of references to unsupported suites
 - Update ccpp_track_variables.py instructions for new physics suite directory structure
 - Reorganize how previous releases are documented, moved into their own section and cleaned up
 - A few other misc fixes
Copy link
Collaborator

@ligiabernardet ligiabernardet left a comment

Choose a reason for hiding this comment

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

Mike, this is a terrific document. Lots of very helpful information for the user and developer community. Thank you for your updates.

@@ -107,79 +110,85 @@ undertaken by NOAA and NCAR (see more information at https://github.com/NCAR/ccp
and https://dtcenter.org/community-code/common-community-physics-package-ccpp).

The table below lists all parameterizations supported in CCPP public releases and the
`CCPP Scientific Documentation <https://dtcenter.ucar.edu/GMTB/v6.0.0/sci_doc/index.html>`_
`CCPP Scientific Documentation <https://dtcenter.ucar.edu/GMTB/v7.0.0p/sci_doc/index.html>`_
Copy link
Collaborator

Choose a reason for hiding this comment

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

After

the DTC works with EMC and its sponsors to determine :term:schemes <scheme>
and suites to be included and supported.

I suggest including the criteria for inclusion discussed at the October 2023 CCPP Physics Code Mgmt Meeting (Slide 3 here). You may also want to repeat/refer to this information in Chapter 9.

  • The scheme is sufficiently different from schemes already in the repository.
  • The scheme is desired by an organization participating in the funding of CCPP or the scheme’s development and/or testing is a funded project of a CCPP-sponsor organization.
  • The scheme can be compiled/run with some CCPP-compliant host model.
  • Ideally, the scheme is regression tested using at least one host model.
  • The scheme is documented and (ideally) published with scientific results.
  • The scheme has developer support, or at least a point-of-contact for reviewing code changes.


* The RRFS_v1beta suite is being used for development of the future `Rapid Refresh Forecast System (RRFS) <https://gsl.noaa.gov/focus-areas/unified_forecast_system/rrfs>`_, which is scheduled for implementation in late 2023. This scheme features Thompson microphysics, MYNN EDMF PBL, RRTMG radiation, MYNN SFL, CIRES uGWD, and Noah-MP land surface (it does not feature convective parameterization).
Finally, the HRRR_gf suite was developed for use with prototypes of the `Rapid Refresh Forecast System (RRFS) <https://www.emc.ncep.noaa.gov/users/emc.campara/rrfs/>`_, and is similar to the physics used in the operational High-Resolution Rapid Refresh (HRRR) model physics package except with the implementation of deep convective parameterization.
This suite features Thompson Aerosol-Aware microphysics, MYNN-EDMF PBL physics, `Grell-Freitas deep convection <https://dtcenter.ucar.edu/GMTB/v7.0.0p/sci_doc/_c_u__g_f.html>`_, RRTMG radiation, MYNN SFL, the `Global Systems Laboratory (GSL) <https://dtcenter.ucar.edu/GMTB/v7.0.0p/sci_doc/_g_f_s_drag_suite.html>`_ gravity wave drag scheme, and the `Rapid Update Cycle (RUC) Land Surface Model <https://dtcenter.ucar.edu/GMTB/v7.0.0p/sci_doc/_r_u_c_l_s_m.html>`_.
Copy link
Collaborator

Choose a reason for hiding this comment

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

GSL drag scheme is now called Orographic Drag Scheme (see https://dtcenter.ucar.edu/GMTB/v7.0.0p/sci_doc/_g_f_s_drag_suite.html)


The CCPP v6.0 release, issued in June 2022, was a major upgrade in conjunction with the `UFS SRW v2.0 release <https://ufscommunity.org/announcing-the-ufs-short-range-weather-application-srw-app-v2-0-0-release/>`_.

The CCPP v7.0 release, issued in August 2024, was a major upgrade to physics and the Single-Column Model, particularly with the inclusion of the new `UFS Replay <https://ccpp-scm.readthedocs.io/en/latest/chap_cases.html#using-ufs-output-to-create-scm-cases-ufs-replay>`_ capability for running the SCM from UFS output.
Copy link
Collaborator

Choose a reason for hiding this comment

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

We have moved away from the terminology "UFS Replay" to avoid giving the impression that SCM will produce same results as UFS. We not use the terminology "Case Generator".

@@ -113,7 +113,7 @@ Some tips for debugging problems:
* Make sure to use an uppercase suffix ``.F90`` to enable C preprocessing.
* A scheme called GFS_debug (GFS_debug.F90) may be added to the SDF where needed to print state variables and interstitial variables. If needed, edit the scheme beforehand to add new variables that need to be printed.
* Check the ``ccpp_prebuild.py`` script for success/failure and associated messages; run the prebuild script with the --debug and --verbose flags. See :numref:`Chapter %s <ConstructingSuite>` for more details
* Compile code in DEBUG mode (see section 2.3 of the `SCM User's Guide <https://github.com/NCAR/ccpp-scm/blob/main/scm/doc/TechGuide/main.pdf>`_, run through debugger if necessary (gdb, Allinea DDT, totalview, …).
* Compile code in DEBUG mode (see section 4.3 of the `SCM User's Guide <https://ccpp-scm.readthedocs.io/en/latest/chap_quick.html#compiling-scm-with-ccpp>`_, run through debugger if necessary (gdb, Allinea DDT, totalview, …).
Copy link
Collaborator

Choose a reason for hiding this comment

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

Note that this will require a change before the release, to refer to v7

@mkavulich mkavulich marked this pull request as ready for review August 15, 2024 20:56
Copy link
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.

Thanks for all these updates, very much appreciated. A few tiny changes, the rest looks great.

CCPPtechnical/source/AddingNewSchemes.rst Outdated Show resolved Hide resolved
CCPPtechnical/source/AddingNewSchemes.rst Outdated Show resolved Hide resolved
@@ -34,12 +34,12 @@ Two categories of debugging with CCPP
============================================
CCPP-compliant debugging schemes for the UFS
============================================
For the UFS models, dedicated debugging schemes have been created by the CCPP developers. These schemes can be found in ``FV3/ccpp/physics/physics/GFS_debug.F90``. Developers can use the schemes as-is or customize and add to them as needed. Also, several customization options are documented at the top of the file. These mainly deal with the amount/type of data/information output from arrays, and users can switch between them by turning on or off the corresponding preprocessor directives inside ``GFS_debug.F90``, followed by recompiling.
For the UFS models, dedicated debugging schemes have been created by the CCPP developers. These schemes can be found in `physics/Interstitials/UFS_SCM_NEPTUNE/GFS_debug.F90 <https://github.com/NCAR/ccpp-physics/blob/main/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_debug.F90>`__. Developers can use the schemes as-is or customize and add to them as needed. Also, several customization options are documented at the top of the file. These mainly deal with the amount/type of data/information output from arrays, and users can switch between them by turning on or off the corresponding preprocessor directives inside ``GFS_debug.F90``, followed by recompiling.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Not directly relevant to the documentation, but the release itself. Every time I used the debugging schemes I have to fix something because it's not been updated. Can you make sure that GFS_debug works before you tag the release code, please?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks for mentioning this, it does look like the current capability is broken, we are investigating.

Copy link
Collaborator

Choose a reason for hiding this comment

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

ufs-community/ccpp-physics#183 was merged after the deadline for physics PRs to be included in the release. Since the CCPP release is not associated with a release of the UFS, and only uses the SCM, we'd need to get this working in the SCM, but in order to do so, we'd need to bring in more CCPP physics PRs. I'm not sure that we should do this for the release, although I can work on it afterwards. Maybe for a *.1 tag/release?

Copy link
Collaborator

Choose a reason for hiding this comment

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

@mkavulich @climbfuji Following up, I've updated the SCM to work with and test GFS_Debug.F90. See NCAR/ccpp-scm#529.

CCPPtechnical/source/CCPPPreBuild.rst Outdated Show resolved Hide resolved
CCPPtechnical/source/Overview.rst Outdated Show resolved Hide resolved
CCPPtechnical/source/ParamSpecificOutput.rst Show resolved Hide resolved
mkavulich and others added 2 commits August 16, 2024 08:17
Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>
Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>
@mkavulich
Copy link
Collaborator Author

@climbfuji Did you have any more comments? If not I'll go ahead and merge this PR.

@mkavulich mkavulich merged commit 9676366 into NCAR:main Sep 9, 2024
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.

4 participants