Skip to content

Releases: earth-system-radiation/rte-rrtmgp

Encapsulated orientation, CMake, cloud optics

10 Feb 01:46
f05e934
Compare
Choose a tag to compare

User facing changes:

  • Adopts the CMake build system
  • Vertical directionality (top_at_1) is encapsulated within the arrays of optical properties rather than carried as an indepdent variable.
  • Cloud optical properties may be computed by-band (as before) or by g-point. New data in the data repo allows computations by g-point.
  • Ice sizes are labled to make clear they are diameter, not radius
  • Data version is updated to 1.9

Under the hood:

  • Refinements to gas optics kernels courtesy of Thomas Jahns (#315). This changes answers nominally.
  • Separate cloud optics kernels to accommodate the Python front end
  • Kernels and front-end now use C-compatible Booleans rather than the Fortran default.

Development to this point has followed the Gitflow workflow; starting with this release we're going to move instead to a single protected main branch and short-lived development branches. This will include removing the develop and documentation branches.

The RTE+RRTMGP libraries and data will be distributed via conda-forge thanks to work by Makepath LLC.

Relabel ice sizes as diameter, cloud optics by g-point or band, update API

05 Feb 17:57
04e5f28
Compare
Choose a tag to compare

Ice sizes are relabeled as diameters, not radii

Code changes to allow cloud optical properties to be defined and computed on g-points

Data version 1.9

Updates to API - logical are always defined via C

Encapsulated orientation, CMake, Python and conda

07 Jan 15:02
2c4a848
Compare
Choose a tag to compare

This is a pre-release version of v1.9. The pre-release is meant to enable progress on conda packaging to support the Python front-end.

Changes relative to v1.8 include

  • Changing the build system from Gnu Make to CMake to allow support for Windows and MacOS (initial work by Makepath LLC, revised by @skosukhin)
  • A change to the Fortran API: vertical direction is now specified as part of ty_optical_properties_arry rather than as a logical variable top_at_1 (#287)
  • Refinements to gas optics kernels courtesy of Thomas Jahns (#315). This changes answers nominally.
  • Separate cloud optics kernels to accommodate the Python front end

As usual @skosukhin has kept both CMake and the continuous integration humming along efficiently.

Refactored two-stream, new LW source functions and quadrature, kernel API

21 May 02:40
41c5fcd
Compare
Choose a tag to compare

Accumulated changes and bug fixes. Changes LW answers (data repo is alsoupdated).

  • New LW weights and secants (Change LW quadrature angles #282)
  • A single source function on levels (Simplify LW source functions #250)
  • Kernel API header files in Fortran and C (Add kernel API #272)
  • Refactored two-stream, fixing RTE shortwave kernel not vectorizing #215 (Re-vectorize SW two-stream #275)
  • Buxfixes, change to internal build systems and continuous integration (thanks to @skosukhin for ongoing help)

What's Changed

Full Changelog: v1.7...v1.8

Reorganization, single precision, MERRA aerosols

28 Nov 02:32
4d8c5df
Compare
Choose a tag to compare

New in release 1.7:

  • Libraries can be built in single precision by changes in rte-kind/mo_rte_kind.F90. Differences with respect to double precision are roughly 0.13 W/m2.
  • A class for computing the optical properties of aerosols following the MERRA representation has been added.
  • The repository is reorganized into frontend and kernel directories for rte and rrtmgp. Data has been moved to a separate repository.
  • Citation information has been added.
  • As usual some bugs have been fixed, the use of OpenACC and OpenMP GPU offload directives continues to evolve, and the continous integration continues to be fine-tuned.

Updated shortwave cloud optics, documentation, continuous integration

10 Jan 16:20
74a0e09
Compare
Choose a tag to compare

Updated shortwave cloud optics changes all-sky answers by several W/m2. Small updates to documentation, other changes related to continuous integration.

Optimal angle, refactored gas optics

02 Dec 18:23
e9b7cbd
Compare
Choose a tag to compare

Refactored gas optics increases efficiency and reduces memory use. Optimal angle data is added to LW coefficient files; single-angle no-scattering calculations making use of this data are more accurate than using the standard diffusivity angle. See lw_clear_sky_optangle() in tests/clear_sky_regression.F90 for an examples. Other bug fixes (e.g. to multi-angle no-scattering calculations using default kernels), increased consistency between GPU and CPU kernels; small misc. improvements.

Reduced-resolution k-distributions; reduced memory traffic

22 Sep 18:10
3b5d157
Compare
Choose a tag to compare

Reduced-resolution k-distributions are updated and ready for production. Implementation is refined: Shortwave calculations are refactored to improve memory locality. When broadband fluxes are desired they are accumulated within the solvers, rather than in a separate reduction step. Misc. bug fixes and refinements.

Thanks to Dmitry Alexeev, Dustin Swales, Max Balsmeier.

Book keeping, clarifications, simplifications, OpenMP and OpenACC refinements

02 Jun 03:14
Compare
Choose a tag to compare

Updates to OpenMP and OpenACC implementations. Argument intent changed to allow use of a boundary condition. Fixes from ICON including more consistent turning on/off of error checking. Clarifications and removal of unused bits. Self-hosted CI now uses Github Actions. Thanks again to @alexeedm and @naromero77.

OpenMP GPU support, efficiency updates, streamlined make

15 Apr 03:31
aca56b7
Compare
Choose a tag to compare

OpenMP GPU offload, tested with CCE 11.0.0. Longwave Jacobians aren't computed if the optional arguments aren't provided. Finalization methods for optical properties arrays are introduced. Make is streamlined to use environment variables and omit config files. Small changes for efficiency and robustness. Continuous integration is evolved; includes gfortran 9 and 10 on Github actions; current Nvidia and Intel HPC compilers in containers; Cray CPU and OpenMP GPU and PGI 20 OpenACC.