YAC 3.12.0
Yet Another Coupler
Loading...
Searching...
No Matches
YAC libraries

Information on how to configure, build, install, and link YAC can be found here.

YAC contains three libraries: YAC Core library, YAC MCI library, and YAC Utility library.

YAC Core library


The YAC core library contains all functionallity required for generating weights and doing basic exchanges using them.

It has a low-level C and Fortran interface. The C header file (yac_core.h) is generated automatically during the building process.

Additional information

Interpolation

YAC provides extensive interpolation capabilities. A description can be found here.

Configuration of parallel IO in YAC

YAC accesses weight and grid files in parallel. The user can provide hints to YAC in form of multiple environment variables, which are evalutated during runtime.

Polygon clipping in YAC

Some information on the implementation of polygon clipping algorithm in YAC can be found here.

Sphere Partitioning Algorithm

The Sphere Partitioning Algorithm is used in YAC for efficiently accessing data defined on the surface of a sphere. A basic description can be found here.

YAC MCI library


The Model Coupling Interface (MCI) library is a library built on top of the YAC core library and provides additional capabilities that improve usability for Earth system model components.

It has a high-level C, Fortran, and Python interface.

User interface

The Python bindings

Information on how to build and use the Python bindings for the YAC MCI library can be found here.

Additional information

Initialising YAC in complex setups

In complex Earth system model configurations, initialization of MPI can be a difficult task, especially if a setup uses more than one coupling library or uses additional IO server components. How to handle these cases with YAC is discussed in detail here.

YAC instances

Within a coupled configuration, YAC supports the usage of multiple independent YAC instances. This concept and its usage is explained here.

Raw data exchange

In case target components want to receive unaltered source data and apply weights computed by YAC on their own, the raw data exchange feature can be used. This can be useful in case functionallity similar to an exchange grid is required or a component wants to do stochastic coupling, which is not directly supported by YAC.

YAC Utility library


Additional functionallities that can help writing components and are used by the example are combined into the Utility library. This includes:

  • read of various grid file types
  • generation of regular Gaussian and cubed sphere grids
  • VTK-file generation

It has a C and Fortran interface. The C header file (yac_utils.h) is generated automatically during the building process.


Core MCI Utilities