-
Notifications
You must be signed in to change notification settings - Fork 169
Description
What is the feature/what would you like to discuss?
Refactor the interactions of aqueous chemistry in clouds with aerosols.
Generalize code in mo_cldaero_mod.F90 so that the implementation is aerosol model representation independent. Currently there are 3 different implementations for bulk, carma, and modal aerosols:
src/chemistry/bulk_aero/sox_cldaero_mod.F90
src/chemistry/carma_aero/sox_cldaero_mod.F90
src/chemistry/modal_aero/sox_cldaero_mod.F90
The aerosol model specific code in these modules should be abstracted away and be implemented in aerosol model specific aerosol_state objects.
In the sox_cldaero_create_obj routine, the code which sets conc_obj%no3c, conc_obj%nh4c, and conc_obj%so4c should be replaced with generalized code that via abstract aerosol interfaces. For carma aerosols, the code is high-lighted here:
https://github.com/ESCOMP/CAM/blob/4c480c8e8c7e3138d8d5cb3118f635c71886ecf7/src/chemistry/carma_aero/sox_cldaero_mod.F90#L138C1-L158C1
For modal aerosols, see:
https://github.com/ESCOMP/CAM/blob/4c480c8e8c7e3138d8d5cb3118f635c71886ecf7/src/chemistry/modal_aero/sox_cldaero_mod.F90#L95C1-L148C1
In subroutine sox_cldaero_update, the aerosol model specific code that partitions the change in cloud-borne species across modes or bins should be abstracted away. For carma aerosols, the code is here:
https://github.com/ESCOMP/CAM/blob/4c480c8e8c7e3138d8d5cb3118f635c71886ecf7/src/chemistry/carma_aero/sox_cldaero_mod.F90#L307C1-L322C1
For modal aerosols see:
https://github.com/ESCOMP/CAM/blob/4c480c8e8c7e3138d8d5cb3118f635c71886ecf7/src/chemistry/modal_aero/sox_cldaero_mod.F90#L266C1-L314C1
Is there anyone in particular you want to be part of this conversation?
Will this change (regression test) answers?
No
Will you be implementing this enhancement yourself?
Yes
Metadata
Metadata
Assignees
Labels
Type
Projects
Status