Skip to content

v3.2

Latest

Choose a tag to compare

@lars2015 lars2015 released this 18 Jul 08:31
· 10 commits to master since this release

Changes in this release

Documentation & Metadata

  • Updated README, quick-start instructions, MkDocs and Doxygen manuals, application documentation, model-physics documentation, references, CITATION.cff, and DEPENDENCIES.md.
  • Clarified example workflows, mesoscale diffusion, compression APIs, meteorological model-level limitations, UTM-grid usage, and dd_test comparison semantics.
  • Added CLI help messages for tools, a Matrix chat room link, AGENTS.md, and updated MPTRAC architecture and module diagrams.
  • Fixed Doxygen warnings, parameter descriptions, documentation deployment, and various script and interface descriptions.

Build System, Dependencies & CI/CD

  • Updated Makefiles, compiler flags, library build scripts, dependency definitions, and GitHub Actions workflows.
  • Improved MPI compiler-wrapper handling and propagated compile-time dimension overrides to the Fortran interface.
  • Added and strengthened CI tests for the Fortran wrapper, LZ4, compression configurations, GPU builds, and domain decomposition.
  • Upgraded ZSTD from version 1.5.5 to 1.5.7 and enabled pthread support.
  • Fixed compilation issues involving the Fortran wrapper, CMS, PCK+ZSTD, MPI, NVHPC, GPU code, and optional dependencies.
  • Improved build defaults, wrapper rebuild behavior, coverage builds, and GPU memory pinning.

Code Quality & Refactoring

  • Added const qualifiers, cleaned up interfaces, comments, pragmas, logging, timers, and obsolete conditional compilation.
  • Refactored shared compression helpers, meteorological writers, CLI initialization, and utility-program setup.
  • Unified compression diagnostics and simplified codec-specific logging.
  • Removed obsolete warnings, debug statements, NVTX markers, redundant flags, and unsupported code paths.
  • Improved error messages and corrected stale comments, declarations, and type definitions.

Domain Decomposition

  • Reworked domain decomposition to use index-based particle ownership and MPI all-to-all communication.
  • Added dd_push() implementations for CPUs and GPUs as an alternative to repeated particle sorting.
  • Replaced the fixed particle buffer with a dynamically resized buffer.
  • Revised particle communication interfaces, MPI datatype registration, DD grid initialization, and GPU memory allocation.
  • Improved DD netCDF reading, halo setup, longitude handling, particle ordering, and support for MET_CONVENTION=1.
  • Added GPU support, edge-case handling, guarding pragmas, local test execution, and improved DD comparison tests.
  • Fixed issues involving particle quantities, vertical velocity checks, sorting types, missing domain-decomposition calls, and CPU/GPU consistency.

Physics, Numerics & Algorithms

  • Revised horizontal, mesoscale, PBL, and vertical turbulent diffusion schemes.
  • Added drift and density corrections to vertical diffusion and improved reflection at the surface and model top.
  • Refined the Hanna-style PBL turbulence closure, boundary handling, initialization, and optional control parameters.
  • Adopted the ECMWF heat-flux sign convention and extended GRIB surface-data reading for PBL closure fields.
  • Added PBL-relative particle initialization and density-weighted initialization through the new INIT_RHO parameter.
  • Added validation of DT_MOD against DT_MET and updated the met_check_dt utility.
  • Updated pressure-level definitions, wind defaults, wind-field generation, and well-mixed tracer sampling.
  • Disabled the unsupported ADVECT = 0 option and fixed geopotential, KPP, and related physics code.

UTM Coordinates & Output Timing

  • Added support for meteorological data and simulations on UTM grids.
  • Introduced the MET_COORD_TYPE configuration option and UTM reference coordinates for climatology-based physics.
  • Updated atmospheric initialization and particle splitting for UTM coordinates.
  • Added UTM documentation, validation, logging, safeguards, and dedicated test cases.
  • Added support for sub-minute trajectory output.
  • Trajectory and gridded output filenames now always include a seconds component.

I/O, Data Handling & Formats

  • Added a netCDF trajectory export option to the web runner.
  • Refactored the wind tool to use the shared meteorological writer and auxiliary fields.
  • Added a time dimension and additional surface and boundary-layer fields to generated wind data.
  • Improved meteorological availability checks, data validation, model-level handling, and netCDF layout support.
  • Updated ERA5.1 retrieval scripts for the 2000–2006 period.
  • Added a flag to convert surface geopotential to surface height.
  • Updated reference data and example outputs to reflect revised file naming, physics, diffusion, compression, and particle ordering.

Compression

  • Added LZ4 support for compressed meteorological data and tuned its default acceleration.
  • Added optional PCK+ZSTD recompression and configurable multithreaded ZSTD compression via MET_ZSTD_NWORKERS.
  • Added level-dependent scaling for ZFP and SZ3 compression.
  • Introduced codec-specific control arrays for CMS, ZFP, and SZ3 precision settings.
  • Retuned the default ZFP, SZ3, ZSTD, and strong-compression settings, particularly for ERA5 data.
  • Improved handling of near-zero relative tracer deviations and compression-rate diagnostics.
  • Revised compression interfaces, helper functions, tests, reference outputs, logging, and round-trip validation.
  • Fixed CMS, ZSTD, ZFP, SZ3, and PCK-related compilation and documentation issues.

GPU & Performance

  • Improved GPU support for domain decomposition, particle communication, dynamic buffers, diffusion tests, and sorting.
  • Added a fallback for Thrust-based sorting on GPUs.
  • Revised GPU memory allocation and fixed memory-pinning and timer issues.
  • Added CPU and GPU execution paths for particle pushing and DD edge cases.
  • Updated GPU test datasets and associated reference results.
  • Cleaned up GPU pragmas, compiler flags, and conditional compilation.

Fortran Interface

  • Fixed the Fortran wrapper ABI, declarations, string lengths, configuration fields, and generated documentation.
  • Added support for MET_COORD_TYPE, UTM reference coordinates, and compression control arrays.
  • Updated interfaces for revised MPTRAC APIs and compile-time dimensions.
  • Added a dedicated Fortran-wrapper CI test and ensured the interface is rebuilt during testing.

Tests & Examples

  • Refreshed Python example plots, documentation, simulation outputs, and reference datasets.
  • Aligned Python examples with current MPTRAC output and clarified the example README workflow.
  • Added tests for UTM grids, sub-minute trajectory output, DD push behavior, local DD execution, GPU edge cases, and updated diffusion schemes.
  • Updated compression, CMS, GPU, trajectory, wind, and domain-decomposition reference data.
  • Improved dd_test local mode, tabular comparison behavior, particle ordering, and documentation.

Web Runner & User Interface

  • Modernized the web runner interface, layout, form labels, presets, and visual hierarchy.
  • Added local test mode, selectable output quantities, netCDF trajectory export, and improved dataset validation.
  • Added meteorological data-availability checks and clearer guidance through the submission and execution workflow.
  • Improved input validation, runtime messaging, progress handling, and stale-modal cleanup.
  • Refined presets, default values, copy, form organization, and dataset-specific warnings.

Tracer Chemistry & Specialized Modules

  • Added a new module for radionuclide tracers.
  • Updated tracer quantity naming and related loss-rate handling.
  • Fixed KPP chemistry code and updated associated build and documentation components.