Add aerosol emission for TEMPO MP#240
Conversation
joeolson42
left a comment
There was a problem hiding this comment.
I don't see any obvious coding issues.
dustinswales
left a comment
There was a problem hiding this comment.
@haiqinli I don't see any problems here.
Can you please update the logic as per Anders request? Then I will approve.
|
@dustinswales @AndersJensen-NOAA I updated the logic Anders suggested with hash of e578867 two weeks ago. |
@haiqinli My apologies. I was looking at the wrong hash. |
|
Thanks @dustinswales ! |
There was a problem hiding this comment.
Pull request overview
This PR adds support for TEMPO microphysics aerosol emissions (WFA/IFA) driven by SMOKE/chemistry inputs and controlled via a new chemistry namelist option, enabling the model to overwrite TEMPO aerosol surface emissions each timestep when configured.
Changes:
- Adds a new chemistry namelist option
config_mp_aero_emissionto enable/disable TEMPO aerosol emission updates. - Updates dust input field naming/stream expectations (e.g., introduces
rdrag_m_in/ssm_inandrdrag) and propagates these through physics/smoke plumbing. - Extends the SMOKE driver interface to pass TEMPO aerosol surface-emission fields (
nwfa2d,nifa2d) and the new emission toggle into the SMOKE driver call path, and updates build source lists accordingly.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/core_atmosphere/physics/registry.chemistry.xml | Adds new namelist option and updates dust input stream/diagnostic field definitions for the chemistry/SMOKE pathway. |
| src/core_atmosphere/physics/mpas_atmphys_vars.F | Renames/remaps dust-related allocatable fields used by SMOKE/dust emission drivers. |
| src/core_atmosphere/physics/mpas_atmphys_update_surface.F | Updates monthly dust-field interpolation to the new drag-partition field (rdrag). |
| src/core_atmosphere/physics/mpas_atmphys_driver_smoke.F | Wires TEMPO aerosol surface emission fields and the new toggle into the SMOKE driver path; updates dust-field plumbing. |
| src/core_atmosphere/CMakeLists.txt | Adds a new SMOKE source (module_mp_aero_emissions.F90) to the build list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if ((config_microp_scheme .eq. 'mp_tempo') .and. config_tempo_aerosolaware ) then | ||
| if(.not.allocated(nwfa2d_p)) allocate(nwfa2d_p(ims:ime,jms:jme)) | ||
| if(.not.allocated(nifa2d_p)) allocate(nifa2d_p(ims:ime,jms:jme)) | ||
| endif |
| <var name="sandfrac_in"/> | ||
| <var name="clayfrac_in"/> | ||
| <var name="uthres_in"/> | ||
| <var name="uthres_sg_in"/> | ||
| <var name="sep_in"/> | ||
| <var name="albedo_drag_m_in"/> | ||
| <var name="feff_m_in"/> | ||
| <var name="ssm_in"/> | ||
| <var name="rdrag_m_in"/> |
| <nml_option name="config_mp_aero_emission" type="logical" default_value="false" in_defaults="false" | ||
| units="-" | ||
| description="Flag that controls aerosol emissions for Tempo microphysics" | ||
| possbile_values=".true. or .false."/> |
| seas_ngac_mod.F90 | ||
| ssalt_mod.F90 | ||
| module_anthro_emissions.F90 | ||
| module_mp_aero_emissions.F90 | ||
| ) |


In the TEMPO Microphysics, the hygroscopic aerosol is referred as a “water friendly” aerosol (WFA), and the non-hygroscopic ice-nucleating aerosol is referred as “ice friendly” aerosol (IFA). For usual TEMPO applications, WFA and IFA are derived using GOCART climatologies. The default WFA emission is an empirical formula from the surface layer WFA, and no IFA emissions. In this PR, the sea-salt emission, organic carbon from wildfire biomass burning and anthropogenic emissions are combined to represent the WFA emission, while the prognostic emission of dust is used to represent IFA emission.
There is a namelist option of "config_mp_aero_emission" in the chemistry namelist file. It is false by default, and no impact on nwfa2d and nifa2d. If it is true, it will overwrite the nwfa2d and nifa2d every timestep.
Mandatory Questions
Priority Reviewers