Closed huiwanpnnl closed 1 year ago
Looking at the code changes, gas tracers seem also affected by this PR. If gases are excluded, I am not sure which part of the code does it. Can you clarify a bit?
It may be okay to change the turbulent transport of gases as well, just want to be clear about what tracers are affected.
@tangq I think this may not affect the gas species much in the current branch. In current branch, after the surface emissions of gas species being added to the bottom three model layers, the dry deposition is then applied. The two processes are within subroutine gas_phase _chemdr. The wet removal of gas species (sub neu_wetdep_tend) is called right before calling gas_phase_chemdr in chem_timestep_tend (chemistry.F90). To me, it might be the case that the surface emissions will be removed too quick before it gets to boundary layer turbulence scheme.
It looks better to me that we follow Hui's fix (cflx_cpl_opt=2) to add the surface emissions of gas species in tphysbc.
@huiwanpnnl Does clfx_tend add emissions of both gas and aerosols to the model layers? Could you also comment on Qi's questions? In current NGD_v3atm branch, the surface emissions of gas species are added to the model layers in subroutine chem_timestep_tend before calling subroutine clubb_surface in tphysac. In chem_timestep_tend, cflx is set to zero after adding surface emissions to the layers. I wonder if this is still fine for your changes.
@mingxuanwupnnl , that's a different topic - how chemUCI decides to treat surface emissions.
First, what we need to figure out (independent of what chemUCI does for the surface emissions) is whether this PR affects gas emissions. If so, how big is the impact? During our previous NGD discussions, this PR was thought to be ONLY for aerosols, but the changes seem include gases (I could be wrong, but would like to be clear about what tracers are affected directly.).
This PR's changes to gases might be fine, but since it was thought to have no direct impact on gas surface emissions, probably no one has looked at the results of those tracers, which I feel should be done before we merge it.
After the gas results are evaluated, we can further decide how to link with the chemUCI surface emissions, which is part of the NGD coupled tuning and should be dealt with in future PRs.
Hi @tangq and @mingxuanwupnnl, sorry for being slow in responding. Too many distractions this week.
The code changes we can see in this PR affect any tracer #m where m = 2, 3, ..., pcnst
as long as cam_in%cflx(:,m)
of is non-zero before/in/aftercall clubb_surface
. My new subroutine clfx_tend
is simply some lines moved from the old clubb_surface
subroutine, so the calculation of tracer tendencies loops from tracers 2 to pcnst as in the original code.
This means in the standard v1 and v2, cflx_cpl_opt = 2
affects the gases, too. Our v1 test results suggest that the impacts are negligible, see below for the 1-year mean zonal averages. I expect the results based on the standard v2 should be very similar.
I agree we should have a discussion - perhaps on a different page, to clarify what my changes do if they are combined with chemUCI, but I think some of the things @mingxuanwupnnl mentioned are worth discussing a bit more here, as they provide an explanation why my changes (in v1 and v2) had nonzero but negligible impact on gases.
I must admit I only had a very quick look at subroutines neu_wetdep_tend
and gas_phase_chemdr
so my understanding might not be the most accurate one, but my impression is that for the gases in the standard v2, the calculations are more like a parallel splitting of wet removal, dry removal, and surface emissions, meaning wet removal and dry removal both see tracer profiles before emissions are applied. This is different from the situation for the aerosols in the default v2 where dry removal sees the aerosol profiles after emissions are applied. In other words, gases in v2 didn't have the process ordering issue my changes were trying to address.
What did my changes do to the gases in the standard v2? Upon exiting gas_phase_chemdr
, the gas part of thecflx
array contains the sum of surface emissions and dry removal fluxes, which is a small residual of a strong source and a strong sink. My cflx_cpl_opt = 2
moves the state update from before dynamics to after deep convection, so dynamics and deep convection (if it transports gases at all) don't "feel" the net effect of emission+drydep. But since that net effect of emission+drydep is relatively small, the impact of cflx_cpl_opt = 2
is small, too.
BTW, in the next months, I plan to implement a cflx_cpl_opt = 3
and a cflx_cpl_opt = 4
. The option 4 will apply emission+drydep together, i.e., moving towards something similar to the handling of gases in v2.
Here is a very short version of my response to @mingxuanwupnnl's comment related to chemUCI (which we could take to a different page): I feel I agree with @mingxuanwupnnl's concern. It seems like for chemUCI,
gas_phase_chemdr
, my changes won't affect gases when chemUCI is turned on.I have reviewed the code changes in this PR, and confirm that the new coupling option (cflx_cpl_opt=2) resolves the excessive dry removal issue for aerosols in V2 and V1 (in a way as we have discussed in the conference calls), due to the operator splitting applied to the aerosol processes.
By going through the discussions on gaseous species by Qi/Mingxuan/Hui above, there are some small changes on the gases with the new coupling option, because update of the gas concentrations is now moved from before to after the large-scale transport, as for aerosols. While this might not be intended for gaseous species, the impact as shown in Hui's figures above is small and in this way the gaseous and aerosol processes are treated consistently anyway in ordering (except for wet removal). So I think that we could go ahead with the merge at this time.
In future, we should probably consider "the option 4" mentioned by Hui, which would switch back to the original ordering for gaseous species as well as treating aerosols in a similar way.
Close PR without merging. Replaced by new PR #17 (which is an updated implementation).
This PR adds an optional revision to the numerical process coupling at the
tphysbc/tphysac
level to couple the surface emissions of aerosols more tightly with the turbulent transport.The revision was motivated by the known issues of overly short dust lifetime in EAMv1 and the very strong sensitivity of the dust lifetime to vertical resolution, see Feng et al., 2022 for the v1 results.
The implementation of the revised coupling is described below in the "code modifications" section.
Impacts of the revised coupling was initially evaluated in v1. More recently, evaluation was done in v2 using a 5-year F2010 simulation and a 30-year AMIP (F20TR) simulation using the huiwanpnnl/atm/aerosol_process_coupling branch in the E3SM repo. Highlights of the results can be found on this Confluence page and in this slide deck.
Code modifications
The subroutine
clubb_surface
inclubb_intr.F90
was split into two parts:ustar
and the Obukhov length remain inclubb_surface
.cam_in%clfx
was moved to a new subroutinecflx_tend
in a new module incflx.F90
A new namelist variable
cflx_cpl_opt
was added.cflx_cpl_opt = 1
(default) gives the original coupling in v2._There, the subroutine
cflx_tend
is called immediately afterclubb_surface
followed by acall physics_update(...)
. This gives the original process coupling in EAMv2 and the results are BFB.cflx_cpl_opt = 2
activates the revised coupling._The call of
cflx_tend
and the correspondingcall physics_update(...)
are moved to right before the cloud macro-microphysics sub-cycles intphysbc
, so that the aerosol particles emitted to the lowest model layer can be transported to upper layers bydropmixnuc
before wet removal and dry removal are calculated.