Skip to content

Move microp_aero (BAM: ndrop_bam, nucleate_ice, interstitials) to atmos_phys#1579

Open
jimmielin wants to merge 3 commits into
ESCOMP:cam_developmentfrom
jimmielin:hplin/microp_aero_bam_ccpp
Open

Move microp_aero (BAM: ndrop_bam, nucleate_ice, interstitials) to atmos_phys#1579
jimmielin wants to merge 3 commits into
ESCOMP:cam_developmentfrom
jimmielin:hplin/microp_aero_bam_ccpp

Conversation

@jimmielin

Copy link
Copy Markdown
Member

Purpose of changes (include the issue number and title text for each relevant GitHub issue):

List all files eliminated:

D       src/physics/cam/ndrop_bam.F90
D       src/physics/cam/nucleate_ice.F90
  - moved to atmospheric_physics.

List all files added and what they do: N/A

List all existing files that have been modified, and describe the changes:

M       src/physics/cam/microp_aero.F90
  - refactor to use CCPPized interstitial schemes.
  - move ndrop_bam to atmos_phys.

M       src/physics/cam/nucleate_ice_cam.F90
  - unify BAM path with MAM/CARMA via the abstract interface.

R079    src/physics/cam/aerosol_mmr_cam.F90     src/physics/cam/aerosol_mmr_host.F90
  - rename so CAM-SIMA can have the same name
  - add aero_host_binding_t to contain host data structures and further unify code.

M       bld/build-namelist
M       bld/namelist_files/namelist_defaults_cam.xml
M       bld/namelist_files/namelist_definition.xml
  - remove microp_aero_bulk_scale which was always set to 2.

M       bld/configure
  - add atmos_phys microp_aero subdirectory.

M       src/chemistry/aerosol/aerosol_instances_mod.F90
  - now use aero_host_binding_t to store state, pbuf in aerosol state.

M       src/chemistry/aerosol/aerosol_state_mod.F90
  - add ncol to aerosol_state.

M       src/chemistry/aerosol/bulk_aerosol_properties_mod.F90
  - implement apply_number_limits (does nothing by definition)

M       src/chemistry/aerosol/bulk_aerosol_state_mod.F90
  - use aero_host_binding_t
  - implements number concentrations derived from mass by assumption built in
    microp_aero (for ice nucleation)

M       src/chemistry/aerosol/carma_aerosol_state_mod.F90
M       src/chemistry/aerosol/modal_aerosol_state_mod.F90
  - use aero_host_binding_t
  - not fully portable yet because accesses pbuf for DGNUM, etc.

M       src/chemistry/aerosol/radiative_aerosol.F90
  - comment updates to sync up with CAM-SIMA

M       src/chemistry/aerosol/radiative_aerosol_definitions.F90
  - use 256 instead of shr_kind_cl for CAM-SIMA / CCPP compatibility
  - add type initializations for safety

M       src/chemistry/carma_aero/aero_model.F90
M       src/physics/cam/phys_debug.F90
M       src/physics/cam/rad_constituents.F90
M       src/physics/cam/radiation_data.F90
M       src/physics/camrt/radiation.F90
M       src/physics/rrtmg/radiation.F90
M       src/physics/rrtmgp/radiation.F90
  - rename aerosol_mmr_cam -> aerosol_mmr_host

… and MAM/CARMA

Initial try (v2) at unifying nucleate_ice_cam paths in microp_aero for BAM and MAM/CARMA

Tentative CCPP scheme for ndrop_bam.

b4b fix

Add ncol_ to aerosol_state for internal loops

Add subgrid vertical velocity (wsub) schemes; further clean up ndrop_bam

Move ndrop_bam, nucleate_ice core code etc. into atmos_phys: microp_aero

Use ndrop_bam driver, not ccpp run phase

Fix wrong pointer in driver subroutine

Update interface to ndrop_bam to get naer_all from init phase

clubb variant

B4B fixes (incl. QPC failure in Izumi fix)
…data to host.

Renames aerosol_mmr_cam -> aerosol_mmr_host; get_cam_idx -> get_host_idx.

This will minimize the number of diverging changes between the CAM and SIMA trees
on the aerosol abstract interface.

Assisted-by: claude-fable:5[1m]
@jimmielin jimmielin self-assigned this Jun 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants