Skip to content

(requires #531) Mods for FHIST_C4 enablement; CCPP framework tag update - #553

Open
jimmielin wants to merge 22 commits into
ESCOMP:developmentfrom
jimmielin:hplin/fhist_c4
Open

jimmielin wants to merge 22 commits into
ESCOMP:developmentfrom
jimmielin:hplin/fhist_c4

Conversation

@jimmielin

@jimmielin jimmielin commented Sep 10, 2026 •

Copy link
Copy Markdown
Collaborator

Companion PR: ESCOMP/atmospheric_physics#444

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 Code claude-fable:5, claude-fable:5.1, claude-opus:5
How: Validated the FHIST_C4 compset and identified various fixes necessary

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

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>)

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:

Haipeng Lin and others added 16 commits July 22, 2026 14:55
Assisted-by: claude-fable:5

Add registry entries for the cloud_water physics suite

Snapshot-readable inputs (REI, CONCLD, QSOUT, QGOUT), the grid-mean total
cloud liquid/ice outputs of convective_cloud_water, and the one_mom_clouds
flag (hardcoded .false.: one-moment RK microphysics is not a supported
CAM-SIMA configuration; revisit if an RK+RRTMGP config arrives).
CONCLD/QSOUT/QGOUT serve the follow-on cloud_water_paths port.

Add outfrq_cloud_water_derecho test for the cloud_water physics suite

FPHYStest SMS_Ln2 (aux_sima, derecho gnu) running suite_cloud_water from
the CAM cloud_diagnostics_calc snapshot with ncdata_check, and writing
the 12 CAM conv_water history fields from
convective_cloud_water_diagnostics as an every-step REAL64 h1 baseline.

Update ncar_ccpp to hplin/conv_water development head.

Temporary hash pin for testing; replace with the atmos_phys tag
containing the cloud_water suite before merge.
- New FHIST_C4 compset alias
  (HIST_CAM40_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV).  The
  existing HIST_ machinery in config_compsets.xml (RUN_STARTDATE
  1979-01-01, HadOIBl 1850-2017 transient SSTICE datasets,
  SSTICE_YEAR_END) applies to it as-is.
- CAM_SIM_YEAR gains a ^HIST_ -> "1850-2015" mapping; atmospheric_physics
  namelist defaults guarded by sim_year="1850-2015" select the transient
  historical datasets (GHG lower boundary conditions, ozone, BAM
  aerosols, aerosol deposition, volcanic, solar).
- rad_aer_climate for cam4 gains a sim_year="1850-2015" value adding the
  eruptive volcanic aerosol entry
  ('N:VOLC_MMR:...volc_camRRTMG_byradius_sigma1.6_c130724.nc', by-radius
  optics using the VOLC_RAD_GEOM constituent), both provided by the
  prescribed_volcanic_aerosol scheme which is active in HIST
  configurations.
- Add an SMS_D_Ln9 FHIST_C4 ne3pg3 aux_sima test.

Requires the atmospheric_physics FHIST changes (registration-ownership
restructuring, O2 fix, prescribe_lower_boundary_conditions scheme,
transient namelist defaults) on the paired branch.
…ialize

The SE L26 ncdata defaults are all guarded by ic_ymd="10101" or "901", but
HIST compsets start at 1979-01-01, so ic_ymd="19790101" matched nothing
(CAM-SIMA has no month-day fallback like CAM's build-namelist), ncdata
reduced to UNSET_PATH, and cam_initfiles endrun'd at init.  This also
affected the FHIST_C4 ne3pg3 aux_sima tests.

Add sim_year="1850-2015"-guarded CAM4 (L26) start-up ICs for ne3 (the same
cami file the constant-forcing tests use) and ne16/ne30 (the ape_topo_cam4
files CAM's SE CAM4 defaults use), independent of the run start date.

Verified with AtmInParamGen reduce across guard sets: FHIST at
ne3/ne16/ne30 (1979 and 1995 starts) now resolve; F2000/F1850/QPC4 and
nlev=93 selections are unchanged.
The State_diagnose(importState) call in ModelAdvance was the only one not
wrapped in 'if (dbug_flag > 1)', so every PET logged min/max/sum of every
import field to its ESMF LogFile on every coupling step.  This went
unnoticed because PET logs are only created on error
(ESMF_LOGKIND_MULTI_ON_ERROR when create_esmf_pet_files is false): in
transient runs the daily-Gregorian solar file's Feb 29 dates trigger 42
tolerated ESMF_TimeSet probes at init (time_manager's designed Feb-28
fallback on the NOLEAP calendar), which opens the PET logs and unmasks
the spam (~1 GB per 20 simulated days across 96 ranks at ne16pg3).

Inherited from the cam6_3_160 cap update; CAM's cam_development cap has
the same ungated call.
…_TimeSet

set_time_float_from_date probed ESMF_TimeSet with the file date and fell back
to Feb 28 when it failed. Every failed probe is logged as an ESMF error, and
with the default ESMF_LOGKIND_MULTI_ON_ERROR that opens the PET*.ESMF_LogFile
files for the whole run, after which every component's INFO writes land there
(29 GB over 38 months with 192 ranks in an FHIST_C4 test whose daily solar
file carries 42 leap days). Test for the no-leap Feb 29 case up front instead;
the resulting date is identical, so this is bit-for-bit.
@jimmielin
jimmielin deployed to CI-tests-on-CIRRUS September 11, 2026 00:47 — with GitHub Actions Active

This branch is waiting to be deployed

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

Labels

AI-generated code enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants