|
YAC 3.12.0
Yet Another Coupler
|
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.
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.
YAC provides extensive interpolation capabilities. A description can be found here.
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.
Some information on the implementation of polygon clipping algorithm in YAC can be found here.
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.
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.
Information on how to build and use the Python bindings for the YAC MCI library can be found here.
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.
Within a coupled configuration, YAC supports the usage of multiple independent YAC instances. This concept and its usage is explained here.
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.
Additional functionallities that can help writing components and are used by the example are combined into the Utility library. This includes:
It has a C and Fortran interface. The C header file (yac_utils.h) is generated automatically during the building process.