From 4bded6fac75bb6a887a02dac59e69648e4ea366c Mon Sep 17 00:00:00 2001
From: Brian Eaton <eaton@alum.mit.edu>
Date: Tue, 9 Jul 2024 14:04:51 -0400
Subject: [PATCH 1/3] use conv_water calcs in COSP

---
 doc/ChangeLog                          | 77 ++++++++++++++++++++++++++
 src/control/cam_snapshot_common.F90    | 22 +++-----
 src/physics/cam/cloud_diagnostics.F90  | 23 ++++++--
 src/physics/cam/conv_water.F90         | 35 +++++-------
 src/physics/cam/cospsimulator_intr.F90 | 43 +++++++-------
 src/physics/cam/zm_conv_intr.F90       | 14 -----
 6 files changed, 138 insertions(+), 76 deletions(-)

diff --git a/doc/ChangeLog b/doc/ChangeLog
index da9cb012c1..1ea6b30039 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,5 +1,82 @@
 ===============================================================
 
+Tag name:
+Originator(s): eaton
+Date:
+One-line Summary: Use same cloud water for radiation and COSP.
+Github PR URL:
+
+Purpose of changes (include the issue number and title text for each relevant GitHub issue):
+
+Issue #1027 - Radiatively active cloud water missing from COSP.
+
+The all-cloud liquid and ice mixing ratios calculated in the conv_water module are
+used by the radiation code.  Use these same quantities in the COSP code by
+making them accessable via the physics buffer.
+
+resolves #1027
+
+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: none
+
+Describe any substantial timing or memory changes: none
+
+Code reviewed by:
+
+List all files eliminated: none
+
+List all files added and what they do: none
+
+List all existing files that have been modified, and describe the changes:
+
+src/control/cam_snapshot_common.F90
+. remove pbuf fields DP_CLDLIQ, DP_CLDICE, SH_CLDLIQ1, SH_CLDICE1
+
+src/physics/cam/conv_water.F90
+. add GB_TOTCLDLIQMR, GB_TOTCLDICEMR to pbuf
+. remove SH_CLDLIQ1, SH_CLDICE1 from pbuf
+. conv_water_4rad
+  - remove dummy args totg_liq and totg_ice and replace assignment to those
+    args by assignment to the pbuf variables GB_TOTCLDLIQMR and
+    GB_TOTCLDICEMR
+
+src/physics/cam/cloud_diagnostics.F90
+. access the pbuf fields GB_TOTCLDLIQMR and GB_TOTCLDICEMR which are set by
+  the calls to conv_water_4rad
+
+src/physics/cam/cospsimulator_intr.F90
+. replace access of pbuf fields DP_CLDLIQ, DP_CLDICE, SH_CLDLIQ1, and
+  SH_CLDICE1, by GB_TOTCLDLIQMR and GB_TOTCLDICEMR
+. assign the total cloud mixing ratios to the arguments for the large scale
+  values, and set the convective cloud inputs to zero.
+
+src/physics/cam/zm_conv_intr.F90
+. remove pbuf fields DP_CLDLIQ and DP_CLDICE which were set to 0. and being
+  used as if they had real data by COSP.
+
+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:
+
+izumi/nag/aux_cam:
+
+izumi/gnu/aux_cam:
+
+CAM tag used for the baseline comparison tests if different than previous
+tag:
+
+Summarize any changes to answers: BFB.  Only COSP diagnostic fields have
+differences. 
+
+===============================================================
+===============================================================
+
 Tag name: cam6_4_006
 Originator(s): pel, eaton
 Date: 3 July 2024
diff --git a/src/control/cam_snapshot_common.F90 b/src/control/cam_snapshot_common.F90
index f2a4780619..a4ac1b2009 100644
--- a/src/control/cam_snapshot_common.F90
+++ b/src/control/cam_snapshot_common.F90
@@ -48,7 +48,7 @@ module cam_snapshot_common
 
 
 ! This is the number of pbuf fields in the CAM code that are declared with the fieldname as opposed to being data driven.
-integer, parameter :: npbuf_all = 327
+integer, parameter :: npbuf_all = 323
 
 type snapshot_type
   character(len=40)  :: ddt_string
@@ -1335,8 +1335,6 @@ subroutine fill_pbuf_info(pbuf_info, pbuf, const_cname)
           'DLFZM                  ','kg/kg/s                ',&
           'DNIFZM                 ','1/kg/s                 ',&
           'DNLFZM                 ','1/kg/s                 ',&
