Skip to content

Feature/capgen ng - #1

Draft
climbfuji wants to merge 92 commits into
developmentfrom
feature/capgen-ng
Draft

climbfuji wants to merge 92 commits into
developmentfrom
feature/capgen-ng

Conversation

@climbfuji

@climbfuji climbfuji commented Jun 4, 2026 •

Copy link
Copy Markdown
Owner

WORK IN PROGRESS, IGNORE

This PR now requires NCAR/ccpp-framework#773

peverwhee and others added 30 commits June 1, 2026 09:42
….py for capgen-ng (use capgen compatibility layer)
…n.py, src/data/registry.xml, src/physics/utils/physics_grid.meta accordingly
climbfuji and others added 15 commits July 29, 2026 19:18
Tag name (required for release branches):
Originator(s):

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

This PR should enable the use of the SE dycore with the CAM4 physics
suite.

Describe any changes made to build system:

M       cime_config/cam_autogen.py
 - Prevent metadata file clobbering.

Describe any changes made to the namelist:

M       cime_config/namelist_definition_cam.xml
 - Add "scale_dry_air_mass" namelist entry.

M       src/dynamics/se/namelist_definition_se_dycore.xml
 - Update SE dycore namelist entries.

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

List all files eliminated and why:

D       src/dynamics/se/test_fvm_mapping.F90
 - Testing infrastructure no longer used/needed.

List all files added and what they do:

A cime_config/testdefs/testmods_dirs/cam/outfrq_se_cam4/shell_commands
A cime_config/testdefs/testmods_dirs/cam/outfrq_se_cam4/user_nl_cam
 - Add SE dycore-specific output to regression test


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

M       src/dynamics/se/advect_tend.F90
M       src/dynamics/se/dp_coupling.F90
M       src/dynamics/se/dp_mapping.F90
M       src/dynamics/se/dycore/comp_ctr_vol_around_gll_pts.F90
M       src/dynamics/se/dycore/control_mod.F90
M       src/dynamics/se/dycore/dimensions_mod.F90
M       src/dynamics/se/dycore/edge_mod.F90
M       src/dynamics/se/dycore/element_mod.F90
M       src/dynamics/se/dycore/fvm_consistent_se_cslam.F90
M       src/dynamics/se/dycore/fvm_mapping.F90
M       src/dynamics/se/dycore/fvm_mod.F90
M       src/dynamics/se/dycore/fvm_reconstruction_mod.F90
M       src/dynamics/se/dycore/global_norms_mod.F90
M       src/dynamics/se/dycore/hybrid_mod.F90
M       src/dynamics/se/dycore/namelist_mod.F90
M       src/dynamics/se/dycore/prim_advance_mod.F90
M       src/dynamics/se/dycore/prim_advection_mod.F90
M       src/dynamics/se/dycore/prim_driver_mod.F90
M       src/dynamics/se/dycore/prim_init.F90
M       src/dynamics/se/dycore/prim_state_mod.F90
M       src/dynamics/se/dycore/quadrature_mod.F90
M       src/dynamics/se/dycore/viscosity_mod.F90
M       src/dynamics/se/dyn_comp.F90
M       src/dynamics/se/dyn_grid.F90
M       src/dynamics/se/gravity_waves_sources.F90
M       src/dynamics/se/namelist_definition_se_dycore.xml
M       src/dynamics/se/native_mapping.F90
M       src/dynamics/se/stepon.F90
 - SE dycore updates from CAM.

R089 src/dynamics/se/dycore/time_mod.F90
src/dynamics/se/dycore/se_dyn_time_mod.F90
 - Rename SE dycore source code file to avoid name collision.

M       src/control/cam_initfiles.F90
 - Implement dry air mass scaling.

M       src/control/runtime_opts.F90
- Remove un-used constituents namelist read.

M       src/data/air_composition.F90
 - Only use advected constituents in air composition calculation.

M       src/data/registry.xml
- Modify 'dycore_calculates_geopotential_using_logarithms' variable to
be False for SE dycore, but true for FV3 dycore.

M       src/data/registry_v1_0.xsd
 - Allow for numbers in dycore string (i.e. to use "FV3" as an option).
 
M       src/dynamics/mpas/dyn_comp_impl.F90
 - Remove un-used "readtrace" logic when reading in constituent values.

M       src/dynamics/utils/dynconst.F90
 - Pass standard pressure (pstd) to dycore.

M       src/history/cam_history.F90
- Add "is_history_field_active" function, which is needed by the SE
dycore diagnostics.

M       src/history/cam_history_support.F90
 - Code clean-up.

M       src/physics/utils/cam_constituents.F90
- Remove "cam_constituents_readnl" subroutine, and add new
"const_diag_name" function to allow for the querying of a constituents
"diagnostic_name" property.

M       src/utils/cam_abortutils.F90
 - Adjust left the allocation error message string.

M       src/utils/cam_map_utils.F90
- Update map size error message to provide the actual (problematic)
values.

M       cime_config/testdefs/testlist_cam.xml
M
cime_config/testdefs/testmods_dirs/cam/outfrq_analy_ic_cam4/user_nl_cam
- Add new QPC4 SE dycore regression tests and add extra comments to
namelist file.

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:

All tests have expected NLCOMP failures due to new "scale_dry_air_mass"
namelist entry, as well as namelist changes to the SE dycore (which do
not impact FPHYStest runs).

SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4
(Overall: DIFF)
SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4
(Overall: DIFF)
 - New tests (so no currently archived baselines)

SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_intel.cam-outfrq_se_cslam
(Overall: DIFF)

SMS_Ln9.ne3pg3_ne3pg3_mg37.FCAM7.derecho_intel.cam-outfrq_se_cslam_analy_ic
(Overall: DIFF)
SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_intel.cam-outfrq_se_cslam
(Overall: DIFF)
SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam
(Overall: DIFF)
SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_intel.cam-outfrq_se_cslam
(Overall: DIFF)
 - Answer differences due to changes in SE dycore.


SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape
(Overall: DIFF)
 - Known failure

derecho/gnu/aux_sima:

All tests have expected NLCOMP failures due to new "scale_dry_air_mass"
namelist entry, as well as namelist changes to the SE dycore (which do
not impact FPHYStest runs).

SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4
(Overall: DIFF)
SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4
(Overall: DIFF)
 - New tests (so no currently archived baselines)

SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam
(Overall: DIFF)

SMS_Ln9.ne3pg3_ne3pg3_mg37.FCAM7.derecho_gnu.cam-outfrq_se_cslam_analy_ic
(Overall: DIFF)
SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_gnu.cam-outfrq_se_cslam
(Overall: DIFF)
SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_gnu.cam-outfrq_se_cslam
(Overall: DIFF)
SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_gnu.cam-outfrq_se_cslam
(Overall: DIFF)
 - Answer differences due to changes in SE dycore.

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

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

---------

Co-authored-by: PeterHjortLauritzen <peter.hjort.lauritzen@gmail.com>
Co-authored-by: Haipeng Lin <hplin@ucar.edu>
Co-authored-by: Jesse Nusbaumer <nusbaume@ucar.edu>
Co-authored-by: Haipeng Lin <hplin+github@ucar.edu>
Tag name (required for release branches): sima0_17_001
Originator(s): @jimmielin 
AI tools used (if applicable; please also add the "AI-generated code"
label to the PR):
  What: claude-fable:5
  How: wrote the companion PR

Description (include the issue title, and the keyword ['closes',
'fixes', 'resolves'] followed by the issue number):
- Companion PR to ESCOMP/atmospheric_physics#427
- Adds standard name of `co2diag` previously `co2diag_tbd`

Describe any changes made to build system:

Describe any changes made to the namelist:

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

List all files eliminated and why:

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       src/data/registry.xml
add standard name for co2diag

M       src/data/generate_registry_data.py
fix bitrot in parsing when calling gen registry data manually

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:
```
  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
  SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 NLCOMP
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 NLCOMP
  - new namelist surface_coupling_nl


  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP
  - pre-existing failure

```

derecho/gnu/aux_sima:
```
  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
  SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 NLCOMP
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 NLCOMP
Found extra namelist: surface_coupling_nl
```

derecho/nvhpc/aux_sima (test is run via Github workflow. Only run the
test manually if we need to save new baselines):
```
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_nvhpc.cam-outfrq_rrtmgp_derecho_gpu (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_nvhpc.cam-outfrq_rrtmgp_derecho_gpu NLCOMP
  - extra NL variable: scale_dry_air_mass (appears to be intro'd in sima0_17_000 but nvhpc baseline missing for that tag.)
```

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

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

---------

Co-authored-by: Haipeng Lin <hplin+github@ucar.edu>
Co-authored-by: Haipeng Lin <hplin@ucar.edu>
…ry. (ESCOMP#527)

Tag name (required for release branches): sima0_17_002
Originator(s): @jimmielin 
AI tools used (if applicable; please also add the "AI-generated code"
label to the PR):
  What: claude-fable:5
  How: discovered that this fix is necessary.

Description (include the issue title, and the keyword ['closes',
'fixes', 'resolves'] followed by the issue number):
- Add sw/lw radiative net fluxes to the registry to be persisted across
timesteps (even across non-radiation timesteps), to align behavior with
CAM
- Companion atmos_phys PR
ESCOMP/atmospheric_physics#426

Describe any changes made to build system:

Describe any changes made to the namelist:

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

List all files eliminated and why:

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       src/data/registry.xml
  adds fns, fcns, fnl, fcnl to registry
 
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:
```
  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  - atmImp_Faxa_lwdn, atmImp_Faxa_swndf, atmImp_Faxa_swndr, atmImp_Faxa_swnet, atmImp_Faxa_swvdf, atmImp_Faxa_swvdr now threaded through the coupler. No answer chg in model state.

  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP
  - pre-existing failure
```

derecho/gnu/aux_sima:
```
  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  - atmImp_Faxa_lwdn, atmImp_Faxa_swndf, atmImp_Faxa_swndr, atmImp_Faxa_swnet, atmImp_Faxa_swvdf, atmImp_Faxa_swvdr now threaded through the coupler. No answer chg in model state.
```

derecho/nvhpc/aux_sima (test is run via Github workflow. Only run the
test manually if we need to save new baselines): All PASS

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

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

---------

Co-authored-by: Haipeng Lin <hplin+github@ucar.edu>
Co-authored-by: Haipeng Lin <hplin@ucar.edu>
…et. (ESCOMP#529)

Tag name (required for release branches):
Originator(s): @jimmielin 
AI tools used (if applicable; please also add the "AI-generated code"
label to the PR):
  What: claude-fable:5
  How: wrote the initial version of the scheme.

Description (include the issue title, and the keyword ['closes',
'fixes', 'resolves'] followed by the issue number):
- Add topography_statics_read to do a decomposed read (so it cannot be a
CCPP scheme) of SGH, SGH30, LANDM_COSLAT
- Closes ESCOMP#534 

Describe any changes made to build system:

Describe any changes made to the namelist:

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

List all files eliminated and why:

List all files added and what they do:
```
A       src/physics/utils/topography_statics_read.F90
  - new host-side read module
```

List all existing files that have been modified, and describe the
changes:
(Helpful git command: `git diff --name-status
development...<your_branch_name>`)
```
M       src/control/cam_comp.F90
  - call new topography_statics_read

M       src/data/registry.xml
  - move the topo fields to the top of the file away from "temporary initializations"
    although their standard names might still need some work (SGH, SGH30)

M       src/control/cam_initfiles.F90
  - closes ESCOMP#534 - check if topo file is not specified for aquap
```

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:
```
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP
  - pre-existing failure
```

derecho/gnu/aux_sima: All PASS

derecho/nvhpc/aux_sima (test is run via Github workflow. Only run the
test manually if we need to save new baselines): All PASS

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

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

---------

Co-authored-by: Haipeng Lin <hplin+github@ucar.edu>
Co-authored-by: Haipeng Lin <hplin@ucar.edu>
Co-authored-by: Courtney Peverley <courtneyp@ucar.edu>
…ESCOMP#532)

Tag name (required for release branches): sima0_18_000
Originator(s): @jimmielin 
AI tools used (if applicable; please also add the "AI-generated code"
label to the PR):
  What: claude-fable:5, claude-opus:4.8
  How: drafted the fixes for reading runtime constituents in the dycore

Description (include the issue title, and the keyword ['closes',
'fixes', 'resolves'] followed by the issue number):
- Read dynamic (runtime) constituents IC values in dycore
- Do not clobber dynamics read constituents in physics IC read
- Do not clobber physics init constituents with qmin in physics IC read
(fixes ESCOMP#525)

Describe any changes made to build system:

Describe any changes made to the namelist:

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

List all files eliminated and why:

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       src/dynamics/se/dp_coupling.F90
  - fixes for omp

M       src/dynamics/se/dyn_comp.F90
  - mark constituents read by dyn as initialized
  - new way to check for IC input files for constituent IC

M       src/dynamics/mpas/dyn_comp_impl.F90
  - mark constituents read by dyn as initialized

M       src/physics/utils/cam_constituents.F90
  - implement const_mark_as_initialized, const_is_initialized

M       src/physics/utils/phys_comp.F90
  - mark constituents written by physics init as initialized

M       src/data/write_init_files.py
  - Skip constituents from physics grid initial condition read for constituents already set

M       test/unit/python/sample_files/write_init_files/physics_inputs_4D.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_bvd.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_cnst.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_constituent_dim.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_ddt.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_ddt2.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_ddt_array.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_host_var.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_initial_value.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_mf.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_no_horiz.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_noreq.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_param.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_protect.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_scalar.F90
M       test/unit/python/sample_files/write_init_files/physics_inputs_simple.F90
  - update tests
```

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:
```
  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  - baseline changes due to prescribed_radiative_gas_concentrations & other constituents no longer being clobbered to zero

  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP
  - pre-existing failure

```

derecho/gnu/aux_sima:
```
  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  - baseline changes due to prescribed_radiative_gas_concentrations & other constituents no longer being clobbered to zero

```

derecho/nvhpc/aux_sima (test is run via Github workflow. Only run the
test manually if we need to save new baselines): All PASS

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

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

---------

Co-authored-by: Haipeng Lin <hplin+github@ucar.edu>
Co-authored-by: Haipeng Lin <hplin@ucar.edu>
Co-authored-by: Jesse Nusbaumer <nusbaume@ucar.edu>
Co-authored-by: Kuan-Chih Wang <towerman@livemail.tw>
### Tag name

None (Bit-for-bit)

### Originator(s)

kuanchihwang

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

This PR introduces source code linting via Fortitude to the CAM-SIMA
Fortran CI pipeline. The Fortitude configuration is located at
`test/fortitude.toml`.

Running `fortitude --config-file ./test/fortitude.toml check ./src`
currently generates 40000+ linter errors in the CAM-SIMA codebase. While
many of them are stylistic, others reveal real code quality concerns
related to correctness, modernization, and portability.

To avoid bombarding ourselves and contributors with the sheer number of
existing linter errors, this PR takes a more incremental approach: Only
the Fortran files that are changed in a PR are checked and reported.
This allows us to gradually improve the CAM-SIMA codebase over time.

As a demonstration, this PR fixes the following linter errors in the
`cam_logfile` module:

* 22:4 MOD051 `save` statement is superfluous at the module level
* 53:1 S233 Keyword `CONTAINS` should be `contains`
* 97:10 C043 File opened without the `action` specifier
* 100:41 C183 `iostat` used without `iomsg`
* 128:35 S241 String uses double quotes but single quotes are preferred
* 134:7 S271 `use` statements are not sorted
* 169:7 S271 `use` statements are not sorted
* 170:7 C122 `use` for intrinsic module missing the `intrinsic` modifier

The full linter output can be inspected in the CI logs.

### Describe any changes made to the build system

None

### Describe any changes made to the namelist

None

### List any changes to the defaults for the input datasets (e.g.,
initial, boundary datasets)

None

### List all files eliminated and why

None

### List all files added and what they do

```
A       test/fortitude.toml
    * Introduce Fortitude linting to CAM-SIMA Fortran CI
```

### List all existing files that have been modified, and describe the
changes

```
M       .github/workflows/cam_sima_fortran_ci.yml
    * Update GHA versions again
    * Remove unnecessary escapes for forward slashes
    * Introduce Fortitude linting to CAM-SIMA Fortran CI
M       .github/workflows/mpas_dynamical_core_ci.yml
    * Update GHA versions again
    * Pin Fortitude to 0.9.*
    * Should update `pip` itself before any other package operations
    * Update Fortitude configuration
    * Remove unnecessary escapes for forward slashes
    * Save matched paths for use with subsequent CI jobs
M       src/control/cam_logfile.F90
    * Do not use magic number for standard output
    * Fix linter error: MOD051 `save` statement is superfluous at the module level
    * Fix linter error: S233 Keyword `CONTAINS` should be `contains`
    * Fix linter error: C043 File opened without the `action` specifier
    * Fix linter error: C183 `iostat` used without `iomsg`
    * Fix linter error: S241 String uses double quotes but single quotes are preferred
    * Fix linter error: S271 `use` statements are not sorted
    * Fix linter error: C122 `use` for intrinsic module missing the `intrinsic` modifier
M       src/dynamics/mpas/assets/fortitude_config.toml
    * Update Fortitude configuration
```

### Regression tests

* derecho/aux_sima_gnu

Pass.

* derecho/aux_sima_intel

```
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP
```

Known failing test.

* derecho/aux_sima_nvhpc

Pass.

---------

Co-authored-by: Kuan-Chih Wang <kuanchihw@ucar.edu>
Tag name (required for release branches): sima0_19_000
Originator(s): @jimmielin 
AI tools used (if applicable; please also add the "AI-generated code"
label to the PR):
  What:
  How:

Description (include the issue title, and the keyword ['closes',
'fixes', 'resolves'] followed by the issue number):
- Update externals to match `cesm3_0_beta09`. This is the CAM-SIMA
equivalent of ESCOMP/CAM#1637

Describe any changes made to build system:

Describe any changes made to the namelist:

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

List all files eliminated and why:

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
  - update externals:

M       ccs_config
M       cime
M       components/cdeps
M       components/cice
M       components/clm
M       components/cmeps
M       components/mizuRoute
M       components/mosart
M       libraries/FMS
M       libraries/parallelio
M       share
M       tools/CUPiD
  - git submodule ref updates.

M       src/utils/gmean_mod.F90
  - bug fix for undefined variable
```

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:
```
  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
  SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 NLCOMP
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho NLCOMP
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_intel.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FCAM7.derecho_intel.cam-outfrq_se_cslam_analy_ic (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FCAM7.derecho_intel.cam-outfrq_se_cslam_analy_ic NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_intel.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_intel.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 NLCOMP
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  - answer changes due to external update

  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP
  - pre-existing failure
```

derecho/gnu/aux_sima:
```
  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
  SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_beljaars_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_beljaars_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_dme_adjust_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_dme_adjust_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam4_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam4_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam7_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam7_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hack_shallow_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hack_shallow_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hb_vdiff_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hb_vdiff_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_held_suarez_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_held_suarez_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_kessler_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_kessler_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rk_stratiform_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rk_stratiform_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rrtmgp_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rrtmgp_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_after_coupler_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_after_coupler_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_before_coupler_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_before_coupler_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_trcdata_bam_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_trcdata_bam_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_uw_vdiff_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_uw_vdiff_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_zm_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_zm_derecho NLCOMP
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho NLCOMP
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FCAM7.derecho_gnu.cam-outfrq_se_cslam_analy_ic (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FCAM7.derecho_gnu.cam-outfrq_se_cslam_analy_ic NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 NLCOMP
  - nuopc.runconfig changes due to external update.
```

derecho/nvhpc/aux_sima (test is run via Github workflow. Only run the
test manually if we need to save new baselines):
```
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_nvhpc.cam-outfrq_rrtmgp_derecho_gpu (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_nvhpc.cam-outfrq_rrtmgp_derecho_gpu NLCOMP
  - nuopc.runconfig change due to external update 
```

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

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

---------

Co-authored-by: Haipeng Lin <hplin@ucar.edu>
…l MAM; radiative_aerosol and physical props infra; optics core code; pfUnit tests (ESCOMP#504)

Tag name (required for release branches): sima0_20_000
Originator(s): @jimmielin coauthored with `claude-opus-4.6`,
`claude-fable-5`

AI disclosure: pfUnit tests written by Claude; I made some fixes later.

Description (include the issue title, and the keyword ['closes',
'fixes', 'resolves'] followed by the issue number):
- Port the aerosol optics infrastructure from CAM to CAM-SIMA. This
includes:
- the abstract aerosol interface (`aerosol_properties`, `aerosol_state`,
`aerosol_optics`);
- the radiative aerosol module (`radiative_aerosol`,
`radiative_aerosol_definitions`), the CAM-SIMA equivalent of former
`rad_constituents`;
  - aerosol instances management (`aerosol_instances_mod`);
- aerosol physical properties reader (`aerosol_physical_properties`,
formerly `phys_prop`)
- all concrete optics implementations (insoluble, hygroscopic, hygro,
hygrocoreshell, hygrowghtpct, refractive, volcrad).
- The bulk aerosol model (BAM) concrete types
(`bulk_aerosol_properties`, `bulk_aerosol_state`) are fully implemented;
- The modal aerosol model (MAM) concrete types
(`modal_aerosol_properties`, `modal_aerosol_state`) is mostly
implemented, need to update with eventual CCPPized aerosol water uptake
and size calculation schemes, all else is in place;
  - CARMA is a stub (but their optics implementations are in.)
- Copy of `aerosol_optics_core` which dispatches optics object creation
based on opticstype parameter verbatim from CAM;
- Implement `aerosol_mmr_host` which retrieves aerosol mixing ratios
from CCPP constituents (replacing CAM state and pbuf)
- Copy of `table_interp_mod` from CAM for table interpolation.
- "Front-port" @fvitt's fixes to bulk aerosol optics in
https://github.com/ESCOMP/CAM/pulls/1500
- "Front-port" @fvitt's changes in cam6_4_169 (CARMA with RRTMGP) for
aerosol properties/state modules
- Rename FCAM7 compset to F2000_C7 with CLM+DOCN%DOM surface components
(FHIST_C5 pattern).
- Add microp_aero BAM snapshot test (`outfrq_microp_aero_bam_derecho`)
to aux_sima test list.
- Fix `write_init_files.py` to skip whole-DDT host variables (cannot be
read from IC files).
- Fix `generate_registry_data.py` to handle `allocatable, target`
variables correctly.
- Fix `tracer_data.F90` to guard against missing `units` attribute in
input files.
- Rename `clim_modal_aero_top_lev` standard name to
`vertical_layer_index_of_aerosol_model_top`.
- Add `wv_longname` parameter in `runtime_obj.F90` for water vapor
constituent metadata.
- **pfUnit tests for radiative_aerosol parsing; abstract aerosol
interface (incl. BAM and MAM concrete implementations); aerosol
instances lifecycle authored by `claude-fable-5`; aerosol optics was
authored by `claude-opus-4.6`:**
Because there were many modules to test (while
`aerosol_physical_properties.F90`, formerly `phys_prop` uses PIO input),
Claude made the following test decisions for unit testing:
> the tests mock at the `radiative_aerosol` facade boundary — the single
point where file I/O enters the aerosol module hierarchy. A configurable
mock_radiative_aerosol
> module lets tests populate optics tables and aerosol metadata
in-memory, while the real bulk_aerosol_properties, bulk_aerosol_state,
and insoluble_aerosol_optics objects
  > are exercised with full OOP dispatch.
  >
> (the test cases are) organized in five tiers by dependency complexity.
> Tier 1 tests the pure interpolation functions in table_interp_mod
(weights calculation, 1D/2D/4D interpolation, clamping behavior).
> Tier 2 tests the namelist parsing logic in
radiative_aerosol_definitions — both parse_rad_specifier (bulk aerosol,
gas, mode/bin specifiers, edge cases) and list_populate (populating
aerosol/mode/gas lists from parsed data).
> Tier 3 tests the concrete BAM types bulk_aerosol_properties and
bulk_aerosol_state, verifying construction, property queries (density,
hygroscopicity, species type mapping), MMR retrieval, and derived
quantities like dry volume; and the concrete MAM types
modal_aerosol_properties (8 tests) and modal_aerosol_state (6 tests)
using a 2-mode config (accum + coarse).
> Tier 4 tests insoluble_aerosol_optics end-to-end, verifying SW optical
properties (extinction, single-scatter albedo, asymmetry, absorption)
and LW absorption against analytically expected values.
> Tier 5 tests the aerosol_instances_mod lifecycle (5 tests): init,
get_props/get_state accessors, is_active queries, final/re-init.

Describe any changes made to build system:
- Added src/aerosol to source include paths in cime_config/buildlib.
- Added test/unit/fortran/src/aerosol pfUnit test subdirectory with
CMakeLists.txt.

Describe any changes made to the namelist:
- Add radiatively active aerosol namelist group (`rad_aer_nl`) with
entries for mode_defs, bin_defs, `rad_aer_climate` (formerly
`rad_climate`), and rad_aer_diag_1 through rad_aer_diag_10.

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

List all files eliminated and why: N/A

List all files added and what they do:
```
A       src/aerosol/aerosol_instances_mod.F90
  - factory/registry managing persistent aerosol properties and state objects across aerosol models and radiation lists.

A       src/aerosol/aerosol_mmr_host.F90
  - host-binding module for aerosol MMR retrieval (CAM-SIMA flavor); retrieves mixing ratios from CCPP constituents array, replacing CAM pbuf/state%q indexing.

A       src/aerosol/aerosol_optics_core.F90
  - dispatcher that creates concrete optics objects based on opticstype parameter.

A       src/aerosol/aerosol_optics_mod.F90
  - abstract base class defining the aerosol optics interface (sw_props, lw_props methods).

A       src/aerosol/aerosol_physical_properties.F90
  - utility module reading aerosol optical property data from files (phys_prop); caches complex refractive indices.

A       src/aerosol/aerosol_properties_mod.F90
  - abstract base class defining the aerosol configuration interface (bins, species, density, optics parameters).

A       src/aerosol/aerosol_spec_utils.F90
  - utility module for aerosol species type matching (spec_type_in_list helper).

A       src/aerosol/aerosol_state_mod.F90
  - abstract base class for time-varying aerosol state (mixing ratios, number concentrations).

A       src/aerosol/bulk_aerosol_properties_mod.F90
  - concrete aerosol_properties implementation for bulk aerosol model (BAM).

A       src/aerosol/bulk_aerosol_state_mod.F90
  - concrete aerosol_state implementation for BAM; stores CCPP constituents pointers.

A       src/aerosol/carma_aerosol_properties_mod.F90
  - stub aerosol_properties for CARMA sectional aerosol (not yet implemented).

A       src/aerosol/carma_aerosol_state_mod.F90
  - stub aerosol_state for CARMA sectional aerosol (not yet implemented).

A       src/aerosol/hygro_aerosol_optics_mod.F90
  - concrete optics: SW-hygroscopic / LW-insoluble with RH-dependent tables.

A       src/aerosol/hygrocoreshell_aerosol_optics_mod.F90
  - concrete optics: core-shell morphology with core fraction, BC/dust fraction, kappa, and RH dimensions.

A       src/aerosol/hygroscopic_aerosol_optics_mod.F90
  - concrete optics: SW/LW hygroscopic with RH-dependent tables.

A       src/aerosol/hygrowghtpct_aerosol_optics_mod.F90
  - concrete optics: weight-percent-based hygroscopic (H2SO4/H2O solution).

A       src/aerosol/insoluble_aerosol_optics_mod.F90
  - concrete optics for non-hygroscopic aerosol (constant ext/SSA/asymmetry per band).

A       src/aerosol/modal_aerosol_properties_mod.F90
  - concrete aerosol_properties implementation for modal aerosol model (MAM).

A       src/aerosol/modal_aerosol_state_mod.F90
  - concrete aerosol_state implementation for MAM; stores CCPP constituents pointers.
  - water_uptake not fully implemented for diagnostics lists due to missing CCPPized water uptake scheme

A       src/aerosol/radiative_aerosol.F90
  - facade module providing rad_aer_* query routines; bridges constituents to optics.

A       src/aerosol/radiative_aerosol_definitions.F90
  - core definitions: mode/species/morphology types, parsing routines for aerosol namelist configuration.

A       src/aerosol/radiative_aerosol_definitions.meta
  - CCPP metadata for radiative_aerosol_definitions module variables.

A       src/aerosol/refractive_aerosol_optics_mod.F90
  - concrete optics: table-lookup using wet radius and complex refractive index with Chebyshev polynomials.

A       src/aerosol/volcrad_aerosol_optics_mod.F90
  - concrete optics: geometric mean radius parameterization for volcanic stratospheric aerosols.

A       src/utils/table_interp_mod.F90
  - copied from CAM
  - pure Fortran module for 1D/2D/4D table interpolation with weight calculation and edge clamping.

A       cime_config/testdefs/testmods_dirs/cam/outfrq_microp_aero_bam_derecho/shell_commands
A       cime_config/testdefs/testmods_dirs/cam/outfrq_microp_aero_bam_derecho/user_nl_cam
  - testmods for microp_aero BAM snapshot test on Derecho (CAM7 LT nochem snapshot with BAM aerosols).

A       test/unit/fortran/src/aerosol/CMakeLists.txt
  - CMake build for aerosol pfUnit test suite.

A       test/unit/fortran/src/aerosol/mock_radiative_aerosol.F90
  - configurable in-memory aerosol data facade for unit testing (replaces file I/O).

A       test/unit/fortran/src/aerosol/modal_test_helpers.F90
  - helper module to set up/tear down the 2-mode mock MAM config for modal aerosol tests.

A       test/unit/fortran/src/aerosol/mock_aerosol_mmr_host.F90
A       test/unit/fortran/src/aerosol/mock_cam_abortutils.F90
A       test/unit/fortran/src/aerosol/mock_cam_constituents.F90
A       test/unit/fortran/src/aerosol/mock_cam_logfile.F90
A       test/unit/fortran/src/aerosol/mock_phys_prop.F90
A       test/unit/fortran/src/aerosol/mock_physconst.F90
A       test/unit/fortran/src/aerosol/mock_physics_grid.F90
A       test/unit/fortran/src/aerosol/mock_physics_types.F90
A       test/unit/fortran/src/aerosol/mock_shr_infnan_mod.F90
A       test/unit/fortran/src/aerosol/mock_shr_spfn_mod.F90
A       test/unit/fortran/src/aerosol/mock_shr_string_mod.F90
A       test/unit/fortran/src/aerosol/mock_spmd_utils.F90
A       test/unit/fortran/src/aerosol/mock_vert_coord.F90
A       test/unit/fortran/src/aerosol/shr_kind_mod.F90
  - mock/stub modules for unit testing without CESM infrastructure.

A       test/unit/fortran/src/aerosol/test_table_interp.pf
  - Tier 1: 9 tests for pure interpolation functions (weights, 1D/2D/4D, clamping).

A       test/unit/fortran/src/aerosol/test_parse_rad_specifier.pf
  - Tier 2: 7 tests for rad_specifier parsing (bulk/gas/mode/bin, whitespace, edge cases).

A       test/unit/fortran/src/aerosol/test_list_populate.pf
  - Tier 2: 3 tests for aerosol/mode/gas list population from parsed data.

A       test/unit/fortran/src/aerosol/test_bulk_aerosol_properties.pf
  - Tier 3: 6 tests for BAM properties (constructor, density, hygro, species type, model_is).

A       test/unit/fortran/src/aerosol/test_bulk_aerosol_state.pf
  - Tier 3: 4 tests for BAM state (constructor, MMR retrieval, dry volume, total bin MMR).

A       test/unit/fortran/src/aerosol/test_modal_aerosol_properties.pf
  - Tier 3: 8 tests for MAM properties using 2-mode config (accum + coarse).

A       test/unit/fortran/src/aerosol/test_modal_aerosol_state.pf
  - Tier 3: 6 tests for MAM state (MMR retrieval, number concentration, dry volume, water uptake).

A       test/unit/fortran/src/aerosol/test_aerosol_instances.pf
  - Tier 5: 5 tests for aerosol_instances_mod lifecycle (init, accessors, is_active, final/re-init).

A       test/unit/fortran/src/aerosol/test_insoluble_aerosol_optics.pf
  - Tier 4: 2 end-to-end tests for SW (ext/SSA/asymmetry) and LW absorption optics.

A       test/unit/python/sample_files/write_init_files/ddt_arg_host_mod.F90
A       test/unit/python/sample_files/write_init_files/ddt_arg_host_mod.meta
A       test/unit/python/sample_files/write_init_files/ddt_arg_scheme.F90
A       test/unit/python/sample_files/write_init_files/ddt_arg_scheme.meta
A       test/unit/python/sample_files/write_init_files/phys_vars_init_check_ddt_arg.F90
A       test/unit/python/sample_files/write_init_files/physics_inputs_ddt_arg.F90
A       test/unit/python/sample_files/write_init_files/suite_ddt_arg.xml
  - test fixtures for write_init_files DDT argument support (host module, scheme, expected outputs, suite XML).
```

List all existing files that have been modified, and describe the
changes:
(Helpful git command: `git diff --name-status
development...<your_branch_name>`)
```
M       cime_config/buildlib
  - add src/aerosol to source include paths.

M       cime_config/config_compsets.xml
  - rename FCAM7 compset to F2000_C7 with CLM60+CICE+DOCN%DOM surface components.

M       cime_config/namelist_definition_cam.xml
  - add rad_aer_nl namelist group (mode_defs, bin_defs, rad_aer_climate, rad_aer_diag_1..10).

M       cime_config/testdefs/testlist_cam.xml
  - add microp_aero BAM snapshot test (outfrq_microp_aero_bam_derecho) to aux_sima.
  - update FCAM7 -> F2000_C7 compset reference.

M       cime_config/testdefs/testmods_dirs/cam/outfrq_se_cslam_analy_ic/user_nl_cam
  - update comment: FCAM7 -> CAM7.

M       src/control/cam_comp.F90
  - add rad_aer_init_all() subroutine called after stepon_init to initialize
    aerosol optics infrastructure (rad_aer_init, aerosol_instances_init,
    wire CCPP constituents, mark radiative_aerosol_definitions vars as initialized).

M       src/control/runtime_obj.F90
  - add wv_longname parameter for water vapor constituent long name metadata.

M       src/control/runtime_opts.F90
  - add call to rad_aer_readnl() for radiative aerosol namelist reading.

M       src/data/generate_registry_data.py
  - fix allocatable check to handle "allocatable, target" variables correctly.

M       src/data/ref_pres.F90
  - update clim_modal_aero_top_lev standard name to vertical_layer_index_of_aerosol_model_top.

M       src/data/ref_pres.meta
  - update clim_modal_aero_top_lev standard name to vertical_layer_index_of_aerosol_model_top.

M       src/data/registry.xml
  - add metadata_file reference to radiative_aerosol_definitions.meta.

M       src/data/registry_v1_0.xsd
  - add "target, allocatable" as valid allocatable pattern.

M       src/data/write_init_files.py
  - skip whole-DDT host variables that cannot be read from IC files (fixes build error
    when a scheme takes a DDT argument).

M       src/physics/utils/solar_parms_data.F90
  - change getfil() to cam_get_file() just because I saw it,
    this module has nothing to do with all the other changes.

M       src/utils/tracer_data.F90
  - guard against missing units attribute in input files (initialize data_units,
    handle PIO_NOERR on pio_get_att).

M       test/unit/fortran/CMakeLists.txt
  - add aerosol test subdirectory.

M       test/unit/python/sample_files/ref_pres.meta
  - update clim_modal_aero_top_lev standard name to vertical_layer_index_of_aerosol_model_top.

M       test/unit/python/sample_files/ref_pres_SourceMods.meta
  - update clim_modal_aero_top_lev standard name to vertical_layer_index_of_aerosol_model_top.

M       test/unit/python/test_write_init_files.py
  - add test_ddt_scheme_arg_write_init test case for the DDT argument skip fix.
```

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?

* QPC4 tests use new ozone ape file so it is radiation changing.
* F2000_C7 test fails at SETUP because it needs the PUMAS Round 3
registry changes in ESCOMP#512 - I did not annotate this as a expected failure
because it will be resolved in the next tag immediately after this one.

derecho/intel/aux_sima:
```
  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 NLCOMP
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 NLCOMP
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_intel.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  - QPC4 tests use new ozone ape file so it is radiation changing.

  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho NLCOMP
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_intel.cam-outfrq_se_cslam_analy_ic (Overall: FAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_intel.cam-outfrq_se_cslam_analy_ic SETUP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_intel.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_intel.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_intel.cam-outfrq_se_cslam NLCOMP
  - Found extra namelist: rad_aer_nl

  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP
  - pre-existing failure requiring CIME update.
```

derecho/gnu/aux_sima:
```
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_microp_aero_bam_derecho (Overall: DIFF) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_microp_aero_bam_derecho NLCOMP
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_microp_aero_bam_derecho BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: ERROR BFAIL baseline directory '/glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu/SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_microp_aero_bam_derecho' does not exist
  - new test

  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 NLCOMP
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 NLCOMP
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt232.QPC4.derecho_gnu.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  - QPC4 tests use new ozone ape file so it is radiation changing.

  SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_gnu.cam-outfrq_se_cslam_analy_ic (Overall: FAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_gnu.cam-outfrq_se_cslam_analy_ic SETUP
  - fails at case.build due to metadata because it needs the PUMAS Round 3 registry changes in ESCOMP#512 - I did not annotate this as a expected failure because it will be resolved in the next tag immediately after this one.

  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_beljaars_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_beljaars_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_dme_adjust_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_dme_adjust_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam4_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam4_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam7_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam7_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hack_shallow_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hack_shallow_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hb_vdiff_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hb_vdiff_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_held_suarez_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_held_suarez_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_kessler_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_kessler_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rk_stratiform_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rk_stratiform_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rrtmgp_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rrtmgp_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_after_coupler_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_after_coupler_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_before_coupler_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_before_coupler_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_trcdata_bam_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_trcdata_bam_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_uw_vdiff_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_uw_vdiff_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_zm_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_zm_derecho NLCOMP
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho NLCOMP
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  - Found extra namelist: rad_aer_nl
```

derecho/nvhpc/aux_sima (test is run via Github workflow. Only run the
test manually if we need to save new baselines):
```
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_nvhpc.cam-outfrq_rrtmgp_derecho_gpu (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_nvhpc.cam-outfrq_rrtmgp_derecho_gpu NLCOMP
  - Found extra namelist: rad_aer_nl
```

---------

Co-authored-by: Haipeng Lin <hplin@ucar.edu>
Co-authored-by: Haipeng Lin <hplin+github@ucar.edu>
Co-authored-by: Jesse Nusbaumer <nusbaume@ucar.edu>
…SCOMP#544)

Tag name (required for release branches): sima0_20_001
Originator(s): nusbaume
AI tools used (if applicable; please also add the "AI-generated code"
label to the PR):
  What: Claude Opus 5
How: Had it replace all tab characters with spaces in the
cime_config/config_*.xml files (which is why there are so many changes
in config_pes.xml).

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

Added F1850 and F2000 compsets using the SE dycore and the CAM4 + BAM
physics/chemistry suite. Also added an updated atmospheric_physics
external and regression tests to make sure those compsets worked as
expected.

Along with the compset additions, the actual CIME configuration files
used by CAM-SIMA were cleaned up in order to remove some options that
were either not developed yet in CAM-SIMA, or that were deprecated. I
also used Claude to get rid of all tabs (and replace them with the
equivalent number of spaces).

Describe any changes made to build system:

```
M       cime_config/config_component.xml
M       cime_config/config_compsets.xml
M       cime_config/config_pes.xml
 - Removed some compset and component options that are either currently not-supported by CAM-SIMA, or that are deprecated.  Also replaced all tabs with spaces (which is what all of the `config_pes.xml` changes are).
```

Describe any changes made to the namelist: N/A

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

List all files eliminated and why: N/A

List all files added and what they do: N/A

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
  - Updated atmospheric_physics external with new CAM4 physics suite mods.

M       cime_config/testdefs/testlist_cam.xml
M       cime_config/testdefs/testmods_dirs/cam/outfrq_se_cam4/shell_commands
 - Add F2000 and F1850 CAM4+BAM regression tests.
```

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:

SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4
(Overall: DIFF)
SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4
(Overall: DIFF)
- Answer differences in the precip variables the RK scheme sends to the
coupler due to a new mass fixer in atmospheric_physics.

SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F1850_C4.derecho_intel.cam-outfrq_se_cam4
(Overall: DIFF)
SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F2000_C4.derecho_intel.cam-outfrq_se_cam4
(Overall: DIFF)
 - New regression tests (no baselines).

SMS_D_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_intel.cam-outfrq_se_cam4
(Overall: DIFF)
SMS_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_intel.cam-outfrq_se_cam4
(Overall: DIFF)
- "New" regression tests due to the updated ocean mask (`mt232` ->
`mt233`)


SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_intel.cam-outfrq_se_cslam_analy_ic
(Overall: FAIL)
 - Failed due to missing PUMAS features (which will come in via PR ESCOMP#512)


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

derecho/gnu/aux_sima:

SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4
(Overall: DIFF)
SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4
(Overall: DIFF)
- Answer differences in the precip variables the RK scheme sends to the
coupler due to a new mass fixer in atmospheric_physics.

SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F1850_C4.derecho_gnu.cam-outfrq_se_cam4
(Overall: DIFF)
SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F2000_C4.derecho_gnu.cam-outfrq_se_cam4
 - New regression tests (no baselines).

SMS_D_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_gnu.cam-outfrq_se_cam4
(Overall: DIFF)
SMS_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_gnu.cam-outfrq_se_cam4
- "New" regression tests due to the updated ocean mask (`mt232` ->
`mt233`)


SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_gnu.cam-outfrq_se_cslam_analy_ic
(Overall: FAIL)
 - Failed due to missing PUMAS features (which will come in via PR ESCOMP#512)

derecho/nvhpc/aux_sima (test is run via Github workflow. Only run the
test manually if we need to save new baselines):

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

CAM-SIMA date used for the baseline comparison tests if different than
latest:
…rt sim_year for climatological year (ESCOMP#545)

Tag name (required for release branches): sima0_20_002
Originator(s): @jimmielin 
AI tools used (if applicable; please also add the "AI-generated code"
label to the PR):
  What: Claude Code `claude-fable-5`, `claude-opus-5`
How: triaged rad_aer_climate issue. verified populated values matched
CAM

Description (include the issue title, and the keyword ['closes',
'fixes', 'resolves'] followed by the issue number):
Companion PR to ESCOMP/atmospheric_physics#439

Describe any changes made to build system: see below; added
`CAM_SIM_YEAR` support

Describe any changes made to the namelist: namelist defaults were
updated to include BAM by default and fix UNSET/'' empty-string for
rad_aer_ values

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

List all files eliminated and why:

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       cime_config/cam_config.py
M       cime_config/config_component.xml
M       test/unit/python/test_cam_config.py
  - support sim_year attribute for namelist defaults

M       cime_config/namelist_definition_cam.xml
  - add defaults for rad_aer_climate for CAM4
```

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:
```
  SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F1850_C4.derecho_intel.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F1850_C4.derecho_intel.cam-outfrq_se_cam4 NLCOMP
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F1850_C4.derecho_intel.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F2000_C4.derecho_intel.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F2000_C4.derecho_intel.cam-outfrq_se_cam4 NLCOMP
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F2000_C4.derecho_intel.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
  - updates to namelist defaults to include BAM
  - for F1850, updates to atmos_phys namelist defaults for 1850 era GHGs and prescribed datasets

  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
  SMS_D_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_intel.cam-outfrq_se_cam4 NLCOMP
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho NLCOMP
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_intel.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_intel.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_intel.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_intel.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_intel.cam-outfrq_se_cam4 (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_intel.cam-outfrq_se_cam4 NLCOMP

  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP
  - pre-existing failure requiring CIME update

  SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_intel.cam-outfrq_se_cslam_analy_ic (Overall: FAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_intel.cam-outfrq_se_cslam_analy_ic SETUP
  - pre-existing failure since PUMAS round 3 CAM-SIMA has not merged in registry chgs
```

derecho/gnu/aux_sima:
```
  SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F1850_C4.derecho_gnu.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F1850_C4.derecho_gnu.cam-outfrq_se_cam4 NLCOMP
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F1850_C4.derecho_gnu.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F2000_C4.derecho_gnu.cam-outfrq_se_cam4 (Overall: DIFF) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F2000_C4.derecho_gnu.cam-outfrq_se_cam4 NLCOMP
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt233.F2000_C4.derecho_gnu.cam-outfrq_se_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
  - updates to namelist defaults to include BAM
  - for F1850, updates to atmos_phys namelist defaults for 1850 era GHGs and prescribed datasets

  SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
  SMS_D_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: NLFAIL) details:
    FAIL SMS_D_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_gnu.cam-outfrq_se_cam4 NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_beljaars_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_beljaars_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_dme_adjust_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_dme_adjust_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam4_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam4_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam7_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_gw_cam7_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hack_shallow_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hack_shallow_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hb_vdiff_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_hb_vdiff_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_held_suarez_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_held_suarez_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_kessler_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_kessler_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_microp_aero_bam_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_microp_aero_bam_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rk_stratiform_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rk_stratiform_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rrtmgp_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_rrtmgp_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_after_coupler_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_after_coupler_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_before_coupler_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_tj2016_before_coupler_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_trcdata_bam_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_trcdata_bam_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_uw_vdiff_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_uw_vdiff_derecho NLCOMP
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_zm_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_gnu.cam-outfrq_zm_derecho NLCOMP
  SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho NLCOMP
  SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history (Overall: NLFAIL) details:
    FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_gnu.cam-outfrq_se_cslam_analy_ic (Overall: FAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.F2000_C7.derecho_gnu.cam-outfrq_se_cslam_analy_ic SETUP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FHS94.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_gnu.cam-outfrq_se_cslam (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FTJ16.derecho_gnu.cam-outfrq_se_cslam NLCOMP
  SMS_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_gnu.cam-outfrq_se_cam4 (Overall: NLFAIL) details:
    FAIL SMS_Ln9.ne3pg3_ne3pg3_mt233.QPC4.derecho_gnu.cam-outfrq_se_cam4 NLCOMP
  - fix for 'UNSET' vs. '' (correct) rad_aer_climate and diag rads
```

derecho/nvhpc/aux_sima (test is run via Github workflow. Only run the
test manually if we need to save new baselines):
```
  SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_nvhpc.cam-outfrq_rrtmgp_derecho_gpu (Overall: NLFAIL) details:
    FAIL SMS_Ln2.ne3pg3_ne3pg3_mg37.FPHYStest.derecho_nvhpc.cam-outfrq_rrtmgp_derecho_gpu NLCOMP
  - fix for 'UNSET' vs. '' (correct) rad_aer_climate and diag rads
```

If this changes climate describe any run(s) done to evaluate the new
climate in enough detail that it(they) could be reproduced:
Prescribed bulk aerosols now active for F-compsets of CAM4

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

---------

Co-authored-by: Haipeng Lin <hplin@ucar.edu>
Tag name (required for release branches):
Originator(s): peverwhee
AI tools used (if applicable; please also add the "AI-generated code"
label to the PR): n/a

Description (include the issue title, and the keyword ['closes',
'fixes', 'resolves'] followed by the issue number):
1. Removes all hard-coded "6" and "*" output units; replace with "iulog"
(iulog is being set to the intrinsic output unit rather than "6")
2. Applies fixes for issues raised by Fortitude on the files modified.

Describe any changes made to build system: n/a

Describe any changes made to the namelist: n/a

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

List all files eliminated and why: n/a

List all files added and what they do: n/a

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

```
M   src/cpl/nuopc/atm_comp_nuopc.F90
M   src/dynamics/se/dycore/comp_ctr_vol_around_gll_pts.F90
M   src/dynamics/se/dycore/edge_mod.F90
M   src/dynamics/se/dycore/element_mod.F90
M   src/dynamics/se/dycore/fvm_mod.F90
M   src/dynamics/se/dycore/schedule_mod.F90
M   src/dynamics/se/dycore/vertremap_mod.F90
- remove "6"
- apply fixes for Fortitude linting errors

M   src/dynamics/se/dycore/bndry_mod.F90
M   src/dynamics/se/dycore/coordinate_systems_mod.F90
M   src/dynamics/se/dycore/fvm_overlap_mod.F90
M   src/dynamics/se/dycore/fvm_reconstruction_mod.F90
M   src/dynamics/se/dycore/hybrid_mod.F90
M   src/dynamics/se/dycore/interpolate_mod.F90
- remove "*"
- apply fixes for Fortitude linting errors

M  test/fortitude.toml
- ignore rule about trailing decimals

```

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:

derecho/gnu/aux_sima:

derecho/nvhpc/aux_sima (test is run via Github workflow. Only run the
test manually if we need to save new baselines):

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

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

This branch was successfully deployed

No deployments
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.

6 participants