Skip to content

Have compsets determine CCSM_BGC setting for CO2 in ending _BGC% setting #698

Description

@ekluzek

Right now there are several xml variables that have to be coordinated across CESM in different components.

Things that have to coordinate:

  • CCSM_BGC – here in CMEPS
  • DATM_CO2_TSERIES – in DATM
  • CLM_CO2_TYPE – in CLM
  • OCN_CO2_TYPE – in MOM
  • CO2 settings: CAM_BLDNML_OPTS (-co2_cycle) and co2_cycle_rad_passive namelist -- in CAM

Right now they are treated independently and defaults are set by patterns from the compsets. But, the patterns watch different things, and are mostly tied to the compset period. The patterns checked for are also inconsistent, since they can evolve independently. But, this leads to problems in getting it setup correctly.

See for example this case in CDEPS:

ESCOMP/CDEPS#225

And I'm also realizing it's a problem for CLM as well, and CLM, DATM, and CMEPS currently aren't set consistently.

But, I think the problem goes away if we rearrange how these are set to do the following principles:

  • Have CMEPS set the CCSM_BGC setting based on the components involved and the _BGC% setting
  • Have components set their defaults based on what CCSM_BGC is set to (and the compset when necessary)
  • Have components die if their CO2 setting is inconsistent with CCSM_BGC in CMEPS
  • Have the CCSM_BGC setting, set by the _BGC% setting in the compset

Some potential steps to get there

  • Update CTSM defaults to use CCSM_BGC and _BGC%B in the compset
  • Update CTSM buildnml to check for consistency with CCSM_BGC and DATM_CO2_TSERIES
  • Do similar steps for MOM
  • Add _BGC%CONST type setting to CMEPS
  • Update CTSM compsets to require _BGC% in them (and have a checker for this)
  • Update MOM compsets
  • Update CAM defaults and CAM compsets
  • Could potentially remove some of the extraneous logic for setting CCSM_BGC in CMEPS

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions