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.nc atm/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.nc atm/cam/inic/se/ape_cam6_ne5np4_L32_c170517.nc atm/cam/inic/se/ape_cam6_ne16np4_L32_c170509.nc atm/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_cam6 aquaplanet_cam6 aquaplanet_rce_cam6 + aquaplanet_cam7 aquaplanet_waccm_2000 2010_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 + + QPC2000climo 2000_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