forked from MPAS-Dev/MPAS-Model
-
Notifications
You must be signed in to change notification settings - Fork 1
Physics Call Tree
David Fillmore edited this page Dec 3, 2025
·
1 revision
Markers:
- [STATE] subroutines directly write to the MPAS state pool.
- [TEND] subroutines write physics tendencies (tend or tend_physics pools) that are later added to dynamics.
State and tendency writers (current code)
- [STATE+TEND] microphysics_to_MPAS
- [STATE] init_thompson_aerosols_forMPAS
- [STATE] aerosol_init
- [TEND] radiation_sw_to_MPAS
- [TEND] radiation_lw_to_MPAS
- [TEND] physics_get_tend and physics_get_tend_work
- [TEND] driver_pbl
- [TEND] update_convection_step1
- [TEND] driver_convection
- [TEND] update_convection_step2
Runtime (timestep) flow — mpas_atm_core: atm_do_timestep (microphysics lives in atm_time_integration: atm_srk3)
- physics_timetracker
- physics_update_surface (surface albedo and greenness refresh when alarmed)
- physics_update_sst, physics_update_sstskin, physics_update_deepsoiltemp
- o3climatology_from_MPAS (optional) and alarm maintenance (CAM, accumulated buckets, diagnostics)
- physics_driver (non-microphysics parameterizations)
- allocate_forall_physics → MPAS_to_physics
- driver_cloudiness → calc_cldincidence, calc_cldfraction, cal_cldfra3
- driver_radiation_sw → radiation_sw_from_MPAS → rrtmg_swrad or camrad → [TEND] radiation_sw_to_MPAS
- driver_radiation_lw → radiation_lw_from_MPAS → rrtmg_lwrad or camrad → [TEND] radiation_lw_to_MPAS
- update_radiation_diagnostics
- driver_sfclayer
- driver_oml1d (if config_oml1d)
- driver_lsm (Noah) or driver_lsm_noahmp
- driver_seaice
- atmphys_sfc_diagnostics
- [TEND] driver_pbl
- driver_gwdo
- [TEND] update_convection_step1
- [TEND] driver_convection
- Scheme branches: gf_driver (Grell–Freitas), kf_eta_cps, tiedtke, cu_ntiedtke_driver
- [TEND] convection_to_MPAS
- [TEND] update_convection_step2
- deallocate_forall_physics
- atm_timestep → atm_time_integration: atm_srk3
- (dynamics sub-steps)
- driver_microphysics
- allocate_microphysics
- precip_from_MPAS
- microphysics_from_MPAS
- Scheme branches: kessler, mp_gt_driver (Thompson and Thompson-aerosols), wsm6
- compute_radar_reflectivity (optional) → compute_relhum
- precip_to_MPAS
- [STATE+TEND] microphysics_to_MPAS (updates theta_m, qv, qc, qr, qi, qs, qg, surface pressure, and microphysics tendencies in state and tend pools)
- deallocate_microphysics
Initialization flow — physics_init
- init_dirs_forphys and init_physics_flags (set dimension-dependent flags)
- Optional init_o3climatology
- init_convection
- init_microphysics
- thompson_init or mp_wsm6_init
- init_thompson_clouddroplets_forMPAS
- [STATE] init_thompson_aerosols_forMPAS (fills aerosol number concentrations in state scalars)
- init_pbl
- init_sfclayer
- init_lsm (Noah) or init_lsm_noahmp
- init_radiation_sw
- rrtmg_initsw_forMPAS or camradinit
- If camradinit: radini, radaeini, aer_optics_initialize, oznini, and [STATE] aerosol_init (sets background state aerosols)
- init_radiation_lw
- rrtmg_initlw_forMPAS or camradinit (same internal calls as above)
- ugwpv1_ngw_init (gravity-wave drag precompute)