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

Check list of state variables for required ones #776

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

kdraeder
Copy link
Contributor

@kdraeder kdraeder commented Nov 14, 2024

Description:

Users can specify in model_nml which variables should be in the state vector.
They are currently free to leave out variables that are required for some calculations.
Filter writes no useful message about this problem when it fails, which results in a long debugging process.
This fix adds a function call after model_nml has been read and parsed to check whether required variables are in the state, and exit with a helpful message when one is missing.
The lists of required variables are different for cam-fv and cam-se, and may change in the future.

Fixes issue

#662

Types of changes

  • [x ] Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

Documentation changes needed?

  • My change requires a change to the documentation.
    • I have updated the documentation accordingly.

Tests

I ran both cam-fv and cam-se using model_nml:state_variables which contained

  1. all required variables
  2. all except for PS
  3. all except for CLDICE (cam-se only; dry mass calculation)

Checklist for merging

  • Updated changelog entry
  • Documentation updated
  • Update conf.py

Checklist for release

  • Merge into main
  • Create release from the main branch with appropriate tag
  • Delete feature-branch

Testing Datasets

  • Dataset needed for testing available upon request
  • Dataset download instructions included
  • No dataset needed

models/cam-se/model_mod.f90
  Updated subroutine that checks the state vector variable list
  to stop when one of the required is not found.
  Converted message from "looking for" to "did not find".
  Tested for "all variables", "missing PS", and "missing CLDICE".
models/cam-se/model_mod.nml
  Added state vector variable list.
models/cam-se/work/input.nml
  Added the dry mass namelist variables to model_nml
models/cam-fv/model_mod.f90
  Installed subroutine to check whether PS is in the state vector.
  It's required for assimilation of other state variables.
  Tested for "all variables" and "missing PS".
@kdraeder kdraeder added Bug Something isn't working Minor Minor functionality, non-critical data; easy fix CAM Community Atmosphere Model CAM-SE Community Atmosphere Model Spectral Element Core labels Nov 14, 2024
@kdraeder kdraeder self-assigned this Nov 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working CAM Community Atmosphere Model CAM-SE Community Atmosphere Model Spectral Element Core Minor Minor functionality, non-critical data; easy fix
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant