Skip to content

Generalize cloud chemistry aerosol processes #1428

@fvitt

Description

@fvitt

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

Status

To Do

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions