YetAnotherCoupler 3.2.0_a
No Matches
Condensed release information

Version 3.2.0 alpha (Apr 2024)

  • tba

Version 3.1.1 (Jan 2024)

  • adds workaround for performance issue of the OpenMPI implementation of routine MPI_Group_difference
  • adds support for asynchronous get operations
    • adds new routines yac_cget_async and yac_cwait
    • yac_ctest now supports checking for completition of asynchronous get operations
    • adds Python Coroutines for put and get operations

Version 3.1.0 (Jan 2024)

  • various fixes
  • rework of directory structure
    • code from src and tests directory is now moved to new subdirectories:
      • core (all code required for execution of weight computation and basic exchanges)
      • mci (model coupling interface; all code related to the user interface)
    • new tools directory
  • change to configure
    • new option --enable-lib-core-only
      • builds core functionality into libyac_core
      • removes the dependency on libfyaml, since mci is not built
    • new option --with-pic
    • --enable-lib-only replaced by --disable-examples and --disable-tools
    • removed --enable-netcdf
  • more consistent naming in YAC
    • all exposed routines and objects have a yac_ prefix
    • functionality from libgridio is now in libyac_utils
  • adds functionality that allows the duplication of stencils stored in struct yac_interp_weights for other target points (yac_duplicate_stencils)
  • adds Fortran interface for core functionality (mo_yac_core)
  • adds Fortran interface for utility functionality (mo_yac_utils)
  • additional functionality for SCRIP grid file reader (see yac_read_scrip_basic_grid)
  • additional functionality for writing weight files
  • removes redirstdout functionality
  • new weighting option for N-Nearest-Neighbour interpolation (YAC_INTERP_NNN_ZERO)
  • new interpolation method Nearest Corner Cells interpolation
  • improved 2nd order conservative weight computation at mask and grid edges
  • new examples
    • access_core
      • demonstrates access of core functionality from fortran
    • toy_output
      • basic output server
  • YAC is now REUSE-compliant

Version 3.0.3 (Oct 2023)

Version 3.0.2 (Aug 2023)

  • various fixes
  • new interfaces for
  • adds support for Dynamic fractional masking (includes various new interfaces)
  • improved code structure in interpolation.c
  • adds plausibility check for vertex coordinates provided by the user
  • replaces usage of MPF in crossproduct computation with kahan summation (required for CPUs that do not support long double with more than 64 bit)
  • Extends options for the Definition of couples
    • Fortran/Python:
      • additional optional arguments
    • C:
      • routines for the definition of an extended coupling configuration
      • new yac_cdef_couple_custom interface that has an additional argument for the extended coupling configuration
  • adds support for scaling fractors and summand (can be used for unit conversions in the interpolation)
  • adds support for scrip-formated grid files to tool weights2vtk
  • adds support for named masks
  • adds various workarounds for current NVHPC compiler
  • adds Python tool weight visualisation

Version 3.0.1 (Jun 2023)

  • various fixes
  • reduces compiler warnings
  • adds new interface for unstructured grids with edge on circles of longitude or latitude (can be used to register reduced gaussion grids)
  • adds check which ensures that the entries in the cell_to_vertex array in the definition of unstructed grids are within the valid range

Version 3.0.0 (Mar 2023)

Version 2.6.2 (Dec 2022)

Version 2.6.1 (Sep 2022)

Version 2.6.0 (Aug 2022)

Version 2.5.2 (Jun 2022)

  • some fixes

Version 2.5.1 (Jun 2022)

  • adds new query routine for fields (yac_cget_collection_size_id, yac_cget_collection_size_name, yac_cget_collection_size_name_instance)
  • adds optional maximum search distance to interpolation method Source to Target mapping
  • adds support for regular gaussian grids to weights2vtk tool
  • some bug fixes

Version 2.5.0 (May 2022)

  • adds new YAC initialisation interface that allows an early splitting of of the MPI_COMM_WORLD before the definition of components (yac_cinit_group, yac_cinit_group_instance, yac_cinit_comm_group, yac_cinit_comm_group_instance, yac_cget_groupcomm, yac_cget_groupcomm_instance, yac_finit_group, yac_finit_group_instance, yac_finit_comm_group, yac_finit_comm_group_instance, yac_fget_groupcomm, and yac_fget_groupcomm_instance)
  • adds new query routines for coupling configuration (yac_get_transients_count, yac_get_transient_ids, yac_is_transient_source, yac_is_transient_target, yac_get_transient_collection_size, yac_get_transient_coupling_period, yac_get_transient_source_grid_name, yac_get_transient_source_grid_name, yac_fget_transients_count, yac_fget_transient_ids, yac_fis_transient_source, yac_fis_transient_target, yac_fget_transient_collection_size, yac_fget_transient_coupling_period, yac_fget_transient_source_grid_name, yac_fget_transient_target_grid_name, and yac_fget_transient_name)

