Skip to content

Conversation

@nusbaume
Copy link
Collaborator

@nusbaume nusbaume commented Jan 9, 2026

Tag name (required for release branches):
Originator(s): nusbaume

Description (include the issue title, and the keyword ['closes', 'fixes', 'resolves'] followed by the issue number):

Add updates and modifications needed to run the CAM4 aquaplanet configuration with prescribed SSTs (QPC4), at least with the MPAS dycore. This includes replacing the FCAM4 test with a QPC4 test.

Also updates the externals (submodules) and git-fleximod version to match cam6_4_143.

Describe any changes made to build system:

M cime_config/cam_config.py

  • Add 'aquaplanet' config option and remove unused 'ocn' option, and add nitrogen deposition namelist.

M cime_config/config_component.xml

  • Make sure the 'aquaplanet' configuration is properly set based off the compset entry.

M cime_config/config_pes.xml

  • Update file to match cam6_4_143

M src/data/generate_registry_data.py

  • Ensure that CAM-SIMA uses the correct number of CCPP constituents when allocating variables in the registry.

Describe any changes made to the namelist:

A cime_config/usermods_dirs/aquap/user_nl_cpl
M cime_config/namelist_definition_cam.xml
M src/data/namelist_definition_physconst.xml

  • Add modifications needed for CAM4 aquaplanet configurations with the MPAS dycore, and update ParamGen XML version where applicable.

M src/data/namelist_definition_ref_pres.xml
M src/dynamics/mpas/namelist_definition_mpas_dycore.xml
M src/dynamics/se/namelist_definition_se_dycore.xml
M src/dynamics/tests/namelist_definition_analy_ic.xml

  • Update ParamGen XML version.

List any changes to the defaults for the input datasets (e.g. boundary datasets): N/A

List all files eliminated and why:

D components/cism

  • The CISM submodule was removed from CAM, so removing it here as well.

List all files added and what they do:

List all existing files that have been modified, and describe the changes:
(Helpful git command: git diff --name-status development...<your_branch_name>)

M .gitmodules
M ccs_config
M cime
M components/cdeps
M components/cice
M components/cmeps
M components/mizuRoute
M share
M tools/CUPiD

  • Update externals (git submodules) to match cam6_4_143.

M src/physics/ncar_ccpp

  • Update atmospheric_physics submodule to point to branch with needed CAM4 modifications.

M .lib/git-fleximod/.github/workflows/pytest.yaml
M .lib/git-fleximod/.pre-commit-config.yaml
M .lib/git-fleximod/CODE_OF_CONDUCT.md
M .lib/git-fleximod/git_fleximod/cli.py
M .lib/git-fleximod/git_fleximod/git_fleximod.py
M .lib/git-fleximod/git_fleximod/gitinterface.py
M .lib/git-fleximod/git_fleximod/gitmodules.py
M .lib/git-fleximod/git_fleximod/metoflexi.py
M .lib/git-fleximod/git_fleximod/submodule.py
M .lib/git-fleximod/git_fleximod/utils.py
M .lib/git-fleximod/poetry.lock
M .lib/git-fleximod/pyproject.toml
M .lib/git-fleximod/tbump.toml
M .lib/git-fleximod/tests/conftest.py
M .lib/git-fleximod/tests/test_a_import.py
M .lib/git-fleximod/tests/test_b_update.py
M .lib/git-fleximod/tests/test_c_required.py
M .lib/git-fleximod/tests/test_d_complex.py
M .lib/git-fleximod/tests/test_e_complex_update.py
A .lib/git-fleximod/tests/utils_for_tests.py

  • Update git-fleximod version to match cam6_4_143.

M cime_config/testdefs/testlist_cam.xml
R100 cime_config/testdefs/testmods_dirs/cam/outfrq_se_cslam_analy_ic_cam4/shell_commands cime_config/testdefs/testmods_dirs/cam/outfrq_analy_ic_cam4/shell_commands
R100 cime_config/testdefs/testmods_dirs/cam/outfrq_se_cslam_analy_ic_cam4/user_nl_cam cime_config/testdefs/testmods_dirs/cam/outfrq_analy_ic_cam4/user_nl_cam

  • Replace FCAM4 with QPC4 test using MPAS dycore and analytic ICs.

M src/control/runtime_opts.F90

  • Add Nitrogen deposition namelist read, and remove all other commented-out subroutine calls.

M src/cpl/nuopc/atm_comp_nuopc.F90
M src/cpl/nuopc/atm_import_export.F90

  • Update NUOPC coupling layer to allow for the exchange of variables between CAM-SIMA and the coupler, at least when running in a CAM4 aquaplanet configuration.

M src/cpl/nuopc/atm_stream_ndep.F90

  • Clean-up use statements, and ensure that the subroutines build and run correctly when in a CAM4 aquaplanet configruation.

M src/dynamics/mpas/dyn_comp_impl.F90
M src/dynamics/mpas/dyn_coupling_impl.F90

  • Ensure that advected constituents are handled correctly when non-advected constituents also exist.

M src/physics/utils/cam_constituents.F9

  • Add "is_advected" check, and print out the names of all registered constituents to the atm log file.

M src/physics/utils/phys_comp.F90

  • Ensure that the IC file is only read once for non-null dycore runs.

M src/physics/utils/physics_data.F90

  • Add additional log output, and namelist controls for certain other log outputs.

M src/physics/utils/pio_reader.F90

  • Make sure output strings are trimmed.

M test/unit/python/sample_files/physics_types_complete.F90
M test/unit/python/test_cam_config.py

  • Update unit tests to properly handle code changes from this PR.

If there are new failures (compared to the test/existing-test-failures.txt file),
have them OK'd by the gatekeeper, note them here, and add them to the file.
If there are baseline differences, include the test and the reason for the
diff. What is the nature of the change? Roundoff?

derecho/intel/aux_sima:

Most tests have NLCOMP failures due to the PE layout changes and the addition of the nitrogen deposition namelist.

SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4

  • New regression test (no baselines).

derecho/gnu/aux_sima:

Most tests have NLCOMP failures due to the PE layout changes and the addition of the nitrogen deposition namelist.

SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF)

  • New regression test (no baselines).

SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL)

  • Expected failure.

If this changes climate describe any run(s) done to evaluate the new
climate in enough detail that it(they) could be reproduced:

Changes climate for CAM4 aquaplanet runs with the MPAS dycore, prescribed SSTs, and analytic ICs.

CAM-SIMA date used for the baseline comparison tests if different than latest:

Courtney Peverley and others added 30 commits June 6, 2025 11:12
git-subtree-dir: .lib/git-fleximod
git-subtree-split: 5796799a6c414bed35bb473fab0e5b6c2257a950
@nusbaume nusbaume requested a review from jimmielin January 12, 2026 16:17
Copy link
Member

@jimmielin jimmielin left a comment

Choose a reason for hiding this comment

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

Thanks @nusbaume! Everything looks great, my only major comment is on the custom physconst entries needed for the standard aquaplanet configuration (to match CAM).

.gitmodules Outdated
Comment on lines 22 to 23
url = https://github.com/nusbaume/atmospheric_physics
fxtag = 6666bd5ea45f498226ad12a2f83f4ec9a5e5b4f4
Copy link
Member

Choose a reason for hiding this comment

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

Just a reminder to update with the ESCOMP hash/tag when it is available. Thanks!

<option name="wallclock">00:10:00</option>
<option name="comment">CAM4 test with SE-CSLAM dycore</option>
<option name="wallclock">00:20:00</option>
<option name="comment">Aquaplanet CAM4 test with MPAS dycore at 120 km resolution</option>
Copy link
Member

Choose a reason for hiding this comment

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

I wonder if it is still useful to keep around a SE dycore test for CAM4 so we do not forget about it (and it would cover the SE-specific namelist options). But I am happy to just make an issue to add that test eventually, after #344 is merged. Thanks!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

The SE dycore doesn't actually work with CAM4 anymore with this PR. I am not sure what the exact reason is, but I didn't want to spend a lot of time debugging it knowing that it still needs a bunch of updates (some of which still need to be added to the open PR). I went ahead and added the statement This PR should enable the use of the SE dycore with the CAM4 physics suite. to the PR description of CAM-SIMA PR #344. Please let me know if that is enough documentation for you, or if you would like me to open an official Github issue.

(Also I should note that finishing PR #344 is next on my to-do list).

@nusbaume nusbaume requested a review from jimmielin January 21, 2026 22:01
Copy link
Member

@jimmielin jimmielin left a comment

Choose a reason for hiding this comment

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

Thanks @nusbaume!

@nusbaume nusbaume requested a review from peverwhee January 21, 2026 22:11
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.

3 participants