From 923885d06039a850410680186b7fe5624a0c5714 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Mon, 6 Apr 2026 12:24:53 -0600 Subject: [PATCH 01/10] implement o2 concentration check modified: src/chemistry/mozart/mo_jshort.F90 --- src/chemistry/mozart/mo_jshort.F90 | 37 ++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/src/chemistry/mozart/mo_jshort.F90 b/src/chemistry/mozart/mo_jshort.F90 index 6d16867e80..703d217368 100644 --- a/src/chemistry/mozart/mo_jshort.F90 +++ b/src/chemistry/mozart/mo_jshort.F90 @@ -227,7 +227,7 @@ subroutine get_crs( xs_short_file, sht_indexer ) else write(iulog,*) 'get_crs : ',rxt_tag_lst(m)(:len_trim(rxt_tag_lst(m))),' alias ', & pht_alias_lst(m,1)(:len_trim(pht_alias_lst(m,1))),' not in dataset' - call endrun + call endrun('mo_jshort::get_crs error') end if end if end do @@ -315,7 +315,7 @@ subroutine get_crs( xs_short_file, sht_indexer ) deallocate( xs_species ) if( ndx /= nj ) then write(iulog,*) 'get_crs : ndx count /= cross section count' - call endrun + call endrun('mo_jshort::get_crs: ndx count /= cross section count') end if !------------------------------------------------------------------------------ ! ... get jo3 cross sections @@ -385,6 +385,7 @@ subroutine xs_init(xs_coef_file) integer :: istat ! i/o status integer :: i, j character(len=256) :: locfn + character(len=256) :: errstr !---------------------------------------------------------------------- ! ... Get first strato photo rate file @@ -403,8 +404,8 @@ subroutine xs_init(xs_coef_file) !---------------------------------------------------------------------- ! ... Open error exit !---------------------------------------------------------------------- - write(iulog,*) 'xs_init: error ',istat,' opening file ',trim(locfn) - call endrun + write(errstr,*) 'mo_jshort::xs_init: error ',istat,' opening file ',trim(locfn) + call endrun(trim(errstr)) end if !---------------------------------------------------------------------- ! ... read file @@ -414,7 +415,7 @@ subroutine xs_init(xs_coef_file) read(unit,903,iostat=istat) ac(i,:) if( istat /= 0 ) then write(iulog,*) 'xs_init: error ',istat,' reading ac' - call endrun + call endrun('mo_jshort::xs_init read file error') end if end do @@ -422,8 +423,8 @@ subroutine xs_init(xs_coef_file) do i = 1,20 read(unit,903,iostat=istat) bc(i,:) if( istat /= 0 ) then - write(iulog,*) 'xs_init: error ',istat,' reading bc' - call endrun + write(errstr,*) 'xs_init: error ',istat,' reading bc' + call endrun(trim(errstr)) end if end do close( unit ) @@ -619,6 +620,9 @@ subroutine jshort_hrates( nlev, zen, o2_vmr, o3_vmr, o2cc, & real(r8) :: tsrb(nlev,nsrbtuv) ! Transmission in the SRB real(r8) :: xs_o2srb(nlev,nsrbtuv) ! Cross section * QY for O2 in SRB + ! check for realistic O2 concentrations + call check_o2_col( o2cc ) + allocate( fnorm(nlev,nw),stat=astat ) if( astat /= 0 ) then call alloc_err( astat, 'jshort_hrates', 'fnorm', nw*nlev ) @@ -944,6 +948,9 @@ subroutine jshort_photo( nlev, zen, n2cc, o2cc, o3cc, & real(r8) :: tsrb(nlev,nsrbtuv) ! Transmission in the SRB real(r8) :: xs_o2srb(nlev,nsrbtuv) ! Cross section * QY for O2 in SRB + ! check for realistic O2 concentrations + call check_o2_col( o2cc ) + allocate( fnorm(nlev,nw),stat=astat ) if( astat /= 0 ) then call alloc_err( astat, 'jshort_photo', 'fnorm', nw*nlev ) @@ -1487,6 +1494,7 @@ subroutine calc_o2srb( nlev, nid, o2col, tlev, tsrb, xscho2 ) real(r8) :: dtsrb(nlev) real(r8) :: tsrb_rev(nlev,nsrbtuv) real(r8) :: xs(nsrbtuv) + character(len=256) :: errstr !------------------------------------------------------------------------------ ! ... Calculate cross sections @@ -1562,8 +1570,8 @@ subroutine calc_o2srb( nlev, nid, o2col, tlev, tsrb, xscho2 ) term1 = log( xscho2(k+1,i)/xscho2(k,i) ) term2 = log( o2col(k+1)/o2col(k) ) if( term2 == 0._r8 ) then - write(iulog,*) 'calc_o2srb : o2col(k:k+1),xscho2(k:k+1,i) = ',o2col(k:k+1),xscho2(k:k+1,i),' @ i,k = ',i,k - call endrun + write(errstr,*) 'calc_o2srb : o2col(k:k+1),xscho2(k:k+1,i) = ',o2col(k:k+1),xscho2(k:k+1,i),' @ i,k = ',i,k + call endrun(trim(errstr)) end if den = 1._r8 + log( xscho2(k+1,i)/xscho2(k,i) )/log( o2col(k+1)/o2col(k) ) dto2 = abs(num/den) @@ -1870,4 +1878,15 @@ end function pjno end subroutine calc_jno + !---------------------------------------------------------------- + subroutine check_o2_col( o2cc ) + real(r8), intent(in) :: o2cc(:) ! o2 conc (mol/cm^3) + + if (maxval(o2cc)<1.0_r8) then + write(*,*) 'mo_jshort input O2 (mol/cm^3): ',o2cc + call endrun('mo_jshort -- unrealistic O2 concentrations needed for absorption') + end if + + end subroutine check_o2_col + end module mo_jshort From 91203590b80abe1bc0eff13121b11267301fcc5c Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Wed, 8 Apr 2026 13:53:03 -0600 Subject: [PATCH 02/10] initial namelist updates modified: bld/namelist_files/namelist_defaults_cam.xml modified: bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml --- bld/namelist_files/namelist_defaults_cam.xml | 2 + .../use_cases/1850_trop_strat_t4s_cam7.xml | 97 ++++++++++++++++--- 2 files changed, 88 insertions(+), 11 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index b5c48835fb..755a8441fd 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -848,6 +848,7 @@ 0.5d0 0.5d0 1.d0 +1.d0 2.d0 2.d0 2.d0 @@ -860,6 +861,7 @@ 2.D0 2.D0 .true. +.true. .false. .false. .false. diff --git a/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml b/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml index b08fb78c11..a29922495f 100644 --- a/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml +++ b/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml @@ -6,7 +6,7 @@ atm/cam/inic/se/b.e30_alpha07c_cesm.B1850C_MTt4s.ne30_t232_wgx3.251.001.cam.i.0032-01-01_c260304.nc -atm/cam/solar/SolarForcingCMIP7-4.6_18491230-20240101_sumEPP_c20250630.nc +atm/cam/solar/SolarForcingCMIP7piControl_c20250103.nc FIXED 18500701 @@ -18,23 +18,98 @@ CYCLICAL 1850 - 'num_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_num_so4_a1_anthro-ene_vertical_mol_175001-201412_ne30pg3_c20200103.nc', - 'num_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_num_a1_so4_contvolcano_vertical_850-5000_ne30pg3_c20200125.nc', - 'num_a2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_num_a2_so4_contvolcano_vertical_850-5000_ne30pg3_c20200125.nc', - 'SO2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_SO2_contvolcano_vertical_850-5000_ne30pg3_c20200125.nc', - 'so4_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_so4_a1_anthro-ene_vertical_mol_175001-201412_ne30pg3_c20200103.nc', - 'so4_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_so4_a1_contvolcano_vertical_850-5000_ne30pg3_c20200125.nc', - 'so4_a2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_so4_a2_contvolcano_vertical_850-5000_ne30pg3_c20200125.nc' + 'bc_a4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/bc_a4-em-AIR-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'num_a4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/num_bc_a4-em-AIR-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'SO2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/SO2-em-AIR-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'so4_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/so4_a1_ene_vertical-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'num_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/num_so4_a1_ene_vertical-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'num_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_num_a1_so4_contvolcano_vertical_850-5000_ne30pg3_c20200125.nc', + 'num_a2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_num_a2_so4_contvolcano_vertical_850-5000_ne30pg3_c20200125.nc', + 'so4_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_so4_a1_contvolcano_vertical_850-5000_ne30pg3_c20200125.nc', + 'so4_a2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_so4_a2_contvolcano_vertical_850-5000_ne30pg3_c20200125.nc', + 'SO2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/emissions-cmip6_SO2_contvolcano_vertical_850-5000_ne30pg3_c20200125.nc', + 'SO2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/historical_ne30pg3/utsvolcemis_CMIP-2-2-1_gn_17500101-20231120_ne30-0.5h_gauss_mass-scaling0.56-so2th10_alt-reduction_climo_iq_c250813.nc' -CYCLICAL -1850 + CYCLICAL + 1850 + + 'bc_a4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/bc_a4-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'bc_a4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/bc_a4_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'pom_a4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/pom_a4-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'pom_a4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/pom_a4_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'num_a4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/num_bc_a4-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'num_a4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/num_bc_a4_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'num_a4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/num_pom_a4-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'num_a4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/num_pom_a4_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'num_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/num_so4_a1_ag-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'num_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/num_so4_a1_ship_slv-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'num_a2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/num_so4_a2_res_trs-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'so4_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/so4_a1_ag_ship_slv-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'so4_a2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/so4_a2_res_trs-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'so4_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/SO4_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'num_a1 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/num_SO4_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'SO2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/SO2-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'SO2 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/SO2_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'BIGALK -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/BIGALK_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'BIGALK -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/BIGALK-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'C2H4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/C2H4_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'C2H4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/C2H4-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'C2H5OH -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/C2H5OH_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'C2H5OH -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/C2H5OH-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'C2H6 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/C2H6_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'C2H6 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/C2H6-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'C3H6 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/C3H6_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'C3H6 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/C3H6-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'C3H8 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/C3H8_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'C3H8 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/C3H8-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'CH2O -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/CH2O_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'CH2O -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/CH2O-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'CH3CHO -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/CH3CHO_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'CH3CHO -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/CH3CHO-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'CH3COCH3 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/CH3COCH3_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'CH3COCH3 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/CH3COCH3-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'CH3COCHO -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/CH3COCHO_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'CH3COOH -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/CH3COOH_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'CH3COOH -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/CH3COOH-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'CH3OH -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/CH3OH_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'CH3OH -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/CH3OH-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'CO -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/CO-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'CO -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/CO_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'ISOP -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/ISOP_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'TERP -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/MTERP_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'NH3 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/NH3-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'NH3 -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/NH3_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'NO -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/NO-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'NO -> $INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/NO_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'NO -> $INPUTDATA_ROOT/atm/cam/chem/emis/emissions_ssp585/emissions-cmip6-SSP_NO_other_surface_mol_175001-210101_0.9x1.25_c20190224.nc', + 'C2H4 -> $INPUTDATA_ROOT/atm/cam/chem/emis/emissions_ssp585/emissions-cmip6-SSP_C2H4_other_surface_mol_175001-210101_0.9x1.25_c20190224.nc', + 'C3H6 -> $INPUTDATA_ROOT/atm/cam/chem/emis/emissions_ssp585/emissions-cmip6-SSP_C3H6_other_surface_mol_175001-210101_0.9x1.25_c20190224.nc', + 'C3H8 -> $INPUTDATA_ROOT/atm/cam/chem/emis/emissions_ssp585/emissions-cmip6-SSP_C3H8_other_surface_mol_175001-210101_0.9x1.25_c20190224.nc', + 'C2H6 -> $INPUTDATA_ROOT/atm/cam/chem/emis/emissions_ssp585/emissions-cmip6-SSP_C2H6_other_surface_mol_175001-210101_0.9x1.25_c20190224.nc', + 'NH3 -> $INPUTDATA_ROOT/atm/cam/chem/emis/emissions_ssp585/emissions-cmip6-SSP_NH3_other_surface_mol_175001-210101_0.9x1.25_c20190224.nc', + 'SOAE -> 0.5954D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/ISOP_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'SOAE -> 2.5592D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/BENZENE_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'SOAE -> 2.5592D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/BENZENE-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'SOAE -> 8.5371D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251118/IVOC_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251118.nc', + 'SOAE -> 8.5371D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/IVOC-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'SOAE -> 16.650D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/SVOC_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'SOAE -> 16.650D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/SVOC-em-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18_gn_175001-202312_c20251030.nc', + 'SOAE -> 8.2367D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/TOLUENE_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'SOAE -> 8.2367D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/TOLUENE-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'SOAE -> 6.5013D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/XYLENES_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc', + 'SOAE -> 6.5013D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/CEDS-CMIP-2025-04-18_20251030/XYLENES-VOC-anthro_input4MIPs_emissions_CMIP_CEDS-CMIP-2025-04-18-supplemental_gn_175001-202312_c20251030.nc', + 'SOAE -> 5.1004D0*$INPUTDATA_ROOT/atm/cam/chem/emis/cmip7/ne30/DRES-CMIP-BB4CMIP7-2-0_smoothed_20251102/MTERP_smoothed_input4MIPs_emissions_CMIP_DRES-CMIP-BB4CMIP7-2-0_gn_175001-202112_c20251102.nc' + + + +2.0D0 CYCLICAL 1850 -atm/waccm/lb/LBC_17500116-25001216_CMIP6_SSP585_0p5degLat_c20200824.nc +atm/waccm/lb/CMIP7/LBC_17500116-20221216_CMIP7_0p5degLat_c250326.nc 'CCL4', 'CF2CLBR', 'CF3BR', 'CFC11', 'CFC113', 'CFC12', 'CH3BR', 'CH3CCL3', 'CH3CL', 'CH4', 'CO2', 'H2', 'HCFC22', 'N2O', 'CFC114', 'CFC115', 'HCFC141B', 'HCFC142B', 'H2402', 'OCS', 'SF6', 'CFC11eq' From ce4c5c7bbd417b321e1c626d2bef328f06853440 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Fri, 10 Apr 2026 15:16:24 -0600 Subject: [PATCH 03/10] default code some hacks and fincl list in use case modified: bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml modified: src/chemistry/modal_aero/aero_model.F90 modified: src/chemistry/mozart/mo_chm_diags.F90 modified: src/chemistry/mozart/mo_extfrc.F90 modified: src/chemistry/mozart/mo_neu_wetdep.F90 modified: src/physics/cam/aerosol_optics_cam.F90 modified: src/physics/cam/ndrop.F90 --- .../use_cases/1850_trop_strat_t4s_cam7.xml | 76 ++++++++++++++++ src/chemistry/modal_aero/aero_model.F90 | 4 +- src/chemistry/mozart/mo_chm_diags.F90 | 6 +- src/chemistry/mozart/mo_extfrc.F90 | 8 +- src/chemistry/mozart/mo_neu_wetdep.F90 | 6 +- src/physics/cam/aerosol_optics_cam.F90 | 89 ++++++++++--------- src/physics/cam/ndrop.F90 | 1 + 7 files changed, 136 insertions(+), 54 deletions(-) diff --git a/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml b/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml index a29922495f..79eee21f8e 100644 --- a/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml +++ b/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml @@ -115,9 +115,85 @@ 'HCFC22', 'N2O', 'CFC114', 'CFC115', 'HCFC141B', 'HCFC142B', 'H2402', 'OCS', 'SF6', 'CFC11eq' + + +share/meshes/ne16pg3_ESMFmesh_cdf5_c20211018.nc +share/meshes/ne30pg3_ESMFmesh_cdf5_c20211018.nc + 90 +180 + + + 0, 5, 20, 40, 12, 120, 73 + 0, -24, -24, -3, 0, -2, -120 + 2, 2, 2, 2, 2, 1, 2 + .true., .true., .true., .true., .false., .true., .true. + 192, 192, 192, 192, 192, 192, 192 + 288, 288, 288, 288, 288, 288, 288 + 'A', 'A', 'A', 'I', 'A', 'I', 'I' + .true. + .true. +.true. +.true. + .false. .false. + + 'ACTNI','ACTNL','ACTREI','ACTREL','AQSO4_H2O2','AQSO4_O3','AQ_SO2','AREA','CAPE', + 'FCTI','FCTL','FLASHFRQ','FLDSC','FLNR','FREQZM','FSNR','GS_SO2','H2SO4_sfnnuc1', + 'OMEGA500','PRECT','SO2_CLXF','SOLSD','SST','TFIX','TMDMS','TMO3','TMOCS','TMSO2', + 'TMso4_a1','TMso4_a2','TMso4_a3','TMso4_a5','TREFHTMX','TROP_P','TROP_T','TROP_Z', + 'UBOT','VBOT','WD_H2SO4','WD_SO2','bc_a4_CLXF','bc_c1DDF','bc_c4DDF','dst_c1DDF', + 'dst_c2DDF','dst_c3DDF','ncl_c1DDF','ncl_c2DDF','ncl_c3DDF','num_a1_CLXF','num_a2_CLXF', + 'num_a2_sfnnuc1','num_c1DDF','num_c2DDF','num_c3DDF','num_c4DDF','pom_c1DDF', + 'pom_c4DDF','so4_a1_CLXF','so4_a1_sfgaex1','so4_a2_CLXF','so4_a2_sfgaex1', + 'so4_a2_sfnnuc1','so4_a3_sfgaex1','so4_a5_sfgaex1','so4_c1AQH2SO4','so4_c1AQSO4', + 'so4_c1DDF','so4_c2AQH2SO4','so4_c2AQSO4','so4_c2DDF','so4_c3AQH2SO4','so4_c3AQSO4', + 'so4_c3DDF','so4_c5AQH2SO4','soa_a1_sfgaex1','soa_a2_sfgaex1','soa_c1DDF','soa_c2DDF', + 'CMEIOUT','EVAPSNOW','FRZRDT','MELTSDT','MELTSTOT','MNUCCDO','MNUCCRIO','MNUCCRO', + 'MNUDEPO','NCSEDTEN','NHOMO','NISEDTEN','NMELTO','NMELTS','NNUCCCO','NNUCCDO', + 'NNUCCRIO','NNUCCRO','NNUCCTO','NNUDEPO','NPRACSO','NPRAIO','NPRAO','NPRCIO','NPRCO', + 'NPSACWSO','NRSEDTEN','NSACWIO','NSSEDTEN','PRACSO','QCSEDTEN','QCSEVAP','QISEDTEN', + 'QISEVAP','QVRES','VAPDEPSO','VTRMC','VTRMI', + 'BERGO','BERGSO','BROX','BROY','BRY','BTTGWSDF','BTTGWSKE','BTTGWSPEC','BUTGWSPEC', + 'CFC11_CHML','CFC12_CHML','CH3CCL3_CHML','CH4_CHML','CLOX','CLOY','CLY','CO2_CHML', + 'CO_CHML','CO_CHMP','CT_H2O','DCOCHM','DH2O2CHM','DHNO3CHM','DO3CHM','DQCORE','DTCORE', + 'Dso4_a1CHM','Dso4_a2CHM','Dso4_a3CHM','Dso4_a5CHM','EVAPPREC','EVAPQZM','EVAPTZM', + 'H2O_CHML','H2SO4M_C','HCL_GAS','HNO3_GAS','HNO3_NAT','HNO3_STS','HOMOO','LNO_PROD', + 'MASS','MELTO','MNUCCCO','MNUCCDOhet','MNUCCTO','MPDICE','MPDLIQ','MPDQ','MPDT', + 'MSACWIO','M_dens','N2O_CHML','NITROP_PD','NOX','NOY','O3S_Loss','O3_CHML','O3_CHMP', + 'O3_Loss','O3_Prod','O3_alkenes','OddOx_CLOxBROx_Loss','OddOx_HOx_Loss', + 'OddOx_Loss_Tot','OddOx_NOx_Loss','OddOx_Ox_Loss','OddOx_Prod_Tot','Ox_Loss','Ox_Prod', + 'PDELDRY','PM25','PM25_MMR','PRAIO','PRAO','PRCIO','PRCO','PSACWSO','PTEQ','PTTEND', + 'QCRESO','QIRESO','QRLC','QRSC','QTGW','RAD_ICE','RAD_LNAT','RAD_SULFC','RCO2_NO2_sum', + 'REFF_AERO','RO2_HO2_sum','RO2_NO3_sum','RO2_NO_sum','RO2_RO2_sum','SAD_AERO','SAD_ICE', + 'SAD_LNAT','SAD_SULFC','SAD_TROP','SNOWQM','SO2_CHML','SO2_CHMP','SO2_XFRC','SOAG_CHMP', + 'TAQ', 'TBRY','TCLY','TOTH','TTEND_TOT','TTGW','TTGWORO','TTGWSDF','TTGWSDFORO', + 'TTGWSKE','TTGWSKEORO','TTGWSPEC','VEL_NAT2','dgnumwet1','dgnumwet2','dgnumwet3', + 'jcl2o2','jh2o2','jno2','jo2_a','jo2_b','jo3_a','jo3_b','jpan','so4_a1_CHMP', + 'so4_a2_CHMP','soa_a1_CHML','soa_a2','soa_a2_CHML','UTGWORO','UTGWSPEC','UTGW_TOTAL', + 'VTGWORO','VTGW_TOTAL','ZMDQ','ZMDT','QRAIN','QSNOW','RCMTEND_CLUBB','RVMTEND_CLUBB', + 'STEND_CLUBB','CMFMC_DP','PINT','WPTHLP_CLUBB','WPRTP_CLUBB','KVH_CLUBB', + + + + 'PRECT', 'PRECC', 'FLUT', 'U850', 'U200', 'V850', 'V200', 'OMEGA500', 'TS', 'SST', 'PSL', 'Z500' + + + + 'PRECC','PRECL' + + + + 'Uzm','Vzm','Wzm','THzm', 'VTHzm','WTHzm','UVzm','UWzm' + + + + 'PS', 'PSL', 'PMID','PDELDRY','U', 'V', 'T', 'Z3', 'PHIS', 'FRONTGF:I', 'OMEGA', 'O3','REFF_AERO', + 'SAD_AERO', 'so4_a1', 'so4_a2', 'so4_a3', 'so4_a5', 'AODVISstdn', 'NITROP_PD', 'dgnumwet1', 'dgnumwet2', + 'dgnumwet3','dgnumwet5', 'CO2', 'H', 'NO', 'O' + + diff --git a/src/chemistry/modal_aero/aero_model.F90 b/src/chemistry/modal_aero/aero_model.F90 index 07ca0d84bc..86c5e0b1b2 100644 --- a/src/chemistry/modal_aero/aero_model.F90 +++ b/src/chemistry/modal_aero/aero_model.F90 @@ -304,7 +304,7 @@ subroutine aero_model_init( pbuf2d ) do m = 1, dust_nbin+dust_nnum dummy = trim(dust_names(m)) // 'SF' call addfld (dummy,horiz_only, 'A','kg/m2/s',trim(dust_names(m))//' dust surface emission') - if (history_aerosol.or.history_chemistry) then + if (history_aerosol) then call add_default (dummy, 1, ' ') endif enddo @@ -334,7 +334,7 @@ subroutine aero_model_init( pbuf2d ) do m = 1, seasalt_nbin dummy = trim(seasalt_names(m)) // 'SF' call addfld (dummy,horiz_only, 'A','kg/m2/s',trim(seasalt_names(m))//' seasalt surface emission') - if (history_aerosol.or.history_chemistry) then + if (history_aerosol) then call add_default (dummy, 1, ' ') endif enddo diff --git a/src/chemistry/mozart/mo_chm_diags.F90 b/src/chemistry/mozart/mo_chm_diags.F90 index 3906e5758c..20872fec41 100644 --- a/src/chemistry/mozart/mo_chm_diags.F90 +++ b/src/chemistry/mozart/mo_chm_diags.F90 @@ -523,9 +523,9 @@ subroutine chm_diags_inti if (has_drydep(spc_name)) then call addfld( depvel_name(m), horiz_only, 'A', 'cm/s', 'deposition velocity ' ) call addfld( depflx_name(m), horiz_only, 'A', 'kg/m2/s', 'dry deposition flux ' ) - if (history_chemistry) then - call add_default( depflx_name(m), 1, ' ' ) - endif + !if (history_chemistry) then + ! call add_default( depflx_name(m), 1, ' ' ) + !endif endif if (gas_wetdep_method=='MOZ') then diff --git a/src/chemistry/mozart/mo_extfrc.F90 b/src/chemistry/mozart/mo_extfrc.F90 index c1ca05aed3..ec8b09475d 100644 --- a/src/chemistry/mozart/mo_extfrc.F90 +++ b/src/chemistry/mozart/mo_extfrc.F90 @@ -205,10 +205,10 @@ subroutine extfrc_inti( extfrc_specifier, extfrc_type_in, extfrc_cycle_yr, extfr 'vertically intergrated external forcing for '//trim(spc_name) ) call addfld( trim(spc_name)//'_CMXF', horiz_only, 'A', 'kg/m2/s', & 'vertically intergrated external forcing for '//trim(spc_name) ) - if ( history_aerosol .or. history_chemistry ) then - call add_default( trim(spc_name)//'_CLXF', 1, ' ' ) - call add_default( trim(spc_name)//'_CMXF', 1, ' ' ) - endif + ! if ( history_aerosol .or. history_chemistry ) then + ! call add_default( trim(spc_name)//'_CLXF', 1, ' ' ) + ! call add_default( trim(spc_name)//'_CMXF', 1, ' ' ) + ! endif if ( history_cesm_forcing .and. spc_name == 'NO2' ) then call add_default( trim(spc_name)//'_CLXF', 1, ' ' ) call add_default( trim(spc_name)//'_CMXF', 1, ' ' ) diff --git a/src/chemistry/mozart/mo_neu_wetdep.F90 b/src/chemistry/mozart/mo_neu_wetdep.F90 index ac43f689d1..54df92eee5 100644 --- a/src/chemistry/mozart/mo_neu_wetdep.F90 +++ b/src/chemistry/mozart/mo_neu_wetdep.F90 @@ -227,9 +227,9 @@ subroutine neu_wetdep_init call addfld ('DTWR_'//trim(gas_wetdep_list(m)),(/ 'lev' /), 'A','kg/kg/s','wet removal Neu scheme tendency') call addfld ('WD_'//trim(gas_wetdep_list(m)),horiz_only, 'A','kg/m2/s','vertical integrated wet deposition flux') call addfld ('HEFF_'//trim(gas_wetdep_list(m)),(/ 'lev' /), 'A','M/atm','Effective Henrys Law coeff.') - if (history_chemistry) then - call add_default('WD_'//trim(gas_wetdep_list(m)), 1, ' ') - end if + !if (history_chemistry) then + ! call add_default('WD_'//trim(gas_wetdep_list(m)), 1, ' ') + !end if end do ! if ( do_diag ) then diff --git a/src/physics/cam/aerosol_optics_cam.F90 b/src/physics/cam/aerosol_optics_cam.F90 index 9072850674..249b69cf4c 100644 --- a/src/physics/cam/aerosol_optics_cam.F90 +++ b/src/physics/cam/aerosol_optics_cam.F90 @@ -376,49 +376,49 @@ subroutine aerosol_optics_cam_init burden_fields(n)%name(m) = fldname write(lngname,'(a,i2.2)') 'Aerosol burden bin ', m call addfld (fldname, horiz_only, 'A', 'kg/m2', lngname, flag_xyfill=.true.) - if (history_aero_optics) then - call add_default (fldname, 1, ' ') - end if + ! if (history_aero_optics) then + ! call add_default (fldname, 1, ' ') + ! end if fldname = 'AOD_'//trim(aero_props(n)%obj%bin_name(0,m)) aodbin_fields(n)%name(m) = fldname lngname = 'Aerosol optical depth, day only, 550 nm, '//trim(aero_props(n)%obj%bin_name(0,m)) call addfld (aodbin_fields(n)%name(m), horiz_only, 'A', ' ', lngname, flag_xyfill=.true.) - if (history_aero_optics) then - call add_default (fldname, 1, ' ') - end if + ! if (history_aero_optics) then + ! call add_default (fldname, 1, ' ') + ! end if write(fldname,'(a,i2.2)') 'AODDUST', cnt aoddust_fields(n)%name(m) = fldname write(lngname,'(a,i2,a)') 'Aerosol optical depth, day only, 550 nm mode ',m,' from dust' call addfld (aoddust_fields(n)%name(m), horiz_only, 'A', ' ', lngname, flag_xyfill=.true.) - if (history_aero_optics) then - call add_default (fldname, 1, ' ') - end if + ! if (history_aero_optics) then + ! call add_default (fldname, 1, ' ') + ! end if write(fldname,'(a,i2.2)') 'BURDENdn', cnt burdendn_fields(n)%name(m) = fldname write(lngname,'(a,i2)') 'Aerosol burden, day night, bin ', m call addfld (burdendn_fields(n)%name(m), horiz_only, 'A', 'kg/m2', lngname, flag_xyfill=.true.) - if (history_aero_optics) then - call add_default (fldname, 1, ' ') - end if + ! if (history_aero_optics) then + ! call add_default (fldname, 1, ' ') + ! end if fldname = 'AODdn_'//trim(aero_props(n)%obj%bin_name(0,m)) aodbindn_fields(n)%name(m) = fldname lngname = 'Aerosol optical depth 550 nm, day night, '//trim(aero_props(n)%obj%bin_name(0,m)) call addfld (aodbindn_fields(n)%name(m), horiz_only, 'A', ' ', lngname, flag_xyfill=.true.) - if (history_aero_optics) then - call add_default (fldname, 1, ' ') - end if + ! if (history_aero_optics) then + ! call add_default (fldname, 1, ' ') + ! end if write(fldname,'(a,i2.2)') 'AODdnDUST', cnt aoddustdn_fields(n)%name(m) = fldname write(lngname,'(a,i2,a)') 'Aerosol optical depth 550 nm, day night, bin ',m,' from dust' call addfld (aoddustdn_fields(n)%name(m), horiz_only, 'A', ' ', lngname, flag_xyfill=.true.) - if (history_aero_optics) then - call add_default (fldname, 1, ' ') - end if + ! if (history_aero_optics) then + ! call add_default (fldname, 1, ' ') + ! end if end do @@ -502,19 +502,19 @@ subroutine aerosol_optics_cam_init call add_default ('AODDUST03' , 1, ' ') call add_default ('ABSORB' , 1, ' ') call add_default ('AODVIS' , 1, ' ') - call add_default ('AODUV' , 1, ' ') - call add_default ('AODNIR' , 1, ' ') - call add_default ('AODABS' , 1, ' ') - call add_default ('AODABSBC' , 1, ' ') + ! call add_default ('AODUV' , 1, ' ') + ! call add_default ('AODNIR' , 1, ' ') + ! call add_default ('AODABS' , 1, ' ') + ! call add_default ('AODABSBC' , 1, ' ') call add_default ('AODDUST' , 1, ' ') - call add_default ('AODSO4' , 1, ' ') - call add_default ('AODPOM' , 1, ' ') - call add_default ('AODSOA' , 1, ' ') - call add_default ('AODBC' , 1, ' ') - call add_default ('AODSS' , 1, ' ') - call add_default ('BURDEN01' , 1, ' ') - call add_default ('BURDEN02' , 1, ' ') - call add_default ('BURDEN03' , 1, ' ') + ! call add_default ('AODSO4' , 1, ' ') + ! call add_default ('AODPOM' , 1, ' ') + ! call add_default ('AODSOA' , 1, ' ') + ! call add_default ('AODBC' , 1, ' ') + ! call add_default ('AODSS' , 1, ' ') + ! call add_default ('BURDEN01' , 1, ' ') + ! call add_default ('BURDEN02' , 1, ' ') + ! call add_default ('BURDEN03' , 1, ' ') call add_default ('BURDENDUST' , 1, ' ') call add_default ('BURDENSO4' , 1, ' ') call add_default ('BURDENPOM' , 1, ' ') @@ -522,27 +522,30 @@ subroutine aerosol_optics_cam_init call add_default ('BURDENBC' , 1, ' ') call add_default ('BURDENSEASALT', 1, ' ') call add_default ('SSAVIS' , 1, ' ') - call add_default ('EXTINCT' , 1, ' ') - call add_default ('AODxASYM' , 1, ' ') - call add_default ('EXTxASYM' , 1, ' ') + ! call add_default ('EXTINCT' , 1, ' ') + ! call add_default ('AODxASYM' , 1, ' ') + ! call add_default ('EXTxASYM' , 1, ' ') - call add_default ('AODdnDUST01' , 1, ' ') - call add_default ('AODdnDUST03' , 1, ' ') - call add_default ('ABSORBdn' , 1, ' ') + ! call add_default ('AODdnDUST01' , 1, ' ') + ! call add_default ('AODdnDUST03' , 1, ' ') + call add_default ('AODABSdn' , 1, ' ') + ! call add_default ('ABSORBdn' , 1, ' ') call add_default ('AODVISdn' , 1, ' ') + call add_default ('AODVISstdn' , 1, ' ') call add_default ('AODUVdn' , 1, ' ') - call add_default ('AODNIRdn' , 1, ' ') + call add_default ('AODUVstdn' , 1, ' ') + call add_default ('AODNIRstdn' , 1, ' ') call add_default ('AODABSdn' , 1, ' ') - call add_default ('AODABSBCdn' , 1, ' ') + ! call add_default ('AODABSBCdn' , 1, ' ') call add_default ('AODDUSTdn' , 1, ' ') call add_default ('AODSO4dn' , 1, ' ') call add_default ('AODPOMdn' , 1, ' ') call add_default ('AODSOAdn' , 1, ' ') call add_default ('AODBCdn' , 1, ' ') call add_default ('AODSSdn' , 1, ' ') - call add_default ('BURDENdn01' , 1, ' ') - call add_default ('BURDENdn02' , 1, ' ') - call add_default ('BURDENdn03' , 1, ' ') + ! call add_default ('BURDENdn01' , 1, ' ') + ! call add_default ('BURDENdn02' , 1, ' ') + ! call add_default ('BURDENdn03' , 1, ' ') call add_default ('BURDENDUSTdn' , 1, ' ') call add_default ('BURDENSO4dn' , 1, ' ') call add_default ('BURDENPOMdn' , 1, ' ') @@ -551,7 +554,9 @@ subroutine aerosol_optics_cam_init call add_default ('BURDENSEASALTdn', 1, ' ') call add_default ('SSAVISdn' , 1, ' ') call add_default ('EXTINCTdn' , 1, ' ') - call add_default ('AODxASYMdn' , 1, ' ') + call add_default ('EXTINCTUVdn' , 1, ' ') + call add_default ('EXTINCTNIRdn' , 1, ' ') + ! call add_default ('AODxASYMdn' , 1, ' ') call add_default ('EXTxASYMdn' , 1, ' ') end if diff --git a/src/physics/cam/ndrop.F90 b/src/physics/cam/ndrop.F90 index 3a2bed88c3..68894e625a 100644 --- a/src/physics/cam/ndrop.F90 +++ b/src/physics/cam/ndrop.F90 @@ -165,6 +165,7 @@ subroutine ndrop_init(aero_props) ! set the add_default fields if (history_amwg) then call add_default('CCN3', 1, ' ') + call add_default('CCN4', 1, ' ') endif end subroutine ndrop_init From 81850d584f0faa95868a85c60bc5e0914fcc6966 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Sun, 12 Apr 2026 19:47:05 -0600 Subject: [PATCH 04/10] restore some defaults; code clean up modified: bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml modified: src/chemistry/modal_aero/aero_model.F90 modified: src/chemistry/mozart/mo_chm_diags.F90 modified: src/chemistry/mozart/mo_extfrc.F90 modified: src/chemistry/mozart/mo_neu_wetdep.F90 modified: src/physics/cam/aerosol_optics_cam.F90 --- .../use_cases/1850_trop_strat_t4s_cam7.xml | 8 +-- src/chemistry/modal_aero/aero_model.F90 | 4 +- src/chemistry/mozart/mo_chm_diags.F90 | 6 +- src/chemistry/mozart/mo_extfrc.F90 | 7 +- src/chemistry/mozart/mo_neu_wetdep.F90 | 6 +- src/physics/cam/aerosol_optics_cam.F90 | 65 ++----------------- 6 files changed, 21 insertions(+), 75 deletions(-) diff --git a/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml b/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml index 79eee21f8e..efeda0c755 100644 --- a/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml +++ b/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml @@ -143,12 +143,12 @@ 'ACTNI','ACTNL','ACTREI','ACTREL','AQSO4_H2O2','AQSO4_O3','AQ_SO2','AREA','CAPE', 'FCTI','FCTL','FLASHFRQ','FLDSC','FLNR','FREQZM','FSNR','GS_SO2','H2SO4_sfnnuc1', - 'OMEGA500','PRECT','SO2_CLXF','SOLSD','SST','TFIX','TMDMS','TMO3','TMOCS','TMSO2', + 'OMEGA500','PRECT', 'SOLSD','SST','TFIX','TMDMS','TMO3','TMOCS','TMSO2', 'TMso4_a1','TMso4_a2','TMso4_a3','TMso4_a5','TREFHTMX','TROP_P','TROP_T','TROP_Z', - 'UBOT','VBOT','WD_H2SO4','WD_SO2','bc_a4_CLXF','bc_c1DDF','bc_c4DDF','dst_c1DDF', - 'dst_c2DDF','dst_c3DDF','ncl_c1DDF','ncl_c2DDF','ncl_c3DDF','num_a1_CLXF','num_a2_CLXF', + 'UBOT','VBOT','WD_H2SO4','WD_SO2', 'bc_c1DDF','bc_c4DDF','dst_c1DDF', + 'dst_c2DDF','dst_c3DDF','ncl_c1DDF','ncl_c2DDF','ncl_c3DDF', 'num_a2_sfnnuc1','num_c1DDF','num_c2DDF','num_c3DDF','num_c4DDF','pom_c1DDF', - 'pom_c4DDF','so4_a1_CLXF','so4_a1_sfgaex1','so4_a2_CLXF','so4_a2_sfgaex1', + 'pom_c4DDF', 'so4_a1_sfgaex1', 'so4_a2_sfgaex1', 'so4_a2_sfnnuc1','so4_a3_sfgaex1','so4_a5_sfgaex1','so4_c1AQH2SO4','so4_c1AQSO4', 'so4_c1DDF','so4_c2AQH2SO4','so4_c2AQSO4','so4_c2DDF','so4_c3AQH2SO4','so4_c3AQSO4', 'so4_c3DDF','so4_c5AQH2SO4','soa_a1_sfgaex1','soa_a2_sfgaex1','soa_c1DDF','soa_c2DDF', diff --git a/src/chemistry/modal_aero/aero_model.F90 b/src/chemistry/modal_aero/aero_model.F90 index 86c5e0b1b2..07ca0d84bc 100644 --- a/src/chemistry/modal_aero/aero_model.F90 +++ b/src/chemistry/modal_aero/aero_model.F90 @@ -304,7 +304,7 @@ subroutine aero_model_init( pbuf2d ) do m = 1, dust_nbin+dust_nnum dummy = trim(dust_names(m)) // 'SF' call addfld (dummy,horiz_only, 'A','kg/m2/s',trim(dust_names(m))//' dust surface emission') - if (history_aerosol) then + if (history_aerosol.or.history_chemistry) then call add_default (dummy, 1, ' ') endif enddo @@ -334,7 +334,7 @@ subroutine aero_model_init( pbuf2d ) do m = 1, seasalt_nbin dummy = trim(seasalt_names(m)) // 'SF' call addfld (dummy,horiz_only, 'A','kg/m2/s',trim(seasalt_names(m))//' seasalt surface emission') - if (history_aerosol) then + if (history_aerosol.or.history_chemistry) then call add_default (dummy, 1, ' ') endif enddo diff --git a/src/chemistry/mozart/mo_chm_diags.F90 b/src/chemistry/mozart/mo_chm_diags.F90 index 20872fec41..3906e5758c 100644 --- a/src/chemistry/mozart/mo_chm_diags.F90 +++ b/src/chemistry/mozart/mo_chm_diags.F90 @@ -523,9 +523,9 @@ subroutine chm_diags_inti if (has_drydep(spc_name)) then call addfld( depvel_name(m), horiz_only, 'A', 'cm/s', 'deposition velocity ' ) call addfld( depflx_name(m), horiz_only, 'A', 'kg/m2/s', 'dry deposition flux ' ) - !if (history_chemistry) then - ! call add_default( depflx_name(m), 1, ' ' ) - !endif + if (history_chemistry) then + call add_default( depflx_name(m), 1, ' ' ) + endif endif if (gas_wetdep_method=='MOZ') then diff --git a/src/chemistry/mozart/mo_extfrc.F90 b/src/chemistry/mozart/mo_extfrc.F90 index ec8b09475d..c57878e488 100644 --- a/src/chemistry/mozart/mo_extfrc.F90 +++ b/src/chemistry/mozart/mo_extfrc.F90 @@ -205,10 +205,9 @@ subroutine extfrc_inti( extfrc_specifier, extfrc_type_in, extfrc_cycle_yr, extfr 'vertically intergrated external forcing for '//trim(spc_name) ) call addfld( trim(spc_name)//'_CMXF', horiz_only, 'A', 'kg/m2/s', & 'vertically intergrated external forcing for '//trim(spc_name) ) - ! if ( history_aerosol .or. history_chemistry ) then - ! call add_default( trim(spc_name)//'_CLXF', 1, ' ' ) - ! call add_default( trim(spc_name)//'_CMXF', 1, ' ' ) - ! endif + if ( history_aerosol .or. history_chemistry ) then + call add_default( trim(spc_name)//'_CLXF', 1, ' ' ) + endif if ( history_cesm_forcing .and. spc_name == 'NO2' ) then call add_default( trim(spc_name)//'_CLXF', 1, ' ' ) call add_default( trim(spc_name)//'_CMXF', 1, ' ' ) diff --git a/src/chemistry/mozart/mo_neu_wetdep.F90 b/src/chemistry/mozart/mo_neu_wetdep.F90 index 54df92eee5..ac43f689d1 100644 --- a/src/chemistry/mozart/mo_neu_wetdep.F90 +++ b/src/chemistry/mozart/mo_neu_wetdep.F90 @@ -227,9 +227,9 @@ subroutine neu_wetdep_init call addfld ('DTWR_'//trim(gas_wetdep_list(m)),(/ 'lev' /), 'A','kg/kg/s','wet removal Neu scheme tendency') call addfld ('WD_'//trim(gas_wetdep_list(m)),horiz_only, 'A','kg/m2/s','vertical integrated wet deposition flux') call addfld ('HEFF_'//trim(gas_wetdep_list(m)),(/ 'lev' /), 'A','M/atm','Effective Henrys Law coeff.') - !if (history_chemistry) then - ! call add_default('WD_'//trim(gas_wetdep_list(m)), 1, ' ') - !end if + if (history_chemistry) then + call add_default('WD_'//trim(gas_wetdep_list(m)), 1, ' ') + end if end do ! if ( do_diag ) then diff --git a/src/physics/cam/aerosol_optics_cam.F90 b/src/physics/cam/aerosol_optics_cam.F90 index 249b69cf4c..cb0e33a87a 100644 --- a/src/physics/cam/aerosol_optics_cam.F90 +++ b/src/physics/cam/aerosol_optics_cam.F90 @@ -376,49 +376,31 @@ subroutine aerosol_optics_cam_init burden_fields(n)%name(m) = fldname write(lngname,'(a,i2.2)') 'Aerosol burden bin ', m call addfld (fldname, horiz_only, 'A', 'kg/m2', lngname, flag_xyfill=.true.) - ! if (history_aero_optics) then - ! call add_default (fldname, 1, ' ') - ! end if fldname = 'AOD_'//trim(aero_props(n)%obj%bin_name(0,m)) aodbin_fields(n)%name(m) = fldname lngname = 'Aerosol optical depth, day only, 550 nm, '//trim(aero_props(n)%obj%bin_name(0,m)) call addfld (aodbin_fields(n)%name(m), horiz_only, 'A', ' ', lngname, flag_xyfill=.true.) - ! if (history_aero_optics) then - ! call add_default (fldname, 1, ' ') - ! end if write(fldname,'(a,i2.2)') 'AODDUST', cnt aoddust_fields(n)%name(m) = fldname write(lngname,'(a,i2,a)') 'Aerosol optical depth, day only, 550 nm mode ',m,' from dust' call addfld (aoddust_fields(n)%name(m), horiz_only, 'A', ' ', lngname, flag_xyfill=.true.) - ! if (history_aero_optics) then - ! call add_default (fldname, 1, ' ') - ! end if write(fldname,'(a,i2.2)') 'BURDENdn', cnt burdendn_fields(n)%name(m) = fldname write(lngname,'(a,i2)') 'Aerosol burden, day night, bin ', m call addfld (burdendn_fields(n)%name(m), horiz_only, 'A', 'kg/m2', lngname, flag_xyfill=.true.) - ! if (history_aero_optics) then - ! call add_default (fldname, 1, ' ') - ! end if fldname = 'AODdn_'//trim(aero_props(n)%obj%bin_name(0,m)) aodbindn_fields(n)%name(m) = fldname lngname = 'Aerosol optical depth 550 nm, day night, '//trim(aero_props(n)%obj%bin_name(0,m)) call addfld (aodbindn_fields(n)%name(m), horiz_only, 'A', ' ', lngname, flag_xyfill=.true.) - ! if (history_aero_optics) then - ! call add_default (fldname, 1, ' ') - ! end if write(fldname,'(a,i2.2)') 'AODdnDUST', cnt aoddustdn_fields(n)%name(m) = fldname write(lngname,'(a,i2,a)') 'Aerosol optical depth 550 nm, day night, bin ',m,' from dust' call addfld (aoddustdn_fields(n)%name(m), horiz_only, 'A', ' ', lngname, flag_xyfill=.true.) - ! if (history_aero_optics) then - ! call add_default (fldname, 1, ' ') - ! end if end do @@ -498,54 +480,20 @@ subroutine aerosol_optics_cam_init end if if (history_aero_optics) then - call add_default ('AODDUST01' , 1, ' ') - call add_default ('AODDUST03' , 1, ' ') - call add_default ('ABSORB' , 1, ' ') - call add_default ('AODVIS' , 1, ' ') - ! call add_default ('AODUV' , 1, ' ') - ! call add_default ('AODNIR' , 1, ' ') - ! call add_default ('AODABS' , 1, ' ') - ! call add_default ('AODABSBC' , 1, ' ') - call add_default ('AODDUST' , 1, ' ') - ! call add_default ('AODSO4' , 1, ' ') - ! call add_default ('AODPOM' , 1, ' ') - ! call add_default ('AODSOA' , 1, ' ') - ! call add_default ('AODBC' , 1, ' ') - ! call add_default ('AODSS' , 1, ' ') - ! call add_default ('BURDEN01' , 1, ' ') - ! call add_default ('BURDEN02' , 1, ' ') - ! call add_default ('BURDEN03' , 1, ' ') - call add_default ('BURDENDUST' , 1, ' ') - call add_default ('BURDENSO4' , 1, ' ') - call add_default ('BURDENPOM' , 1, ' ') - call add_default ('BURDENSOA' , 1, ' ') - call add_default ('BURDENBC' , 1, ' ') - call add_default ('BURDENSEASALT', 1, ' ') - call add_default ('SSAVIS' , 1, ' ') - ! call add_default ('EXTINCT' , 1, ' ') - ! call add_default ('AODxASYM' , 1, ' ') - ! call add_default ('EXTxASYM' , 1, ' ') - - ! call add_default ('AODdnDUST01' , 1, ' ') - ! call add_default ('AODdnDUST03' , 1, ' ') call add_default ('AODABSdn' , 1, ' ') - ! call add_default ('ABSORBdn' , 1, ' ') + call add_default ('ABSORBdn' , 1, ' ') call add_default ('AODVISdn' , 1, ' ') - call add_default ('AODVISstdn' , 1, ' ') + call add_default ('AODVISstdn' , 1, ' ') call add_default ('AODUVdn' , 1, ' ') - call add_default ('AODUVstdn' , 1, ' ') - call add_default ('AODNIRstdn' , 1, ' ') + call add_default ('AODUVstdn' , 1, ' ') + call add_default ('AODNIRstdn' , 1, ' ') call add_default ('AODABSdn' , 1, ' ') - ! call add_default ('AODABSBCdn' , 1, ' ') call add_default ('AODDUSTdn' , 1, ' ') call add_default ('AODSO4dn' , 1, ' ') call add_default ('AODPOMdn' , 1, ' ') call add_default ('AODSOAdn' , 1, ' ') call add_default ('AODBCdn' , 1, ' ') call add_default ('AODSSdn' , 1, ' ') - ! call add_default ('BURDENdn01' , 1, ' ') - ! call add_default ('BURDENdn02' , 1, ' ') - ! call add_default ('BURDENdn03' , 1, ' ') call add_default ('BURDENDUSTdn' , 1, ' ') call add_default ('BURDENSO4dn' , 1, ' ') call add_default ('BURDENPOMdn' , 1, ' ') @@ -554,9 +502,8 @@ subroutine aerosol_optics_cam_init call add_default ('BURDENSEASALTdn', 1, ' ') call add_default ('SSAVISdn' , 1, ' ') call add_default ('EXTINCTdn' , 1, ' ') - call add_default ('EXTINCTUVdn' , 1, ' ') - call add_default ('EXTINCTNIRdn' , 1, ' ') - ! call add_default ('AODxASYMdn' , 1, ' ') + call add_default ('EXTINCTUVdn' , 1, ' ') + call add_default ('EXTINCTNIRdn' , 1, ' ') call add_default ('EXTxASYMdn' , 1, ' ') end if From f59b54cd344090acb07149e6f26207d18fa5a598 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Mon, 20 Apr 2026 16:41:23 -0600 Subject: [PATCH 05/10] add 1850 aux_cam test --- cime_config/testdefs/testlist_cam.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cime_config/testdefs/testlist_cam.xml b/cime_config/testdefs/testlist_cam.xml index a0620c5f70..e2d9e9d74b 100644 --- a/cime_config/testdefs/testlist_cam.xml +++ b/cime_config/testdefs/testlist_cam.xml @@ -2003,6 +2003,16 @@ + + + + + + + + + + From 3b221496a4d970f01ef76a7299f338dd50d06947 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Tue, 21 Apr 2026 13:30:39 -0600 Subject: [PATCH 06/10] cam7 default namelist updates modified: bld/namelist_files/namelist_defaults_cam.xml modified: bld/namelist_files/use_cases/1850_cam_lt.xml modified: bld/namelist_files/use_cases/1850_cam_mt.xml modified: bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml modified: bld/namelist_files/use_cases/hist_cam_lt.xml modified: bld/namelist_files/use_cases/hist_cam_mt.xml modified: bld/namelist_files/use_cases/waccm_ma_hist_cam7.xml modified: bld/namelist_files/use_cases/waccm_sc_hist_cam7.xml --- bld/namelist_files/namelist_defaults_cam.xml | 5 +++-- bld/namelist_files/use_cases/1850_cam_lt.xml | 1 - bld/namelist_files/use_cases/1850_cam_mt.xml | 1 - bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml | 5 ++--- bld/namelist_files/use_cases/hist_cam_lt.xml | 1 - bld/namelist_files/use_cases/hist_cam_mt.xml | 1 - bld/namelist_files/use_cases/waccm_ma_hist_cam7.xml | 3 +-- bld/namelist_files/use_cases/waccm_sc_hist_cam7.xml | 1 - 8 files changed, 6 insertions(+), 12 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 14f7a587d1..3a3ed8b563 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -714,7 +714,8 @@ atm/cam/ggas/ghg_hist_1765-2005_c091218.nc atm/waccm/lb/LBC_1765-2100_1.9x2.5_CCMI_RCP60_za_RNOCStrend_c141002.nc -atm/waccm/lb/LBC_17500116-20150116_CMIP6_0p5degLat_c180905.nc +atm/waccm/lb/LBC_17500116-20150116_CMIP6_0p5degLat_c180905.nc +atm/waccm/lb/CMIP7/LBC_17500116-20221216_CMIP7_0p5degLat_OCSupdate_c250523.nc atm/cam/ggas/emissions-cmip6_CO2_anthro_surface_175001-201512_fv_0.9x1.25_c20181011.nc @@ -2603,7 +2604,7 @@ 1.62D0 0.90D0 1.00D0 -1.50D0 +1.55D0 1.10D0 0.60D0 diff --git a/bld/namelist_files/use_cases/1850_cam_lt.xml b/bld/namelist_files/use_cases/1850_cam_lt.xml index a361ddd5d5..410607c93a 100644 --- a/bld/namelist_files/use_cases/1850_cam_lt.xml +++ b/bld/namelist_files/use_cases/1850_cam_lt.xml @@ -7,7 +7,6 @@ FIXED -atm/waccm/lb/CMIP7/LBC_17500116-20221216_CMIP7_0p5degLat_c250326.nc 1850 'CYCLICAL' 'CO2','CH4','N2O','CFC11','CFC12','CFC11eq' diff --git a/bld/namelist_files/use_cases/1850_cam_mt.xml b/bld/namelist_files/use_cases/1850_cam_mt.xml index 7286bc7c65..ce3ac3c227 100644 --- a/bld/namelist_files/use_cases/1850_cam_mt.xml +++ b/bld/namelist_files/use_cases/1850_cam_mt.xml @@ -7,7 +7,6 @@ FIXED -atm/waccm/lb/CMIP7/LBC_17500116-20221216_CMIP7_0p5degLat_c250326.nc 1850 'CYCLICAL' 'CO2','CH4','N2O','CFC11','CFC12','CFC11eq' diff --git a/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml b/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml index efeda0c755..bf255bfb24 100644 --- a/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml +++ b/bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml @@ -109,10 +109,9 @@ CYCLICAL 1850 -atm/waccm/lb/CMIP7/LBC_17500116-20221216_CMIP7_0p5degLat_c250326.nc - 'CCL4', 'CF2CLBR', 'CF3BR', 'CFC11', 'CFC113', 'CFC12', 'CH3BR', 'CH3CCL3', 'CH3CL', 'CH4', 'CO2', 'H2', - 'HCFC22', 'N2O', 'CFC114', 'CFC115', 'HCFC141B', 'HCFC142B', 'H2402', 'OCS', 'SF6', 'CFC11eq' + 'CCL4', 'CF2CLBR', 'CF3BR', 'CFC11', 'CFC113', 'CFC12', 'CH3BR', 'CH3CCL3', 'CH3CL', 'CH4', 'CO2', 'H2', + 'HCFC22', 'N2O', 'CFC114', 'CFC115', 'HCFC141B', 'HCFC142B', 'CH2BR2', 'CHBR3', 'H2402', 'OCS', 'SF6', 'CFC11eq' diff --git a/bld/namelist_files/use_cases/hist_cam_lt.xml b/bld/namelist_files/use_cases/hist_cam_lt.xml index c5496281a9..79da9c39c7 100644 --- a/bld/namelist_files/use_cases/hist_cam_lt.xml +++ b/bld/namelist_files/use_cases/hist_cam_lt.xml @@ -7,7 +7,6 @@ atm/cam/solar/SolarForcingCMIP7-4.6_18491230-20240101_sumEPP_c20250630.nc -atm/waccm/lb/CMIP7/LBC_17500116-20221216_CMIP7_0p5degLat_c250326.nc 'SERIAL' 'CO2','CH4','N2O','CFC11','CFC12','CFC11eq' diff --git a/bld/namelist_files/use_cases/hist_cam_mt.xml b/bld/namelist_files/use_cases/hist_cam_mt.xml index 5faa24d9f5..da584cf842 100644 --- a/bld/namelist_files/use_cases/hist_cam_mt.xml +++ b/bld/namelist_files/use_cases/hist_cam_mt.xml @@ -7,7 +7,6 @@ atm/cam/solar/SolarForcingCMIP7-4.6_18491230-20240101_sumEPP_c20250630.nc -atm/waccm/lb/CMIP7/LBC_17500116-20221216_CMIP7_0p5degLat_c250326.nc 'SERIAL' 'CO2','CH4','N2O','CFC11','CFC12','CFC11eq' diff --git a/bld/namelist_files/use_cases/waccm_ma_hist_cam7.xml b/bld/namelist_files/use_cases/waccm_ma_hist_cam7.xml index 915ccd5245..358765b64b 100644 --- a/bld/namelist_files/use_cases/waccm_ma_hist_cam7.xml +++ b/bld/namelist_files/use_cases/waccm_ma_hist_cam7.xml @@ -22,10 +22,9 @@ SERIAL -atm/waccm/lb/CMIP7/LBC_17500116-20221216_CMIP7_0p5degLat_c250326.nc 'CCL4', 'CF2CLBR', 'CF3BR', 'CFC11', 'CFC113', 'CFC12', 'CH3BR', 'CH3CCL3', 'CH3CL', 'CH4', 'CO2', 'H2', - 'HCFC22', 'N2O', 'CFC114', 'CFC115', 'HCFC141B', 'HCFC142B', 'CH2BR2', 'CHBR3', 'H2402', 'OCS', 'CFC11eq' + 'HCFC22', 'N2O', 'CFC114', 'CFC115', 'HCFC141B', 'HCFC142B', 'CH2BR2', 'CHBR3', 'H2402', 'OCS', 'SF6', 'CFC11eq' diff --git a/bld/namelist_files/use_cases/waccm_sc_hist_cam7.xml b/bld/namelist_files/use_cases/waccm_sc_hist_cam7.xml index 32753d17ad..4f592c3886 100644 --- a/bld/namelist_files/use_cases/waccm_sc_hist_cam7.xml +++ b/bld/namelist_files/use_cases/waccm_sc_hist_cam7.xml @@ -18,7 +18,6 @@ SERIAL -atm/waccm/lb/CMIP7/LBC_17500116-20221216_CMIP7_0p5degLat_c250326.nc 'CO2','CH4','N2O','CFC11','CFC12','CFC11eq' From f04005f53028191a9d12805859256c02fb0e2c9a Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Tue, 21 Apr 2026 14:45:54 -0600 Subject: [PATCH 07/10] corrections to hist t4s use case --- bld/namelist_files/use_cases/hist_trop_strat_t4s_cam7.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/bld/namelist_files/use_cases/hist_trop_strat_t4s_cam7.xml b/bld/namelist_files/use_cases/hist_trop_strat_t4s_cam7.xml index e3879c5f1d..90cd5513d9 100644 --- a/bld/namelist_files/use_cases/hist_trop_strat_t4s_cam7.xml +++ b/bld/namelist_files/use_cases/hist_trop_strat_t4s_cam7.xml @@ -15,10 +15,9 @@ SERIAL -atm/waccm/lb/LBC_17500116-25001216_CMIP6_SSP585_0p5degLat_c20200824.nc - 'CCL4', 'CF2CLBR', 'CF3BR', 'CFC11', 'CFC113', 'CFC12', 'CH3BR', 'CH3CCL3', 'CH3CL', 'CH4', 'CO2', 'H2', - 'HCFC22', 'N2O', 'CFC114', 'CFC115', 'HCFC141B', 'HCFC142B', 'H2402', 'OCS', 'SF6', 'CFC11eq' + 'CCL4', 'CF2CLBR', 'CF3BR', 'CFC11', 'CFC113', 'CFC12', 'CH3BR', 'CH3CCL3', 'CH3CL', 'CH4', 'CO2', 'H2', + 'HCFC22', 'N2O', 'CFC114', 'CFC115', 'HCFC141B', 'HCFC142B', 'CH2BR2', 'CHBR3', 'H2402', 'OCS', 'SF6', 'CFC11eq' From fa58f64b0b43cc34af96b22f3598e7397743a6d4 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Wed, 22 Apr 2026 06:33:52 -0600 Subject: [PATCH 08/10] restore _CMXF history default modified: src/chemistry/mozart/mo_extfrc.F90 --- src/chemistry/mozart/mo_extfrc.F90 | 1 + 1 file changed, 1 insertion(+) diff --git a/src/chemistry/mozart/mo_extfrc.F90 b/src/chemistry/mozart/mo_extfrc.F90 index c57878e488..c1ca05aed3 100644 --- a/src/chemistry/mozart/mo_extfrc.F90 +++ b/src/chemistry/mozart/mo_extfrc.F90 @@ -207,6 +207,7 @@ subroutine extfrc_inti( extfrc_specifier, extfrc_type_in, extfrc_cycle_yr, extfr 'vertically intergrated external forcing for '//trim(spc_name) ) if ( history_aerosol .or. history_chemistry ) then call add_default( trim(spc_name)//'_CLXF', 1, ' ' ) + call add_default( trim(spc_name)//'_CMXF', 1, ' ' ) endif if ( history_cesm_forcing .and. spc_name == 'NO2' ) then call add_default( trim(spc_name)//'_CLXF', 1, ' ' ) From 4c9ac76dd8cbdfb75aff459a7ea60e1c5b89a15a Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Thu, 23 Apr 2026 07:54:09 -0600 Subject: [PATCH 09/10] ChangeLog --- doc/ChangeLog | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index e012f7f77d..f7323902e5 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,5 +1,163 @@ =============================================================== +Tag name: cam6_4_167 +Originator(s): fvitt +Date: 23 Apr 2025 +One-line Summary: Updates for cam7 compsets +Github PR URL: https://github.com/ESCOMP/CAM/pull/1534 + +Purpose of changes (include the issue number and title text for each relevant GitHub issue): + + Update LBC file for cam7 compsets #1539 + Update default namelist settings for 1850 MTt4s and adjust default history fields #1527 + Improve error messaging in O2 chemistry #1528 + +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, tilmes, cecilehannay + +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/namelist_files/namelist_defaults_cam.xml + - update cam7 default namelist settings + +M bld/namelist_files/use_cases/1850_cam_lt.xml +M bld/namelist_files/use_cases/1850_cam_mt.xml +M bld/namelist_files/use_cases/hist_cam_lt.xml +M bld/namelist_files/use_cases/hist_cam_mt.xml +M bld/namelist_files/use_cases/waccm_sc_hist_cam7.xml + - default LBC file is now specified in namelist_defaults_cam.xml + +M bld/namelist_files/use_cases/1850_trop_strat_t4s_cam7.xml + - namelist updates for 1850 MTt4s + +M bld/namelist_files/use_cases/waccm_ma_hist_cam7.xml +M bld/namelist_files/use_cases/hist_trop_strat_t4s_cam7.xml + - update flbc_list + +M cime_config/testdefs/testlist_cam.xml + - add test for 1850 MTt4s + +M src/chemistry/mozart/mo_jshort.F90 + - improve error checking and reporting + +M src/physics/cam/aerosol_optics_cam.F90 + - modify history_aero_optics default fields + +M src/physics/cam/ndrop.F90 + - include CCN4 in history_amwg default fields + +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: + + DIFF ERC_D_Ln9.mpasa120_mpasa120.FHISTC_LTso.derecho_intel.cam-outfrq9s_mpasa120 + DIFF ERP_D_Ln9.ne30pg3_ne30pg3_mt232.F1850C_MTso.derecho_intel.cam-outfrq9s + DIFF ERP_Ld3.ne16pg3_ne16pg3_mg17.FHISTC_WAt1ma.derecho_intel.cam-reduced_hist1d + DIFF ERP_Ld3.ne30pg3_ne30pg3_mt232.FHISTC_MTt4s.derecho_intel.cam-outfrq1d_aoa + DIFF ERR_Ln9.ne16pg3_ne16pg3_mt232.FHISTC_LTso.derecho_intel.cam-outfrq9s_bwic + DIFF ERS_Ln9.ne30pg3_ne30pg3_mg17.FHISTC_WXma.derecho_intel.cam-outfrq9s_ctem + DIFF SMS_C2_D_Ln9.ne16pg3_ne16pg3_mg17.FHISTC_WXma.derecho_intel.cam-outfrq9s + DIFF SMS_D_Ln9.ne30pg3_ne30pg3_mt232.FHISTC_MTso.derecho_intel.cam-outfrq9s + DIFF SMS_D_Ln9_P1280x1.ne30pg3_ne30pg3_mt232.FHISTC_MTt1s.derecho_intel.cam-outfrq9s_Leung_dust + DIFF ERP_Ln9.ne30pg3_ne30pg3_mg17.FHISTC_WAma.derecho_intel.cam-outfrq9s + - expected differences due to updates in LBC file and seasalt_emis_scale factor + + DIFF SMS_D_Ln9.ne30pg3_ne30pg3_mt232.1850C_CAM70%MT%CT4S2_CLM60%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV_SESP.derecho_intel.cam-outfrq9s + - new test -- no baselines to compare against + + DIFF ERC_D_Ln9.f09_f09_mt232.FHIST_BDRD.derecho_intel.cam-outfrq9s + DIFF ERC_D_Ln9.f19_f19_mt232.QPC6.derecho_intel.cam-outfrq3s_cosp + DIFF ERC_D_Ln9.mpasa120_mpasa120.F2000climo.derecho_intel.cam-outfrq9s_mpasa120 + DIFF ERC_Ln9.C96_C96_mt232.F2000climo.derecho_intel.cam-outfrq9s + DIFF ERI_D_Ln18.f09_f09_mt232.FHIST.derecho_intel.cam-outfrq3s_eri + DIFF ERI_D_Ln18.f19_f19_mt232.FHIST_C5.derecho_intel.cam-outfrq3s_eri + DIFF ERP_D_Ln9_P64x2.f09_f09_mg17.QSC6.derecho_intel.cam-outfrq9s + DIFF ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s + DIFF ERP_Ln9.f19_f19_mg17.FWsc1850.derecho_intel.cam-outfrq9s + DIFF ERP_Ln9.ne30pg3_ne30pg3_mg17.FCnudged.derecho_intel.cam-outfrq9s + DIFF ERS_Ln9.f09_f09_mg17.FX2000.derecho_intel.cam-outfrq9s + DIFF ERS_Ln9.f19_f19_mg17.FXSD.derecho_intel.cam-outfrq9s + DIFF SMS_D_Ln9.f09_f09_mg17.FCts2nudged.derecho_intel.cam-outfrq9s_leapday + DIFF SMS_D_Ln9.f09_f09_mg17.FCvbsxHIST.derecho_intel.cam-outfrq9s + DIFF SMS_D_Ln9.f09_f09_mg17.FSD.derecho_intel.cam-outfrq9s + DIFF SMS_D_Ln9.f19_f19_mg17.FCARMA2000climo.derecho_intel.cam-outfrq9s + DIFF SMS_D_Ln9.f19_f19_mg17.FCHIST_SLH.derecho_intel.cam-outfrq9s + DIFF SMS_D_Ln9.f19_f19_mg17.FWma2000climo.derecho_intel.cam-outfrq9s + DIFF SMS_D_Ln9.f19_f19_mg17.FWma2000climo.derecho_intel.cam-outfrq9s_waccm_ma_mam4 + DIFF SMS_D_Ln9.f19_f19_mg17.QPC2000climo.derecho_intel.cam-outfrq3s_usecase + DIFF SMS_D_Ln9.f19_f19_mt232.FHIST_C5.derecho_intel.cam-mam7 + DIFF SMS_D_Ln9.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.derecho_intel.cam-outfrq9s + DIFF SMS_Ld1.f09_f09_mg17.FCHIST_GC.derecho_intel.cam-outfrq1d + DIFF SMS_Ld1.f09_f09_mg17.FW2000climo.derecho_intel.cam-outfrq1d + DIFF SMS_Ld1.ne30pg3_ne30pg3_mg17.FC2010climo.derecho_intel.cam-outfrq1d + DIFF SMS_Lh12.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq3h + DIFF SMS_Ln9.ne30pg3_ne30pg3_mg17.FW2000climo.derecho_intel.cam-outfrq9s_rrtmgp + DIFF SMS_D_Ln9_P1536x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s + - differ only in field list, otherwise bit-for-bit + +derecho/nvhpc/aux_cam: + FAIL ERS_Ln9.ne30pg3_ne30pg3_mt232.FHISTC_LTso.derecho_nvhpc.cam-outfrq9s_gpu_default COMPARE_base_rest + - pre-existing restart test failure + + FAIL ERS_Ln9.ne30pg3_ne30pg3_mt232.FHISTC_LTso.derecho_nvhpc.cam-outfrq9s_gpu_default NLCOMP + FAIL ERS_Ln9.ne30pg3_ne30pg3_mt232.FHISTC_LTso.derecho_nvhpc.cam-outfrq9s_gpu_default BASELINE /glade/campaign/cesm/community/amwg/cam_baselines/cam6_4_166_nvhpc: DIFF + - expected differences due to updates in LBC file and seasalt_emis_scale factor + +izumi/nag/aux_cam: + FAIL ERC_D_Ln9.f10_f10_mt232.FHIST_C5.izumi_nag.cam-outfrq3s_subcol + - pre-existing failure -- see https://github.com/ESCOMP/CAM/issues/1514 + + DIFF ERC_D_Ln9.ne3pg3_ne3pg3_mt232.FHISTC_LTso.izumi_nag.cam-outfrq9s_nochem + DIFF ERC_D_Ln9.ne3pg3_ne3pg3_mt232.FHISTC_LTso.izumi_nag.cam-cosp_rad_diags + - expected differences due to updates in LBC file and seasalt_emis_scale factor + + DIFF ERC_D_Ln9.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s + DIFF ERC_D_Ln9.f10_f10_mt232.FHIST.izumi_nag.cam-outfrq3s_cospsathist + DIFF SMS_D_Ln9.f10_f10_mt232.F1850.izumi_nag.cam-outfrq9s + DIFF TMC_D_Ln9.f10_f10_mt232.FHIST_C5.izumi_nag.cam-mc_ttrac + - differ only in field list, otherwise bit-for-bit + +izumi/gnu/aux_cam: + DIFF ERC_D_Ln9.C48_C48_mg17.QPC6.izumi_gnu.cam-outfrq9s + DIFF ERC_D_Ln9.f10_f10_mg37.QPC4.izumi_gnu.cam-outfrq3s_diags + DIFF ERC_D_Ln9.f19_f19_mt232.FHIST.izumi_gnu.cam-lonlat_fv_diags + DIFF ERC_D_Ln9.ne3pg3_ne3pg3_mt232.FHIST_C5.izumi_gnu.cam-carma_cosp_rad_diag_mam + DIFF ERC_D_Ln9.ne3pg3_ne3pg3_mt232.QPC5.izumi_gnu.cam-outfrq9s + DIFF ERS_Ln9_P24x1.mpasa480_mpasa480.F2000climo.izumi_gnu.cam-outfrq9s_mpasa480 + DIFF PLB_D_Ln9.f10_f10_mt232.FHIST_C5.izumi_gnu.cam-ttrac_loadbal0 + DIFF PLB_D_Ln9.f10_f10_mt232.FHIST_C5.izumi_gnu.cam-ttrac_loadbal1 + DIFF PLB_D_Ln9.f10_f10_mt232.FHIST_C5.izumi_gnu.cam-ttrac_loadbal3 + DIFF SMS_D_Ln9.f10_f10_mg37.FWmaHIST.izumi_gnu.cam-outfrq9s_mee_fluxes + DIFF SUB_D_Ln9.ne3pg3_ne3pg3_mt232.FHIST.izumi_gnu.cam-outfrq9s + - differ only in field list, otherwise bit-for-bit + + DIFF ERC_D_Ln9.mpasa480_mpasa480_mt232.FHISTC_LTso.izumi_gnu.cam-outfrq9s_mpasa480 + DIFF ERC_D_Ln9.ne3pg3_ne3pg3_mt232.FHISTC_LTso.izumi_gnu.cam-sat_lcltod + - expected differences due to updates in LBC file and seasalt_emis_scale factor + + NLFAIL SMS_D_Ln3.ne3pg3_ne3pg3_mt232.PC7.izumi_gnu.cam-pc7_ne3pg3 + - new LBC file + +Summarize any changes to answers: + Large than round-off due to updates in LBC file and seasalt_emis_scale factor + +=============================================================== +=============================================================== + Tag name: cam6_4_166 Originator(s): huebleruwm, adamrher, cacraigucar Date: April 21, 2026 From d5c2969c290222f0ebf6a80ace58b11f1aa56e9d Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Thu, 23 Apr 2026 08:02:23 -0600 Subject: [PATCH 10/10] ChangeLog update --- doc/ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index f7323902e5..8c95de1e3c 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -2,7 +2,7 @@ Tag name: cam6_4_167 Originator(s): fvitt -Date: 23 Apr 2025 +Date: 23 Apr 2026 One-line Summary: Updates for cam7 compsets Github PR URL: https://github.com/ESCOMP/CAM/pull/1534