forked from ESCOMP/CAM
-
Notifications
You must be signed in to change notification settings - Fork 1
Notes on water budget phase changes in CAM
Peter Hjort Lauritzen edited this page Apr 16, 2024
·
3 revisions
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
.
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)
! 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)