Recent Releases of RTE+RRTMGP

RTE+RRTMGP - C header auto-generation; update docs

No changes to libraries or tests, but updated method of generating C++ header files and docs updated to highlight distribution with conda.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus 3 months ago

RTE+RRTMGP - Encapsulated orientation, CMake, cloud optics

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 (https://github.com/earth-system-radiation/rte-rrtmgp/pull/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.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus 4 months ago

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

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

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus 4 months ago

RTE+RRTMGP - Encapsulated orientation, CMake, Python and conda

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.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus 5 months ago

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

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: https://github.com/earth-system-radiation/rte-rrtmgp/compare/v1.7...v1.8

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus about 1 year ago

RTE+RRTMGP - Reorganization, single precision, MERRA aerosols

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.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus over 1 year ago

RTE+RRTMGP - Updated shortwave cloud optics, documentation, continuous integration

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

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus over 2 years ago

RTE+RRTMGP - Optimal angle, refactored gas optics

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.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus over 3 years ago

RTE+RRTMGP - Reduced-resolution k-distributions; reduced memory traffic

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.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus over 3 years ago

RTE+RRTMGP - Book keeping, clarifications, simplifications, OpenMP and OpenACC refinements

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.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus almost 4 years ago

RTE+RRTMGP - OpenMP GPU support, efficiency updates, streamlined make

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.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus about 4 years ago

RTE+RRTMGP - Input sanitizing optional

Minor bug fixes, changes to continuous integrations (now includes Gnu Fortran 8 and 9; Intel fort 19; PGI 19.10 and Cray CCE), input sanitizing is now optional.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus about 5 years ago

RTE+RRTMGP - Solar variability, surface temperature Jacobians, rescaling approach to LW scattering

This release includes changes accumulated over the last several months.

*) Bug fixes: rescaling LW calculation to treat scattering
*) Sensitivity (Jacobian) of LW fluxes to surface temperature
*) NRLSSI2 model of solar variability including the ability to specify total solar irradiance (#43)
*) Parameterization for optimal single angle at which to do LW no-scattering calculations

Argument lists for ty_gas_optics_rrtmgp%load() are changed for both LW and SW versions.

The optimal angle works but has no effect; updated data to come.

Testing and continuous integration has also been expanded, including a new set of regression tests in tests/

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus about 5 years ago

RTE+RRTMGP - (Re-)release for 10.1029/2019MS001621

This commit was used to create data used in the journal article Pincus, R., E.J. Mlawer, and J.S. Delamere, 2019: Balancing accuracy, efficiency, and flexibility in radiation calculations for dynamical models. doi:10.1029/2019MS001621.

This tag points to the same commit as v1.0 but is needed to trigger Zenodo to mint a DOI.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus over 5 years ago

RTE+RRTMGP - Release-for-10.1029/2019MS001621

This commit was used to create data used in the journal article Pincus, R., E.J. Mlawer, and J.S. Delamere, 2019: Balancing accuracy, efficiency, and flexibility in radiation calculations for dynamical models. doi:10.1029/2019MS001621.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus over 5 years ago

RTE+RRTMGP - overview-manuscript-submission

The code in this state was used to produce results in the original, submitted version of the manuscript "Balancing accuracy, efficiency, and flexibility in radiation calculations for dynamical models" by Robert Pincus, Eli J. Mlawer, and Jennifer S. Delemere.

Atmosphere - Radiative Transfer - Fortran
Published by RobertPincus over 6 years ago