-          'DP_CLDICE              ','unset                  ',&
-          'DP_CLDLIQ              ','unset                  ',&
           'DP_FLXPRC              ','unset                  ',&
           'DP_FLXSNW              ','unset                  ',&
           'DP_FRAC                ','unset                  ',&
@@ -1427,11 +1425,11 @@ subroutine fill_pbuf_info(pbuf_info, pbuf, const_cname)
           'QCWAT                  ','unset                  ',&
           'QFLX                   ','kg/m2/s                ',&
           'QFLX_RES               ','unset                  ',&
-          'QINI                   ','unset                  '  /),    (/2,100/))
+          'QINI                   ','unset                  ',&
+          'qir_det                ','kg/kg                  ',&
+          'QIST                   ','unset                  '/),  (/2,100/))
 
      pbuf_all(1:2,201:300) = reshape ( (/  &
-          'qir_det                ','kg/kg                  ',&
-          'QIST                   ','unset                  ',&
           'qlr_det                ','kg/kg                  ',&
           'QLST                   ','unset                  ',&
           'QME                    ','unset                  ',&
@@ -1470,9 +1468,7 @@ subroutine fill_pbuf_info(pbuf_info, pbuf, const_cname)
           'SD                     ','unset                  ',&
           'SGH30                  ','unset                  ',&
           'SGH                    ','unset                  ',&
-          'SH_CLDICE1             ','unset                  ',&
           'SH_CLDICE              ','unset                  ',&
-          'SH_CLDLIQ1             ','unset                  ',&
           'SH_CLDLIQ              ','unset                  ',&
           'SH_E_ED_RATIO          ','unset                  ',&
           'SHFLX                  ','W/m2                   ',&
@@ -1529,13 +1525,13 @@ subroutine fill_pbuf_info(pbuf_info, pbuf, const_cname)
           'UP2_nadv               ','unset                  ',&
           'UPWP                   ','m^2/s^2                ',&
           'UZM                    ','M/S                    ',&
-          'VI                     ','m/s                    '    /),                  (/2,100/))
-
-     pbuf_all(1:2,301:npbuf_all) = reshape ( (/  &
+          'VI                     ','m/s                    ',&
           'VM                     ','m/s                    ',&
           'VOLC_MMR               ','unset                  ',&
           'VOLC_RAD_GEOM          ','unset                  ',&
-          'VP2_nadv               ','unset                  ',&
+          'VP2_nadv               ','unset                  '/),  (/2,100/))
+
+     pbuf_all(1:2,301:npbuf_all) = reshape ( (/  &
           'VPWP                   ','m^2/s^2                ',&
           'went                   ','m/s                    ',&
           'WETDENS_AP             ','unset                  ',&
@@ -1558,7 +1554,7 @@ subroutine fill_pbuf_info(pbuf_info, pbuf, const_cname)
           'ZM_MAXG                ','unset                  ',&
           'ZM_MD                  ','unset                  ',&
           'ZM_MU                  ','unset                  ',&
-          'ZTODT                  ','unset                  '  /),                     (/2,27/))
+          'ZTODT                  ','unset                  '/),  (/2,23/))
 
 ! Fields which are added with pbuf_add_field calls, but are data driven.  These are not
 ! included in the above list.  This means that these fields will not have proper units
diff --git a/src/physics/cam/cloud_diagnostics.F90 b/src/physics/cam/cloud_diagnostics.F90
index f7a5115914..2f7d0215cf 100644
--- a/src/physics/cam/cloud_diagnostics.F90
+++ b/src/physics/cam/cloud_diagnostics.F90
@@ -39,6 +39,8 @@ module cloud_diagnostics
    integer :: cldtau_idx = -1
    integer :: nmxrgn_idx = -1
    integer :: pmxrgn_idx = -1
+   integer :: gb_totcldliqmr_idx = -1
+   integer :: gb_totcldicemr_idx = -1
 
    ! Index fields for precipitation efficiency.
    integer :: acpr_idx, acgcme_idx, acnum_idx
@@ -100,6 +102,10 @@ subroutine cloud_diagnostics_init()
     !-----------------------------------------------------------------------
 
     cld_idx    = pbuf_get_index('CLD')
+    ! grid box total cloud liquid water mixing ratio (kg/kg)
+    gb_totcldliqmr_idx = pbuf_get_index('GB_TOTCLDLIQMR')
+    ! grid box total cloud ice water mixing ratio (kg/kg)
+    gb_totcldicemr_idx = pbuf_get_index('GB_TOTCLDICEMR')
 
     call phys_getopts(use_spcam_out=use_spcam)
 
@@ -245,6 +251,9 @@ subroutine cloud_diagnostics_calc(state,  pbuf)
     integer,  pointer :: nmxrgn(:)      ! Number of maximally overlapped regions
     real(r8), pointer :: pmxrgn(:,:)    ! Maximum values of pressure for each
 
+    real(r8), pointer :: totg_ice(:,:)  ! grid box total cloud ice mixing ratio
+    real(r8), pointer :: totg_liq(:,:)  ! grid box total cloud liquid mixing ratio
+    
     integer :: itim_old
 
     real(r8) :: cwp   (pcols,pver)      ! in-cloud cloud (total) water path
@@ -297,6 +306,9 @@ subroutine cloud_diagnostics_calc(state,  pbuf)
     itim_old = pbuf_old_tim_idx()
     call pbuf_get_field(pbuf, cld_idx, cld, start=(/1,1,itim_old/), kount=(/pcols,pver,1/) )
 
+    call pbuf_get_field(pbuf, gb_totcldicemr_idx, totg_ice)
+    call pbuf_get_field(pbuf, gb_totcldliqmr_idx, totg_liq)
+
     if(two_mom_clouds)then
 
        call pbuf_get_field(pbuf, iclwp_idx, iclwp )
@@ -362,10 +374,9 @@ subroutine cloud_diagnostics_calc(state,  pbuf)
        ! iclwp and iciwp to pass to the radiation.                   !
        ! ----------------------------------------------------------- !
        if( conv_water_in_rad /= 0 ) then
-          allcld_ice(:ncol,:) = 0._r8 ! Grid-avg all cloud liquid
-          allcld_liq(:ncol,:) = 0._r8 ! Grid-avg all cloud ice
-    
-          call conv_water_4rad(state, pbuf, allcld_liq, allcld_ice)
+          call conv_water_4rad(state, pbuf)
+          allcld_ice(:ncol,:) = totg_ice(:ncol,:) ! Grid-avg all cloud liquid
+          allcld_liq(:ncol,:) = totg_liq(:ncol,:) ! Grid-avg all cloud ice
        else
           allcld_liq(:ncol,top_lev:pver) = state%q(:ncol,top_lev:pver,ixcldliq)  ! Grid-ave all cloud liquid
           allcld_ice(:ncol,top_lev:pver) = state%q(:ncol,top_lev:pver,ixcldice)  !           "        ice
@@ -410,7 +421,9 @@ subroutine cloud_diagnostics_calc(state,  pbuf)
     elseif(one_mom_clouds) then
 
        if (conv_water_in_rad /= 0) then
-          call conv_water_4rad(state, pbuf, allcld_liq, allcld_ice)
+          call conv_water_4rad(state, pbuf)
+          allcld_ice(:ncol,:) = totg_ice(:ncol,:) ! Grid-avg all cloud liquid
+          allcld_liq(:ncol,:) = totg_liq(:ncol,:) ! Grid-avg all cloud ice
        else
           allcld_liq = state%q(:,:,ixcldliq)
           allcld_ice = state%q(:,:,ixcldice)
diff --git a/src/physics/cam/conv_water.F90 b/src/physics/cam/conv_water.F90
index dfcdb7be98..d848895366 100644
--- a/src/physics/cam/conv_water.F90
+++ b/src/physics/cam/conv_water.F90
@@ -3,7 +3,7 @@ module conv_water
    ! --------------------------------------------------------------------- ! 
    ! Purpose:                                                              !
    ! Computes grid-box average liquid (and ice) from stratus and cumulus   !
-   ! Just for the purposes of radiation.                                   !
+   ! These values used by both the radiation and the COSP diagnostics.     !
    !                                                                       ! 
    ! Method:                                                               !
    ! Extract information about deep+shallow liquid and cloud fraction from !
@@ -38,9 +38,10 @@ module conv_water
 ! pbuf indices
 
   integer :: icwmrsh_idx, icwmrdp_idx, fice_idx, sh_frac_idx, dp_frac_idx, &