Version 2.4.3 (May 2022)

  • multiple source fields per target field are now supported in YAC2
  • rework of intersection computation and clipping for better and more consistent results
  • new query routines for fields (yac_cget_field_id_from_field_and_grid_name, yac_cget_field_id_from_field_and_grid_name_instance, yac_cget_role_of_field_by_field_and_grid_name, and yac_cget_role_of_field_by_field_and_grid_name_instance)
  • added support for multi precision library in case the hardware does not support a double precision data type with more than 64 Bit
  • significant improvment of test coverage and as a result a lot of fixes

Version 2.4.2 (Dec 2021)

  • fixes bug which cause a segmentation fault in case the configuration XML file did not contain a transient_grid_refs section for a component
  • improves computation of barycenters (relevant for 2nd order conservative interpolation)
  • fixes bug that occured the core mask for a cell, vertex, or edge was 0 on all processes
  • fixes issue that occured if a process with no cells was part of a active component
  • additional code cleanup and improved testing

Version 2.4.1 (Dec 2021)

  • some change to configure to avoid issues caused by ICON build process

Version 2.4.0 (Nov 2021)

  • rework of internal handling of coupling configurations
  • new dummy initialisation routines for YAC (yac_cinit_dummy, yac_cinit_comm_dummy, yac_finit_dummy)
  • additional documentation on YAC instances
  • automatic unit tests by gitlab CI
  • automatic test coverage report by gitlab CI
  • improved test coverage
  • a lot of code cleanup
  • fixes issue with weight files that contained more than one fixed value
  • fixes broken accumulation time opertion of put
  • some additional minor fixes

Version 2.3.2 (Sep 2021)

  • adds some workaround for NEC compiler
  • grids and points are now independent of YAC instances (a grid defined once can be used by multiple YAC instances)
  • some bug fixes

Version 2.3.1 (Sep 2021)

  • some bug fixes

Version 2.3.0 (Aug 2021)

Version 2.2.0 (May 2021)

Version 2.1.2 (Apr 2021)

  • interpolation method "Source Point Mapping" now has the option to distribute the source data to multiple target cell within a spread distance, which can be set by the user
  • interpolation method "Average" now has a new barycentric coordiante based weighting option
  • fixes issue that occured, when creating distributed grids on a single process

Version 2.1.1 (Mar 2021)

  • a lot of cleanup and refactoring
  • small bug fixes

Version 2.1.0 (Feb 2021)

Version 2.0.1 (Jan 2021)

  • Support for user file interpolation

Version 2.0.0 (Jan 2021)

  • Internal rewrite
  • Clean-up of coupling xml and GUI

Version 1.5.5 (Aug 2020)

  • YAC is now shipped with BSD license
  • minor bug fixes
  • update to latest version of mtime

Version 1.5.4 (Dec 2019)

  • Arguments '–with-regard-for-quality' and '–with-mpi-pack-external' are renamed to '–enable-mpi-checks' and '–enable-mpi-pack-external' respectively. Configure-time checks related to MPI_Pack_external are run only when the usage of MPI_Pack_external is enabled.
  • Influential environment variables '*_C_INCLUDE' and '*_C_LIB' are renamed to '*_CFLAGS' and '*_CLIBS' respectively. When set, the values of the variables override the values set with '–with-*-root', '–with-*-include', and '-with-*-lib'.
  • The default subdirectory to be searched for libxml2 header files is switched from '$with_xml2_root/include' to 'XML2_ROOT/include/libxml2'.
  • Automatic update of LD_LIBRARY_PATH when running the test suite on Linux (no need to specify rpath flags at configure-time anymore).
  • cfortran.h is not used anymore and removed from the repository. The name-mangling scheme required to enable Fortran backend for LAPACK is detected at configure-time.
  • The configure script generates a public header file 'yac_config.h' (installed to $prefix/include), which can be used by user applications to check for features enabled in YAC. The file can be safely included by Fortran compilers as well.
  • Silent mode for 'make' is enabled by default (can be overridden at the configure time with the option '–disable-silent-rules' or at the build time with the argument V=1, e.g. 'make V=1')
  • The configure script does not try to guess which libraries are required to enable MPI: users are encouraged to use MPI compiler wrappers).
  • Minor improvements for 'make clean' and 'make distclean' commands.
  • MPI_LAUNCH variable can be now set without the absolute path prefix.

Version 1.5.3 (Nov 2019)

  • bug fix in interpolation method spmap

Version 1.5.2 (Jul 2019)

  • bug fix in interpolation method spmap
  • error checking for all allocation routines
  • new configure test for bug in cray-mpich

Version 1.5.1 (Jun 2019)

  • gauss weighted distance n-nearest neighbours
  • bug fix to prevent a segmentation fault in nnn_search_local, if the number of unmasked point on a process is zero

Version 1.5.0 (Feb 2019)

  • a frist implementation of interpolation with radial basis functions (experimental)
  • refactoring of configure
  • refactoring of internal routines and structs
  • bug fixes

Version 1.4.0 (22 Oct 2018)

  • new interpolation: 2nd order conservative remapping
  • optimisation
  • fixes of memory leaks in tests and examples
  • cleaning of examples

Version 1.3.2 (21 Aug 2018)

  • internally coordinates are now handled in the cartesian space to avoid unneccessary forward- and backward conversion
  • improved performance for nearest-neighbour search
  • bug fixes and cleanup

Version 1.3.1 (6 Aug 2018)

  • new interpolation: hybrid cubic spherical Bernstern-Bezier
  • optimisation
  • bug fixes

Version 1.3.0 (25 Sep 2017)

  • new features in user interface:
    • optional mapping of interpolated data on the target instead of source processes
    • couple_config (yac_setup_couple_config) now supports coupling of domains located on the same process
    • extension of the user interface by yac_cdef_comps and yac_fdef_comps
    • example based on OASIS_MCT paper (Craig et al, 2017), their Fig. 1 (see
    • interface yac_fdef_field_nomask
    • support of ISO format for time steps and coupling period
    • constants for location of data points YAC_LOCATION_CELL, YAC_LOCATION_CORNER and YAC_LOCATION_EDGE
    • interface yac_fset_comp_io_proc_step and yac_fget_comp_io_proc_step
    • interface.h renamed to yac_interface.h
    • interpolation method file now read point location from weight file
    • interpolation method file now supports fixed values
  • new internal features:
    • point_sphere_part_search for optimised search in source point mapping (spmap) and n nearest neighbour (nnn)
    • interpolation plan type pointsum
    • interpolation plan type point for special case of 1 nearest neighbour
    • yac_comm_bsend now integrated into communicator_mpi to allow for waiting of bsends to be completed (results in performance improvements)
    • parallel reading of grid files especially required for high resolution grids like R02B11 (yac_read_icon_grid_information_parallel)
    • experimental new interpolation methods smoothed patch recovery
    • new communication routines yac_comm_isend, yac_comm_irecv, yac_comm_testsome, yac_comm_waitall, yac_comm_free_request, yac_comm_scatter_callback and yac_comm_reduce_callback
    • yac_comm_check can now be used to pass on control to communication from time to time when processes a kept busy with huge but low-priority tasks, used in conserv, nnn, and patch.
    • DEBUG_TAGS prints tags and their associated strings
    • ATLAS is now supported by configure
    • component now contains information on good IO-processor count used for reading and writing weight files
    • collective routine yac_get_unique_comm_tags as a replacement for yac_get_unique_comm_tag which was unsave to use
    • constructor yac_global_search_all_local_new
    • constructor yac_new_field_interpolation_gen_src_tgt_2
  • bug fixes:
    • rewrite of spmap to overcome various problems
    • writing out weight files: older versions ignore writing out of some files
    • ensure bit-reproducability for conservative remapping and nearest-neighbour interpolation
    • useless use statements in Fortran interface removed
  • new interpolation method spmap (source point mapping); maps all non-masked source points to the nearest target point
    • with example toy_icon_runoff_atm/ocn to investigate spmap for icon grids
  • rework of n nearest neighbour interpolation method; much faster and less complex communication scheme
  • significant performance improvement in sphere part
  • removing of unused functions and variables
  • autotools update
  • update of GUI manual
  • update to latest version of mtime
  • cleaner handling of timestep and timelag in the GUI
  • makes write_restart and debug_mode optional in xml
  • components now can share one, some or all processes

Version 1.2.0 (30 Nov 2015)

  • bug fixes and performance improvements for reading in weights from files

Version 1.1.0 (28 Oct 2015)

  • first complete version of the GUI
  • reduction of MPI messages by using asynchronous collective operations
  • performance improvements in couple_config and global search
  • fix of several memory leaks
  • replaces mpi_pack, mpi_unpack, mpi_pack_size with its external counterpart
  • weighted average
  • correct behaviour or redirect stdout

Version 1.0.5 (22 Jul 2015)

  • performance improvements for search
  • fix in Fortran interface for yac_fget
  • minor bug fixes

Version 1.0.4 (9 Jun 2015)

  • major update of GUI with improved functionality
  • support user defined weights added (writing and reading of weight files)
  • load balancing functionality added
  • send/receive of individual collections/bundles with one operation
  • cubed sphere test case
  • minor bug fixes, performance improvements and code cleaning

Version 1.0.3 (5 Feb 2015)

  • priority given to targets sending grid info to source processes (see commit 92ee8eb6)
  • yac_ prefix for all external symbols
  • update of GUI plus minor revision of coupling.xsd
  • first version of GUI user manual

Version 1.0.2 (30 Oct 2014)

  • users are allowed to pass job start/end dates via F90/C API
  • new toy example to read in World Ocean Atlas 2009 data
  • bug fixes

Version 1.0.1 (3 Sep 2014)

SAB 2014 version

  • interpolation weights are now calculated only once if the same interpolation stack is applied to more than field, provided that grid- and mask-pairs are identical as well
  • some communication is saved for conservative remapping and patch recovery by packing data into a single message
  • support for moderately concave cells
  • distance-weighted n-nearest-neighbour interpolation
  • old simple n-nearest-neighbour weights are now optional

Version 1.0.0 (22 Jul 2014)

  • first release