E3SM-Project / v3atm

Fork of E3SM for testing v3 atm changes
Other
0 stars 5 forks source link

Add a revised aerosol process coupling as a stealth feature #4

Closed huiwanpnnl closed 1 year ago

huiwanpnnl commented 1 year ago

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

tangq commented 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.

mingxuanwupnnl commented 1 year ago

@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.

tangq commented 1 year ago

@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.

huiwanpnnl commented 1 year ago

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.

EAMv1_state_cmpr_all_gases

huiwanpnnl commented 1 year ago

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.

huiwanpnnl commented 1 year ago

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,

yfenganl commented 1 year ago

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.

huiwanpnnl commented 1 year ago

Close PR without merging. Replaced by new PR #17 (which is an updated implementation).