-             ast_idx, sh_cldliq1_idx, sh_cldice1_idx, rei_idx
+             ast_idx, rei_idx
 
   integer :: ixcldice, ixcldliq
+  integer :: gb_totcldliqmr_idx, gb_totcldicemr_idx
 
 ! Namelist
 integer, parameter :: unset_int = huge(1)
@@ -113,11 +114,10 @@ subroutine conv_water_register
 
   !-----------------------------------------------------------------------
 
-    ! these calls were already done in convect_shallow...so here I add the same fields to the physics buffer with a "1" at the end
-! shallow gbm cloud liquid water (kg/kg)
-    call pbuf_add_field('SH_CLDLIQ1','physpkg',dtype_r8,(/pcols,pver/),sh_cldliq1_idx)  
-! shallow gbm cloud ice water (kg/kg)
-    call pbuf_add_field('SH_CLDICE1','physpkg',dtype_r8,(/pcols,pver/),sh_cldice1_idx)  
+    ! grid box total cloud liquid water mixing ratio (kg/kg)
+    call pbuf_add_field('GB_TOTCLDLIQMR', 'physpkg', dtype_r8, (/pcols,pver/), gb_totcldliqmr_idx)  
+    ! grid box total cloud ice water mixing ratio (kg/kg)
+    call pbuf_add_field('GB_TOTCLDICEMR', 'physpkg', dtype_r8, (/pcols,pver/), gb_totcldicemr_idx)  
 
   end subroutine conv_water_register
 
@@ -168,7 +168,7 @@ subroutine conv_water_init()
 
    end subroutine conv_water_init
 
-   subroutine conv_water_4rad(state, pbuf, totg_liq, totg_ice)
+   subroutine conv_water_4rad(state, pbuf)
 
    ! --------------------------------------------------------------------- ! 
    ! Purpose:                                                              !
@@ -202,9 +202,6 @@ subroutine conv_water_4rad(state, pbuf, totg_liq, totg_ice)
    type(physics_state), target, intent(in) :: state        ! state variables
    type(physics_buffer_desc),   pointer    :: pbuf(:)
 
-   real(r8), intent(out):: totg_ice(pcols,pver)   ! Total GBA in-cloud ice
-   real(r8), intent(out):: totg_liq(pcols,pver)   ! Total GBA in-cloud liquid
-
    ! --------------- !
    ! Local Workspace !
    ! --------------- !
@@ -222,8 +219,9 @@ subroutine conv_water_4rad(state, pbuf, totg_liq, totg_ice)
    real(r8), pointer, dimension(:,:) ::  dp_icwmr ! Deep conv. cloud water
    real(r8), pointer, dimension(:,:) ::  sh_icwmr ! Shallow conv. cloud water
    real(r8), pointer, dimension(:,:) ::  fice     ! Ice partitioning ratio
-   real(r8), pointer, dimension(:,:) ::  sh_cldliq ! shallow convection gbx liq cld mixing ratio for COSP
-   real(r8), pointer, dimension(:,:) ::  sh_cldice ! shallow convection gbx ice cld mixing ratio for COSP
+
+   real(r8), pointer, dimension(:,:) :: totg_ice  ! Grid box total cloud ice mixing ratio
+   real(r8), pointer, dimension(:,:) :: totg_liq  ! Grid box total cloud liquid mixing ratio
 
    real(r8) :: conv_ice(pcols,pver)               ! Convective contributions to IC cloud ice
    real(r8) :: conv_liq(pcols,pver)               ! Convective contributions to IC cloud liquid
@@ -282,6 +280,10 @@ subroutine conv_water_4rad(state, pbuf, totg_liq, totg_ice)
    itim_old = pbuf_old_tim_idx()
    call pbuf_get_field(pbuf, ast_idx,  ast,  start=(/1,1,itim_old/), kount=(/pcols,pver,1/) ) 
 
+   ! Fields computed below and stored in pbuf.
+   call pbuf_get_field(pbuf, gb_totcldicemr_idx, totg_ice)
+   call pbuf_get_field(pbuf, gb_totcldliqmr_idx, totg_liq)
+
    ! --------------------------------------------------------------- !
    ! Loop through grid-boxes and determine:                          !
    ! 1. Effective mean in-cloud convective ice/liquid (deep+shallow) !
@@ -407,13 +409,6 @@ subroutine conv_water_4rad(state, pbuf, totg_liq, totg_ice)
    end do
    end do
 
