diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml
index 462570da4a..1ac3b4d3a6 100644
--- a/bld/namelist_files/namelist_defaults_cam.xml
+++ b/bld/namelist_files/namelist_defaults_cam.xml
@@ -264,8 +264,6 @@
atm/cam/inic/se/ape_cam5_ne120np4_L30_c170419.ncatm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L32_01-01-31_c221214.nc
-atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L58_01-01-31_c221214.nc
-atm/cam/inic/se/cam6_QPC6_aqua_ne3pg3_mg37_L93_01_02_01_c240518.ncatm/cam/inic/se/ape_cam6_ne5np4_L32_c170517.ncatm/cam/inic/se/ape_cam6_ne16np4_L32_c170509.ncatm/cam/inic/se/ape_cam6_ne30np4_L32_c170509.nc
diff --git a/bld/namelist_files/use_cases/aquaplanet_cam7.xml b/bld/namelist_files/use_cases/aquaplanet_cam7.xml
new file mode 100644
index 0000000000..8e1c9fba5a
--- /dev/null
+++ b/bld/namelist_files/use_cases/aquaplanet_cam7.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+atm/cam/inic/se/QPLT_L58_ne3pg3_c241127.nc
+atm/cam/inic/se/QPLT_L58_ne30pg3_c241127.nc
+atm/cam/inic/se/QPMT_L93_ne3pg3_c241223.nc
+atm/cam/inic/se/QPMT_L93_ne30pg3_c241223.nc
+
+
+0.
+0.
+0.
+fixed_parameters
+
+
+ false
+
+
+1.650e-6
+0.306e-6
+348.0e-6
+0.0
+0.0
+
+
+atm/cam/solar/ape_solar_ave_tsi_1365.nc
+
+
+apeozone_cam3_5_54.nc
+aquaplanet_ozone_hightop_c20180412.nc
+atm/cam/ozone
+OZONE
+CYCLICAL
+1990
+
+
+86164.10063718943
+6.37100e6
+9.79764
+28.96623324623746
+18.01618112892741
+1.846e3
+
+.false.
+
+.true.
+.true.
+ ""
+ ""
+ ""
+ ""
+ ""
+
+ 0.0
+
+
+ 'A:Q:H2O', 'N:O2:O2', 'N:CO2:CO2', 'N:ozone:O3',
+ 'N:N2O:N2O', 'N:CH4:CH4', 'N:CFC11:CFC11', 'N:CFC12:CFC12'
+
+
diff --git a/cime_config/config_component.xml b/cime_config/config_component.xml
index 2ab0a50558..45b2506bbf 100644
--- a/cime_config/config_component.xml
+++ b/cime_config/config_component.xml
@@ -204,6 +204,7 @@
-aquaplanet-aquaplanet
+ -chem none-offline_drv rad
@@ -255,6 +256,7 @@
aquaplanet_cam6aquaplanet_cam6aquaplanet_rce_cam6
+ aquaplanet_cam7aquaplanet_waccm_20002010_cam6
diff --git a/cime_config/config_compsets.xml b/cime_config/config_compsets.xml
index c04f925dda..31eba44982 100644
--- a/cime_config/config_compsets.xml
+++ b/cime_config/config_compsets.xml
@@ -291,6 +291,16 @@
+
+ QPLT
+ 2000_CAM70%LT_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
+
+
+
+ QPMT
+ 2000_CAM70%MT_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
+
+
QPC2000climo2000_CAM60%CT1S_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
diff --git a/cime_config/testdefs/testlist_cam.xml b/cime_config/testdefs/testlist_cam.xml
index d4fc9d40a8..d0789ac1f3 100644
--- a/cime_config/testdefs/testlist_cam.xml
+++ b/cime_config/testdefs/testlist_cam.xml
@@ -49,7 +49,7 @@
-
+
@@ -59,7 +59,7 @@
-
+
@@ -161,7 +161,6 @@
-
@@ -191,13 +190,42 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2127,15 +2155,7 @@
-
-
-
-
-
-
-
-
-
+
diff --git a/cime_config/testdefs/testmods_dirs/cam/dae/shell_commands b/cime_config/testdefs/testmods_dirs/cam/dae/shell_commands
deleted file mode 100644
index f091402c1d..0000000000
--- a/cime_config/testdefs/testmods_dirs/cam/dae/shell_commands
+++ /dev/null
@@ -1,6 +0,0 @@
-# Test CAM post-Data Assimilation handling
-SRCROOT="`./xmlquery --value COMP_ROOT_DIR_ATM`"
-DAFILE="${SRCROOT}/test/system/da_cam_no_data_mod.sh"
-./xmlchange DATA_ASSIMILATION_SCRIPT=${DAFILE}
-# Turn off any use case
-./xmlchange CAM_NML_USE_CASE="UNSET"
diff --git a/cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cam b/cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cam
deleted file mode 100644
index f837808297..0000000000
--- a/cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cam
+++ /dev/null
@@ -1,4 +0,0 @@
-! CAM history files have different names when DA is active so turn them off
-nhtfrq = 0,-10000,-10000,-10000,-10000,-10000
-fexcl1 = 'OMEGA','OMEGAT','PHIS','PS','PSL','QRS','T','U','UU','V','VT','VU','VV','Z3'
-fexcl2 = 'T','U','V'
diff --git a/cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cpl b/cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cpl
deleted file mode 100644
index 398535cf65..0000000000
--- a/cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cpl
+++ /dev/null
@@ -1,2 +0,0 @@
-reprosum_diffmax=1.0e-14
-reprosum_recompute=.true.
diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/shell_commands b/cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/shell_commands
index 09a1939ddb..11a171a04e 100644
--- a/cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/shell_commands
+++ b/cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/shell_commands
@@ -1,8 +1,7 @@
CAM_CONFIG_OPTS=`./xmlquery CAM_CONFIG_OPTS --value`
if [[ $CAM_CONFIG_OPTS != *"-cosp"* ]]; then
- ./xmlchange -append CAM_CONFIG_OPTS="-cosp"
+ ./xmlchange --append CAM_CONFIG_OPTS="-cosp"
fi
./xmlchange ROF_NCPL=\$ATM_NCPL
./xmlchange GLC_NCPL=\$ATM_NCPL
-./xmlchange CAM_NML_USE_CASE=UNSET
./xmlchange RUN_STARTDATE="19950101"
diff --git a/cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/user_nl_cam b/cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/user_nl_cam
index ddff96685c..a2a8169e6f 100644
--- a/cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/user_nl_cam
+++ b/cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/user_nl_cam
@@ -2,4 +2,5 @@ mfilt=1,1,1,1,1,1
ndens=1,1,1,1,1,1
nhtfrq=3,3,3,3,3,3
inithist='ENDOFRUN'
-fexcl1='CFAD_DBZE94_CS','CLDTOT_CALCS','CLD_CAL_NOTCS','CS_MIXCERT','CS_MIXPOSS','CS_NOPRECIP','CS_PIA','CS_RAINPOSS','CS_RAINPROB'
+fexcl1='CFAD_DBZE94_CS','CLDTOT_CALCS','CLD_CAL_NOTCS','CS_MIXCERT','CS_MIXPOSS','CS_NOPRECIP','CS_PIA',
+ 'CS_RAINPOSS','CS_RAINPROB','CS_SNOWCERT','CS_SNOWPOSS'
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 87cb50a54a..625bc0dbbb 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,5 +1,202 @@
===============================================================
+Tag name: cam6_4_055
+Originator(s): eaton
+Date: 13 January 2025
+One-line Summary: Add QPLT and QPMT compsets, plus misc.
+Github PR URL: https://github.com/ESCOMP/CAM/pull/1203
+
+Purpose of changes (include the issue number and title text for each relevant GitHub issue):
+
+Issue #814 - Introduce QPC7 and possibly QPS7 aquaplanet compsets
+ - Analogous to FLT and FMT compset names, create QPLT and QPMT compsets.
+ - Open new issue to address QPS7.
+ - The new aquaplanet configurations use '-chem none' to eliminate the
+ aerosols. This is much faster and requires much less memory than a
+ configuration that leaves the default chemistry in place and removes
+ aerosols by zeroing the initial concentrations and emission sources.
+
+Issue #1159 - Prealpha tests exceeding wallclock
+ - increased time limit to 20 minutes for these prealpha tests:
+ ERP_Ln9.f09_f09_mg17.FHIST_BGC.derecho_intel.cam-outfrq9s
+ ERP_Ln9.f09_f09_mg17.FHIST.derecho_intel.cam-outfrq9s
+
+Issue #670 - DAE test broken
+ - ChangeLog indicates that this test has never worked since it was added
+ in cam6_2_046 (2020-09-01). Test removed.
+
+Issue #807 - add UT and UQ to cam_diagnostics
+ - Add UT and UQ. Note that other possible fields mentioned in the issue,
+ i.e., OMEGA2, OMEGAQ, OMEGAU, and OMEGAV, are already implemented.
+ OMEGA2 is called OMGAOMGA.
+
+Describe any changes made to build system: none
+
+Describe any changes made to the namelist: none
+
+List any changes to the defaults for the boundary datasets:
+. add spun up initial files for QPLT compset on ne3pg3 and ne30pg3 grids.
+ atm/cam/inic/se/QPLT_L58_ne3pg3_c241127.nc
+ atm/cam/inic/se/QPLT_L58_ne30pg3_c241127.nc
+
+. add spun up initial files for QPMT compset on ne3pg3 and ne30pg3 grids.
+ atm/cam/inic/se/QPMT_L93_ne3pg3_c241223.nc
+ atm/cam/inic/se/QPMT_L93_ne30pg3_c241223.nc
+
+. add ozone dataset for high top aquaplanet runs
+ atm/cam/ozone/aquaplanet_ozone_hightop_c20180412.nc
+
+Describe any substantial timing or memory changes: n/a
+
+Code reviewed by: cacraig
+
+List all files eliminated:
+
+cime_config/testdefs/testmods_dirs/cam/dae/shell_commands
+cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cam
+cime_config/testdefs/testmods_dirs/cam/dae/user_nl_cpl
+test/system/da_cam_no_data_mod.sh
+. DAE test removed
+
+List all files added and what they do: none
+
+List all existing files that have been modified, and describe the changes:
+
+bld/namelist_files/namelist_defaults_cam.xml
+. Remove ncdata files for nlev=58 and nlev=93 aquaplanet. Those files are
+ specified in the aquaplanet_cam7.xml use case file.
+
+bld/namelist_files/use_cases/aquaplanet_cam7.xml
+. use case file for QPLT and QPMT. Same as for QPC6 except:
+ - set f11vmr=f12vmr=0 to override the non-zero default values from
+ namelist_defaults_cam.xml.
+ - set prescribed_aero_file="" and prescribed_aero_specifier="" to
+ override the default bulk aerosol settings from build-namelist.
+ - set rad_climate to just make the GHGs radiatively active to override
+ the default build-namelist setting which includes bulk aerosols.
+ - Add spun-up IC files. This allows us to remove the ic_ymd attribute
+ which should not be needed for aquaplanet runs. Removing ic_ymd
+ enables testing with arbitrary start dates.
+ - Add ozone dataset for high top aquaplanet configuration
+
+cime_config/config_component.xml
+. CAM_CONFIG_OPTS
+ - add match for _CAM70.*_SLND_SICE_DOCN%AQP to set '-chem none'
+. CAM_NML_USE_CASE
+ - add match for 2000_CAM70.*_SLND_SICE_DOCN%AQP to use aquaplanet_cam7.
+ This match will work for both %LT and %MT configs.
+
+cime_config/config_compsets.xml
+. add QPLT = 2000_CAM70%LT_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
+. add QPMT = 2000_CAM70%MT_SLND_SICE_DOCN%AQP3_SROF_SGLC_SWAV
+
+cime_config/testdefs/testlist_cam.xml
+. increase time limit to 20 minutes for these prealpha tests:
+ ERP_Ln9.f09_f09_mg17.FHIST_BGC.derecho_intel.cam-outfrq9s
+ ERP_Ln9.f09_f09_mg17.FHIST.derecho_intel.cam-outfrq9s
+. remove non-working DAE test
+. replace ERP_D_Ln9.f19_f19_mg17.QPC6.derecho_intel.cam-outfrq9s
+ by ERP_D_Ln9.ne30pg3_ne30pg3_mg17.QPLT.derecho_intel.cam-outfrq3s_cosp
+. Add ERP_D_Ln9.ne30pg3_ne30pg3_mg17.QPMT.derecho_intel.cam-outfrq9s
+. replace ERP_D_Ln9.ne3pg3_ne3pg3_mg37.QPC6.izumi_gnu.cam-outfrq9s_rrtmgp
+ by ERP_D_Ln9.ne3pg3_ne3pg3_mg37.QPLT.izumi_gnu.cam-outfrq9s
+. Add ERP_D_Ln9.ne3pg3_ne3pg3_mg37.QPMT.izumi_gnu.cam-outfrq9s
+
+cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/shell_commands
+. remove "./xmlchange CAM_NML_USE_CASE=UNSET"
+
+cime_config/testdefs/testmods_dirs/cam/outfrq3s_cosp/user_nl_cam
+. add CS_SNOWCERT and CS_SNOWPOSS to fexcl1
+
+src/chemistry/mozart/mo_drydep.F90
+. get_landuse_and_soilw_from_file
+ - restrict the INFO messages to only print from masterproc
+
+src/physics/cam/cam_diagnostics.F90
+. diag_init_dry
+ - add addfld call for UT, and corresponding add_default for UT inside the
+ history_eddy conditional.
+. diag_phys_writeout_dry
+ - add calculation and outfld call for UT
+. diag_init_moist
+ - add addfld call for UQ, and corresponding add_default for UQ inside the
+ history_eddy conditional.
+. diag_phys_writeout_moist
+ - add calculation and outfld call for UQ
+
+src/physics/cam/microp_aero.F90
+. microp_aero_run
+ - add condition that number of bulk aerosols must be > 0 before calling
+ ndrop_bam_run.
+
+src/physics/cam/nucleate_ice_cam.F90
+. nucleate_ice_cam_calc
+ - add conditionals so naer2 array not referenced when there are no
+ aerosols.
+
+src/physics/cam/vertical_diffusion.F90
+. vertical_diffusion_init
+ - fix conditional around add_default call for UFLX and VFLX so those
+ fields aren't added if they're not computed.
+
+src/physics/cam7/physpkg.F90
+. tphysbc
+ - add conditionals so modal aerosol calculations only called when modal
+ aerosols are present.
+
+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:
+
+ERC_D_Ln9.f19_f19_mg17.QPC6.derecho_intel.cam-outfrq3s_cosp (Overall: DIFF)
+- diffs due to changing the test definition (in outfrq3s_cosp) so that the use case file,
+ aquaplanet_cam6.xml, is no longer ignored. This changes answers.
+
+ERP_D_Ln9.ne30pg3_ne30pg3_mg17.QPLT.derecho_intel.cam-outfrq3s_cosp (Overall: DIFF)
+ERP_D_Ln9.ne30pg3_ne30pg3_mg17.QPMT.derecho_intel.cam-outfrq9s (Overall: DIFF)
+- There are no baselines for these new tests.
+
+ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s (Overall: FAIL)
+- pre-existing failure due to HEMCO not having reproducible results issues #1018 and #856
+
+SMS_D_Ln9.f19_f19_mg17.FXHIST.derecho_intel.cam-outfrq9s_amie (Overall: FAIL)
+SMS_D_Ln9_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s (Overall: FAIL)
+- pre-existing failures due to build-namelist error requiring CLM/CTSM external update.
+
+derecho/nvhpc/aux_cam:
+
+ERS_Ln9.ne30pg3_ne30pg3_mg17.F2000dev.derecho_nvhpc.cam-outfrq9s_gpu_default (Overall: FAIL)
+- pre-existing failure -- issue #1220
+
+izumi/nag/aux_cam:
+
+ERC_D_Ln9.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_cosp (Overall: DIFF) details:
+- diffs due to changing the test definition (in outfrq3s_cosp) so that the use case file,
+ aquaplanet_cam5.xml, is no longer ignored. This changes answers.
+
+izumi/gnu/aux_cam:
+
+ERC_D_Ln9.f10_f10_mg37.QPC4.izumi_gnu.cam-outfrq3s_diags (Overall: DIFF)
+- Diff is due to the new diagnostic fields UT and UQ being included in the
+ test. Otherwise the run is identical with the baseline.
+
+ERP_D_Ln9.ne3pg3_ne3pg3_mg37.QPLT.izumi_gnu.cam-outfrq9s (Overall: DIFF)
+ERP_D_Ln9.ne3pg3_ne3pg3_mg37.QPMT.izumi_gnu.cam-outfrq9s (Overall: DIFF)
+- There are no baselines for these new tests.
+
+CAM tag used for the baseline comparison tests if different than previous
+tag:
+
+Summarize any changes to answers: BFB. Note however that a change in the
+ test definition for outfrq3s_cosp causes answer changes for tests
+ using that testmod.
+
+===============================================================
+===============================================================
+
Tag name: cam6_4_054
Originator(s): nusbaume
Date: 9 Jan 2025
@@ -366,6 +563,7 @@ Summarize any changes to answers:
===============================================================
===============================================================
+
Tag name: cam6_4_050
Originator(s): jimmielin
Date: 31 Dec 2024
diff --git a/src/chemistry/mozart/mo_drydep.F90 b/src/chemistry/mozart/mo_drydep.F90
index 06b87797c4..12e1d3e0a9 100644
--- a/src/chemistry/mozart/mo_drydep.F90
+++ b/src/chemistry/mozart/mo_drydep.F90
@@ -520,11 +520,13 @@ subroutine get_landuse_and_soilw_from_file()
logical :: lexist
if (len_trim(drydep_srf_file) == 0) then
- write(iulog,*)'**************************************'
- write(iulog,*)' get_landuse_and_soilw_from_file: INFO:'
- write(iulog,*)' drydep_srf_file not set:'
- write(iulog,*)' setting fraction_landuse to zero'
- write(iulog,*)'**************************************'
+ if (masterproc) then
+ write(iulog,*)'**************************************'
+ write(iulog,*)' get_landuse_and_soilw_from_file: INFO:'
+ write(iulog,*)' drydep_srf_file not set:'
+ write(iulog,*)' setting fraction_landuse to zero'
+ write(iulog,*)'**************************************'
+ end if
fraction_landuse = 0._r8
return
end if
@@ -536,12 +538,14 @@ subroutine get_landuse_and_soilw_from_file()
call infld('fraction_landuse', piofile, 'ncol','class',1,pcols,1,n_land_type, begchunk,endchunk, &
fraction_landuse, readvar, gridname='physgrid')
if (.not. readvar) then
- write(iulog,*)'**************************************'
- write(iulog,*)'get_landuse_and_soilw_from_file: INFO:'
- write(iulog,*)' fraction_landuse not read from file: '
- write(iulog,*)' ', trim(locfn)
- write(iulog,*)' setting all values to zero'
- write(iulog,*)'**************************************'
+ if (masterproc) then
+ write(iulog,*)'**************************************'
+ write(iulog,*)'get_landuse_and_soilw_from_file: INFO:'
+ write(iulog,*)' fraction_landuse not read from file: '
+ write(iulog,*)' ', trim(locfn)
+ write(iulog,*)' setting all values to zero'
+ write(iulog,*)'**************************************'
+ end if
fraction_landuse = 0._r8
end if
diff --git a/src/physics/cam/cam_diagnostics.F90 b/src/physics/cam/cam_diagnostics.F90
index 082a2df9d8..d7539fd9af 100644
--- a/src/physics/cam/cam_diagnostics.F90
+++ b/src/physics/cam/cam_diagnostics.F90
@@ -253,6 +253,7 @@ subroutine diag_init_dry(pbuf2d)
call addfld ('OMEGAV', (/ 'lev' /), 'A', 'm Pa/s2 ', 'Vertical flux of meridional momentum' )
call addfld ('OMGAOMGA', (/ 'lev' /), 'A', 'Pa2/s2', 'Vertical flux of vertical momentum' )
+ call addfld ('UT', (/ 'lev' /), 'A', 'K m/s ', 'Zonal heat transport')
call addfld ('UU', (/ 'lev' /), 'A', 'm2/s2', 'Zonal velocity squared' )
call addfld ('WSPEED', (/ 'lev' /), 'X', 'm/s', 'Horizontal total wind speed maximum' )
call addfld ('WSPDSRFMX', horiz_only, 'X', 'm/s', 'Horizontal total wind speed maximum at surface layer midpoint' )
@@ -339,6 +340,7 @@ subroutine diag_init_dry(pbuf2d)
call add_default ('VT ', 1, ' ')
call add_default ('VU ', 1, ' ')
call add_default ('VV ', 1, ' ')
+ call add_default ('UT ', 1, ' ')
call add_default ('UU ', 1, ' ')
call add_default ('OMEGAT ', 1, ' ')
call add_default ('OMEGAU ', 1, ' ')
@@ -438,6 +440,7 @@ subroutine diag_init_moist(pbuf2d)
! outfld calls in diag_phys_writeout
call addfld ('OMEGAQ', (/ 'lev' /), 'A', 'kgPa/kgs', 'Vertical water transport' )
+ call addfld ('UQ', (/ 'lev' /), 'A', 'm/skg/kg', 'Zonal water transport')
call addfld ('VQ', (/ 'lev' /), 'A', 'm/skg/kg', 'Meridional water transport')
call addfld ('QQ', (/ 'lev' /), 'A', 'kg2/kg2', 'Eddy moisture variance')
@@ -611,6 +614,7 @@ subroutine diag_init_moist(pbuf2d)
end if
if (history_eddy) then
+ call add_default ('UQ ', 1, ' ')
call add_default ('VQ ', 1, ' ')
endif
@@ -1017,6 +1021,9 @@ subroutine diag_phys_writeout_dry(state, pbuf, p_surf_t)
!
! zonal advection
!
+ ftem(:ncol,:) = state%u(:ncol,:)*state%t(:ncol,:)
+ call outfld ('UT ',ftem ,pcols ,lchnk )
+
ftem(:ncol,:) = state%u(:ncol,:)**2
call outfld ('UU ',ftem ,pcols ,lchnk )
@@ -1281,9 +1288,10 @@ subroutine diag_phys_writeout_moist(state, pbuf, p_surf_t)
call outfld('PDELDRY', state%pdeldry, pcols, lchnk)
call outfld('PDEL', state%pdel, pcols, lchnk)
- !
- ! Meridional advection fields
- !
+
+ ftem(:ncol,:) = state%u(:ncol,:)*state%q(:ncol,:,ixq)
+ call outfld ('UQ ',ftem ,pcols ,lchnk )
+
ftem(:ncol,:) = state%v(:ncol,:)*state%q(:ncol,:,ixq)
call outfld ('VQ ',ftem ,pcols ,lchnk )
diff --git a/src/physics/cam/microp_aero.F90 b/src/physics/cam/microp_aero.F90
index 51303e1830..38079466af 100644
--- a/src/physics/cam/microp_aero.F90
+++ b/src/physics/cam/microp_aero.F90
@@ -756,7 +756,7 @@ subroutine microp_aero_run ( &
do k = top_lev, pver
do i = 1, ncol
- if (state1%q(i,k,cldliq_idx) >= qsmall) then
+ if (naer_all > 0 .and. state1%q(i,k,cldliq_idx) >= qsmall) then
! get droplet activation rate
diff --git a/src/physics/cam/nucleate_ice_cam.F90 b/src/physics/cam/nucleate_ice_cam.F90
index 41cea58b38..bd0a8b6636 100644
--- a/src/physics/cam/nucleate_ice_cam.F90
+++ b/src/physics/cam/nucleate_ice_cam.F90
@@ -607,12 +607,18 @@ subroutine nucleate_ice_cam_calc( &
else
! for bulk model
- dust_num_col(:ncol,:) = naer2(:ncol,:,idxdst1)/25._r8 * per_cm3 & ! #/cm3
- + naer2(:ncol,:,idxdst2)/25._r8 * per_cm3 &
- + naer2(:ncol,:,idxdst3)/25._r8 * per_cm3 &
- + naer2(:ncol,:,idxdst4)/25._r8 * per_cm3
- sulf_num_col(:ncol,:) = naer2(:ncol,:,idxsul)/25._r8 * per_cm3
- soot_num_col(:ncol,:) = naer2(:ncol,:,idxbcphi)/25._r8 * per_cm3
+ if (idxdst1 > 0 .and. idxdst2 > 0 .and. idxdst3 > 0 .and. idxdst4 > 0) then
+ dust_num_col(:ncol,:) = naer2(:ncol,:,idxdst1)/25._r8 * per_cm3 & ! #/cm3
+ + naer2(:ncol,:,idxdst2)/25._r8 * per_cm3 &
+ + naer2(:ncol,:,idxdst3)/25._r8 * per_cm3 &
+ + naer2(:ncol,:,idxdst4)/25._r8 * per_cm3
+ end if
+ if (idxsul > 0) then
+ sulf_num_col(:ncol,:) = naer2(:ncol,:,idxsul)/25._r8 * per_cm3
+ end if
+ if (idxbcphi > 0) then
+ soot_num_col(:ncol,:) = naer2(:ncol,:,idxbcphi)/25._r8 * per_cm3
+ end if
endif
kloop: do k = top_lev, pver
diff --git a/src/physics/cam/vertical_diffusion.F90 b/src/physics/cam/vertical_diffusion.F90
index 472b2a5501..e2d571a4de 100644
--- a/src/physics/cam/vertical_diffusion.F90
+++ b/src/physics/cam/vertical_diffusion.F90
@@ -619,8 +619,10 @@ subroutine vertical_diffusion_init(pbuf2d)
endif
if (history_eddy) then
- call add_default( 'UFLX ', 1, ' ' )
- call add_default( 'VFLX ', 1, ' ' )
+ if (.not. do_pbl_diags) then
+ call add_default( 'UFLX ', 1, ' ' )
+ call add_default( 'VFLX ', 1, ' ' )
+ end if
endif
if( history_budget ) then
diff --git a/src/physics/cam7/physpkg.F90 b/src/physics/cam7/physpkg.F90
index 7cc7946b9f..e58f6399b8 100644
--- a/src/physics/cam7/physpkg.F90
+++ b/src/physics/cam7/physpkg.F90
@@ -2882,8 +2882,10 @@ subroutine tphysbc (ztodt, state, &
! Run wet deposition routines to intialize aerosols
!===================================================
- call modal_aero_calcsize_diag(state, pbuf)
- call modal_aero_wateruptake_dr(state, pbuf)
+ if (clim_modal_aero) then
+ call modal_aero_calcsize_diag(state, pbuf)
+ call modal_aero_wateruptake_dr(state, pbuf)
+ end if
!===================================================
! Radiation computations
diff --git a/test/system/da_cam_no_data_mod.sh b/test/system/da_cam_no_data_mod.sh
deleted file mode 100755
index ef5313d4cc..0000000000
--- a/test/system/da_cam_no_data_mod.sh
+++ /dev/null
@@ -1,95 +0,0 @@
-#! /bin/bash
-
-##############################################################################
-###
-### A stub data assimilation script that prints out information but makes
-### no modifications to model data.
-### Script checks for proper pre and post data assimilation output
-### Tests using this script should be BFB with a non-data assimilation run
-###
-##############################################################################
-
-errcode=0
-if [ $# -ne 2 ]; then
- echo "ERROR: Wrong number of arguments, $# (should be 2)"
- errcode=$(( errcode + 1 ))
-else
- caseroot=$1
- cycle=$2
- echo "caseroot: ${caseroot}"
- echo "cycle: ${cycle}"
- cd ${caseroot}
- res=$?
- if [ $res -ne 0 ]; then
- echo "ERROR: Unable to cd to caseroot, ${caseroot}"
- errcode=$(( errcode + 1 ))
- else
- ./xmlchange DATA_ASSIMILATION_ATM=TRUE
- res=$?
- if [ $res -ne 0 ]; then
- echo "ERROR: Unable to change DATA_ASSIMILATION_ATM to TRUE"
- errcode=$(( errcode + 1 ))
- fi
- rundir="`./xmlquery --value RUNDIR`"
- ninst=`./xmlquery --value NINST_ATM`
- if [ -n "${rundir}" -a -d "${rundir}" ]; then
- cd ${rundir}
- res=$?
- if [ $res -ne 0 ]; then
- echo "ERROR: Unable to cd to rundir, ${rundir}"
- errcode=$(( errcode + 1 ))
- else
- # Check the latest log file for a resume signal
- if [ $ninst -eq 1 ]; then
- lfiles="`ls -t atm.log.* 2> /dev/null | head -1`"
- else
- # Multi-instance, look for wav_nnnn.log*
- for inst in `seq 1 $ninst`; do
- ifilename="`printf "atm_%04d.log.*" $inst`"
- ifile="`ls -t ${ifilename} 2> /dev/null | head -1`"
- if [ -z "${ifile}" ]; then
- echo "No log files for instance $ninst found"
- errcode=$(( errcode + 1 ))
- elif [ -z "${lfiles}" ]; then
- lfiles="${ifile}"
- else
- lfiles="${lfiles} ${ifile}"
- fi
- done
- fi
- if [ -z "${lfiles}" ]; then
- echo "ERROR: Unable to find atm log file in `pwd -P`"
- errcode=$(( errcode + 1 ))
- else
- for atmfile in ${lfiles}; do
- dasig="`zgrep '^[ ]*DART run using CAM initial mode$' ${atmfile} 2> /dev/null`"
- initsig="`zgrep '^[ ]*Initial run$' ${atmfile} 2> /dev/null`"
- if [ $cycle -gt 0 ]; then
- if [ -n "${dasig}" ]; then
- echo "Post-DA resume signal found for cycle ${cycle}"
- else
- echo "No post-DA resume signal for cycle ${cycle}"
- fi
- elif [ -n "${dasig}" ]; then
- echo "Bad Post-DA resume signal found for cycle ${cycle}"
- fi
- if [ $cycle -eq 0 ]; then
- if [ -n "${initsig}" ]; then
- echo "Initial run signal found for cycle ${cycle}"
- else
- echo "No initial run signal found for cycle ${cycle}"
- fi
- elif [ -n "${initsig}" ]; then
- echo "Bad initial run signal found for cycle ${cycle}"
- fi
- done
- fi
- fi
- else
- echo "ERROR: RUNDIR (${rundir}) is not a valid directory"
- errcode=$(( errcode + 1 ))
- fi
- fi
-fi
-
-exit $errcode