Giter VIP home page Giter VIP logo

ccpp-doc's Introduction

ccpp-doc

This repository contains the technical documentation for the Common Community Physics Package (CCPP), maintained and developed at the Developmental Testbed Center (DTC). The latest documentation, as well as documentation for previous versions, can be viewed at the DTC website.

Notes to Developers

The documentation is generated with Sphinx, using the reStructuredText (.rst) files in the CCPPtechnical/source directory. Output can be generated in HTML or PDF formats.

Prerequisites

In order to create the technical documentation as described below, Sphinx and its extension sphinxcontrib-bibtex need to be installed on the system. If PDF output is required, TeX/LaTeX must also be installed.

Sphinx can be installed in various ways (see https://www.sphinx-doc.org/en/master/usage/installation.html), for example using Anaconda:

conda install sphinx
conda install -c conda-forge sphinxcontrib-bibtex

Comprehensive TeX/LaTeX distributions are provided for Windows, macOS and Linux. For more information see https://www.latex-project.org/get/.

Creating the technical documentation

To generate the technical documentation:

  1. Clone the repository.
git clone https://github.com/NCAR/ccpp-doc.git
  1. Build the HTML document.
cd ccpp-doc/CCPPtechnical
make html

This will generate HTML files in ./build/html. 3. Build the PDF document.

cd ccpp-doc/CCPPtechnical
make latexpdf

This will generate a PDF file ./build/latex/CCPPtechnical.pdf.

ccpp-doc's People

Contributors

bluefinweiwei avatar climbfuji avatar ligiabernardet avatar mkavulich avatar samueltrahannoaa avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ccpp-doc's Issues

Keep d*3dt instructions online

It is expected that many users still have the need for putting d*3dt output into history files, and it is suggested that instructions on the method for doing this be available online.

Documentation updates

The documentation has fallen out-of-date in some places, this issue will track the sections and topics that need updating and/or corrections:

  • Use of optional variables in physics
  • Needs documentation of standard names
    • Introduce the concept and say that each hash of ccpp-physics has a compliant version of the standard names dictionary (information kept in top-level README.md of NCAR ccpp-physics main)
  • Compilation with stub physics capability (https://github.com/NCAR/ccpp-framework/pull/436/files)
  • New debugging feature in auto-generated caps (new/changed arguments to ccpp_prebuild.py)
  • ccpp_error_flag -> ccpp_error_code update
  • --debug flag for ccpp_prebuild.py renamed to --verbose (NCAR/ccpp-framework#404)
  • Chapter 2: when describing the phases, explain how they relate to blocking of data
  • CCPP Overview: Change from Earth System Prediction Capability to Interagency Council for Advancing Meteorological Services (ICAMS; previously Earth System Prediction Capability)
  • CCPP Overview: Update the table of supported suites/schemes to match CCPP v6 public release
  • Chapter on host side coding is seriously out of date, it still refers to the dynamic CCPP implementation, doesn't know about the new timestep_init and timestep_finalize phases, ...
  • Replace CCPP-Framework and CCPP-Physics with CCPP Framework and CCPP Physics
  • Review the document to standardize the use of regular font, italics, and this font
  • Replace examples based on the unsupported GFSv15 suite with GFSv16.
  • Update "Code Management" section
  • Update links to the CCPP SciDoc and SCM User's Guide to v6, once it is published
  • Remove references to MRW, update description for v17_p8

Please edit this issue to add topics as you see fit.

CCPP TechDoc Overview needs update wrt suites

The CCPP TechDoc Overview needs to be updated to correctly reflect the suites that will be part of the CCPP v5.0 release.

  • Reference to the _no_nsst suites should be removed.
  • Suite RRFS_v1beta may change per the SRW App leads with one or more of the following
    -- Suite name change to RRFS_v1alpha
    -- Sfc layer: change from MYNN to GFS
    --LSM: change from NoahMP to Noah

In addition, documentation should list the target resolution for teh suites (RRFS - CAM scales, others MRW-S2S scales).

Need to hear back from SRW App leads before proceeding.

CCPP Tech Doc Updates for v7.0.0 release

Mandatory items

Wanted items

  • Items covered in #70

Nice-to-have items

Anyone should fill in additional items as they see fit

Documentation updates for develop

This issue will track the sections and topics that need updating when time and resources allow:

  • Review the document to standardize the use of regular font, italics, and this font
  • Expand glossary, standardize how glossary items are linked
    • Only link a term once per chapter, at that term's first mention in the chapter
    • If a term already appears in another linked/defined term (e.g. "CCPP" as a part of "CCPP Physics", do not link in that chapter
      • Exceptions can be made for sections that are likely to be linked directly, such as Troubleshooting in CCPPPreBuild.rst
    • If a term appears in the glossary but there is a chapter or section describing it in detail, provide a brief description in the glossary with a link to the relevant chapter/section for more information
  • Section 6.3 in the technical documentation describes CCPP Variables in the SCM and UFS Atmosphere Host Models (https://ccpp-techdoc.readthedocs.io/en/latest/HostSideCoding.html). There was a set of PRs for the ufs-weather-model that modified where these data structures are stored and how they are named (see ufs-community/ufs-weather-model#1130 for the top-level ufs-weather-model PR). This requires updates to section 6.3.
  • Update README file to remove "GMTB"
  • Consider adding information about tests available
  • Chapter 7, CCPP code management. Should we say something about UFS Fork?
  • Remove mentions of forum, add mentions of GitHub discussions
  • Remove unused acronyms from the list of acronyms, such as NEMSfv3gfs

Please edit this issue to add topics as you see fit.

CCPP Tech Doc Updates for UFS SRW v2.2 release

Please edit/add as needed

  • Information on the various (and preferred) ways to add connect a scheme to CCPP, including pros/cons of using a wrapper versus pre- and post- interstitials
  • Best practices and guidelines wrt ways to allocate memory so schemes can be stateless (recommended but not required) (@dustinswales pls add as needed)
    • Suggest not using the term stateless because audience may not know what it is
    • Schemes should not use dynamic memory allocation on the HEAP
    • Schemes should not contain data that clashes when multiple non-interacting instances of the scheme are being used in one executable"
    • No allocations in module memory
  • More detailed code contribution instructions
  • Add note about problem fixed in ufs-community/ccpp-physics#106
  • "Single Column Model" --> "Single-Column Model"

Consistent description of CCPP metadata hooks in Fortran code

We need to check that we use a consistent description of CCPP metadata hooks in Fortran code between the CCPP technical documentation, the scientific documentation (and ideally also in the Fortran code, although the latter doesn't matter because there are no errors).

Previously, we used

!> \section arg_table_foo_type Argument Table
!! \htmlinclude foo_type.html
!!
   type foo_type

but the CCPP framework doesn't care about Argument Table (and there is really no need or reason for it). The following works and should be used consistently across the board, most importantly in the CCPP v6 release of the scidoc and techdoc (because it will be in the CCPP paper this way):

!> \section arg_table_foo_type
!! \htmlinclude foo_type.html
!!
   type foo_type

It doesn't matter whether the Fortran code has the trailing Argument Table or not, it will simply be ignored. I just tested this again, and it works. This applies to both ccpp_prebuild.py and capgen.py, so we are good here.

Update of how (from where) to run ccpp_prebuild.py

As described in detail in ufs-community/ufs-weather-model#135, the call to ccpp_prebuild.py has been moved from the top-level ufs-weather-model repository to subdirectory FV3.

We initially wanted to push back on this change and revert it. However, given that we "taught" the new way to run ccpp_prebuild.py manually at the UFS MRW tutorial, we should instead change the documentation and keep it as is.

Necessary improvements checklist

A few items did not make it in in time for the previous release, and there are some new documentation items that need updating:

Documentation updates for minor release

This issue will track the updates needed for the UFS SRW v2.1 minor release update

  • Update links to Scientific Documentation
  • Introduction: Update/remove wording that refers to SCM, CCPP releases. In particular, for the SRW v2.1 release, restrict the information to the suites/schemes supported for SRW.

Please edit this issue to add topics as you see fit.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.