NCAR / NCAR/ccpp-framework

CCPP Framework to provide API calls for suite inspection by host

Open
#380 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement post-capgen-unification
Dominant language
Python
Stars
25
Forks
67
Avg merge
3d 8h
Merged PRs (30d)
2

Description

Description

In the UFS (and copied in the SCM) the host needs to know information about the suite being run in order to conditionally allocate variables and set some control parameters. Right now, there is the messy situation that these control variables are set via namelist, regardless of what is actually in the SDF, which necessitated adding a bunch of consistency checks in the host code (see, e.g. https://github.com/NOAA-EMC/fv3atm/pull/302) and/or in the init stage of schemes. The namelist variables (most? all?) can go away if there was a way for the host to ask the framework if scheme X is present in the SDF.

Solution

Add a function in the CCPP API like scheme_in_suite_check('scheme_X') that returns a boolean.

Alternatives (optional)

Status quo: namelist variables that must be made consistent with the SDF (currently manually) and check for errors at run-time in the code.

Related to (optional)

Related to https://github.com/NOAA-EMC/fv3atm/pull/302.

Apologies if this functionality already exists or has been planned.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the CCPP API and how the framework reads the suite and SDF, then compare that path with the proposed scheme_in_suite_check('scheme_X') entry point. Done means the host can query whether a named scheme is present and receive a boolean without relying on manually synchronized namelist variables.

Written by the indexing model from the issue text.

Assessment

Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.