Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
4c6e5e0
Add VOLC_MMR, VOLC_RAD_GEOM registry entries for prescribed volcanic …
hplin-ucar Mar 12, 2026
56097b5
Update snapshot file for volcaero
hplin-ucar Mar 12, 2026
15ccec6
Closes #283 - fixes boltz, avogad units in meta.
hplin-ucar Mar 13, 2026
0457f96
Base (move iswbands/ilwbands to radiation_namelist); fix solar_parms_…
hplin-ucar Mar 13, 2026
9a1bb5d
Add unmodified files from CAM (for diff)
hplin-ucar Mar 13, 2026
f414fec
Initial push for BAM aerosols (chem none) with prescribed source and …
hplin-ucar Mar 13, 2026
f4636d9
Port changes from Francis Vitt: CAM#1500 Fix issue with aerosol optic…
hplin-ucar Mar 16, 2026
522c3d4
Remove read_water_refindex and move to init phase of aerosol_optics C…
hplin-ucar Mar 18, 2026
686803a
Aerosol pfUnit tests (coauthored with claude-opus-4.6 then reviewed);…
hplin-ucar Mar 24, 2026
b9f01c0
Frontport changes from code review in CAM
hplin-ucar Mar 25, 2026
81fe7cb
fix palb, pasm comment - sync with CAM
hplin-ucar Mar 25, 2026
02f0796
Sync up to CAM
hplin-ucar Apr 8, 2026
d2a01de
Update unit tests to sync up with CAM.
hplin-ucar Apr 8, 2026
ff3f411
Add modal properties, state direct copy from CAM for adapting
hplin-ucar Apr 8, 2026
e4e7184
Implement modal aerosol properties and state concrete implementations…
hplin-ucar Apr 9, 2026
8f8f27f
Fix Fortran unit tests: missing shr_kind_cl decl replacing cs1
hplin-ucar Apr 9, 2026
2bd4777
Update to return physprop for concrete aerosol_properties%optics_para…
hplin-ucar Apr 9, 2026
304b35f
Merge branch 'development' into hplin/bulk_aero_2
hplin-ucar Apr 9, 2026
c429406
Extend pfUnit tests to MAM aerosol state/properties
hplin-ucar Apr 9, 2026
e6da806
Add modal_test_helpers for constructing 2-mode MAM test
hplin-ucar Apr 9, 2026
f8b3563
Debug CIRRUS workflow - failure() artifact upload
hplin-ucar Apr 9, 2026
d1f8241
CCPP framework does not like shr_kind_cl
hplin-ucar Apr 9, 2026
eeaa2a0
Oops, should not have done replace all
hplin-ucar Apr 9, 2026
41499e8
Revert "Debug CIRRUS workflow - failure() artifact upload"
hplin-ucar Apr 9, 2026
9e598e4
fix cs1 -> 256 to make ccpp-framework happy
hplin-ucar Apr 13, 2026
1764036
Merge branch 'development' into hplin/bulk_aero_2
hplin-ucar Apr 15, 2026
45cceb0
bulk_aero_3: sync up to work-in-progress microp-enabled version in CA…
hplin-ucar Apr 20, 2026
7cd71ba
Fix build
hplin-ucar Apr 20, 2026
2e3eac5
Unit test fixes; build fixes; pbuf setup in registry.xml
hplin-ucar Apr 20, 2026
0b71b16
Fix extra ppgrid call; comment out rndst in registry
hplin-ucar Apr 20, 2026
00bf822
Fix unit tests due to new ncol
hplin-ucar Apr 20, 2026
8422d23
Disable pbuf input fields with dust dimension as problematic
hplin-ucar Apr 20, 2026
2550c17
Continue to fix unit tests
hplin-ucar Apr 20, 2026
b2bc7bb
To cherry-pick: fix physics data check to use all constituents, not j…
hplin-ucar Apr 20, 2026
b4238c8
Make wv_stdname register consistent with initialize_constituents; mov…
hplin-ucar Apr 21, 2026
e397508
Registry fixes for microp_aero.
hplin-ucar Apr 21, 2026
5dce8f6
Merge branch 'development' into hplin/bulk_aero_2
hplin-ucar Apr 23, 2026
f8c17dc
Add dust dimensioned variables to snapshot check.
hplin-ucar Apr 23, 2026
9008c1a
Merge branch 'development' into hplin/bulk_aero_2
hplin-ucar Apr 24, 2026
eba77db
Make it a parameter
hplin-ucar Apr 24, 2026
9a98362
Frontport changes in cam6_4_169 (CARMA with RRTMGP) from Francis Vitt
jimmielin May 13, 2026
c809dd8
Merge branch 'development' into hplin/bulk_aero_2
jimmielin May 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions cime_config/buildlib
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ def _build_cam():
case.get_value("COMP_INTERFACE")),
os.path.join(atm_root, "src", "dynamics", "utils"),
os.path.join(atm_root, "src", "physics", "utils"),
os.path.join(atm_root, "src", "aerosol"),
os.path.join(atm_root, "src", "history"),
os.path.join(atm_root, "src", "history", "buffers", "src"),
os.path.join(atm_root, "src", "history", "buffers", "src", "hash"),
Expand Down
176 changes: 176 additions & 0 deletions cime_config/namelist_definition_cam.xml
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,182 @@
</values>
</entry>

<!-- Radiatively active aerosol -->
<entry id="mode_defs">
<type>char*256(120)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
Definitions for the aerosol modes that may be used in the rad_climate and
rad_aer_diag_* variables.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="bin_defs">
<type>char*256(640)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
Definitions for the aerosol bins that may be used in the rad_climate and
rad_aer_diag_* variables.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="rad_aer_climate">
<type>char*256(80)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
A list of the radiatively active species, i.e., species that affect the
climate simulation via the radiative heating rate calculation.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="rad_aer_diag_1">
<type>char*256(80)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
A list of species to be used in the first diagnostic radiative heating rate
calculation. These species are not the ones affecting the climate
simulation. This is a hook for performing radiative forcing calculations.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="rad_aer_diag_2">
<type>char*256(80)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
Analogous to rad_aer_diag_1, but for the 2nd diagnostic calculation.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="rad_aer_diag_3">
<type>char*256(80)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
Analogous to rad_aer_diag_1, but for the 3rd diagnostic calculation.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="rad_aer_diag_4">
<type>char*256(80)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
Analogous to rad_aer_diag_1, but for the 4th diagnostic calculation.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="rad_aer_diag_5">
<type>char*256(80)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
Analogous to rad_aer_diag_1, but for the 5th diagnostic calculation.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="rad_aer_diag_6">
<type>char*256(80)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
Analogous to rad_aer_diag_1, but for the 6th diagnostic calculation.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="rad_aer_diag_7">
<type>char*256(80)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
Analogous to rad_aer_diag_1, but for the 7th diagnostic calculation.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="rad_aer_diag_8">
<type>char*256(80)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
Analogous to rad_aer_diag_1, but for the 8th diagnostic calculation.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="rad_aer_diag_9">
<type>char*256(80)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
Analogous to rad_aer_diag_1, but for the 9th diagnostic calculation.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>

<entry id="rad_aer_diag_10">
<type>char*256(80)</type>
<category>radiation</category>
<group>rad_aer_nl</group>
<units>none</units>
<desc>
Analogous to rad_aer_diag_1, but for the 10th diagnostic calculation.
</desc>
<values>
<value>UNSET</value>
</values>
</entry>


<!-- Vertical Coordinate -->

<entry id="pver">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
! these snapshots were constructed to specifically test whether the data read into the
! physics buffer by tracer_data in CAM will match the data read by CAM-SIMA bit-for-bit.
! this was done by
! (1) taking a FHIST_C4 snapshot (which has prescribed_ozone and aero)
! in this case a ne3pg3_fhistc4_gw_drag_cam4_oro snapshot,
! (1) taking a FHIST_C4 snapshot (which has prescribed_ozone, aero, aerodep_flx, and volcaero)
! using a "user_set" location at the beginning of tphysbc, before check_energy_fix
! this is because the prescribed data modules run during timestep_init;
! the energy fixer will change model state, causing changes in the interpolation,
! so the "before" snapshot before the global energy fixer needs to be used.
! (2) using nco to zero out the prescribed ozone and aero fields from the snapshot data,
! to create the "before" snapshot.
! (3) the "after" snapshot is the original snapshot file (which has non-zero values for prescribed
! ozone and aerosols)
! to create the "before" snapshot:
! ncap2 -O -s 'pbuf_ozone=0.0*pbuf_ozone' h1i_v2.nc 0xozone.nc
! ncap2 -O -s 'pbuf_sulf=0.0*pbuf_sulf;pbuf_bcar1=0.0*pbuf_sulf;pbuf_bcar2=0.0*pbuf_sulf;pbuf_ocar1=0.0*pbuf_sulf;pbuf_ocar2=0.0*pbuf_sulf;pbuf_sslt1=0.0*pbuf_sulf;pbuf_sslt2=0.0*pbuf_sulf;pbuf_sslt3=0.0*pbuf_sulf;pbuf_sslt4=0.0*pbuf_sulf;pbuf_dust1=0.0*pbuf_sulf;pbuf_dust2=0.0*pbuf_sulf;pbuf_dust3=0.0*pbuf_sulf;pbuf_dust4=0.0*pbuf_sulf;pbuf_VOLC_RAD_GEOM=0.0*pbuf_VOLC_RAD_GEOM;pbuf_VOLC_MMR=0.0*pbuf_VOLC_MMR' 0xozone.nc 0xozone_aero_volcaero.nc
! (3) the "after" snapshot is the original "before" snapshot file
! (which has non-zero values for prescribed ozone and aerosol)
! the test will pass iff. the tracer_data utility in CAM-SIMA and the prescribed_ozone/aerosols schemes
! can populate the prescribed fields bit-for-bit compared to the original snapshot file.

ncdata = '/glade/campaign/cesm/community/amwg/sima_baselines/cam_sima_test_snapshots/cam_ne3pg3_fhistc4_tracer_data_0xprescribed-ozone-aero_from_cam4_oro_snapshot_derecho_gnu_after_c20251028.nc'
ncdata_check = '/glade/campaign/cesm/community/amwg/sima_baselines/cam_sima_test_snapshots/cam_ne3pg3_fhistc4_gw_drag_cam4_oro_snapshot_derecho_gnu_after_c20250826.nc'
ncdata = '/glade/campaign/cesm/community/amwg/sima_baselines/cam_sima_test_snapshots/cam_ne3pg3_fhistc4_tracer_data_0xprescribed-ozone-aero-volcaero_from_energy_fixer_derecho_gnu_before_c20260312.nc'
ncdata_check = '/glade/campaign/cesm/community/amwg/sima_baselines/cam_sima_test_snapshots/cam_ne3pg3_fhistc4_tracer_data_0xprescribed-ozone-aero-volcaero_from_energy_fixer_derecho_gnu_after_c20260312.nc'

! tolerances for testing
ncdata_check_err = .true.
Expand Down Expand Up @@ -46,8 +51,12 @@ prescribed_ozone_fixed_tod = 0
prescribed_ozone_fixed_ymd = 0
prescribed_ozone_cycle_yr = 0

prescribed_volcaero_datapath = "/glade/campaign/cesm/cesmdata/inputdata/atm/cam/volc"
prescribed_volcaero_file = "CCSM4_volcanic_1850-2008_prototype1.nc"

hist_output_frequency;h1: 1*nsteps
hist_max_frames;h1: 1
hist_add_inst_fields;h1:ozone
hist_add_inst_fields;h1:sulf_D,bcar1_D,bcar2_D,ocar1_D,ocar2_D,sslt1_D,sslt2_D,sslt3_D,sslt4_D,dust1_D,dust2_D,dust3_D,dust4_D
hist_add_inst_fields;h1:VOLC_MMR,VOLC_RAD_GEOM,VOLC_MASS,VOLC_MASS_C
hist_precision;h1: REAL64
Loading
Loading