A major new release with significant new functionality and compatibility with the latest Python and Numpy versions.
New capabilities
- Full support for aerosols in RRTMG
- New moist atmospheric physics
- A new [SimplifiedBettsMiller](https://climlab.readthedocs.io/en/latest/api/climlab.convection.SimplifiedBettsMiller.html) moist convection process following [Frierson (2007)](https://doi.org/10.1175/JAS3935.1)
- A simple [LargeScaleCondensation](https://climlab.readthedocs.io/en/latest/api/climlab.dynamics.LargeScaleCondensation.html) process to represent condensation and precipitation from large-scale moisture convergence.
- A new [Limiter](https://climlab.readthedocs.io/en/latest/api/climlab.process.limiter.html) process that implements min/max bounds for state variables
- Better consistency for internally generated diagnostics, including a new [additive assumption for same-named diagnostics](https://climlab.readthedocs.io/en/latest/architecture.html#additive-diagnostics-for-subprocesses) produced by multiple subprocesses.
- Support for [multiple time-averaging methods for solar zenith angle](https://climlab.readthedocs.io/en/latest/api/climlab.solar.insolation.html#climlab.solar.insolation.daily_insolation_factors), including more flexible support for zenith angle in RRTMG and CAM3 radiation processes.
The compiled Fortran dependencies have also been updated, with some breaking changes to their interfaces. Thus climlab 0.9.0 requires [climlab-rrtmg](https://github.com/climlab/climlab-rrtmg) >= 0.4.1 and [climlab-cam3-radiation](https://github.com/climlab/climlab-cam3-radiation) >= 0.3.
This release also includes numerous documentation improvements, bug fixes, and support for Numpy 2 and Python 3.12 / 3.13.
What's Changed
* Bump conda-incubator/setup-miniconda from 2 to 3 by dependabot in https://github.com/climlab/climlab/pull/197
* Support for aerosols in RRTMG by brian-rose in https://github.com/climlab/climlab/pull/198
* Add tests for larger number of levels in RCM by brian-rose in https://github.com/climlab/climlab/pull/205
* Update akmaev_adjustment.py by timjupp in https://github.com/climlab/climlab/pull/204
* Refactor insolation code to clarify zenith angle formulas by brian-rose in https://github.com/climlab/climlab/pull/206
* Set nopython=True for Numba by brian-rose in https://github.com/climlab/climlab/pull/207
* adding support for time-averaging in xarray exporting of diagnostics by dorrih-stardust in https://github.com/climlab/climlab/pull/214
* SW aerosol table roll bug fix by dorrih-stardust in https://github.com/climlab/climlab/pull/213
* Make diffusive and advective fluxes proper Field objects by brian-rose in https://github.com/climlab/climlab/pull/219
* New Limiter process that implements min/max bounds for state variables by brian-rose in https://github.com/climlab/climlab/pull/221
* Make same-named diagnostics additive by brian-rose in https://github.com/climlab/climlab/pull/222
* Diagnostics improvements for GreyGas model by brian-rose in https://github.com/climlab/climlab/pull/223
* Switch CI builds to use Miniforge by brian-rose in https://github.com/climlab/climlab/pull/225
* Add SimplifiedBettsMiller convection process by brian-rose in https://github.com/climlab/climlab/pull/229
* Add LargeScaleCondensation process by brian-rose in https://github.com/climlab/climlab/pull/230
* Get inheritance graphs working again by brian-rose in https://github.com/climlab/climlab/pull/232
* Basic docs on additive diagnostics by brian-rose in https://github.com/climlab/climlab/pull/233
* Update the quickstart doc page by brian-rose in https://github.com/climlab/climlab/pull/234
* Improve insolation handling by brian-rose in https://github.com/climlab/climlab/pull/209
* Temporary pin to previous climlab-rrtmg by brian-rose in https://github.com/climlab/climlab/pull/236
* Check to make sure CAM3 radiation gets scalar greenhouse gas VMRs by brian-rose in https://github.com/climlab/climlab/pull/239
* Numpy 2 compatible broadcasting in implicit solver by brian-rose in https://github.com/climlab/climlab/pull/241
* Pin to previous sphinx version due to nbsphinx incompatibility by brian-rose in https://github.com/climlab/climlab/pull/242
* Compatibility with updated Fortran radiation driver by brian-rose in https://github.com/climlab/climlab/pull/243
* Better support for zenith angle in Insolation process objects by brian-rose in https://github.com/climlab/climlab/pull/235
* Fully support and test coszen weighting options by brian-rose in https://github.com/climlab/climlab/pull/244
* Test on Python 3.13 by brian-rose in https://github.com/climlab/climlab/pull/245
* Clean up and bump to version 0.9.0 by brian-rose in https://github.com/climlab/climlab/pull/246
* Release notes for v0.9.0 by brian-rose in https://github.com/climlab/climlab/pull/247
* Fix typo by brian-rose in https://github.com/climlab/climlab/pull/248
New Contributors
* timjupp made their first contribution in https://github.com/climlab/climlab/pull/204
* dorrih-stardust made their first contribution in https://github.com/climlab/climlab/pull/214
**Full Changelog**: https://github.com/climlab/climlab/compare/v0.8.2...v0.9.0