CAM icon indicating copy to clipboard operation
CAM copied to clipboard

Generalize cloud chemistry aerosol processes

Open fvitt opened this issue 2 months ago • 0 comments

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?

@K20shores, @tilmes

Will this change (regression test) answers?

No

Will you be implementing this enhancement yourself?

Yes

fvitt avatar Nov 04 '25 22:11 fvitt