-!add pbuff calls for COSP
-   call pbuf_get_field(pbuf, sh_cldliq1_idx, sh_cldliq  )
-   call pbuf_get_field(pbuf, sh_cldice1_idx, sh_cldice  )
-
-   sh_cldliq(:ncol,:pver)=sh_icwmr(:ncol,:pver)*(1-fice(:ncol,:pver))*sh_frac(:ncol,:pver)
-   sh_cldice(:ncol,:pver)=sh_icwmr(:ncol,:pver)*fice(:ncol,:pver)*sh_frac(:ncol,:pver)
-
   ! Output convective IC WMRs
    
    call outfld( 'ICLMRCU ', conv_liq  , pcols, lchnk )
diff --git a/src/physics/cam/cospsimulator_intr.F90 b/src/physics/cam/cospsimulator_intr.F90
index 7db2792a12..7e81e61053 100644
--- a/src/physics/cam/cospsimulator_intr.F90
+++ b/src/physics/cam/cospsimulator_intr.F90
@@ -212,8 +212,9 @@ module cospsimulator_intr
                                                 !       chunk (allocatable->1:pcols,begchunk:endchunk)
   ! pbuf indices
   integer :: cld_idx, concld_idx, lsreffrain_idx, lsreffsnow_idx, cvreffliq_idx
-  integer :: cvreffice_idx, dpcldliq_idx, dpcldice_idx
-  integer :: shcldliq1_idx, shcldice1_idx, dpflxprc_idx
+  integer :: cvreffice_idx
+  integer :: gb_totcldliqmr_idx, gb_totcldicemr_idx
+  integer :: dpflxprc_idx
   integer :: dpflxsnw_idx, shflxprc_idx, shflxsnw_idx, lsflxprc_idx, lsflxsnw_idx
   integer :: rei_idx, rel_idx
   
@@ -870,10 +871,8 @@ subroutine cospsimulator_intr_init()
     lsreffsnow_idx = pbuf_get_index('LS_REFFSNOW')
     cvreffliq_idx  = pbuf_get_index('CV_REFFLIQ')
     cvreffice_idx  = pbuf_get_index('CV_REFFICE')
-    dpcldliq_idx   = pbuf_get_index('DP_CLDLIQ')
-    dpcldice_idx   = pbuf_get_index('DP_CLDICE')
-    shcldliq1_idx  = pbuf_get_index('SH_CLDLIQ1')
-    shcldice1_idx  = pbuf_get_index('SH_CLDICE1')
+    gb_totcldliqmr_idx = pbuf_get_index('GB_TOTCLDLIQMR') ! grid box total cloud liquid water mr (kg/kg)
+    gb_totcldicemr_idx = pbuf_get_index('GB_TOTCLDICEMR') ! grid box total cloud ice water mr (kg/kg)
     dpflxprc_idx   = pbuf_get_index('DP_FLXPRC')
     dpflxsnw_idx   = pbuf_get_index('DP_FLXSNW')
     shflxprc_idx   = pbuf_get_index('SH_FLXPRC', errcode=ierr)
