diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq_trcdata_bam_derecho/user_nl_cam b/cime_config/testdefs/testmods_dirs/cam/outfrq_trcdata_bam_derecho/user_nl_cam
index 63698ed5..fb829c6d 100644
--- a/cime_config/testdefs/testmods_dirs/cam/outfrq_trcdata_bam_derecho/user_nl_cam
+++ b/cime_config/testdefs/testmods_dirs/cam/outfrq_trcdata_bam_derecho/user_nl_cam
@@ -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.
@@ -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
diff --git a/src/data/physconst.meta b/src/data/physconst.meta
index 72b6c823..561b9921 100644
--- a/src/data/physconst.meta
+++ b/src/data/physconst.meta
@@ -7,14 +7,14 @@
[ avogad ]
standard_name = avogadro_number
long_name = Avogadro's Number
- units = molecules mole-1
+ units = molecules kmol-1
type = real | kind = kind_phys
dimensions = ()
protected = True
[ boltz ]
standard_name = boltzmann_constant
long_name = Boltzmann's Constant
- units = J K-1
+ units = J K-1 molecule-1
type = real | kind = kind_phys
dimensions = ()
protected = True
diff --git a/src/data/registry.xml b/src/data/registry.xml
index 83ba849e..25573d5e 100644
--- a/src/data/registry.xml
+++ b/src/data/registry.xml
@@ -1707,6 +1707,20 @@
dust4 pbuf_dust4 cnst_dust4
+
+
+ horizontal_dimension vertical_layer_dimension
+ VOLC_MMR pbuf_VOLC_MMR
+
+
+ horizontal_dimension vertical_layer_dimension
+ VOLC_RAD_GEOM pbuf_VOLC_RAD_GEOM
+
+