Recent Releases of Juelich Rapid Spectral Simulation Code

Juelich Rapid Spectral Simulation Code - v1.15

Changes in this release

Documentation & Metadata

  • Updated the README, MkDocs manual, Doxygen main page, examples, references, CITATION.cff, and dependency documentation.
  • Added a dedicated DEPENDENCIES.md file and clarified mandatory netCDF/HDF5 requirements and installation instructions.
  • Added a Matrix chat room, AGENTS.md, a JOSS submission badge, and author metadata including an additional ORCID.
  • Expanded the manual with figures, including infrared limb-spectrum illustrations, and corrected inconsistencies across the documentation.
  • Removed the external polyfill.io dependency from the manual.
  • Improved documentation for MPI parallelization, testing, workflows, command-line usage, lookup tables, and file formats.

JOSS Paper

  • Added and iteratively revised the JOSS paper.
  • Added a concise introduction, a statement of need, updated figures, citations, references, and author information.
  • Incorporated reviewer and collaborator feedback and aligned the paper with the current software capabilities and documentation.

Build System, Dependencies & CI/CD

  • Updated Makefiles, library build scripts, GitHub Actions workflows, documentation deployment, and coverage configuration.
  • Removed the obsolete Coveralls workflow.
  • Added and revised CLI, regression, MPI, netCDF, and lookup-table tests in continuous integration.
  • Added an optional hybrid MPI retrieval regression test.
  • Removed explicit -lzstd linking where it caused problems with static builds.
  • Improved workflow guidance, installation notes, and dependency handling.

Command-Line Interface & Tools

  • Added CLI help and usage documentation for all command-line tools.
  • Introduced a shared USAGE macro and expanded cli_test.
  • Improved handling and usability of the -h option.
  • Added clearer help text for control parameters.
  • Improved runtime timer reporting in the forward model, retrieval, and kernel applications.
  • Added or updated tools for zenith geometries, lookup-table reduction, table conversion, and table reading.

netCDF & Binary I/O

  • Added netCDF support for atmospheric profiles, observations, lookup tables, retrieval profile lists, and matrices.
  • Added binary and netCDF matrix I/O together with a matrix-format conversion tool and tests.
  • Added generic profile-index support to shared I/O wrappers.
  • Generalized dataset-aware matrix I/O.
  • Added MPI-safe shared netCDF retrieval I/O.
  • Added shared netCDF profile-list handling for retrieval applications.
  • Added macros and common infrastructure for netCDF support.
  • Improved atmospheric, observational, table, matrix, and retrieval netCDF test coverage.
  • Improved the performance of netCDF lookup-table reading.
  • Allowed netCDF readers to skip empty lookup tables safely.
  • Added distinct rad_* and bt_* netCDF variables for radiance and brightness-temperature observation spectra.

Lookup Tables & Interpolation

  • Added netCDF reading and writing for lookup tables.
  • Added filter functions to binary and netCDF lookup-table files.
  • Stored filter functions together with emissivity lookup tables.
  • Made emissivity lookup tables dynamically allocatable and added explicit cleanup routines.
  • Refactored table writers into per-(id, ig) functions.
  • Empty emissivity tables are now skipped with a warning instead of being written.
  • Reused common table packing and unpacking functions for binary lookup tables.
  • Added tests for lookup-table compression and extended table I/O tests.
  • Switched emissivity-curve interpolation to logarithmic space using precomputed log(u) and log(eps).
  • Added log-pressure interpolation and reused precomputed logarithmic pressure values.
  • Revised interpolation routines and changed invalid logarithmic interpolation fallbacks to linear interpolation.
  • Clamped interpolated segment emissivity to valid bounds.

Retrievals & Parallelization

  • Added MPI parallelization to the retrieval code.
  • Enabled MPI-safe shared access to netCDF retrieval data.
  • Added shared profile-list input and output for retrievals.
  • Refactored common retrieval input-target handling.
  • Added an optional hybrid MPI retrieval regression test.
  • Improved timing reports for retrieval and kernel calculations.

Observation Geometries & RFM Interface

  • Added support for zenith observation geometry.
  • Added a dedicated zenith geometry tool and example.
  • Extended zenith calculations to angles greater than 90 degrees.
  • Fixed zenith geometry handling and updated the associated regression tests.
  • Added zenith support to the RFM interface.
  • Fixed reading of netCDF filter functions through the RFM interface.
  • Updated limb, nadir, and zenith examples and their reference outputs.

Atmospheric Profiles & Vertical Grid

  • Added an option to refine the near-surface atmospheric layer.
  • Modified the vertical grid near the surface.
  • Removed an obsolete surface-level validation check.
  • Revised atmospheric memory allocation.
  • Added and expanded tests for atmospheric profile reading and writing.