@@ -1205,11 +1204,9 @@ subroutine cospsimulator_intr_run(state, pbuf, cam_in, emis, coszrs,     &
     real(r8), pointer, dimension(:,:) :: ls_flxprc       ! stratiform interface gbm flux_cloud_rain+snow (kg m^-2 s^-1) 
     real(r8), pointer, dimension(:,:) :: ls_flxsnw       ! stratiform interface gbm flux_cloud_snow (kg m^-2 s^-1)
     
-    !! cloud mixing ratio pointers (note: large-scale in state)
-    real(r8), pointer, dimension(:,:) :: sh_cldliq       ! shallow gbm cloud liquid water (kg/kg)
-    real(r8), pointer, dimension(:,:) :: sh_cldice       ! shallow gbm cloud ice water (kg/kg)
-    real(r8), pointer, dimension(:,:) :: dp_cldliq       ! deep gbm cloud liquid water (kg/kg)
-    real(r8), pointer, dimension(:,:) :: dp_cldice       ! deep gmb cloud ice water (kg/kg)
+    !! grid box total cloud mixing ratio (large-scale + convective)
+    real(r8), pointer, dimension(:,:) :: totg_liq       ! gbm total cloud liquid water (kg/kg)
+    real(r8), pointer, dimension(:,:) :: totg_ice       ! gbm total cloud ice water (kg/kg)
     
     ! Output CAM variables
     ! Multiple "mdims" are collapsed because CAM history buffers only support one mdim.
@@ -1508,11 +1505,9 @@ subroutine cospsimulator_intr_run(state, pbuf, cam_in, emis, coszrs,     &
     call pbuf_get_field(pbuf, cvreffliq_idx,  cv_reffliq   )
     call pbuf_get_field(pbuf, cvreffice_idx,  cv_reffice   )
     
-    !! convective cloud mixing ratios
-    call pbuf_get_field(pbuf, dpcldliq_idx, dp_cldliq  )
-    call pbuf_get_field(pbuf, dpcldice_idx, dp_cldice  )
-    call pbuf_get_field(pbuf, shcldliq1_idx, sh_cldliq  )
-    call pbuf_get_field(pbuf, shcldice1_idx, sh_cldice  )
+    !! grid box total cloud mixing ratios
+    call pbuf_get_field(pbuf, gb_totcldliqmr_idx, totg_liq)
+    call pbuf_get_field(pbuf, gb_totcldicemr_idx, totg_ice)
     
     !! precipitation fluxes
     call pbuf_get_field(pbuf, dpflxprc_idx, dp_flxprc  )
@@ -1616,9 +1611,12 @@ subroutine cospsimulator_intr_run(state, pbuf, cam_in, emis, coszrs,     &
     
     grpl_ls_interp = 0._r8
     
-    !! CAM5 cloud mixing ratio calculations
-    !! Note: Although CAM5 has non-zero convective cloud mixing ratios that affect the model state, 
-    !! Convective cloud water is NOT part of radiation calculations.
+    ! subroutine subsample_and_optics provides separate arguments to pass
+    ! the large scale and convective cloud condensate.  Below the grid box
+    ! total cloud water mixing ratios are passed in the arrays for the
+    ! large scale contributions and the arrays for the convective
+    ! contributions are set to zero.  This is consistent with the treatment
+    ! of cloud water by the radiation code.
     mr_ccliq = 0._r8
     mr_ccice = 0._r8
     mr_lsliq = 0._r8
@@ -1627,11 +1625,8 @@ subroutine cospsimulator_intr_run(state, pbuf, cam_in, emis, coszrs,     &
        kk = ktop + k -1
        do i = 1, ncol
           if (cld(i,k) > 0._r8) then
-             !! note: convective mixing ratio is the sum of shallow and deep convective clouds in CAM5
-             mr_ccliq(i,k) = sh_cldliq(i,kk) + dp_cldliq(i,kk)
-             mr_ccice(i,k) = sh_cldice(i,kk) + dp_cldice(i,kk)
-             mr_lsliq(i,k) = state%q(i,kk,ixcldliq)   ! state only includes stratiform (kg/kg)  
-             mr_lsice(i,k) = state%q(i,kk,ixcldice)   ! state only includes stratiform (kg/kg)
+             mr_lsliq(i,k) = totg_liq(i,kk)
+             mr_lsice(i,k) = totg_ice(i,kk)
           end if
        end do
     end do
diff --git a/src/physics/cam/zm_conv_intr.F90 b/src/physics/cam/zm_conv_intr.F90
index b80fcf504d..92a0c774a7 100644
--- a/src/physics/cam/zm_conv_intr.F90
+++ b/src/physics/cam/zm_conv_intr.F90
@@ -52,9 +52,7 @@ module zm_conv_intr
       zm_ideep_idx,   &
       dp_flxprc_idx, &
       dp_flxsnw_idx, &
-      dp_cldliq_idx, &
       ixorg,       &
-      dp_cldice_idx, &
       dlfzm_idx,     &     ! detrained convective cloud water mixing ratio.
       difzm_idx,     &     ! detrained convective cloud ice mixing ratio.
       dnlfzm_idx,    &     ! detrained convective cloud water num concen.
@@ -135,12 +133,6 @@ subroutine zm_conv_register
 ! Flux of snow from deep convection (kg/m2/s)
    call pbuf_add_field('DP_FLXSNW','global',dtype_r8,(/pcols,pverp/),dp_flxsnw_idx)
 
-! deep gbm cloud liquid water (kg/kg)
-   call pbuf_add_field('DP_CLDLIQ','global',dtype_r8,(/pcols,pver/), dp_cldliq_idx)
-
-! deep gbm cloud liquid water (kg/kg)
-   call pbuf_add_field('DP_CLDICE','global',dtype_r8,(/pcols,pver/), dp_cldice_idx)
-
    call pbuf_add_field('ICWMRDP',    'physpkg',dtype_r8,(/pcols,pver/),icwmrdp_idx)
    call pbuf_add_field('RPRDDP',     'physpkg',dtype_r8,(/pcols,pver/),rprddp_idx)
    call pbuf_add_field('NEVAPR_DPCU','physpkg',dtype_r8,(/pcols,pver/),nevapr_dpcu_idx)
@@ -459,8 +451,6 @@ subroutine zm_conv_tend(pblh    ,mcon    ,cme     , &
    real(r8), pointer, dimension(:,:) :: evapcdp      ! Evaporation of deep convective precipitation
    real(r8), pointer, dimension(:,:) :: flxprec      ! Convective-scale flux of precip at interfaces (kg/m2/s)
    real(r8), pointer, dimension(:,:) :: flxsnow      ! Convective-scale flux of snow   at interfaces (kg/m2/s)
-   real(r8), pointer, dimension(:,:) :: dp_cldliq
-   real(r8), pointer, dimension(:,:) :: dp_cldice
    real(r8), pointer :: dlf(:,:)    ! detrained convective cloud water mixing ratio.
    real(r8), pointer :: dif(:,:)    ! detrained convective cloud ice mixing ratio.
    real(r8), pointer :: dnlf(:,:)   ! detrained convective cloud water num concen.
@@ -709,10 +699,6 @@ subroutine zm_conv_tend(pblh    ,mcon    ,cme     , &
 
     call pbuf_get_field(pbuf, dp_flxprc_idx, flxprec    )
     call pbuf_get_field(pbuf, dp_flxsnw_idx, flxsnow    )
-    call pbuf_get_field(pbuf, dp_cldliq_idx, dp_cldliq  )
-    call pbuf_get_field(pbuf, dp_cldice_idx, dp_cldice  )
-    dp_cldliq(:ncol,:) = 0._r8
-    dp_cldice(:ncol,:) = 0._r8
 !REMOVECAM - no longer need these when CAM is retired and pcols no longer exists
     flxprec(:,:) = 0._r8
     flxsnow(:,:) = 0._r8

From 9208a6e2816c26c3e152706209daa4c01f03d198 Mon Sep 17 00:00:00 2001
From: peverwhee <courtneyp@ucar.edu>
Date: Thu, 5 Sep 2024 16:36:16 -0600
Subject: [PATCH 2/3] bring submodules up to date

---
 ccs_config           | 2 +-
 cime                 | 2 +-
 components/cdeps     | 2 +-
 components/cice      | 2 +-
 components/clm       | 2 +-
 components/cmeps     | 2 +-
 components/mizuRoute | 2 +-
 components/mosart    | 2 +-
 components/rtm       | 2 +-
 share                | 2 +-
 src/atmos_phys       | 2 +-
 src/physics/clubb    | 2 +-
 12 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/ccs_config b/ccs_config
index 2ff978f92a..69a958581e 160000
--- a/ccs_config
+++ b/ccs_config
@@ -1 +1 @@
-Subproject commit 2ff978f92a5ac9a6ab243e5c14d06a7e2d2f5799
+Subproject commit 69a958581ecd2d32ee9cb1c38bcd3847b8b920bf
diff --git a/cime b/cime
index 422ddaa770..fcb9c6ec1e 160000
--- a/cime
+++ b/cime
@@ -1 +1 @@
-Subproject commit 422ddaa770a3cea6e83a60c9700ebce77acaceed
+Subproject commit fcb9c6ec1e15f2f33995cf247aef3f8ef9f121eb
diff --git a/components/cdeps b/components/cdeps
index 7476950699..7b0b3a8272 160000
--- a/components/cdeps
+++ b/components/cdeps
@@ -1 +1 @@
-Subproject commit 7476950699909813d1938a34bd8d71bf5bfbf1e9
+Subproject commit 7b0b3a827241c53d296ec877cb1f59966bf5e5bf
diff --git a/components/cice b/components/cice
index b56154b318..f14ec8339b 160000
--- a/components/cice
+++ b/components/cice
@@ -1 +1 @@
-Subproject commit b56154b318b41312faec8a8ebee86c866b47c9f2
+Subproject commit f14ec8339bc5bc4a7a0664da5e247b5cfda531a1
diff --git a/components/clm b/components/clm
index a9433779f0..0999a32f52 160000
--- a/components/clm
+++ b/components/clm
@@ -1 +1 @@
-Subproject commit a9433779f0ae499d60ad118d2ec331628f0eaaa8
+Subproject commit 0999a32f520c995c3dfc94b9b96781d20ed0d6d5
diff --git a/components/cmeps b/components/cmeps
index 90f815ba9e..1b8920c3bf 160000
--- a/components/cmeps
+++ b/components/cmeps
@@ -1 +1 @@
-Subproject commit 90f815ba9e7493d71043b5d8e627a3f20bd5dc78
+Subproject commit 1b8920c3bf6c64056d6c1b1b88393617de2fefa3
diff --git a/components/mizuRoute b/components/mizuRoute
index 81c720c7ee..2ff305a029 160000
--- a/components/mizuRoute
+++ b/components/mizuRoute
@@ -1 +1 @@
-Subproject commit 81c720c7ee51f9c69f2934f696078c42f4493565
+Subproject commit 2ff305a0292cb06789de6cfea7ad3cc0d6173493
diff --git a/components/mosart b/components/mosart
index 8c682b1b7f..e2ffe00004 160000
--- a/components/mosart
+++ b/components/mosart
@@ -1 +1 @@
-Subproject commit 8c682b1b7f15d146816de302e0d359da3e957056
+Subproject commit e2ffe00004cc416cfc8bcfae2a949474075c1d1f
diff --git a/components/rtm b/components/rtm
index 88503adbc2..b3dfcfbba5 160000
--- a/components/rtm
+++ b/components/rtm
@@ -1 +1 @@
-Subproject commit 88503adbc275fb2ccbb6b598e460deaeb140e515
+Subproject commit b3dfcfbba58c151ac5a6ab513b3515ef3deff798
diff --git a/share b/share
index 4b9dc4871a..f6f31fd61c 160000
--- a/share
+++ b/share
@@ -1 +1 @@
-Subproject commit 4b9dc4871a259f00f35bb47708d876cb7dcdf75c
+Subproject commit f6f31fd61cb8f80aee97311fcca64b3e26b0202c
diff --git a/src/atmos_phys b/src/atmos_phys
index 4944547f04..d9d0e5d9bf 160000
--- a/src/atmos_phys
+++ b/src/atmos_phys
@@ -1 +1 @@
-Subproject commit 4944547f04b1457d78bf7d3c0becddcfe0deabb9
+Subproject commit d9d0e5d9bf96e5386ccb264bf123f8007db5821d
diff --git a/src/physics/clubb b/src/physics/clubb
index 50cee042e5..15e802092f 160000
--- a/src/physics/clubb
+++ b/src/physics/clubb
@@ -1 +1 @@
-Subproject commit 50cee042e588fefd3fe58c2a1d638affec8c0389
+Subproject commit 15e802092f65b3a20e5d67cb32d40f8a2771ca9b

From 6b00a9e5a232878daa85f008af4d5500ab88a677 Mon Sep 17 00:00:00 2001
From: peverwhee <courtneyp@ucar.edu>
Date: Tue, 10 Sep 2024 13:58:02 -0600
Subject: [PATCH 3/3] final changelog

---
 doc/ChangeLog | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 88c75d88ed..933de28d36 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,7 +1,7 @@
 ===============================================================
 
 Tag name: cam6_4_032
-Originator(s): eaton, peverwhee
+Originator(s): eaton
 Date:
 One-line Summary: Use same cloud water for radiation and COSP.
 Github PR URL: https://github.com/ESCOMP/CAM/pull/1084
@@ -64,9 +64,22 @@ appropriate machine below.  All failed tests must be justified.
 
 derecho/intel/aux_cam:
 
+  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_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s (Overall: PEND)
+       - pre-existing failure -- need fix in CLM external
+
+  SMS_D_Ln9_P1280x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.derecho_intel.cam-outfrq9s (Overall: PASS)
+       - test failed with error in ESMF on first run, but passed when I reran the tests
+       - unclear when/why exactly this test began to pass again
+
+
 izumi/nag/aux_cam:
+  FAIL DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae
+       - pre-existing failure - issue #670
 
-izumi/gnu/aux_cam:
+izumi/gnu/aux_cam: All BFB
 
 CAM tag used for the baseline comparison tests if different than previous
 tag: