From 5e1da0795dbc10afe8c542891db4efb2a85d14e0 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Thu, 25 Jun 2026 14:39:58 -0600 Subject: [PATCH 1/6] Check for fixed Q concentration upper boundary condition modified: src/physics/cam7/physpkg.F90 --- src/physics/cam7/physpkg.F90 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 From b2cf963578dc81b8a38c1c93740fe3aa41f968d6 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Fri, 26 Jun 2026 13:21:09 -0600 Subject: [PATCH 2/6] Remove Q from default UBC for cam7 configurations modified: bld/build-namelist modified: bld/namelist_files/namelist_defaults_cam.xml modified: bld/namelist_files/use_cases/1850_cam_lt.xml modified: bld/namelist_files/use_cases/hist_cam_lt.xml --- bld/build-namelist | 12 ++++++++++-- bld/namelist_files/namelist_defaults_cam.xml | 7 +++++++ bld/namelist_files/use_cases/1850_cam_lt.xml | 2 ++ bld/namelist_files/use_cases/hist_cam_lt.xml | 2 ++ 4 files changed, 21 insertions(+), 2 deletions(-) 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' From f4be085a5922bba7c818384c421668ef0ba2bcf6 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Mon, 29 Jun 2026 09:15:16 -0600 Subject: [PATCH 3/6] ChangeLog draft --- doc/ChangeLog | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index 640288a68b..ba7688eae5 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,5 +1,89 @@ =============================================================== +Tag name: cam6_4_185 +Originator(s): fvitt +Date: 29 Jun 2026 +One-line Summary: Fix bug in water vapor upper boundary +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): + + In CAM7 physics registration of water vapor constituent (Q) omitted the + fixed upper boundary concentration flag. 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) + +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: + +derecho/nvhpc/aux_cam: + +izumi/nag/aux_cam: + +izumi/gnu/aux_cam: + +CAM tag used for the baseline comparison tests if different than previous +tag: + +Summarize any changes to answers, i.e., +- what code configurations: +- what platforms/compilers: +- nature of change (roundoff; larger than roundoff but same climate; new + climate): + +If bitwise differences were observed, how did you show they were no worse +than roundoff? + +If this tag changes climate describe the run(s) done to evaluate the new +climate in enough detail that it(they) could be reproduced, i.e., +- source tag (all code used must be in the repository): +- platform/compilers: +- configure commandline: +- build-namelist command (or complete namelist): +- MSS location of output: + +MSS location of control simulations used to validate new climate: + +URL for AMWG diagnostics output used to validate new climate: + +=============================================================== +=============================================================== + Tag name: cam6_4_184 Originator(s): jimmielin Date: 23 Jun 2026 From a125e69c8d483e6aa514722c3800a48c10279c52 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Mon, 29 Jun 2026 09:36:30 -0600 Subject: [PATCH 4/6] ChangeLog update --- doc/ChangeLog | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index ba7688eae5..2a88cbb75b 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -50,12 +50,33 @@ 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 CAM tag used for the baseline comparison tests if different than previous tag: From 746fec11fa48b547d6bb977bc18bf82f2764cab3 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Mon, 29 Jun 2026 09:46:35 -0600 Subject: [PATCH 5/6] ChangeLog update --- doc/ChangeLog | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 2a88cbb75b..d965f8da3f 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -8,12 +8,16 @@ 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): - In CAM7 physics registration of water vapor constituent (Q) omitted the - fixed upper boundary concentration flag. Thus the inclusion of Q in the upper + 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 tested. Thus, this merge is bit-for-bit. + Describe any changes made to build system: N/A Describe any changes made to the namelist: N/A @@ -78,29 +82,7 @@ izumi/gnu/aux_cam: 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 -CAM tag used for the baseline comparison tests if different than previous -tag: - -Summarize any changes to answers, i.e., -- what code configurations: -- what platforms/compilers: -- nature of change (roundoff; larger than roundoff but same climate; new - climate): - -If bitwise differences were observed, how did you show they were no worse -than roundoff? - -If this tag changes climate describe the run(s) done to evaluate the new -climate in enough detail that it(they) could be reproduced, i.e., -- source tag (all code used must be in the repository): -- platform/compilers: -- configure commandline: -- build-namelist command (or complete namelist): -- MSS location of output: - -MSS location of control simulations used to validate new climate: - -URL for AMWG diagnostics output used to validate new climate: +Summarize any changes to answers: bit-for-bit unchanged =============================================================== =============================================================== From 6f688367bcb780f93c1b5becc69a5f2424dbccf9 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Mon, 29 Jun 2026 09:59:43 -0600 Subject: [PATCH 6/6] ChangeLog correction --- doc/ChangeLog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index d965f8da3f..087856c5b8 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -3,7 +3,7 @@ Tag name: cam6_4_185 Originator(s): fvitt Date: 29 Jun 2026 -One-line Summary: Fix bug in water vapor upper boundary +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): @@ -16,7 +16,7 @@ Purpose of changes (include the issue number and title text for each relevant Gi 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 tested. Thus, this merge is bit-for-bit. + UBCs has been completed. Thus, this tag is bit-for-bit. Describe any changes made to build system: N/A