Skip to content

Notes on water budget phase changes in CAM

Peter Hjort Lauritzen edited this page Apr 16, 2024 · 3 revisions

Microphysics

CAM7 calls microphysics with:

call microp_driver_tend(state, ptend, cld_macmic_ztodt, pbuf)

(note that there is also option to call CARMA)

          call check_energy_chng(state, tend, "microp_tend", nstep, ztodt, &
               zero, prec_str(:ncol)/cld_macmic_num_steps, &
               snow_str(:ncol)/cld_macmic_num_steps, zero)

snow_str is fetched from physics buffer in microphysics and altered:

   snow_str = snow_pcw + snow_sed

where

prec_pcw = prect
snow_pcw = preci

and prect (surface precip rate (m/s)) and preci (=cloud ice/snow precip rate (m/s)) are computed in call to PUMAS:

physics/pumas/micro_mg1_0.F90

What we need to do? Compute 3D source/sink of liquid and ice and check that if summed up equals preci and prect.

Deep convection

    call convect_deep_tend(  &
         cmfmc,      cmfcme,             &
         pflx,    zdu,       &
         rliq,    rice,      &
         ztodt,   &
         state,   ptend, cam_in%landfrac, pbuf)
    ! Check energy integrals, including "reserved liquid"
    flx_cnd(:ncol) = prec_dp(:ncol) + rliq(:ncol)
    snow_dp(:ncol) = snow_dp(:ncol) + rice(:ncol)
    call check_energy_chng(state, tend, "convect_deep", nstep, ztodt, zero, flx_cnd, snow_dp, zero)
    snow_dp(:ncol) = snow_dp(:ncol) - rice(:ncol)

CLUBB

             ! Use actual qflux (not lhf/latvap) for consistency with surface fluxes and revised code
             call check_energy_chng(state, tend, "clubb_tend", nstep, ztodt, &
                cam_in%cflx(:ncol,1)/cld_macmic_num_steps, &
                flx_cnd(:ncol)/cld_macmic_num_steps, &
                det_ice(:ncol)/cld_macmic_num_steps, &
                flx_heat(:ncol)/cld_macmic_num_steps)
Clone this wiki locally