diff --git a/bld/build-namelist b/bld/build-namelist
index 6ce53e55b3..50dc73eb09 100755
--- a/bld/build-namelist
+++ b/bld/build-namelist
@@ -2962,9 +2962,17 @@ if ($maxzen>0.0) {
# upper boundary specifier
my $ubc_ver;
if (($chem =~ /waccm_ma/ or $chem =~ /waccm_tsmlt/ or $chem =~ /waccm_t4ma/) and !$waccmx) {
- $ubc_ver = 'waccmchem';
+ if ($phys =~ /cam7/) {
+ $ubc_ver = 'waccm7chem';
+ } else {
+ $ubc_ver = 'waccmchem';
+ }
} elsif ($chem =~ /waccm_sc/ or ($model_top eq "ht" and $chem =~ /ghg_mam/)) {
- $ubc_ver = 'waccmsc';
+ if ($phys =~ /cam7/) {
+ $ubc_ver = 'waccm7sc';
+ } else {
+ $ubc_ver = 'waccmsc';
+ }
}
if (defined $ubc_ver) {
add_default($nl, 'ubc_specifier', 'ver'=>$ubc_ver);
diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml
index 007e115d8e..2e1b4da8bd 100644
--- a/bld/namelist_files/namelist_defaults_cam.xml
+++ b/bld/namelist_files/namelist_defaults_cam.xml
@@ -2098,6 +2098,13 @@
'T->MSIS','Q->2.d-8vmr','CH4->2.d-10vmr'
+
+
+ 'T->MSIS','CH4->2.d-10vmr','F->1.0D-15mmr','HF->1.0D-15mmr','H->MSIS','N->MSIS','O->MSIS','O2->MSIS','H2->TGCM','NO->SNOE'
+
+
+ 'T->MSIS','CH4->2.d-10vmr'
+
atm/cam/chem/trop_mozart/ub/ubvals_b40.20th.track1_1996-2005_c110315.nc
diff --git a/bld/namelist_files/use_cases/1850_cam_lt.xml b/bld/namelist_files/use_cases/1850_cam_lt.xml
index 410607c93a..3de46f32f0 100644
--- a/bld/namelist_files/use_cases/1850_cam_lt.xml
+++ b/bld/namelist_files/use_cases/1850_cam_lt.xml
@@ -12,10 +12,12 @@
'CO2','CH4','N2O','CFC11','CFC12','CFC11eq'
+
'atm/cam/ozone_strataero'
diff --git a/bld/namelist_files/use_cases/hist_cam_lt.xml b/bld/namelist_files/use_cases/hist_cam_lt.xml
index 79da9c39c7..f34c10eb3c 100644
--- a/bld/namelist_files/use_cases/hist_cam_lt.xml
+++ b/bld/namelist_files/use_cases/hist_cam_lt.xml
@@ -11,9 +11,11 @@
'CO2','CH4','N2O','CFC11','CFC12','CFC11eq'
+
'atm/cam/ozone_strataero'
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 640288a68b..087856c5b8 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,5 +1,92 @@
===============================================================
+Tag name: cam6_4_185
+Originator(s): fvitt
+Date: 29 Jun 2026
+One-line Summary: Fix water vapor upper boundary bug
+Github PR URL: https://github.com/ESCOMP/CAM/pull/1602
+
+Purpose of changes (include the issue number and title text for each relevant GitHub issue):
+
+ Registration of water vapor constituent (Q) omitted the fixed upper boundary
+ concentration flag in CAM7 physics. Thus the inclusion of Q in the upper
+ boundary namelist specifier had no effect in CAM7 LT and WA compsets.
+ See issue #1601: Water vapor upper boundary conditions ignored in cam7
+ (https://github.com/ESCOMP/CAM/issues/1601)
+
+ Here Q has been removed from the default UBC specifier namelist settings
+ for CAM7 LTso and WACCM7 compsets until further testing for including Q
+ UBCs has been completed. Thus, this tag is bit-for-bit.
+
+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 boundary datasets: N/A
+
+Describe any substantial timing or memory changes: N/A
+
+Code reviewed by: cacraigucar
+
+List all files eliminated: N/A
+
+List all files added and what they do: N/A
+
+List all existing files that have been modified, and describe the changes:
+
+M bld/build-namelist
+ - determine if cam7 physics for selection of default WACCM ubc_specifier
+
+M bld/namelist_files/namelist_defaults_cam.xml
+ - default waccm7 ubc_specifier (does not include Q)
+
+M bld/namelist_files/use_cases/1850_cam_lt.xml
+M bld/namelist_files/use_cases/hist_cam_lt.xml
+ - remove Q upper boundary
+
+M src/physics/cam7/physpkg.F90
+ - check for fixed upper boundary concentrations of Q
+ - invoke cnst_add with appropriate fixed_ubc flag setting
+
+If there were any failures reported from running test_driver.sh on any test
+platform, and checkin with these failures has been OK'd by the gatekeeper,
+then copy the lines from the td.*.status files for the failed tests to the
+appropriate machine below. All failed tests must be justified.
+
+derecho/intel/aux_cam:
+ NLFAIL ERC_D_Ln9.mpasa120_mpasa120.FHISTC_LTso.derecho_intel.cam-outfrq9s_mpasa120
+ NLFAIL ERC_D_Ln9.ne30pg3_ne30pg3_mt232.F1850C_LTso.derecho_intel.cam-outfrq9s
+ NLFAIL ERI_D_Ln18.ne30pg3_ne30pg3_mt232.FHISTC_LTso.derecho_intel.cam-outfrq3s_eri
+ NLFAIL ERR_Ln9.ne16pg3_ne16pg3_mt232.FHISTC_LTso.derecho_intel.cam-outfrq9s_bwic
+ - remove UBC namelist settings for LTso compsets, otherwise bit-for-bit
+
+ NLFAIL ERP_Ld3.ne16pg3_ne16pg3_mg17.FHISTC_WAt1ma.derecho_intel.cam-reduced_hist1d
+ NLFAIL ERP_Ln9.ne30pg3_ne30pg3_mg17.FHISTC_WAma.derecho_intel.cam-outfrq9s
+ - remove Q from UBC specifier namelist setting for WACCM7 compsets, otherwise bit-for-bit
+
+derecho/nvhpc/aux_cam:
+ NLFAIL ERS_Ln9.ne30pg3_ne30pg3_mt232.FHISTC_LTso.derecho_nvhpc.cam-outfrq9s_gpu_default
+ - remove UBC namelist settings for LTso compsets, otherwise bit-for-bit
+
+izumi/nag/aux_cam:
+ FAIL ERC_D_Ln9.f10_f10_mt232.FHIST_C5.izumi_nag.cam-outfrq3s_subcol COMPARE_base_rest
+ - pre-existing failure -- see https://github.com/ESCOMP/CAM/issues/1514
+
+ NLFAIL ERC_D_Ln9.ne3pg3_ne3pg3_mt232.FHISTC_LTso.izumi_nag.cam-cosp_rad_diags
+ NLFAIL ERC_D_Ln9.ne3pg3_ne3pg3_mt232.FHISTC_LTso.izumi_nag.cam-outfrq9s_nochem
+ - remove UBC namelist settings for LTso compsets, otherwise bit-for-bit
+
+izumi/gnu/aux_cam:
+ NLFAIL ERC_D_Ln9.mpasa480_mpasa480_mt232.FHISTC_LTso.izumi_gnu.cam-outfrq9s_mpasa480
+ NLFAIL ERC_D_Ln9.ne3pg3_ne3pg3_mt232.FHISTC_LTso.izumi_gnu.cam-sat_lcltod
+ NLFAIL SMS_D_Ln3.ne3pg3_ne3pg3_mt232.PC7.izumi_gnu.cam-pc7_ne3pg3
+ - remove UBC namelist settings for LTso and PC7 compsets, otherwise bit-for-bit
+
+Summarize any changes to answers: bit-for-bit unchanged
+
+===============================================================
+===============================================================
+
Tag name: cam6_4_184
Originator(s): jimmielin
Date: 23 Jun 2026
diff --git a/src/physics/cam7/physpkg.F90 b/src/physics/cam7/physpkg.F90
index 2ef8abdc6a..78d1deba92 100644
--- a/src/physics/cam7/physpkg.F90
+++ b/src/physics/cam7/physpkg.F90
@@ -159,12 +159,14 @@ subroutine phys_register
use surface_emissions_mod, only: surface_emissions_reg
use elevated_emissions_mod, only: elevated_emissions_reg
use ctem_diags_mod, only: ctem_diags_reg
+ use upper_bc, only: ubc_fixed_conc
!---------------------------Local variables-----------------------------
!
integer :: m ! loop index
integer :: mm ! constituent index
integer :: nmodes
+ logical :: has_fixed_ubc ! for upper bndy cond
!-----------------------------------------------------------------------
! Get physics options
@@ -191,11 +193,12 @@ subroutine phys_register
! Register water vapor.
! ***** N.B. ***** This must be the first call to cnst_add so that
! water vapor is constituent 1.
+ has_fixed_ubc = ubc_fixed_conc('Q') ! check for fixed concentration upper boundary condition
if (moist_physics) then
- call cnst_add('Q', mwh2o, cpwv, 1.E-12_r8, mm, &
+ call cnst_add('Q', mwh2o, cpwv, 1.E-12_r8, mm, fixed_ubc=has_fixed_ubc, &
longname='Specific humidity', readiv=.true., is_convtran1=.true.)
else
- call cnst_add('Q', mwh2o, cpwv, 0.0_r8, mm, &
+ call cnst_add('Q', mwh2o, cpwv, 0.0_r8, mm, fixed_ubc=has_fixed_ubc, &
longname='Specific humidity', readiv=.false., is_convtran1=.true.)
end if