cnst_ndropmixed is not currently handled - vdiff, CLUBB impacted
- Dominant language
- No language data
- Stars
- 9
- Forks
- 22
- Avg merge
- 8d 5h
- Merged PRs (30d)
- 4
Description
### Issue Type
Other (please describe below)
### Issue Description
Many places throughout CAM use a flag called `cnst_ndropmixed(m)` which flags whether this constituent is vertically mixed by `dropmixnuc`. If yes, then vertical diffusion and CLUBB will ignore this species when doing mixing.
* in `vertical_diffusion` this is handled by the `do_diffusion_const(m)` (standard name `flag_for_ccpp_constituent_vertical_diffusion`) flag in `vertical_diffusion_diffuse_tracers_run`. This logical array is populated by looking at `dropmixnuc` (in CAM's to-be-obsolete vertical_diffusion_init) and hardcoded in CCPPized `init` phase
* in CLUBB (not yet CCPPized), `clubb_intr` checks the flag directly:
```fortran
do m = 1, pcnst
if (cnst_ndropmixed(m)) then
lq(m)=.false.
! Droplet number is transported in dropmixnuc, therefore we
! do NOT want CLUBB to apply transport tendencies to avoid double
! counting. Else, we apply tendencies.
edsclr_dim = edsclr_dim-1
endif
enddo
```
This flag is set in multiple places throughout current CAM code.
* For chemical species, modal aerosol species, the `chemistry.F90`'s register phase:
```fortran
if ( index(lng_name,'_a')>0 ) then ! modal aerosol species undergoes ndrop activation mixing
ndropmixed = .true.
endif
```
* For `NUMLIQ` only, `micro_pumas_cam.F90` (MG)'s register phase:
```fortran
! Droplet number is transported in dropmixnuc, therefore we
! do NOT want CLUBB to apply transport tendencies to avoid double
! counting.
ndropmixed = prog_modal_aero.or.(carma_model(:10)=='trop_strat')
call cnst_add(cnst_names(3), mwh2o, cpair, 0._r8, ixnumliq, ndropmixed=ndropmixed, &
longname='Grid box averaged cloud liquid number', is_convtran1=.true.)
```
There is no infrastructure in the constituent properties object to handle this for now. This will significantly impact answers even before `ndrop` is CCPPized, because it changes the behavior of the diffusion solver (in CAM5+) and CLUBB (in CAM6+)
cc @adamrher @cacraigucar @nusbaume @peverwhee
### Will this change answers?
Yes
### Will you be implementing this yourself?
Yes, but I will need some help
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.