Spectroscopy & Physical Parameters

  • Updated the refractivity equation to use dry-air Edlén refraction.
  • Updated regression data for the revised refractivity calculation.
  • Revised the global CO₂ fit using NOAA annual-mean data for 1980–2025.
  • Improved interpolation and emissivity handling for radiative-transfer lookup tables.

Code Quality & Refactoring

  • Revised memory allocation and lookup-table cleanup.
  • Removed unused variables and obsolete code.
  • Updated log messages, comments, Doxygen annotations, and API descriptions.
  • Refactored shared I/O, retrieval, and lookup-table helper functions.
  • Fixed documentation comments, references, manual inconsistencies, and compilation-related issues.

Tests & Examples

  • Added dedicated formod_test, obs_test, and atm_test programs.
  • Added tests for atmospheric and observational netCDF files.
  • Extended lookup-table, matrix, retrieval, CLI, MPI, and geometry regression tests.
  • Updated test scripts and reference datasets for interpolation, refractivity, zenith geometry, netCDF I/O, and examples.
  • Added a zenith example and refreshed the limb and nadir examples.
  • Updated example documentation and workflows.

Atmosphere - Radiative Transfer - C
Published by lars2015 about 1 month ago

Juelich Rapid Spectral Simulation Code - v1.14

Changes in this release:

  • Update CITATION.cff file.
  • Fixed code style.
  • Updated headers.
  • Added day2doy and doy2day functions and tools.
  • Update README.
  • Moved optimal estimation retrieval function to library file.
  • Added check of magic keys for binary data.
  • Added tests for binary file-I/O.
  • Added binary format for observation data files.
  • Added tool to convert observation file format.
  • Added binary format for atmospheric data files.
  • Added macros to convert NEDT to NESR and vice versa.
  • Added const qualifiers.
  • Fixed path for reading observational data.
  • Update doxygen comments.
  • Update tbl_test.
  • Added code to write per-gas emissivity look-up tables.
  • Fixed output of step size diagnostics.
  • Added code to evaluate forward model results.
  • Added test for hydrostatic code.
  • Replaced sza() by cos_sza() function.
  • Fixed output of raytrace tool.
  • Added test for look-up table tools.
  • Fix look-up table directory.
  • Added CGA test.
  • Update limb test.
  • Added FOV test.
  • Reorganized test data.
  • Added tests for tools.
  • Added test case for retrieval code.
  • Moved retrieval functions to jurassic.* files.
  • Removed surface pressure and surface height variables.
  • Added check whether local surface is included in atmospheric profiles.
  • Update look-up table interpolation.
  • Added check for ground height in raytracer.
  • Fix HiRSE Code Promo Badge link formatting
  • Modified function interface of read_tbl().
  • Modified initialization of look-up tables.
  • Moved field-of-view data to ctl struct.
  • Moved emitter indices for CO2, H2O, N2, and O2 to control parameters.
  • Fix N2 continuum code.
  • Added climatology data for HCl, HF, CH3OH, and H2CO.
  • Added CFC-113 and CFC-114 vertical profiles.
  • Added constants for nitrogen and oxygen concentrations.
  • Added N2 and O2 to climatology code.
  • Fix for reading RFM data.
  • Update check of column density.
  • Added checks of Curtis-Godson pressure.
  • Update examples.
  • Added LD_LIBRARY_PATH to tests.
  • Update table interpolation functions.

Atmosphere - Radiative Transfer - C
Published by lars2015 8 months ago

Juelich Rapid Spectral Simulation Code - v1.13

Changes in this version:

  • Update user manual.
  • Update docs.yml.
  • Update README.
  • Added link to AI documentation.
  • Added DIRLIST option to kernel tool.
  • Changed Makefile default to dynamic linking.
  • Added code of conduct and contributing guidelines.
  • Update codecov.yml

Atmosphere - Radiative Transfer - C
Published by lars2015 about 1 year ago

Juelich Rapid Spectral Simulation Code - v1.12

  • Update documentation.
  • Modified compile flags for coverage testing.
  • Update to GSL v2.7.1.
  • Converted brightness(), planck(), and refractivity() into macros.
  • Update loop variables.
  • Added const qualifiers.
  • Added DEG2RAD and RAD2DEG macros.

Atmosphere - Radiative Transfer - C
Published by lars2015 over 1 year ago

Juelich Rapid Spectral Simulation Code - v1.11

  • Removed calls to GSL macros and functions.
  • Fix for MATHJAX.
  • Update doxygen documentation.
  • Fixed some issues with coding style.
  • Update docs.yml
  • Update tests.yml
  • Update codecov.yml
  • Update Makefile.
  • Added constants to restrict column density and emissivity ranges.
  • Update reference list.
  • Update of test cases and examples.
  • Modified logarithmic interpolation scheme.
  • Modified look-up table interpolation for CGA method.
  • Revised extrapolation of emissivity.
  • Revised log messages.
  • Enable redefinition of constants.
  • Update README.
  • Fixed test case plots.
  • Fix of nadir test data.
  • Added calculation of kernel functions for nadir test case.
  • Added calculation of kernel function to limb test case.
  • Fix for reading RFM spectra.

Atmosphere - Radiative Transfer - C
Published by lars2015 over 1 year ago

Juelich Rapid Spectral Simulation Code - v1.10

  • Added CGA to forward model.
  • Extended size of filter functions.
  • Added log messages for look-up tables.
  • Fix log messages.
  • Update mkdocs.yml.
  • Update references.
  • Update Doxyfile.
  • Update codecov action.
  • Update documentation.
  • Update README.
  • Added logo.

Atmosphere - Radiative Transfer - C
Published by lars2015 about 2 years ago

Juelich Rapid Spectral Simulation Code - v1.9

  • Update README.md
  • Added wrapper to JURASSIC-UNIFIED library.
  • Fixed bug in array dimensions.
  • Added test for code coverage.
  • Update Makefile.
  • Added citation file.
  • Added cppcheck. Minor fixes.
  • Added Codacy badge
  • Modified vertical raytracing step size.
  • Added new plots for test cases.
  • Added RFM interface.
  • Modified los struct.

Atmosphere - Radiative Transfer - C
Published by lars2015 about 2 years ago

Juelich Rapid Spectral Simulation Code - v1.8

  • Added code to estimate sensitivity on raytracing step size.
  • Modified look-up tables for brightness temperature.
  • Modified tbl_t data struct.
  • Added los_t data struct.
  • Modified runtime measurements in formod.
  • Added output of git version.
  • Code cleaning.
  • Modified locate_reg().
  • Added specular reflection at the surface.
  • Revised interpolation method for look-up tables.
  • Revised calculation of source function table.
  • Added control parameters for cloud and surface data to climatology tool.
  • Added retrieval control parameters for surface data.
  • Added surface parameters to retrieval code.
  • Revised invert tool.
  • Implemented macros for log messages.
  • Definition of arrays sizes at compile time. Revised Makefile.
  • Revised brightness and planck tools to write table data.
  • Different file names for ASCII and binary tables.
  • Update to GSL v2.7.
  • Added Gaussian filter function.
  • Added tool to create look-up tables from absorption spectra.
  • Added tool to create radiometric filter functions.
  • Added code for look-up tables in binary format.
  • Added cloud retrieval parameters.
  • Added non-scattering cloud layer.

Atmosphere - Radiative Transfer - C
Published by lars2015 over 4 years ago

Juelich Rapid Spectral Simulation Code - v1.7

  • Update README.
  • Modified checks of look-up tables.
  • Added tool obs2spec to write radiance spectra.
  • Update Doxyfile and Makefile.
  • Update and rename test_case.yml to testcase.yml
  • Added github actions.
  • Added invert tool for MPTRAC.
  • Update to gsl-2.6.

Atmosphere - Radiative Transfer - C
Published by lars2015 over 4 years ago

Juelich Rapid Spectral Simulation Code - v1.6

  • Added output of multiple profiles to limb and nadir tools.
  • Revised examples.
  • Update reference manual.
  • Added constant for standard scale height.

Atmosphere - Radiative Transfer - C
Published by lars2015 over 5 years ago

Juelich Rapid Spectral Simulation Code - v1.5

  • Update documentation.
  • Added locate function for regular grids.
  • Replaced some GSL macros.
  • Revised hydrostatic code.
  • Update timer code.
  • Fix of array sizes in jurassic.c.
  • Update of GSL library.

Atmosphere - Radiative Transfer - C
Published by lars2015 over 5 years ago

Juelich Rapid Spectral Simulation Code - v1.4

  • Added summary data to raytrace tool.

Atmosphere - Radiative Transfer - C
Published by lars2015 over 5 years ago

Juelich Rapid Spectral Simulation Code - v1.3

  • Simplified continua code.
  • Added directory for libraries.
  • Revised directory structure.
  • Use OpenMP to read table data in parallel.
  • Reduced maximum number of ray paths and air parcels.
  • Added option to calculate multiple profiles.
  • Removed 2-D interpolation scheme and CGA method.
  • Removed Lagrangian interpolation and RFM interface.

Atmosphere - Radiative Transfer - C
Published by lars2015 over 5 years ago

Juelich Rapid Spectral Simulation Code - v1.2

  • Improved extrapolation for look-up tables.
  • Fixed ERRMSG and TIMER macros.

Atmosphere - Radiative Transfer - C
Published by lars2015 over 5 years ago

Juelich Rapid Spectral Simulation Code - v1.1

  • Update matrix output.

Atmosphere - Radiative Transfer - C
Published by lars2015 over 5 years ago

Juelich Rapid Spectral Simulation Code - v1.0

  • Initial version.

Atmosphere - Radiative Transfer - C
Published by lars2015 over 5 years ago