YetAnotherCoupler 3.2.0_a
Loading...
Searching...
No Matches
Macros | Typedefs | Functions | Variables
yac.h File Reference
#include <stddef.h>
#include <mpi.h>
Include dependency graph for yac.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define YAC_MAX_CHARLEN   (132)
 
#define __attribute__(x)   /*NOTHING*/
 
#define TYPEDEF_YAC_FUNC_COMPUTE_WEIGHTS
 

Typedefs

typedef void(* yac_abort_func) (MPI_Comm comm, const char *msg, const char *source, int line) __attribute__((noreturn))
 
typedef void(* yac_func_compute_weights) (double const tgt_coords[3], int src_cell_id, size_t src_cell_idx, int const **global_results_points, double **result_weights, size_t *result_count, void *user_data)
 

Functions

void yac_cmpi_handshake (MPI_Comm comm, size_t n, char const **group_names, MPI_Comm *group_comms)
 
int yac_cget_default_instance_id ()
 
void yac_cinit (void)
 
void yac_cinit_instance (int *yac_instance_id)
 
void yac_cinit_comm (MPI_Comm comm)
 
void yac_cinit_comm_instance (MPI_Comm comm, int *yac_instance_id)
 
void yac_cinit_dummy (void)
 
void yac_cinit_comm_dummy (MPI_Comm comm)
 
void yac_cread_config_yaml_instance (int yac_instance_id, const char *yaml_file)
 
void yac_cread_config_yaml (const char *yaml_file)
 
void yac_cread_config_json_instance (int yac_instance_id, const char *json_file)
 
void yac_cread_config_json (const char *json_file)
 
void yac_ccleanup ()
 
void yac_ccleanup_instance (int yac_instance_id)
 
void yac_cfinalize ()
 
void yac_cfinalize_instance (int yac_instance_id)
 
void yac_cdef_datetime (const char *start_datetime, const char *end_datetime)
 
void yac_cdef_datetime_instance (int yac_instance_id, const char *start_datetime, const char *end_datetime)
 
void yac_cdef_calendar (int calendar)
 
void yac_cget_groupcomm (MPI_Comm *group_comm)
 
void yac_cget_groupcomm_instance (int yac_instance_id, MPI_Comm *group_comm)
 
void yac_cpredef_comp (char const *comp_name, int *comp_id)
 
void yac_cpredef_comp_instance (int yac_instance_id, char const *comp_name, int *comp_id)
 
void yac_cdef_comp (const char *comp_name, int *comp_id)
 
void yac_cdef_comp_instance (int yac_instance_id, const char *comp_name, int *comp_id)
 
void yac_cdef_comps (const char **comp_names, int num_comps, int *comp_ids)
 
void yac_cdef_comps_instance (int yac_instance_id, const char **comp_names, int num_comps, int *comp_ids)
 
void yac_cget_comp_comm (int comp_id, MPI_Comm *comp_comm)
 
void yac_cget_comps_comm (const char **comp_names, int num_comps, MPI_Comm *comps_comm)
 
void yac_cget_comps_comm_instance (int yac_instance_id, const char **comp_names, int num_comps, MPI_Comm *comps_comm)
 
void yac_cdef_points_reg2d (int const grid_id, int const *nbr_points, int const location, double const *x_points, double const *y_points, int *point_id)
 
void yac_cdef_points_curve2d (int const grid_id, int const *nbr_points, int const location, double const *x_points, double const *y_points, int *point_id)
 
void yac_cdef_points_unstruct (int const grid_id, int const nbr_points, int const location, double const *x_points, double const *y_points, int *point_id)
 
void yac_cdef_grid_reg2d (const char *grid_name, int nbr_vertices[2], int cyclic[2], double *x_vertices, double *y_vertices, int *grid_id)
 
void yac_cdef_grid_curve2d (const char *grid_name, int nbr_vertices[2], int cyclic[2], double *x_vertices, double *y_vertices, int *grid_id)
 
void yac_cdef_grid_unstruct (const char *grid_name, int nbr_vertices, int nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex, int *grid_id)
 
void yac_cdef_grid_unstruct_ll (const char *grid_name, int nbr_vertices, int nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex, int *grid_id)
 
void yac_cset_global_index (int const *global_index, int location, int grid_id)
 
void yac_cset_core_mask (int const *is_core, int location, int grid_id)
 
void yac_cset_mask (int const *is_valid, int points_id)
 
void yac_cdef_mask (int const grid_id, int const nbr_points, int const location, int const *is_valid, int *mask_id)
 
void yac_cdef_mask_named (int const grid_id, int const nbr_points, int const location, int const *is_valid, char const *name, int *mask_id)
 
void yac_cdef_field (char const *field_name, int const component_id, int const *point_ids, int const num_pointsets, int collection_size, const char *timestep, int time_unit, int *field_id)
 
void yac_cdef_field_mask (char const *field_name, int const component_id, int const *point_ids, int const *mask_ids, int const num_pointsets, int collection_size, const char *timestep, int time_unit, int *field_id)
 
void yac_cenable_field_frac_mask (const char *comp_name, const char *grid_name, const char *field_name, double frac_mask_fallback_value)
 
void yac_cenable_field_frac_mask_instance (int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name, double frac_mask_fallback_value)
 
void yac_cdef_component_metadata (const char *comp_name, const char *metadata)
 
void yac_cdef_component_metadata_instance (int yac_instance_id, const char *comp_name, const char *metadata)
 
void yac_cdef_grid_metadata (const char *grid_name, const char *metadata)
 
void yac_cdef_grid_metadata_instance (int yac_instance_id, const char *grid_name, const char *metadata)
 
void yac_cdef_field_metadata (const char *comp_name, const char *grid_name, const char *field_name, const char *metadata)
 
void yac_cdef_field_metadata_instance (int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name, const char *metadata)
 
void yac_cget_action (int field_id, int *action)
 
const char * yac_cget_field_datetime (int field_id)
 
void yac_cupdate (int field_id)
 
void yac_cget_ext_couple_config (int *ext_couple_config_id)
 
void yac_cfree_ext_couple_config (int ext_couple_config_id)
 
void yac_cset_ext_couple_config_weight_file (int ext_couple_config_id, char const *weight_file)
 
void yac_cget_ext_couple_config_weight_file (int ext_couple_config_id, char const **weight_file)
 
void yac_cset_ext_couple_config_mapping_side (int ext_couple_config_id, int mapping_side)
 
void yac_cget_ext_couple_config_mapping_side (int ext_couple_config_id, int *mapping_side)
 
void yac_cset_ext_couple_config_scale_factor (int ext_couple_config_id, double scale_factor)
 
void yac_cget_ext_couple_config_scale_factor (int ext_couple_config_id, double *scale_factor)
 
void yac_cset_ext_couple_config_scale_summand (int ext_couple_config_id, double scale_summand)
 
void yac_cget_ext_couple_config_scale_summand (int ext_couple_config_id, double *scale_summand)
 
void yac_cset_ext_couple_config_src_mask_names (int ext_couple_config_id, size_t num_src_mask_names, char const *const *src_mask_names)
 
void yac_cget_ext_couple_config_src_mask_names (int ext_couple_config_id, size_t *num_src_mask_names, char const *const **src_mask_names)
 
void yac_cset_ext_couple_config_tgt_mask_name (int ext_couple_config_id, char const *tgt_mask_name)
 
void yac_cget_ext_couple_config_mask_name (int ext_couple_config_id, char const **tgt_mask_name)
 
void yac_cdef_couple_custom_instance (int yac_instance_id, char const *src_comp_name, char const *src_grid_name, char const *src_field_name, char const *tgt_comp_name, char const *tgt_grid_name, char const *tgt_field_name, char const *coupling_timestep, int time_unit, int time_reduction, int interp_stack_config_id, int src_lag, int tgt_lag, int ext_couple_config_id)
 
void yac_cdef_couple_custom (char const *src_comp_name, char const *src_grid_name, char const *src_field_name, char const *tgt_comp_name, char const *tgt_grid_name, char const *tgt_field_name, char const *coupling_timestep, int time_unit, int time_reduction, int interp_stack_config_id, int src_lag, int tgt_lag, int ext_couple_config_id)
 
void yac_cdef_couple_instance (int yac_instance_id, char const *src_comp_name, char const *src_grid_name, char const *src_field_name, char const *tgt_comp_name, char const *tgt_grid_name, char const *tgt_field_name, char const *coupling_timestep, int time_unit, int time_reduction, int interp_stack_config_id, int src_lag, int tgt_lag)
 
void yac_cdef_couple (char const *src_comp_name, char const *src_grid_name, char const *src_field_name, char const *tgt_comp_name, char const *tgt_grid_name, char const *tgt_field_name, char const *coupling_timestep, int time_unit, int time_reduction, int interp_stack_config_id, int src_lag, int tgt_lag)
 
void yac_ccheck_field_dimensions (int field_id, int collection_size, int num_pointsets, int const *pointset_sizes)
 
void yac_cget_ (int const field_id, int const collection_size, double *recv_field, int *info, int *ierror)
 
void yac_cget (int const field_id, int const collection_size, double **recv_field, int *info, int *ierror)
 
void yac_cget_async_ (int const field_id, int const collection_size, double *recv_field, int *info, int *ierror)
 
void yac_cget_async (int const field_id, int const collection_size, double **recv_field, int *info, int *ierror)
 
void yac_cput_ (int const field_id, int const collection_size, double *send_field, int *info, int *ierror)
 
void yac_cput (int const field_id, int const collection_size, double ***const send_field, int *info, int *ierror)
 
void yac_cput_frac_ (int const field_id, int const collection_size, double *send_field, double *send_frac_mask, int *info, int *ierror)
 
void yac_cput_frac (int const field_id, int const collection_size, double ***const send_field, double ***const send_frac_mask, int *info, int *ierror)
 
void yac_cput_ptr_ (int const field_id, int const collection_size, double **send_field, int *info, int *ierror)
 
void yac_cput_frac_ptr_ (int const field_id, int const collection_size, double **send_field, double **send_frac_mask, int *info, int *ierror)
 
void yac_cexchange_ (int const send_field_id, int const recv_field_id, int const collection_size, double *send_field, double *recv_field, int *send_info, int *recv_info, int *ierror)
 
void yac_cexchange (int const send_field_id, int const recv_field_id, int const collection_size, double ***const send_field, double **recv_field, int *send_info, int *recv_info, int *ierror)
 
void yac_cexchange_frac_ (int const send_field_id, int const recv_field_id, int const collection_size, double *send_field, double *send_frac_mask, double *recv_field, int *send_info, int *recv_info, int *ierror)
 
void yac_cexchange_frac (int const send_field_id, int const recv_field_id, int const collection_size, double ***const send_field, double ***const send_frac_mask, double **recv_field, int *send_info, int *recv_info, int *ierror)
 
void yac_cexchange_ptr_ (int const send_field_id, int const recv_field_id, int const collection_size, double **send_field, double **recv_field, int *send_info, int *recv_info, int *ierror)
 
void yac_cexchange_frac_ptr_ (int const send_field_id, int const recv_field_id, int const collection_size, double **send_field, double **send_frac_mask, double **recv_field, int *send_info, int *recv_info, int *ierror)
 
void yac_ctest (int field_id, int *flag)
 
void yac_cwait (int field_id)
 
void yac_csync_def (void)
 
void yac_csync_def_instance (int yac_instance_id)
 
void yac_cenddef (void)
 
void yac_cenddef_instance (int yac_instance_id)
 
void yac_cenddef_and_emit_config (int emit_flags, char **config)
 
void yac_cenddef_and_emit_config_instance (int yac_instance_id, int emit_flags, char **config)
 
char * yac_cget_start_datetime (void)
 
char * yac_cget_start_datetime_instance (int yac_instance_id)
 
char * yac_cget_end_datetime (void)
 
char * yac_cget_end_datetime_instance (int yac_instance_id)
 
char * yac_cget_version (void)
 
int yac_cget_nbr_comps (void)
 
int yac_cget_nbr_comps_instance (int yac_instance_id)
 
int yac_cget_nbr_grids ()
 
int yac_cget_nbr_grids_instance (int yac_instance_id)
 
int yac_cget_comp_nbr_grids (const char *comp_name)
 
int yac_cget_comp_nbr_grids_instance (int yac_instance_id, const char *comp_name)
 
int yac_cget_nbr_fields (const char *comp_name, const char *grid_name)
 
int yac_cget_nbr_fields_instance (int yac_instance_id, const char *comp_name, const char *grid_name)
 
void yac_cget_comp_names (int nbr_comps, const char **comp_names)
 
void yac_cget_comp_names_instance (int yac_instance_id, int nbr_comps, const char **comp_names)
 
void yac_cget_grid_names (int nbr_grids, const char **grid_names)
 
void yac_cget_grid_names_instance (int yac_instance_id, int nbr_grids, const char **grid_names)
 
void yac_cget_comp_grid_names (const char *comp_name, int nbr_grids, const char **grid_names)
 
void yac_cget_comp_grid_names_instance (int yac_instance_id, const char *comp_name, int nbr_grids, const char **grid_names)
 
void yac_cget_field_names (const char *comp_name, const char *grid_name, int nbr_fields, const char **field_names)
 
void yac_cget_field_names_instance (int yac_instance_id, const char *comp_name, const char *grid_name, int nbr_fields, const char **field_names)
 
const char * yac_cget_component_name_from_field_id (int field_id)
 
const char * yac_cget_grid_name_from_field_id (int field_id)
 
const char * yac_cget_field_name_from_field_id (int field_id)
 
const char * yac_cget_timestep_from_field_id (int field_id)
 
int yac_cget_collection_size_from_field_id (int field_id)
 
int yac_cget_role_from_field_id (int field_id)
 
int yac_cget_field_id (const char *comp_name, const char *grid_name, const char *field_name)
 
int yac_cget_field_id_instance (int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
 
const char * yac_cget_component_metadata (const char *comp_name)
 
const char * yac_cget_component_metadata_instance (int yac_instance_id, const char *comp_name)
 
const char * yac_cget_grid_metadata (const char *grid_name)
 
const char * yac_cget_grid_metadata_instance (int yac_instance_id, const char *grid_name)
 
const char * yac_cget_field_metadata (const char *comp_name, const char *grid_name, const char *field_name)
 
const char * yac_cget_field_metadata_instance (int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
 
const char * yac_cget_field_timestep (const char *comp_name, const char *grid_name, const char *field_name)
 
const char * yac_cget_field_timestep_instance (int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
 
double yac_cget_field_frac_mask_fallback_value (const char *comp_name, const char *grid_name, const char *field_name)
 
int yac_cget_field_collection_size (const char *comp_name, const char *grid_name, const char *field_name)
 
double yac_cget_field_frac_mask_fallback_value_instance (int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
 
int yac_cget_field_collection_size_instance (int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
 
int yac_cget_field_role (const char *comp_name, const char *grid_name, const char *field_name)
 
int yac_cget_field_role_instance (int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
 
void yac_abort (MPI_Comm comm, const char *msg, const char *source, int line) __attribute__((noreturn))
 
void yac_abort_message (char const *msg, const char *source, int line)
 
void yac_restore_default_abort_handler (void)
 
void yac_set_abort_handler (yac_abort_func custom_abort)
 
yac_abort_func yac_get_abort_handler (void)
 
yac_abort_func yac_get_default_abort_handler (void)
 
void yac_set_default_comm (MPI_Comm comm)
 
size_t yac_cget_grid_size (int location, int grid_id)
 
size_t yac_cget_points_size (int points_id)
 
void yac_cget_interp_stack_config (int *interp_stack_config_id)
 
void yac_cfree_interp_stack_config (int interp_stack_config_id)
 
void yac_cadd_interp_stack_config_average (int interp_stack_config_id, int reduction_type, int partial_coverage)
 
void yac_cadd_interp_stack_config_ncc (int interp_stack_config_id, int weight_type, int partial_coverage)
 
void yac_cadd_interp_stack_config_nnn (int interp_stack_config_id, int type, size_t n, double scale)
 
void yac_cadd_interp_stack_config_conservative (int interp_stack_config_id, int order, int enforced_conserv, int partial_coverage, int normalisation)
 
void yac_cadd_interp_stack_config_spmap (int interp_stack_config_id, double spread_distance, double max_search_distance, int weight_type, int scale_type, double src_sphere_radius, double tgt_sphere_radius)
 
void yac_cadd_interp_stack_config_hcsbb (int interp_stack_config_id)
 
void yac_cadd_interp_stack_config_user_file (int interp_stack_config_id, char const *filename, char const *src_grid_name, char const *tgt_grid_name)
 
void yac_cadd_interp_stack_config_fixed (int interp_stack_config_id, double value)
 
void yac_cadd_interp_stack_config_check (int interp_stack_config_id, char const *constructor_key, char const *do_search_key)
 
void yac_cadd_interp_stack_config_creep (int interp_stack_config_id, int creep_distance)
 
void yac_cadd_interp_stack_config_user_callback (int interp_stack_config_id, char const *func_compute_weights_key)
 
void yac_cadd_compute_weights_callback (yac_func_compute_weights compute_weights_callback, void *user_data, char const *key)
 

Variables

int const YAC_LOCATION_CELL
 
int const YAC_LOCATION_CORNER
 
int const YAC_LOCATION_EDGE
 
int const YAC_EXCHANGE_TYPE_NONE
 
int const YAC_EXCHANGE_TYPE_SOURCE
 
int const YAC_EXCHANGE_TYPE_TARGET
 
int const YAC_ACTION_NONE
 
int const YAC_ACTION_REDUCTION
 
int const YAC_ACTION_COUPLING
 
int const YAC_ACTION_GET_FOR_RESTART
 
int const YAC_ACTION_PUT_FOR_RESTART
 
int const YAC_ACTION_OUT_OF_BOUND
 
int const YAC_REDUCTION_TIME_NONE
 
int const YAC_REDUCTION_TIME_ACCUMULATE
 
int const YAC_REDUCTION_TIME_AVERAGE
 
int const YAC_REDUCTION_TIME_MINIMUM
 
int const YAC_REDUCTION_TIME_MAXIMUM
 
int const YAC_TIME_UNIT_MILLISECOND
 
int const YAC_TIME_UNIT_SECOND
 
int const YAC_TIME_UNIT_MINUTE
 
int const YAC_TIME_UNIT_HOUR
 
int const YAC_TIME_UNIT_DAY
 
int const YAC_TIME_UNIT_MONTH
 
int const YAC_TIME_UNIT_YEAR
 
int const YAC_TIME_UNIT_ISO_FORMAT
 
int const YAC_CALENDAR_NOT_SET
 
int const YAC_PROLEPTIC_GREGORIAN
 
int const YAC_YEAR_OF_365_DAYS
 
int const YAC_YEAR_OF_360_DAYS
 
int const YAC_AVG_ARITHMETIC
 
int const YAC_AVG_DIST
 
int const YAC_AVG_BARY
 
int const YAC_NCC_AVG
 
int const YAC_NCC_DIST
 
int const YAC_NNN_AVG
 
int const YAC_NNN_DIST
 
int const YAC_NNN_GAUSS
 
int const YAC_NNN_RBF
 
int const YAC_NNN_ZERO
 
int const YAC_CONSERV_DESTAREA
 
int const YAC_CONSERV_FRACAREA
 
int const YAC_SPMAP_AVG
 
int const YAC_SPMAP_DIST
 
int const YAC_SPMAP_NONE
 
int const YAC_SPMAP_SRCAREA
 
int const YAC_SPMAP_INVTGTAREA
 
int const YAC_SPMAP_FRACAREA
 
int YAC_YAML_EMITTER_DEFAULT
 emit to YAML format
 
int YAC_YAML_EMITTER_JSON
 emit to JSON format
 

Macro Definition Documentation

◆ __attribute__

#define __attribute__ (   x)    /*NOTHING*/

Definition at line 2246 of file yac.h.

◆ TYPEDEF_YAC_FUNC_COMPUTE_WEIGHTS

#define TYPEDEF_YAC_FUNC_COMPUTE_WEIGHTS

method signature for weight computation function used by User callback interpolation

If the field value of a target point, whose weights have been computed by this routine, is to be computed on the source process at which this routine was called, YAC would use the weights as follows (it is assumed that all required source points are available at this process):

// this routine return an index to a source field value associated to
// the provided global id
size_t global_id_2_local_idx(int src_field_idx, int global_id);
[...]
double tgt_value[collection_size];
for (int collection_idx = 0; collection_idx < collection_size;
collection_idx)
tgt_value[collection_idx] = 0.0;
// for all source fields
for (int src_field_idx = 0; src_field_idx < num_pointsets; ++src_field_idx) {
for (size_t i = 0; i < result_count[src_field_idx]; ++i) {
size_t src_field_point_idx =
global_id_2_local_idx(
src_field_idx, global_results_points[src_field_idx][i]);
double weight = result_weights[src_field_idx][src_field_point_idx];
for (int collection_idx = 0; collection_idx < collection_size;
collection_idx) {
tgt_value[collection_idx] +=
src_field[collection_idx][src_field_idx][src_field_point_idx] *
weight;
}
}
}

If one or more source points associated to the global ids return by this routine are not actually available at this process, YAC will ensure that the respective value will be available for the interpolation.

Parameters
[in]tgt_coords3D coordinates of the target point
[in]src_cell_idglobal id of the source cell matching the target point
[in]src_cell_idx(zero based) index of the source cell matching the target point
[out]global_results_pointsglobal ids of source points to be used for the interpolation of the target point
[out]result_weightsweights to be used for the interpolation of the target point
[out]result_countnumber of source points to be used for the interpolation of the target point per pointset
[in]user_datauser_data pointer provided to yac_cadd_compute_weights_callback
Remarks
The size of the first dimension of the arrays global_results_points, result_weights, and result_count has to be equal to num_pointsets provided to yac_cdef_field or yac_cdef_field_mask that was used to define the field involved in the coupling that is supposed to use this weight computation function.
3D coordinates are for a point of a unit sphere

Definition at line 2545 of file yac.h.

◆ YAC_MAX_CHARLEN

#define YAC_MAX_CHARLEN   (132)

Definition at line 74 of file yac.h.

Typedef Documentation

◆ yac_abort_func

typedef void(* yac_abort_func) (MPI_Comm comm, const char *msg, const char *source, int line) __attribute__((noreturn))

functions used as error handler must conform to this interface

Examples
test_abort_c.c.

Definition at line 2257 of file yac.h.

◆ yac_func_compute_weights

typedef void(* yac_func_compute_weights) (double const tgt_coords[3], int src_cell_id, size_t src_cell_idx, int const **global_results_points, double **result_weights, size_t *result_count, void *user_data)

Definition at line 2548 of file yac.h.

Function Documentation

◆ yac_abort()

void yac_abort ( MPI_Comm  comm,
const char *  msg,
const char *  source,
int  line 
)

Calls the currently set abort handler (yac_abort_default by default)

Parameters
[in]commMPI communicator used to call MPI_Abort
[in]msgmessage text to print
[in]sourcestring describing source file name
[in]lineline number of caller

◆ yac_abort_message()

void yac_abort_message ( char const *  msg,
const char *  source,
int  line 
)

Call the yac_abort function (providing the default communicator for the comm argument).

Parameters
msgmessage text to print
sourcestring describing source file name
lineline number of caller

◆ yac_cadd_compute_weights_callback()

void yac_cadd_compute_weights_callback ( yac_func_compute_weights  compute_weights_callback,
void *  user_data,
char const *  key 
)

registers a callback routine for the computation of weights by the interpolation method user_callback

Parameters
[in]compute_weights_callbackpointer to a weight computation routine
[in]user_datadata pointer that will be passed to compute_weights_callback
[in]keykey for identifying the callback routine
Remarks
the callback has to be set on all source processes taking part in respective coupling
the key has to match the one provided in coupling configuration

Definition at line 3555 of file yac.c.

Here is the call graph for this function:

◆ yac_cadd_interp_stack_config_average()

void yac_cadd_interp_stack_config_average ( int  interp_stack_config_id,
int  reduction_type,
int  partial_coverage 
)

adds average interpolation to the bottom of a interpolation stack

Parameters
[in]interp_stack_config_idinterpolation stack
[in]reduction_typereduction type
[in]partial_coverageallow partial coverage

Definition at line 3382 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cadd_interp_stack_config_check()

void yac_cadd_interp_stack_config_check ( int  interp_stack_config_id,
char const *  constructor_key,
char const *  do_search_key 
)

adds fixed interpolation to the bottom of a interpolation stack

Parameters
[in]interp_stack_config_idinterpolation stack
[in]constructor_keykey provided to yac_interp_method_check_add_constructor_callback for a constructor callback routine
[in]do_search_keykey provided to yac_interp_method_check_add_do_search_callback for a do_search callback routine

Definition at line 3520 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cadd_interp_stack_config_conservative()

void yac_cadd_interp_stack_config_conservative ( int  interp_stack_config_id,
int  order,
int  enforced_conserv,
int  partial_coverage,
int  normalisation 
)

adds conservative interpolation to the bottom of a interpolation stack

Parameters
[in]interp_stack_config_idinterpolation stack
[in]orderfirst or second order
[in]enforced_conservenforce local conservation
[in]partial_coverageallow partial coverage
[in]normalisationnormalisation type

Definition at line 3439 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cadd_interp_stack_config_creep()

void yac_cadd_interp_stack_config_creep ( int  interp_stack_config_id,
int  creep_distance 
)

adds creep interpolation to the bottom of a interpolation stack

Parameters
[in]interp_stack_config_idinterpolation stack
[in]creep_distancecreep distance

Definition at line 3532 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cadd_interp_stack_config_fixed()

void yac_cadd_interp_stack_config_fixed ( int  interp_stack_config_id,
double  value 
)

adds fixed interpolation to the bottom of a interpolation stack

Parameters
[in]interp_stack_config_idinterpolation stack
[in]valuefixed value

Definition at line 3510 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cadd_interp_stack_config_hcsbb()

void yac_cadd_interp_stack_config_hcsbb ( int  interp_stack_config_id)

adds HCSBB interpolation to the bottom of a interpolation stack

Parameters
[in]interp_stack_config_idinterpolation stack

Definition at line 3488 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cadd_interp_stack_config_ncc()

void yac_cadd_interp_stack_config_ncc ( int  interp_stack_config_id,
int  weight_type,
int  partial_coverage 
)

adds nearest corner cells interpolation to the bottom of a interpolation stack

Parameters
[in]interp_stack_config_idinterpolation stack
[in]weight_typereduction type
[in]partial_coverageallow partial coverage

Definition at line 3401 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cadd_interp_stack_config_nnn()

void yac_cadd_interp_stack_config_nnn ( int  interp_stack_config_id,
int  type,
size_t  n,
double  scale 
)

adds n-nearest-neighbour interpolation to the bottom of a interpolation stack

Parameters
[in]interp_stack_config_idinterpolation stack
[in]typereduction type
[in]nnumber of nearest neighbour points
[in]scalescale parameter required by some reduction types

Definition at line 3419 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cadd_interp_stack_config_spmap()

void yac_cadd_interp_stack_config_spmap ( int  interp_stack_config_id,
double  spread_distance,
double  max_search_distance,
int  weight_type,
int  scale_type,
double  src_sphere_radius,
double  tgt_sphere_radius 
)

adds source point mapping interpolation to the bottom of a interpolation stack

Parameters
[in]interp_stack_config_idinterpolation stack
[in]spread_distancespread distance (in rad)
[in]max_search_distancemaximum search distance (in rad)
[in]weight_typereduction type
[in]scale_typescaling type
[in]src_sphere_radiussphere radius used for source cell area computation
[in]tgt_sphere_radiussphere radius used for target cell area computation

Definition at line 3458 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cadd_interp_stack_config_user_callback()

void yac_cadd_interp_stack_config_user_callback ( int  interp_stack_config_id,
char const *  func_compute_weights_key 
)

adds user callback interpolation to the bottom of a interpolation stack

Parameters
[in]interp_stack_config_idinterpolation stack
[in]func_compute_weights_keykey provided to yac_cadd_compute_weights_callback for a compute_weights callback routine

Definition at line 3542 of file yac.c.

Here is the call graph for this function:

◆ yac_cadd_interp_stack_config_user_file()

void yac_cadd_interp_stack_config_user_file ( int  interp_stack_config_id,
char const *  filename,
char const *  src_grid_name,
char const *  tgt_grid_name 
)

adds user weight file interpolation to the bottom of a interpolation stack

Parameters
[in]interp_stack_config_idinterpolation stack
[in]filenameweight file name
[in]src_grid_namename of source grid
[in]tgt_grid_namename of target grid
Remarks
YAC will read the wight file in parallel. This parallel output can be configured as described here: Configuration of parallel IO in YAC

Definition at line 3497 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_ccheck_field_dimensions()

void yac_ccheck_field_dimensions ( int  field_id,
int  collection_size,
int  num_pointsets,
int const *  pointset_sizes 
)

Checks whether the field dimensions match with field definition and aborts if there is a mismatch

Parameters
[in]field_id
[in]collection_sizecollection size
[in]num_pointsetsnumber of pointsets
[in]pointset_sizessize of each pointset
Remarks
if num_pointsets is -1, its value will not be checked
if pointset_sizes is NULL, its values will not be checked

Definition at line 1550 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_ccleanup()

void yac_ccleanup ( )

Clean-up YAC (same as yac_cfinalize but without MPI_Finalize; see Restarting YAC)

Remarks
In case the user initialised yaxt himself, he has to finalise it after yac_ccleanup in order to be able to call yac_cinit again.
cleans up default YAC instance

Definition at line 505 of file yac.c.

Here is the call graph for this function:

◆ yac_ccleanup_instance()

void yac_ccleanup_instance ( int  yac_instance_id)

Clean-up YAC (same as yac_cfinalize_instance but without MPI_Finalize; see Restarting YAC)

Parameters
[in]yac_instance_idid of the YAC instance to be cleaned up
Remarks
In case the user initialised yaxt himself, he has to finalise it after yac_ccleanup in order to be able to call yac_cinit again.

Definition at line 497 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_calendar()

void yac_cdef_calendar ( int  calendar)

Defines the calendar of the default instance

Parameters
[in]calendarThe calendar
See also
YAC_PROLEPTIC_GREGORIAN etc.

Definition at line 562 of file yac.c.

Here is the caller graph for this function:

◆ yac_cdef_comp()

void yac_cdef_comp ( const char *  comp_name,
int *  comp_id 
)

Elementary definition of the component for the default YAC instance

Parameters
[in]comp_namename of the component
[out]comp_idcomponent Id
Remarks
this call is collective for all processes that initialised the default YAC instance
components can only be defined once in the initialisation phase of a YAC instance. If you want to predefine a component, please use yac_cpredef_comp.

Definition at line 795 of file yac.c.

Here is the call graph for this function:

◆ yac_cdef_comp_instance()

void yac_cdef_comp_instance ( int  yac_instance_id,
const char *  comp_name,
int *  comp_id 
)

Elementary definition of the component.

Parameters
[in]yac_instance_idid of the YAC instance
[in]comp_namename of the component
[out]comp_idcomponent Id
Remarks
this call is collective for all processes that initialised the provided YAC instance
components can only be defined once in the initialisation phase of a YAC instance. If you want to predefine a component, please use yac_cpredef_comp_instance.

Definition at line 789 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_component_metadata()

void yac_cdef_component_metadata ( const char *  comp_name,
const char *  metadata 
)

Define metadata for a component

Parameters
[in]comp_name
[in]metadata

Definition at line 1145 of file yac.c.

Here is the call graph for this function:

◆ yac_cdef_component_metadata_instance()

void yac_cdef_component_metadata_instance ( int  yac_instance_id,
const char *  comp_name,
const char *  metadata 
)

Define metadata for a component

Parameters
[in]yac_instance_id
[in]comp_name
[in]metadata

Definition at line 1137 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_comps()

void yac_cdef_comps ( const char **  comp_names,
int  num_comps,
int *  comp_ids 
)

Elementary definition of the components for the default YAC instance

Parameters
[in]comp_namesnames of the components
[in]num_compsnumber of components
[out]comp_idscomponent Id's
Remarks
this call is collective for all processes that initialised the default YAC instance
components can only be defined once in the initialisation phase of a YAC instance

Definition at line 781 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_comps_instance()

void yac_cdef_comps_instance ( int  yac_instance_id,
const char **  comp_names,
int  num_comps,
int *  comp_ids 
)

Elementary definition of the components.

Parameters
[in]yac_instance_idid of the YAC instance
[in]comp_namesnames of the components
[in]num_compsnumber of components
[out]comp_idscomponent Id's
Remarks
this call is collective for all processes that initialised the provided YAC instance
components can only be defined once in the initialisation phase of a YAC instance

Definition at line 756 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_couple()

void yac_cdef_couple ( char const *  src_comp_name,
char const *  src_grid_name,
char const *  src_field_name,
char const *  tgt_comp_name,
char const *  tgt_grid_name,
char const *  tgt_field_name,
char const *  coupling_timestep,
int  time_unit,
int  time_reduction,
int  interp_stack_config_id,
int  src_lag,
int  tgt_lag 
)

Define couple in the default yac instance

Parameters
[in]src_comp_namecomponent name of the source component
[in]src_grid_namegrid name of the source grid
[in]src_field_namefield name of the source field
[in]tgt_comp_namecomponent name of the target component
[in]tgt_grid_namegrid name of the target grid
[in]tgt_field_namefield name of the target field
[in]coupling_timesteptime step for the coupling given in the defined timestep unit
[in]time_unitunit of coupling_timestep argument
[in]time_reductiontype for reducing multiple timesteps
See also
YAC_REDUCTION_TIME_NONE etc.
Parameters
[in]interp_stack_config_idid of the interpolation stack config to be used
[in]src_laglag for this couple on the source component
[in]tgt_laglag for this couple on the target component

Definition at line 1476 of file yac.c.

Here is the call graph for this function:

◆ yac_cdef_couple_custom()

void yac_cdef_couple_custom ( char const *  src_comp_name,
char const *  src_grid_name,
char const *  src_field_name,
char const *  tgt_comp_name,
char const *  tgt_grid_name,
char const *  tgt_field_name,
char const *  coupling_timestep,
int  time_unit,
int  time_reduction,
int  interp_stack_config_id,
int  src_lag,
int  tgt_lag,
int  ext_couple_config_id 
)

Define couple in the default yac instance using an extended coupling configuration

Parameters
[in]src_comp_namecomponent name of the source component
[in]src_grid_namegrid name of the source grid
[in]src_field_namefield name of the source field
[in]tgt_comp_namecomponent name of the target component
[in]tgt_grid_namegrid name of the target grid
[in]tgt_field_namefield name of the target field
[in]coupling_timesteptime step for the coupling given in the defined timestep unit
[in]time_unitunit of coupling_timestep argument
[in]time_reductiontype for reducing multiple timesteps
See also
YAC_REDUCTION_TIME_NONE etc.
Parameters
[in]interp_stack_config_idid of the interpolation stack config to be used
[in]src_laglag for this couple on the source component
[in]tgt_laglag for this couple on the target component
[in]ext_couple_config_idextended coupling configuration

Definition at line 1444 of file yac.c.

Here is the call graph for this function:

◆ yac_cdef_couple_custom_instance()

void yac_cdef_couple_custom_instance ( int  yac_instance_id,
char const *  src_comp_name,
char const *  src_grid_name,
char const *  src_field_name,
char const *  tgt_comp_name,
char const *  tgt_grid_name,
char const *  tgt_field_name,
char const *  coupling_timestep,
int  time_unit,
int  time_reduction,
int  interp_stack_config_id,
int  src_lag,
int  tgt_lag,
int  ext_couple_config_id 
)

Define couple using an extended coupling configuration

Parameters
[in]yac_instance_idid of the YAC instance for that the couple should be defined
[in]src_comp_namecomponent name of the source component
[in]src_grid_namegrid name of the source grid
[in]src_field_namefield name of the source field
[in]tgt_comp_namecomponent name of the target component
[in]tgt_grid_namegrid name of the target grid
[in]tgt_field_namefield name of the target field
[in]coupling_timesteptime step for the coupling
[in]time_unitunit of coupling_timestep argument
[in]time_reductiontype for reducing multiple timesteps
See also
YAC_REDUCTION_TIME_NONE etc.
Parameters
[in]interp_stack_config_idid of the interpolation stack config to be used
[in]src_laglag for this couple on the source component
[in]tgt_laglag for this couple on the target component
[in]ext_couple_config_idextended coupling configuration

Definition at line 1429 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_couple_instance()

void yac_cdef_couple_instance ( int  yac_instance_id,
char const *  src_comp_name,
char const *  src_grid_name,
char const *  src_field_name,
char const *  tgt_comp_name,
char const *  tgt_grid_name,
char const *  tgt_field_name,
char const *  coupling_timestep,
int  time_unit,
int  time_reduction,
int  interp_stack_config_id,
int  src_lag,
int  tgt_lag 
)

Define couple

Parameters
[in]yac_instance_idid of the YAC instance for that the couple should be defined
[in]src_comp_namecomponent name of the source component
[in]src_grid_namegrid name of the source grid
[in]src_field_namefield name of the source field
[in]tgt_comp_namecomponent name of the target component
[in]tgt_grid_namegrid name of the target grid
[in]tgt_field_namefield name of the target field
[in]coupling_timesteptime step for the coupling
[in]time_unitunit of coupling_timestep argument
[in]time_reductiontype for reducing multiple timesteps
See also
YAC_REDUCTION_TIME_NONE etc.
Parameters
[in]interp_stack_config_idid of the interpolation stack config to be used
[in]src_laglag for this couple on the source component
[in]tgt_laglag for this couple on the target component

Definition at line 1459 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_datetime()

void yac_cdef_datetime ( const char *  start_datetime,
const char *  end_datetime 
)

Definition of job start and end datetime for the default YAC instance

Parameters
[in]start_datetimecalendar job start datetime
[in]end_datetimecalendar job end datetime

Definition at line 554 of file yac.c.

Here is the call graph for this function:

◆ yac_cdef_datetime_instance()

void yac_cdef_datetime_instance ( int  yac_instance_id,
const char *  start_datetime,
const char *  end_datetime 
)

Definition of job start and end datetime

Parameters
[in]yac_instance_idid of the YAC instance
[in]start_datetimecalendar job start datetime
[in]end_datetimecalendar job end datetime

Definition at line 545 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_field()

void yac_cdef_field ( char const *  field_name,
int const  component_id,
int const *  point_ids,
int const  num_pointsets,
int  collection_size,
const char *  timestep,
int  time_unit,
int *  field_id 
)

Definition of the coupling field (using default mask, if defined)

Parameters
[in]field_namecharacter string providing the name of the coupling field
[in]component_idcomponent ID
[in]point_idspoint IDs
[in]num_pointsetsnumber of pointsets per grid
[in]collection_sizecollection size
[in]timesteptimestep
[in]time_unittime unit
[out]field_idreturned field_id which has to be used to identify coupling fields in yac_cput and yac_cget.
Remarks
A calendar has to be defined before this routine is called. This can be done by a call to yac_cdef_calendar, by reading of configuration file that defines a calendar, or by synchronizing with other processes that already have defined a calendar using yac_csync_def.

Definition at line 1085 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_field_mask()

void yac_cdef_field_mask ( char const *  field_name,
int const  component_id,
int const *  point_ids,
int const *  mask_ids,
int const  num_pointsets,
int  collection_size,
const char *  timestep,
int  time_unit,
int *  field_id 
)

Definition of the coupling field

Parameters
[in]field_namecharacter string providing the name of the coupling field
[in]component_idcomponent ID
[in]point_idspoint IDs
[in]mask_idsmask IDs
[in]num_pointsetsnumber of pointsets per grid
[in]collection_sizecollection size
[in]timesteptimestep
[in]time_unit
[out]field_idreturned field_id which has to be used to identify coupling fields in yac_cput and yac_cget.
Remarks
A calendar has to be defined before this routine is called. This can be done by a call to yac_cdef_calendar, by reading of configuration file that defines a calendar, or by synchronizing with other processes that already have defined a calendar using yac_csync_def.

Definition at line 1012 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_field_metadata()

void yac_cdef_field_metadata ( const char *  comp_name,
const char *  grid_name,
const char *  field_name,
const char *  metadata 
)

Define metadata for a field

Parameters
[in]comp_name
[in]grid_name
[in]field_name
[in]metadata

Definition at line 1173 of file yac.c.

Here is the call graph for this function:

◆ yac_cdef_field_metadata_instance()

void yac_cdef_field_metadata_instance ( int  yac_instance_id,
const char *  comp_name,
const char *  grid_name,
const char *  field_name,
const char *  metadata 
)

Define metadata for a field

Parameters
[in]yac_instance_id
[in]comp_name
[in]grid_name
[in]field_name
[in]metadata

Definition at line 1164 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_grid_curve2d()

void yac_cdef_grid_curve2d ( const char *  grid_name,
int  nbr_vertices[2],
int  cyclic[2],
double *  x_vertices,
double *  y_vertices,
int *  grid_id 
)

Definition of a 2d curvilinear grid

Parameters
[in]grid_namename of the grid
[in]nbr_vertices2d array containing the number of vertices in each dimension
[in]cyclic2d array containing information about cyclic behaviour in each dimension
[in]x_verticesarray of vertex longitudes, in radians
[in]y_verticesarray of vertex latitudes, in radians
[out]grid_idid of generated grid
Remarks
  • The array x_vertices and y_vertices are expected to be of size nbr_vertices[0] * nbr_vertices[1].
  • This call generate a grid with the following basic grid data:
    size_t internal_nbr_cells_2d[2];
    size_t internal_nbr_vertices_2d[2];
    if (cyclic[0]) {
    internal_nbr_cells_2d[0] = nbr_vertices[0];
    internal_nbr_cells_2d[1] = nbr_vertices[1] - 1;
    internal_nbr_vertices_2d[0] = nbr_vertices[0] + 1;
    internal_nbr_vertices_2d[1] = nbr_vertices[1];
    } else {
    internal_nbr_cells_2d[0] = nbr_vertices[0] - 1;
    internal_nbr_cells_2d[1] = nbr_vertices[1] - 1;
    internal_nbr_vertices_2d[0] = nbr_vertices[0];
    internal_nbr_vertices_2d[1] = nbr_vertices[1];
    }
    size_t internal_nbr_cells =
    internal_nbr_cells_2d[0] * internal_nbr_cells_2d[1];
    size_t internal_nbr_vertices =
    internal_nbr_vertices_2d[0] * internal_nbr_vertices_2d[1];
    size_t internal_nbr_edges =
    (internal_nbr_cells_2d[0] + 1) * internal_nbr_cells_2d[1] +
    internal_nbr_cells_2d[0] * (internal_nbr_cells_2d[1] + 1);
    double * internal_x_vertices =
    malloc(internal_nbr_vertices * sizeof(*internal_x_vertices));
    double * internal_y_vertices =
    malloc(internal_nbr_vertices * sizeof(*internal_y_vertices));
    for (size_t i = 0; i < internal_nbr_vertices; ++i) {
    internal_x_vertices[i] = x_vertices[i];
    internal_y_vertices[i] = y_vertices[i];
    }
  • The edges of the grid follow great circles.
  • See Ordering of edges

Definition at line 3190 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_grid_metadata()

void yac_cdef_grid_metadata ( const char *  grid_name,
const char *  metadata 
)

Define metadata for a grid for the default YAC instance

Parameters
[in]grid_name
[in]metadata

Definition at line 1159 of file yac.c.

Here is the call graph for this function:

◆ yac_cdef_grid_metadata_instance()

void yac_cdef_grid_metadata_instance ( int  yac_instance_id,
const char *  grid_name,
const char *  metadata 
)

Define metadata for a grid

Parameters
[in]yac_instance_id
[in]grid_name
[in]metadata

Definition at line 1150 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_grid_reg2d()

void yac_cdef_grid_reg2d ( const char *  grid_name,
int  nbr_vertices[2],
int  cyclic[2],
double *  x_vertices,
double *  y_vertices,
int *  grid_id 
)

Definition of a 2d regular grid

Parameters
[in]grid_namename of the grid
[in]nbr_vertices2d array containing the number of vertices in each dimension
[in]cyclic2d array containing information about cyclic behaviour in each dimension
[in]x_verticesarray of vertex longitudes, in radians
[in]y_verticesarray of vertex latitudes, in radians
[out]grid_idid of generated grid
Remarks
  • This call generate a grid with the following basic grid data:
    size_t internal_nbr_cells_2d[2];
    size_t internal_nbr_vertices_2d[2];
    if (cyclic[0]) {
    internal_nbr_cells_2d[0] = nbr_vertices[0];
    internal_nbr_cells_2d[1] = nbr_vertices[1] - 1;
    internal_nbr_vertices_2d[0] = nbr_vertices[0];
    internal_nbr_vertices_2d[1] = nbr_vertices[1];
    } else {
    internal_nbr_cells_2d[0] = nbr_vertices[0] - 1;
    internal_nbr_cells_2d[1] = nbr_vertices[1] - 1;
    internal_nbr_vertices_2d[0] = nbr_vertices[0];
    internal_nbr_vertices_2d[1] = nbr_vertices[1];
    }
    size_t internal_nbr_cells =
    internal_nbr_cells_2d[0] * internal_nbr_cells_2d[1];
    size_t internal_nbr_vertices =
    internal_nbr_vertices_2d[0] * internal_nbr_vertices_2d[1];
    size_t internal_nbr_edges =
    internal_nbr_cells_2d[1] * internal_nbr_vertices_2d[0] +
    internal_nbr_cells_2d[0] * internal_nbr_vertices_2d[1];
    double * internal_x_vertices =
    malloc(internal_nbr_vertices * sizeof(*internal_x_vertices));
    double * internal_y_vertices =
    malloc(internal_nbr_vertices * sizeof(*internal_y_vertices));
    for (size_t i = 0, k = 0; i < nbr_vertices[1]; ++i) {
    for (size_t j = 0; j < nbr_vertices[0]; ++j, ++k) {
    internal_x_vertices[k] = x_vertices[j];
    internal_y_vertices[k] = y_vertices[i];
    }
    }
  • The edges of the grid either follow circles of longitude or latitude.
  • See Ordering of edges

Definition at line 3172 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_grid_unstruct()

void yac_cdef_grid_unstruct ( const char *  grid_name,
int  nbr_vertices,
int  nbr_cells,
int *  num_vertices_per_cell,
double *  x_vertices,
double *  y_vertices,
int *  cell_to_vertex,
int *  grid_id 
)

Definition of an unstructured grid

Parameters
[in]grid_namename of the grid
[in]nbr_verticesnumber of vertices
[in]nbr_cellsnumber of cells
[in]num_vertices_per_cellarray containing the number of vertices for each cell
[in]x_verticesarray of vertex longitudes, in radians
[in]y_verticesarray of vertex latitudes, in radians
[in]cell_to_vertexconnectivity of vertices belonging to cells
(the vertex indices per cell have to be in clockwise or counterclockwise ordering)
[out]grid_idid of generated grid
Remarks

Definition at line 3208 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_grid_unstruct_ll()

void yac_cdef_grid_unstruct_ll ( const char *  grid_name,
int  nbr_vertices,
int  nbr_cells,
int *  num_vertices_per_cell,
double *  x_vertices,
double *  y_vertices,
int *  cell_to_vertex,
int *  grid_id 
)

Definition of an unstructured grid with lon-lat edges

Parameters
[in]grid_namename of the grid
[in]nbr_verticesnumber of vertices
[in]nbr_cellsnumber of cells
[in]num_vertices_per_cellarray containing the number of vertices for each cell
[in]x_verticesarray of vertex longitudes, in radians
[in]y_verticesarray of vertex latitudes, in radians
[in]cell_to_vertexconnectivity of vertices belonging to cells
(the vertex indices per cell have to be in clockwise or counterclockwise ordering)
[out]grid_idid of generated grid
Remarks
  • YAC will check all edges of the grid and determine whether they are on circles of longitudes (same x coordinate) or latitudes (same y coordinate). An edge that does not fulfill this condition will cause an error.
  • See Ordering of edges
YAC will check all edges of the grid and determine whether they are on circles of longitudes (same x coordinate) or latitudes (same y coordinate). An edge that does not fulfill this condition will cause an error.

Definition at line 3226 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_mask()

void yac_cdef_mask ( int const  grid_id,
int const  nbr_points,
int const  location,
int const *  is_valid,
int *  mask_id 
)

define a mask for a grid

Parameters
[in]grid_idgrid ID
[in]nbr_pointsnumber of points
[in]locationcell/vertex/edge
[in]is_valid0 for points that are masked out, 1 for valid points
[out]mask_idreturned handle to the mask struct

Definition at line 984 of file yac.c.

Here is the call graph for this function:

◆ yac_cdef_mask_named()

void yac_cdef_mask_named ( int const  grid_id,
int const  nbr_points,
int const  location,
int const *  is_valid,
char const *  name,
int *  mask_id 
)

define a named mask for a grid

Parameters
[in]grid_idgrid ID
[in]nbr_pointsnumber of points
[in]locationcell/vertex/edge
[in]is_valid0 for points that are masked out, 1 for valid points
[in]namename of the mask
[out]mask_idreturned handle to the mask struct

Definition at line 965 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cdef_points_curve2d()

void yac_cdef_points_curve2d ( int const  grid_id,
int const *  nbr_points,
int const  location,
double const *  x_points,
double const *  y_points,
int *  point_id 
)

Definition of a set of points for 2D curvilinear grids.

Parameters
[in]grid_idhandle to the grid struct
[in]nbr_pointsnumber of points
[in]locationlocation of points
[in]x_pointsarray of point longitudes, in radians
[in]y_pointsarray of point latitudes, in radians
[out]point_idreturned handle to the points struct
Remarks
  • This routine supports points defined on cells or vertices. For edges use yac_cdef_points_unstruct instead.
  • The array x_points and y_points are expected to be of size nbr_points[0] * nbr_points[1].
  • See yac_cdef_grid_curve2d on how the coordinates are being interpreted.

Definition at line 881 of file yac.c.

Here is the call graph for this function:

◆ yac_cdef_points_reg2d()

void yac_cdef_points_reg2d ( int const  grid_id,
int const *  nbr_points,
int const  location,
double const *  x_points,
double const *  y_points,
int *  point_id 
)

Definition of a set of points for 2D regular grids.

Parameters
[in]grid_idhandle to the grid struct
[in]nbr_pointsnumber of points
[in]locationlocation of points
[in]x_pointsarray of point longitudes, in radians
[in]y_pointsarray of point latitudes, in radians
[out]point_idreturned handle to the points struct
Remarks
  • This routine supports points defined on cells or vertices. For edges use yac_cdef_points_unstruct instead.
  • The array x_points and y_points are expected to be of size nbr_points[0] and nbr_points[1] respectively.
  • See yac_cdef_grid_reg2d on how the coordinates are being interpreted.

Definition at line 845 of file yac.c.

Here is the call graph for this function:

◆ yac_cdef_points_unstruct()

void yac_cdef_points_unstruct ( int const  grid_id,
int const  nbr_points,
int const  location,
double const *  x_points,
double const *  y_points,
int *  point_id 
)

Definition of a set of points for 2D unstructured grids.

Parameters
[in]grid_idhandle to the grid struct
[in]nbr_pointsnumber of points
[in]locationlocation of points
[in]x_pointsarray of point longitudes, in radians
[in]y_pointsarray of point latitudes, in radians
[out]point_idreturned handle to the points struct
Remarks
The array x_points and y_points are expected to be of size nbr_points.
See also
yac_cdef_grid_unstruct

Definition at line 919 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cenable_field_frac_mask()

void yac_cenable_field_frac_mask ( const char *  comp_name,
const char *  grid_name,
const char *  field_name,
double  frac_mask_fallback_value 
)

Enables fractional masking for a coupling field and sets the fallback value

Parameters
[in]comp_name
[in]grid_name
[in]field_name
[in]frac_mask_fallback_valuefractional mask fallback value
Remarks
If this field is used as a source in couple, the user will have to provide a fractional mask for all source points along with the source field values in all put/exchange operations of this field. (see Dynamic fractional masking)

Definition at line 1128 of file yac.c.

Here is the call graph for this function:

◆ yac_cenable_field_frac_mask_instance()

void yac_cenable_field_frac_mask_instance ( int  yac_instance_id,
const char *  comp_name,
const char *  grid_name,
const char *  field_name,
double  frac_mask_fallback_value 
)

Enables fractional masking for a coupling field and sets the fallback value

Parameters
[in]yac_instance_id
[in]comp_name
[in]grid_name
[in]field_name
[in]frac_mask_fallback_valuefractional mask fallback value
Remarks
If this field is used as a source in couple, the user will have to provide a fractional mask for all source points along with the source field values in all put/exchange operations of this field. (see Dynamic fractional masking)

Definition at line 1116 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cenddef()

void yac_cenddef ( void  )

End of the definition phase for the default YAC instance and setup of internal data structures for coupling (communication matrices and interpolation weights)

Definition at line 2840 of file yac.c.

Here is the call graph for this function:

◆ yac_cenddef_and_emit_config()

void yac_cenddef_and_emit_config ( int  emit_flags,
char **  config 
)

End of the definition phase for the default YAC instance, invocation of the search and setup of internal data structures for coupling (communication matrices and interpolation weights). In addition, the collected coupling configuration from all processes is emitted.

Parameters
[in]emit_flagsflags for configuring the generated coupling configuration output (YAC_YAML_EMITTER_DEFAULT or YAC_YAML_EMITTER_JSON)
[out]configcoupling configuration
Remarks
the user is responsible for freeing the returned coupling configuration

Definition at line 2855 of file yac.c.

Here is the call graph for this function:

◆ yac_cenddef_and_emit_config_instance()

void yac_cenddef_and_emit_config_instance ( int  yac_instance_id,
int  emit_flags,
char **  config 
)

End of the definition phase, invocation of the search and setup of internal data structures for coupling (communication matrices and interpolation weights). In addition, the collected coupling configuration from all processes is emitted.

Parameters
[in]yac_instance_idid of the YAC instance
[in]emit_flagsflags for configuring the generated coupling configuration output (YAC_YAML_EMITTER_DEFAULT or YAC_YAML_EMITTER_JSON)
[out]configcoupling configuration
Remarks
the user is responsible for freeing the returned coupling configuration

Definition at line 2846 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cenddef_instance()

void yac_cenddef_instance ( int  yac_instance_id)

End of the definition phase, invocation of the search and setup of internal data structures for coupling (communication matrices and interpolation weights)

Parameters
[in]yac_instance_idid of the YAC instance

Definition at line 2834 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cexchange()

void yac_cexchange ( int const  send_field_id,
int const  recv_field_id,
int const  collection_size,
double ***const  send_field,
double **  recv_field,
int *  send_info,
int *  recv_info,
int *  ierror 
)

Exchange of the coupling fields

Parameters
[in]send_field_id-
[in]recv_field_id-
[in]collection_size-
[in]send_field- send buffer dimensions send_field[collection_size] [nbr_fields] [nbr_points]
[in]recv_field- receive buffer dimensions: recv_field[collection_size][nbr_points]
[out]send_info- returned send info
[out]recv_info- returned recv info
[out]ierror- returned error

Definition at line 2804 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cexchange_()

void yac_cexchange_ ( int const  send_field_id,
int const  recv_field_id,
int const  collection_size,
double *  send_field,
double *  recv_field,
int *  send_info,
int *  recv_info,
int *  ierror 
)

Exchange of the coupling fields

Parameters
[in]send_field_id-
[in]recv_field_id-
[in]collection_size-
[in]send_field- send buffer (all data is stored in one contiguous part of the memory) dimensions send_field[collection_size] [nbr_fields] [nbr_points]
[in]recv_field- receive buffer (all data is stored in one contiguous part of the memory) dimensions: recv_field[collection_size][nbr_points]
[out]send_info- returned send info
[out]recv_info- returned recv info
[out]ierror- returned error

Definition at line 2528 of file yac.c.

Here is the call graph for this function:

◆ yac_cexchange_frac()

void yac_cexchange_frac ( int const  send_field_id,
int const  recv_field_id,
int const  collection_size,
double ***const  send_field,
double ***const  send_frac_mask,
double **  recv_field,
int *  send_info,
int *  recv_info,
int *  ierror 
)

Exchange of the coupling fields

Parameters
[in]send_field_id-
[in]recv_field_id-
[in]collection_size-
[in]send_field- send buffer dimensions send_field[collection_size] [nbr_fields] [nbr_points]
[in]send_frac_mask- send fractional mask dimensions send_frac_mask[collection_size] [nbr_fields] [nbr_points]
[in]recv_field- receive buffer dimensions: recv_field[collection_size][nbr_points]
[out]send_info- returned send info
[out]recv_info- returned recv info
[out]ierror- returned error

Definition at line 2669 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cexchange_frac_()

void yac_cexchange_frac_ ( int const  send_field_id,
int const  recv_field_id,
int const  collection_size,
double *  send_field,
double *  send_frac_mask,
double *  recv_field,
int *  send_info,
int *  recv_info,
int *  ierror 
)

Exchange of the coupling fields

Parameters
[in]send_field_id-
[in]recv_field_id-
[in]collection_size-
[in]send_field- send buffer (all data is stored in one contiguous part of the memory) dimensions send_field[collection_size] [nbr_fields] [nbr_points]
[in]send_frac_mask- send fractional mask (all data is stored in one contiguous part of the memory) dimensions send_frac_mask[collection_size] [nbr_fields] [nbr_points]
[in]recv_field- receive buffer (all data is stored in one contiguous part of the memory) dimensions: recv_field[collection_size][nbr_points]
[out]send_info- returned send info
[out]recv_info- returned recv info
[out]ierror- returned error

Definition at line 2561 of file yac.c.

Here is the call graph for this function:

◆ yac_cexchange_frac_ptr_()

void yac_cexchange_frac_ptr_ ( int const  send_field_id,
int const  recv_field_id,
int const  collection_size,
double **  send_field,
double **  send_frac_mask,
double **  recv_field,
int *  send_info,
int *  recv_info,
int *  ierror 
)

Sending of the coupling fields

Parameters
[in]send_field_id-
[in]recv_field_id-
[in]collection_size-
[in]send_field- send buffer dimensions send_field[collection_size * nbr_fields] [nbr_points]
[in]send_frac_mask- send buffer dimensions send_frac_mask[collection_size * nbr_fields] [nbr_points]
[in]recv_field- receive buffer dimensions: recv_field[collection_size][nbr_points]
[out]send_info- returned send info
[out]recv_info- returned recv info
[out]ierror- returned error

Definition at line 2633 of file yac.c.

Here is the call graph for this function:

◆ yac_cexchange_ptr_()

void yac_cexchange_ptr_ ( int const  send_field_id,
int const  recv_field_id,
int const  collection_size,
double **  send_field,
double **  recv_field,
int *  send_info,
int *  recv_info,
int *  ierror 
)

Sending of the coupling fields

Parameters
[in]send_field_id-
[in]recv_field_id-
[in]collection_size-
[in]send_field- send buffer dimensions send_field[collection_size * nbr_fields] [nbr_points]
[in]recv_field- receive buffer dimensions: recv_field[collection_size][nbr_points]
[out]send_info- returned send info
[out]recv_info- returned recv info
[out]ierror- returned error

Definition at line 2603 of file yac.c.

Here is the call graph for this function:

◆ yac_cfinalize()

void yac_cfinalize ( )

Cleans up default YAC instance (if available) and finales MPI, if it was initialised by YAC

Definition at line 533 of file yac.c.

Here is the call graph for this function:

◆ yac_cfinalize_instance()

void yac_cfinalize_instance ( int  yac_instance_id)

Cleans up provided YAC instance and finales MPI, if it was initialised by YAC

Parameters
[in]yac_instance_idid of the YAC instance to be finalised

Definition at line 524 of file yac.c.

Here is the call graph for this function:

◆ yac_cfree_ext_couple_config()

void yac_cfree_ext_couple_config ( int  ext_couple_config_id)

Frees an extended coupling configuration

Parameters
[in]ext_couple_config_id

Definition at line 1241 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cfree_interp_stack_config()

void yac_cfree_interp_stack_config ( int  interp_stack_config_id)

frees a stack trace

Parameters
[in]interp_stack_config_idinterpolation stack

Definition at line 3362 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget()

void yac_cget ( int const  field_id,
int const  collection_size,
double **  recv_field,
int *  info,
int *  ierror 
)

Receiving of the coupling fields

Parameters
[in]field_id-
[in]collection_size-
[in]recv_field- receive buffer dimensions: recv_field[collection_size][nbr_points]
[out]info- returned info argument indicating the action performed
[out]ierror- returned error

Definition at line 1850 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_()

void yac_cget_ ( int const  field_id,
int const  collection_size,
double *  recv_field,
int *  info,
int *  ierror 
)

Receiving of the coupling fields

Parameters
[in]field_id-
[in]collection_size-
[in]recv_field- receive buffer (all data is stored in one contiguous part of the memory) dimensions: recv_field[collection_size][nbr_points]
[in]info- returned info argument indicating the action performed
[out]ierror- returned error

Definition at line 1832 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_action()

void yac_cget_action ( int  field_id,
int *  action 
)

Returns the action a put/get would return for the current timestep

Parameters
[in]field_idfield id returned by yac_cdef_field
[out]actionaction for the current timestep (YAC_ACTION_NONE, YAC_ACTION_REDUCTION, YAC_ACTION_COUPLING, YAC_ACTION_GET_FOR_RESTART, YAC_ACTION_PUT_FOR_RESTART, or YAC_ACTION_OUT_OF_BOUND)
Remarks
If the exchange type of the field is YAC_EXCHANGE_TYPE_NONE, this routine will return YAC_ACTION_NONE.
If this routine is called before yac_cenddef, the behaviour is undefined.

Definition at line 1611 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_async()

void yac_cget_async ( int const  field_id,
int const  collection_size,
double **  recv_field,
int *  info,
int *  ierror 
)

Receiving of the coupling fields

Parameters
[in]field_id-
[in]collection_size-
[in]recv_field- receive buffer dimensions: recv_field[collection_size][nbr_points]
[out]info- returned info argument indicating the action performed
[out]ierror- returned error
Remarks
This routine returns immediately without waiting for the receive operation to be completed. The user should not access the memory associated with recv_field until this is the case. This can be achieved by calling yac_cwait.

Definition at line 1859 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_async_()

void yac_cget_async_ ( int const  field_id,
int const  collection_size,
double *  recv_field,
int *  info,
int *  ierror 
)

Receiving of the coupling fields

Parameters
[in]field_id-
[in]collection_size-
[in]recv_field- receive buffer (all data is stored in one contiguous part of the memory) dimensions: recv_field[collection_size][nbr_points]
[in]info- returned info argument indicating the action performed
[out]ierror- returned error
Remarks
This routine returns immediately without waiting for the receive operation to be completed. The user should not access the memory associated with recv_field until this is the case. This can be achieved by calling yac_cwait.

Definition at line 1841 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_collection_size_from_field_id()

int yac_cget_collection_size_from_field_id ( int  field_id)

query routine to get the collection_size of a field for a given ID

Parameters
[in]field_idID as provided by yac_cdef_field
Returns
collection_size

Definition at line 3081 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_comp_comm()

void yac_cget_comp_comm ( int  comp_id,
MPI_Comm *  comp_comm 
)

Providing the component MPI communicator

Parameters
[in]comp_idlocal component ID (from yac_cdef_comp), handle to the component struct
[out]comp_commcomponent communicator

Definition at line 638 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_comp_grid_names()

void yac_cget_comp_grid_names ( const char *  comp_name,
int  nbr_grids,
const char **  grid_names 
)

query routine to get the list of grid names of a given component that are referenced by at least one defined field or have metadata assigned to it

Parameters
[in]comp_namename of the component
[in]nbr_gridsnumber of grids
[out]grid_nameslist of grid names

Definition at line 3013 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_comp_grid_names_instance()

void yac_cget_comp_grid_names_instance ( int  yac_instance_id,
const char *  comp_name,
int  nbr_grids,
const char **  grid_names 
)

query routine to get the list of grid names of a given component that are referenced by at least one defined field or have metadata assigned to it

Parameters
[in]yac_instance_idid of the YAC instance
[in]comp_namename of the component
[in]nbr_gridsnumber of grids
[out]grid_nameslist of grid names

Definition at line 2994 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_comp_names()

void yac_cget_comp_names ( int  nbr_comps,
const char **  comp_names 
)

query routine to get the list of component names for defined the default YAC instance.

Parameters
[in]nbr_compsnumber of components
[out]comp_nameslist of component names

Definition at line 2972 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_comp_names_instance()

void yac_cget_comp_names_instance ( int  yac_instance_id,
int  nbr_comps,
const char **  comp_names 
)

query routine to get the list of component names for defined

Parameters
[in]yac_instance_idid of the YAC instance
[in]nbr_compsnumber of components
[out]comp_nameslist of component names

Definition at line 2961 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_comp_nbr_grids()

int yac_cget_comp_nbr_grids ( const char *  comp_name)

query routine for number of grids defined in the default YAC instance for a given components that is referenced by at least one defined field.

Parameters
[in]comp_name
Returns
number of components

Definition at line 2931 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_comp_nbr_grids_instance()

int yac_cget_comp_nbr_grids_instance ( int  yac_instance_id,
const char *  comp_name 
)

query routine for number of grids defined for a given components that is referenced by at least one defined field.

Parameters
[in]yac_instance_idid of the YAC instance
[in]comp_name
Returns
number of components

Definition at line 2913 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_component_metadata()

const char * yac_cget_component_metadata ( const char *  comp_name)

Get metadata for a component

Parameters
[in]comp_name
Returns
metadata (NULL if no metadata is defined)

Definition at line 1188 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_component_metadata_instance()

const char * yac_cget_component_metadata_instance ( int  yac_instance_id,
const char *  comp_name 
)

Get metadata for a component

Parameters
[in]yac_instance_id
[in]comp_name
Returns
metadata (NULL if no metadata is defined)

Definition at line 1180 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_component_name_from_field_id()

const char * yac_cget_component_name_from_field_id ( int  field_id)

query routine to get the component name for a given ID

Parameters
[in]field_idID as provided by yac_cdef_field
Returns
comp_name component name of the fields component. (array of length YAC_MAX_CHARLEN)

Definition at line 3052 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_comps_comm()

void yac_cget_comps_comm ( const char **  comp_names,
int  num_comps,
MPI_Comm *  comps_comm 
)

Generates an MPI communicator that contains all processes of the provided components

Parameters
[in]comp_namesname of components
[in]num_compsnumber of components
[out]comps_commgenerated communicator
Remarks
the components have to defined in the default YAC instance
the local process has to be in at least one of the provided components
this call is collective for all processes in the provided components

Definition at line 688 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_comps_comm_instance()

void yac_cget_comps_comm_instance ( int  yac_instance_id,
const char **  comp_names,
int  num_comps,
MPI_Comm *  comps_comm 
)

Generates an MPI communicator that contains all processes of the provided components

Parameters
[in]yac_instance_idid of the YAC instance
[in]comp_namesname of components
[in]num_compsnumber of components
[out]comps_commgenerated communicator
Remarks
the local process has to be in at least one of the provided components
this call is collective for all processes in the provided components

Definition at line 678 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_default_instance_id()

int yac_cget_default_instance_id ( )

Getter function for the default instance

Returns the instance id of the default instance.

Remarks
The default instance needs to be initialised before calling this function
Returns
The instance id of the default instance

Definition at line 359 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_end_datetime()

char * yac_cget_end_datetime ( void  )

query routine for the end datetime of the job of the default YAC instance

Definition at line 603 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_end_datetime_instance()

char * yac_cget_end_datetime_instance ( int  yac_instance_id)

query routine for the end datetime of the job

Parameters
[in]yac_instance_idid of the YAC instance

Definition at line 596 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_ext_couple_config()

void yac_cget_ext_couple_config ( int *  ext_couple_config_id)

Get an extended coupling configuration (all parameters are set to the default values)

Parameters
[out]ext_couple_config_idextended coupling configuration

Definition at line 1233 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_ext_couple_config_mapping_side()

void yac_cget_ext_couple_config_mapping_side ( int  ext_couple_config_id,
int *  mapping_side 
)

Gets the mapping side

Parameters
[in]ext_couple_config_idextended coupling configuration
[out]mapping_sidemapping side

Definition at line 1293 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_ext_couple_config_mask_name()

void yac_cget_ext_couple_config_mask_name ( int  ext_couple_config_id,
char const **  tgt_mask_name 
)

Gets target mask name

Parameters
[in]ext_couple_config_idextended coupling configuration
[out]tgt_mask_nametarget mask name

Definition at line 1394 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_ext_couple_config_scale_factor()

void yac_cget_ext_couple_config_scale_factor ( int  ext_couple_config_id,
double *  scale_factor 
)

Gets the scale factor

Parameters
[in]ext_couple_config_idextended coupling configuration
[out]scale_factorscale_factor

Definition at line 1316 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_ext_couple_config_scale_summand()

void yac_cget_ext_couple_config_scale_summand ( int  ext_couple_config_id,
double *  scale_summand 
)

Gets the scale summand

Parameters
[in]ext_couple_config_idextended coupling configuration
[out]scale_summandscale_summand

Definition at line 1339 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_ext_couple_config_src_mask_names()

void yac_cget_ext_couple_config_src_mask_names ( int  ext_couple_config_id,
size_t *  num_src_mask_names,
char const *const **  src_mask_names 
)

Gets source mask names

Parameters
[in]ext_couple_config_idextended coupling configuration
[out]num_src_mask_namesnumber of source mask names
[out]src_mask_namessource mask names

Definition at line 1370 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_ext_couple_config_weight_file()

void yac_cget_ext_couple_config_weight_file ( int  ext_couple_config_id,
char const **  weight_file 
)

Gets the weight file name

Parameters
[in]ext_couple_config_idextended coupling configuration
[out]weight_filename of the weight file, if it is set; NULL otherwise

Definition at line 1267 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_field_collection_size()

int yac_cget_field_collection_size ( const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

query routine to get the collection_size of a field

Parameters
[in]comp_name
[in]grid_name
[in]field_name
Returns
collection_size

Definition at line 3145 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_field_collection_size_instance()

int yac_cget_field_collection_size_instance ( int  yac_instance_id,
const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

query routine to get the collection_size of a field

Parameters
[in]yac_instance_id
[in]comp_name
[in]grid_name
[in]field_name
Returns
collection_size

Definition at line 3127 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_field_datetime()

const char * yac_cget_field_datetime ( int  field_id)

Returns the current datetime of the field

Parameters
[in]field_id
Returns
current datetime of the field

Definition at line 1654 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_field_frac_mask_fallback_value()

double yac_cget_field_frac_mask_fallback_value ( const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

query routine to get the fractional mask fallback value of a field

Parameters
[in]comp_name
[in]grid_name
[in]field_name
Returns
frac_mask_fallback_value
Remarks
if YAC_FRAC_MASK_NO_VALUE is returned, then no fractional mask fallback value is defined for this field

Definition at line 3137 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_field_frac_mask_fallback_value_instance()

double yac_cget_field_frac_mask_fallback_value_instance ( int  yac_instance_id,
const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

query routine to get the fractional mask fallback value of a field

Parameters
[in]yac_instance_id
[in]comp_name
[in]grid_name
[in]field_name
Returns
frac_mask_fallback_value
Remarks
if YAC_FRAC_MASK_NO_VALUE is returned, then no fractional mask fallback value is defined for this field

Definition at line 3116 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_field_id()

int yac_cget_field_id ( const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

query routine to get the field_id from component, grid and field name (if defined on this process)

Parameters
[in]comp_namecomponent name
[in]grid_namegrid name
[in]field_namefield name
Returns
field_id

Definition at line 2879 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_field_id_instance()

int yac_cget_field_id_instance ( int  yac_instance_id,
const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

query routine to get the field_id from component, grid and field name (if defined on this process)

Parameters
[in]yac_instance_id
[in]comp_namecomponent name
[in]grid_namegrid name
[in]field_namefield name
Returns
field_id

Definition at line 2866 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_field_metadata()

const char * yac_cget_field_metadata ( const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

Get metadata for a field

Parameters
[in]comp_name
[in]grid_name
[in]field_name
Returns
metadata (NULL if no metadata is defined)

Definition at line 1215 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_field_metadata_instance()

const char * yac_cget_field_metadata_instance ( int  yac_instance_id,
const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

Get metadata for a field

Parameters
[in]yac_instance_id
[in]comp_name
[in]grid_name
[in]field_name
Returns
metadata (NULL if no metadata is defined)

Definition at line 1206 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_field_name_from_field_id()

const char * yac_cget_field_name_from_field_id ( int  field_id)

query routine to get the field name for a given ID

Parameters
[in]field_idID as provided by yac_cdef_field
Returns
field_name field name that has been given to yac_cdef_field. (array of length YAC_MAX_CHARLEN)

Definition at line 3067 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_field_names()

void yac_cget_field_names ( const char *  comp_name,
const char *  grid_name,
int  nbr_fields,
const char **  field_names 
)

query routine to get the list of field names defined on the given component and grid for the default YAC instance.

Parameters
[in]comp_namecomponent name
[in]grid_namegrid name
[in]nbr_fieldsnumber of fields
[out]field_nameslist of field names

Definition at line 3045 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_field_names_instance()

void yac_cget_field_names_instance ( int  yac_instance_id,
const char *  comp_name,
const char *  grid_name,
int  nbr_fields,
const char **  field_names 
)

query routine to get the list of field names on the given component and grid

Parameters
[in]yac_instance_idid of the YAC instance
[in]comp_namecomponent name
[in]grid_namegrid name
[in]nbr_fieldsnumber of fields
[out]field_nameslist of grid names

Definition at line 3019 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_field_role()

int yac_cget_field_role ( const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

query routine to get the role of a field for a given ID

Parameters
[in]comp_name
[in]grid_name
[in]field_name
Returns
role exchange type of the field
(YAC_EXCHANGE_TYPE_NONE, YAC_EXCHANGE_TYPE_SOURCE, or YAC_EXCHANGE_TYPE_TARGET)
Remarks
the role is set by the call to yac_cenddef or yac_cenddef_instance

Definition at line 3163 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_field_role_instance()

int yac_cget_field_role_instance ( int  yac_instance_id,
const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

query routine to get the role of a field for a given ID

Parameters
[in]yac_instance_id
[in]comp_name
[in]grid_name
[in]field_name
Returns
role exchange type of the field
(YAC_EXCHANGE_TYPE_NONE, YAC_EXCHANGE_TYPE_SOURCE, or YAC_EXCHANGE_TYPE_TARGET)
Remarks
the role is set by the call to yac_cenddef or yac_cenddef_instance

Definition at line 3152 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_field_timestep()

const char * yac_cget_field_timestep ( const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

query routine to get the timestep of a field

Parameters
[in]comp_name
[in]grid_name
[in]field_name
Returns
timestep timestep that has been given to yac_cdef_field iso8601 string (array of length YAC_MAX_CHARLEN)

Definition at line 3109 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_field_timestep_instance()

const char * yac_cget_field_timestep_instance ( int  yac_instance_id,
const char *  comp_name,
const char *  grid_name,
const char *  field_name 
)

query routine to get the timestep of a field

Parameters
[in]yac_instance_id
[in]comp_name
[in]grid_name
[in]field_name
Returns
timestep timestep that has been given to yac_cdef_field iso8601 string (array of length YAC_MAX_CHARLEN)

Definition at line 3097 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_grid_metadata()

const char * yac_cget_grid_metadata ( const char *  grid_name)

Get metadata for a grid

Parameters
[in]grid_name
Returns
metadata (NULL if no metadata is defined)

Definition at line 1201 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_grid_metadata_instance()

const char * yac_cget_grid_metadata_instance ( int  yac_instance_id,
const char *  grid_name 
)

Get metadata for a grid

Parameters
[in]yac_instance_id
[in]grid_name
Returns
metadata (NULL if no metadata is defined)

Definition at line 1193 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_grid_name_from_field_id()

const char * yac_cget_grid_name_from_field_id ( int  field_id)

query routine to get the grid name for a given ID

Parameters
[in]field_idID as provided by yac_cdef_field
Returns
grid_name grid name of the fields grid. (array of length YAC_MAX_CHARLEN)

Definition at line 3059 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_grid_names()

void yac_cget_grid_names ( int  nbr_grids,
const char **  grid_names 
)

query routine to get the list of grid names of the default YAC instance that are referenced by at least one defined field or have metadata assigned to it

Parameters
[in]nbr_gridsnumber of grids
[out]grid_nameslist of grid names

Definition at line 2989 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_grid_names_instance()

void yac_cget_grid_names_instance ( int  yac_instance_id,
int  nbr_grids,
const char **  grid_names 
)

query routine to get the list of grid names that are referenced by at least one defined field or have metadata assigned to it

Parameters
[in]yac_instance_idid of the YAC instance
[in]nbr_gridsnumber of grids
[out]grid_nameslist of grid names

Definition at line 2978 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_grid_size()

size_t yac_cget_grid_size ( int  location,
int  grid_id 
)

query routine to get the number of points in a grid

Parameters
[in]location
[in]grid_id

Definition at line 3325 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_groupcomm()

void yac_cget_groupcomm ( MPI_Comm *  group_comm)

Providing a group communicator for the default YAC instance

Parameters
[out]group_commcommunicator containing all processes that passed the same group name to the init-routine or MPI_COMM_NULL if not group name was provided.

◆ yac_cget_groupcomm_instance()

void yac_cget_groupcomm_instance ( int  yac_instance_id,
MPI_Comm *  group_comm 
)

Providing a group communicator

Parameters
[in]yac_instance_idid of the YAC instance
[out]group_commcommunicator containing all processes that passed the same group name to the init-routine or MPI_COMM_NULL if not group name was provided.

◆ yac_cget_interp_stack_config()

void yac_cget_interp_stack_config ( int *  interp_stack_config_id)

gets an empty stack trace

Parameters
[out]interp_stack_config_idinterpolation stack

Definition at line 3348 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_nbr_comps()

int yac_cget_nbr_comps ( void  )

query routine for number of components defined in the default YAC instance

Returns
number of components

Definition at line 2895 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_nbr_comps_instance()

int yac_cget_nbr_comps_instance ( int  yac_instance_id)

query routine for number of components

Parameters
[in]yac_instance_idid of the YAC instance
Returns
number of components

Definition at line 2887 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_nbr_fields()

int yac_cget_nbr_fields ( const char *  comp_name,
const char *  grid_name 
)

query routine for number of coupling fields defined in the given component and grids of the default YAC instance

Parameters
[in]comp_namename of the component
[in]grid_namename of the grid
Returns
number of fields defined on the calling process

Definition at line 2956 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_nbr_fields_instance()

int yac_cget_nbr_fields_instance ( int  yac_instance_id,
const char *  comp_name,
const char *  grid_name 
)

query routine for number of coupling fields defined in the given component and grids

Parameters
[in]yac_instance_idid of the YAC instance
[in]comp_namename of the component
[in]grid_namename of the grid
Returns
number of fields defined on the calling process

Definition at line 2936 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_nbr_grids()

int yac_cget_nbr_grids ( )

query routine for number of grids defined in the default YAC instance that are referenced by at least one defined field or have metadata assigned to it

Returns
number of fields defined on the calling process

Definition at line 2908 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_nbr_grids_instance()

int yac_cget_nbr_grids_instance ( int  yac_instance_id)

query routine for number of grids that are referenced by at least one defined field or have metadata assigned to it

Parameters
[in]yac_instance_idid of the YAC instance
Returns
number of fields defined on the calling process

Definition at line 2900 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_points_size()

size_t yac_cget_points_size ( int  points_id)

query routine to get the number of points in a pointset

Parameters
[in]points_id

Definition at line 3336 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_role_from_field_id()

int yac_cget_role_from_field_id ( int  field_id)

query routine to get the role of a field for a given ID

Parameters
[in]field_idID as provided by yac_cdef_field
Returns
role exchange type of the field
(YAC_EXCHANGE_TYPE_NONE, YAC_EXCHANGE_TYPE_SOURCE, or YAC_EXCHANGE_TYPE_TARGET)
Remarks
the role is set by the call to yac_cenddef or yac_cenddef_instance

Definition at line 3088 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_start_datetime()

char * yac_cget_start_datetime ( void  )

query routine for the start datetime of the job of the default YAC instance

Definition at line 588 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_start_datetime_instance()

char * yac_cget_start_datetime_instance ( int  yac_instance_id)

query routine for the start datetime of the job

Parameters
[in]yac_instance_idid of the YAC instance

Definition at line 581 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cget_timestep_from_field_id()

const char * yac_cget_timestep_from_field_id ( int  field_id)

query routine to get the timestep of a field for a given ID

Parameters
[in]field_idID as provided by yac_cdef_field
Returns
timestep timestep that has been given to yac_cdef_field iso8601 string. (array of length YAC_MAX_CHARLEN)

Definition at line 3074 of file yac.c.

Here is the call graph for this function:

◆ yac_cget_version()

char * yac_cget_version ( void  )

query routine for the yac version

Definition at line 614 of file yac.c.

Here is the caller graph for this function:

◆ yac_cinit()

void yac_cinit ( void  )

Elementary initialisation of the whole system

Remarks
this call initialises the default YAC instance
This call executes a MPI handshake (MPI handshake algorithm) on MPI_COMM_WORLD with the group name "yac" and uses the created communicator for the initialization. If you don't want to execute a MPI Handshake on MPI_COMM_WORLD you can call yac_cinit_comm with MPI_COMM_WORLD directly.

Definition at line 402 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cinit_comm()

void yac_cinit_comm ( MPI_Comm  comm)

Elementary initialisation of the whole system using a user-provided MPI communicator

Parameters
[in]commMPI communicator
Remarks
this call initialises the default YAC instance
the MPI communicator provided to this routine has to contain all processes that will take part in the coupling
this call is collective for all processes in comm

Definition at line 376 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cinit_comm_dummy()

void yac_cinit_comm_dummy ( MPI_Comm  comm)

Dummy initialisation of the whole system using a user-provided MPI world communicator

Parameters
[in]commMPI communicator
Remarks
This routine can be called instead of yac_cinit_comm or yac_cinit_comm_instance, if the local process does not wish to initialise a YAC instance.

Definition at line 412 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cinit_comm_instance()

void yac_cinit_comm_instance ( MPI_Comm  comm,
int *  yac_instance_id 
)

Elementary initialisation of the whole system using a user-provided MPI communicator

Parameters
[in]commMPI communicator
[out]yac_instance_idid of the YAC instance initialised by this call
Remarks
In case the user has multiple YAC instances in parallel, he has to initialise YAXT himself.

Definition at line 364 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cinit_dummy()

void yac_cinit_dummy ( void  )

Dummy for initialisation of the whole system

Remarks
This routine can be called instead of yac_cinit or yac_cinit_instance, if the local process does not wish to initialise a YAC instance.

Definition at line 428 of file yac.c.

Here is the call graph for this function:

◆ yac_cinit_instance()

void yac_cinit_instance ( int *  yac_instance_id)

Elementary initialisation of the whole system

Parameters
[out]yac_instance_idid of the YAC instance initialised by this call
Remarks
This call executes a MPI handshake (MPI handshake algorithm) on MPI_COMM_WORLD with the group name "yac" and uses the created communicator for the initialization. If you don't want to execute a MPI Handshake on MPI_COMM_WORLD you can call yac_cinit_comm_instance with MPI_COMM_WORLD directly.

Definition at line 390 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cmpi_handshake()

void yac_cmpi_handshake ( MPI_Comm  comm,
size_t  n,
char const **  group_names,
MPI_Comm *  group_comms 
)

MPI Handshake (MPI handshake algorithm)

Splits the provided communicator into group communicators. Each group communicator contains all processes of the provided communicator that provided the same group name. The order of the group names can be arbitrary on each process. A process can be part of multiple groups.

Parameters
[in]commMPI communicator
[in]nnumber of group communicators to be generated
[in]group_namesgroup names
[out]group_commsgroup communicators
Remarks
This call is collective for processes in comm.
yac_cinit will call this routine for MPI_COMM_WORLD and provided the group name "yac" to build its internal communicator.
If a process does not wish to use yac but is part of a communicator (e.g. MPI_COMM_WORLD) that is used by other processes that actually do use yac. This routine can be called, while not providing the group name "yac, to exclude a process from later collective yac-calls.

Definition at line 327 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cpredef_comp()

void yac_cpredef_comp ( char const *  comp_name,
int *  comp_id 
)

Non-blocking pre-definition of a component for the default YAC instance.

Parameters
[in]comp_namename of the component
[out]comp_idcomponent Id
Remarks
this call does not finish the component definition phase. I.e. the component communicators are not set up after this call.

Definition at line 751 of file yac.c.

Here is the call graph for this function:

◆ yac_cpredef_comp_instance()

void yac_cpredef_comp_instance ( int  yac_instance_id,
char const *  comp_name,
int *  comp_id 
)

Non-blocking pre-definition of a component.

Parameters
[in]yac_instance_idid of the YAC instance
[in]comp_namename of the component
[out]comp_idcomponent Id
Remarks
this call does not finish the component definition phase. I.e. the component communicators are not set up after this call.

Definition at line 718 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cput()

void yac_cput ( int const  field_id,
int const  collection_size,
double ***const  send_field,
int *  info,
int *  ierror 
)

Sending of the coupling fields

Parameters
[in]field_id-
[in]collection_size-
[in]send_field- send buffer dimensions send_field[collection_size] [nbr_fields] [nbr_points]
[out]info- returned info
[out]ierror- returned error

Definition at line 2514 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cput_()

void yac_cput_ ( int const  field_id,
int const  collection_size,
double *  send_field,
int *  info,
int *  ierror 
)

Sending of the coupling fields

Parameters
[in]field_id-
[in]collection_size-
[in]send_field- send buffer (all data is stored in one contiguous part of the memory) dimensions send_field[collection_size] [nbr_fields] [nbr_points]
[out]info- returned info
[out]ierror- returned error

Definition at line 1917 of file yac.c.

Here is the call graph for this function:

◆ yac_cput_frac()

void yac_cput_frac ( int const  field_id,
int const  collection_size,
double ***const  send_field,
double ***const  send_frac_mask,
int *  info,
int *  ierror 
)

Sending of the coupling fields

Parameters
[in]field_id-
[in]collection_size-
[in]send_field- send buffer dimensions send_field[collection_size] [nbr_fields] [nbr_points]
[in]send_frac_mask- send fractional mask dimensions send_frac_mask[collection_size] [nbr_fields] [nbr_points]
[out]info- returned info
[out]ierror- returned error

Definition at line 2425 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cput_frac_()

void yac_cput_frac_ ( int const  field_id,
int const  collection_size,
double *  send_field,
double *  send_frac_mask,
int *  info,
int *  ierror 
)

Sending of the coupling fields

Parameters
[in]field_id-
[in]collection_size-
[in]send_field- send buffer (all data is stored in one contiguous part of the memory) dimensions send_field[collection_size] [nbr_fields] [nbr_points]
[in]send_frac_mask- send fractional mask (all data is stored in one contiguous part of the memory) dimensions send_frac_mask[collection_size] [nbr_fields] [nbr_points]
[out]info- returned info
[out]ierror- returned error

Definition at line 1938 of file yac.c.

Here is the call graph for this function:

◆ yac_cput_frac_ptr_()

void yac_cput_frac_ptr_ ( int const  field_id,
int const  collection_size,
double **  send_field,
double **  send_frac_mask,
int *  info,
int *  ierror 
)

Sending of the coupling fields

Parameters
[in]field_id-
[in]collection_size-
[in]send_field- send buffer dimensions send_field[collection_size * nbr_fields] [nbr_points]
[in]send_frac_mask- send fractional mask dimensions send_frac_mask[collection_size * nbr_fields] [nbr_points]
[out]info- returned info
[out]ierror- returned error

Definition at line 2035 of file yac.c.

Here is the call graph for this function:

◆ yac_cput_ptr_()

void yac_cput_ptr_ ( int const  field_id,
int const  collection_size,
double **  send_field,
int *  info,
int *  ierror 
)

Sending of the coupling fields

Parameters
[in]field_id-
[in]collection_size-
[in]send_field- send buffer dimensions send_field[collection_size * nbr_fields] [nbr_points]
[out]info- returned info
[out]ierror- returned error

Definition at line 2015 of file yac.c.

Here is the call graph for this function:

◆ yac_cread_config_json()

void yac_cread_config_json ( const char *  json_file)

Function for reading configuration from JSON configuration file

Parameters
[in]json_fileJSON configuration file

Definition at line 471 of file yac.c.

Here is the call graph for this function:

◆ yac_cread_config_json_instance()

void yac_cread_config_json_instance ( int  yac_instance_id,
const char *  json_file 
)

Function for reading configuration from JSON configuration file for a specific YAC instance

Parameters
[in]yac_instance_idYAC instance id
[in]json_fileJSON configuration file

Definition at line 462 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cread_config_yaml()

void yac_cread_config_yaml ( const char *  yaml_file)

Function for reading configuration from YAML configuration file

Parameters
[in]yaml_fileYAML configuration file

Definition at line 457 of file yac.c.

Here is the call graph for this function:

◆ yac_cread_config_yaml_instance()

void yac_cread_config_yaml_instance ( int  yac_instance_id,
const char *  yaml_file 
)

Function for reading configuration from YAML configuration file for a specific YAC instance

Parameters
[in]yac_instance_idYAC instance id
[in]yaml_fileYAML configuration file

Definition at line 448 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cset_core_mask()

void yac_cset_core_mask ( int const *  is_core,
int  location,
int  grid_id 
)

Set core mask for a grid

Parameters
[in]is_core0 for cells/vertices/edges that are halos, 1 for cells/vertices/edges that are core
[in]locationcell/vertex/edge
[in]grid_idgrid id
Remarks
cells/vertices/edges who are halos are not used or set in a put or get operation
core mask values are to be provided in the local order of their respective cells/vertices/edges

Definition at line 3285 of file yac.c.

Here is the call graph for this function:

◆ yac_cset_ext_couple_config_mapping_side()

void yac_cset_ext_couple_config_mapping_side ( int  ext_couple_config_id,
int  mapping_side 
)

Sets the mapping side

Parameters
[in]ext_couple_config_idextended coupling configuration
[in]mapping_sidemapping side
Remarks
Valid values are: source = 1 and target = 0

Definition at line 1286 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cset_ext_couple_config_scale_factor()

void yac_cset_ext_couple_config_scale_factor ( int  ext_couple_config_id,
double  scale_factor 
)

Sets the scale factor

Parameters
[in]ext_couple_config_idextended coupling configuration
[in]scale_factorscale factor

Definition at line 1309 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cset_ext_couple_config_scale_summand()

void yac_cset_ext_couple_config_scale_summand ( int  ext_couple_config_id,
double  scale_summand 
)

Sets the scale summand

Parameters
[in]ext_couple_config_idextended coupling configuration
[in]scale_summandscale summand

Definition at line 1332 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cset_ext_couple_config_src_mask_names()

void yac_cset_ext_couple_config_src_mask_names ( int  ext_couple_config_id,
size_t  num_src_mask_names,
char const *const *  src_mask_names 
)

Sets source mask names

Parameters
[in]ext_couple_config_idextended coupling configuration
[in]num_src_mask_namesnumber of source mask names
[in]src_mask_namessource mask names

Definition at line 1362 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cset_ext_couple_config_tgt_mask_name()

void yac_cset_ext_couple_config_tgt_mask_name ( int  ext_couple_config_id,
char const *  tgt_mask_name 
)

Sets target mask name

Parameters
[in]ext_couple_config_idextended coupling configuration
[in]tgt_mask_nametarget mask name

Definition at line 1387 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cset_ext_couple_config_weight_file()

void yac_cset_ext_couple_config_weight_file ( int  ext_couple_config_id,
char const *  weight_file 
)

Sets the weight file name

Parameters
[in]ext_couple_config_idextended coupling configuration
[in]weight_filename of a weight file
Remarks
if (weight_file == NULL) no weight file will be written
YAC will write out the wight file in parallel. This parallel output can be configured as described here: Configuration of parallel IO in YAC

Definition at line 1260 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cset_global_index()

void yac_cset_global_index ( int const *  global_index,
int  location,
int  grid_id 
)

Set global ids for a grid

Parameters
[in]global_indexarray of global indices
[in]locationcell/vertex/edge
[in]grid_idgrid id
Remarks
global indices are to be provided in the local order of their respective cells/vertices/edges

Definition at line 3244 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cset_mask()

void yac_cset_mask ( int const *  is_valid,
int  points_id 
)

Set the default mask for points

Parameters
[in]is_valid0 for points that are masked out, 1 for valid points
[in]points_idid of points/cells

Definition at line 993 of file yac.c.

Here is the call graph for this function:

◆ yac_csync_def()

void yac_csync_def ( void  )

synchronize grids and fields of the default instance

Definition at line 2826 of file yac.c.

Here is the call graph for this function:

◆ yac_csync_def_instance()

void yac_csync_def_instance ( int  yac_instance_id)

synchronize grids and fields

Parameters
[in]yac_instance_idid of the YAC instance

Definition at line 2821 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_ctest()

void yac_ctest ( int  field_id,
int *  flag 
)

Determines whether there is an asynchronous communication associated with a field, which is not yet completed (for example by a previous put)

Parameters
[in]field_id
[out]flag"0" if there is an uncompleted asynchronous communication associated with the field, "1" otherwise

Definition at line 2066 of file yac.c.

Here is the call graph for this function:

◆ yac_cupdate()

void yac_cupdate ( int  field_id)

If the action for the current timestep is YAC_ACTION_NONE, this routine will advance the internal clock to next timestep.

Parameters
[in]field_idfield id returned by yac_cdef_field
Remarks
If this routine is called before yac_cenddef, the behaviour is undefined.
This routine can be called instead of yac_cput or yac_cget, if these routines would not have taken any action for the current timestep, in order to advance the internal clock.

Definition at line 1674 of file yac.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_cwait()

void yac_cwait ( int  field_id)

Waits until all previous asynchronous communication associated with a field is completed (for example by a previous put)

Parameters
[in]field_id

Definition at line 2090 of file yac.c.

Here is the call graph for this function:

◆ yac_get_abort_handler()

yac_abort_func yac_get_abort_handler ( void  )

Gets abort handler

Returns
currently set abort handler
Examples
test_abort_c.c.

◆ yac_get_default_abort_handler()

yac_abort_func yac_get_default_abort_handler ( void  )

Gets default abort handler

Returns
default abort handler
Examples
test_abort_c.c.

◆ yac_restore_default_abort_handler()

void yac_restore_default_abort_handler ( void  )

Restores default abort handler

Examples
test_abort_c.c.

◆ yac_set_abort_handler()

void yac_set_abort_handler ( yac_abort_func  custom_abort)

Sets custom abort handler

Parameters
[in]custom_abortcustom abort handler
Remarks
This abort handler should call MPI_Abort if possible. Once this handler was called, the internal state of YAC is undefined and no YAC functions should be called anymore.
Examples
test_abort_c.c.

◆ yac_set_default_comm()

void yac_set_default_comm ( MPI_Comm  comm)

Sets default MPI communicator (MPI_COMM_WORLD by default)

Parameters
[in]commdefault MPI communicator
Examples
test_abort_c.c.

Variable Documentation

◆ YAC_ACTION_COUPLING

int const YAC_ACTION_COUPLING
extern

Definition at line 37 of file yac.c.

◆ YAC_ACTION_GET_FOR_RESTART

int const YAC_ACTION_GET_FOR_RESTART
extern

Definition at line 39 of file yac.c.

◆ YAC_ACTION_NONE

int const YAC_ACTION_NONE
extern

Definition at line 35 of file yac.c.

◆ YAC_ACTION_OUT_OF_BOUND

int const YAC_ACTION_OUT_OF_BOUND
extern

Definition at line 43 of file yac.c.

◆ YAC_ACTION_PUT_FOR_RESTART

int const YAC_ACTION_PUT_FOR_RESTART
extern

Definition at line 40 of file yac.c.

◆ YAC_ACTION_REDUCTION

int const YAC_ACTION_REDUCTION
extern

Definition at line 36 of file yac.c.

◆ YAC_AVG_ARITHMETIC

int const YAC_AVG_ARITHMETIC
extern

Definition at line 65 of file yac.c.

◆ YAC_AVG_BARY

int const YAC_AVG_BARY
extern

Definition at line 67 of file yac.c.

◆ YAC_AVG_DIST

int const YAC_AVG_DIST
extern

Definition at line 66 of file yac.c.

◆ YAC_CALENDAR_NOT_SET

int const YAC_CALENDAR_NOT_SET
extern

Definition at line 60 of file yac.c.

◆ YAC_CONSERV_DESTAREA

int const YAC_CONSERV_DESTAREA
extern

Definition at line 78 of file yac.c.

◆ YAC_CONSERV_FRACAREA

int const YAC_CONSERV_FRACAREA
extern

Definition at line 79 of file yac.c.

◆ YAC_EXCHANGE_TYPE_NONE

int const YAC_EXCHANGE_TYPE_NONE
extern

Definition at line 31 of file yac.c.

◆ YAC_EXCHANGE_TYPE_SOURCE

int const YAC_EXCHANGE_TYPE_SOURCE
extern

Definition at line 32 of file yac.c.

◆ YAC_EXCHANGE_TYPE_TARGET

int const YAC_EXCHANGE_TYPE_TARGET
extern

Definition at line 33 of file yac.c.

◆ YAC_LOCATION_CELL

int const YAC_LOCATION_CELL
extern

Definition at line 27 of file yac.c.

◆ YAC_LOCATION_CORNER

int const YAC_LOCATION_CORNER
extern

Definition at line 28 of file yac.c.

◆ YAC_LOCATION_EDGE

int const YAC_LOCATION_EDGE
extern

Definition at line 29 of file yac.c.

◆ YAC_NCC_AVG

int const YAC_NCC_AVG
extern

Definition at line 69 of file yac.c.

◆ YAC_NCC_DIST

int const YAC_NCC_DIST
extern

Definition at line 70 of file yac.c.

◆ YAC_NNN_AVG

int const YAC_NNN_AVG
extern

Definition at line 72 of file yac.c.

◆ YAC_NNN_DIST

int const YAC_NNN_DIST
extern

Definition at line 73 of file yac.c.

◆ YAC_NNN_GAUSS

int const YAC_NNN_GAUSS
extern

Definition at line 74 of file yac.c.

◆ YAC_NNN_RBF

int const YAC_NNN_RBF
extern

Definition at line 75 of file yac.c.

◆ YAC_NNN_ZERO

int const YAC_NNN_ZERO
extern

Definition at line 76 of file yac.c.

◆ YAC_PROLEPTIC_GREGORIAN

int const YAC_PROLEPTIC_GREGORIAN
extern

Definition at line 61 of file yac.c.

◆ YAC_REDUCTION_TIME_ACCUMULATE

int const YAC_REDUCTION_TIME_ACCUMULATE
extern

Definition at line 46 of file yac.c.

◆ YAC_REDUCTION_TIME_AVERAGE

int const YAC_REDUCTION_TIME_AVERAGE
extern

Definition at line 47 of file yac.c.

◆ YAC_REDUCTION_TIME_MAXIMUM

int const YAC_REDUCTION_TIME_MAXIMUM
extern

Definition at line 49 of file yac.c.

◆ YAC_REDUCTION_TIME_MINIMUM

int const YAC_REDUCTION_TIME_MINIMUM
extern

Definition at line 48 of file yac.c.

◆ YAC_REDUCTION_TIME_NONE

int const YAC_REDUCTION_TIME_NONE
extern

Definition at line 45 of file yac.c.

◆ YAC_SPMAP_AVG

int const YAC_SPMAP_AVG
extern

Definition at line 81 of file yac.c.

◆ YAC_SPMAP_DIST

int const YAC_SPMAP_DIST
extern

Definition at line 82 of file yac.c.

◆ YAC_SPMAP_FRACAREA

int const YAC_SPMAP_FRACAREA
extern

Definition at line 87 of file yac.c.

◆ YAC_SPMAP_INVTGTAREA

int const YAC_SPMAP_INVTGTAREA
extern

Definition at line 86 of file yac.c.

◆ YAC_SPMAP_NONE

int const YAC_SPMAP_NONE
extern

Definition at line 84 of file yac.c.

◆ YAC_SPMAP_SRCAREA

int const YAC_SPMAP_SRCAREA
extern

Definition at line 85 of file yac.c.

◆ YAC_TIME_UNIT_DAY

int const YAC_TIME_UNIT_DAY
extern

Definition at line 55 of file yac.c.

◆ YAC_TIME_UNIT_HOUR

int const YAC_TIME_UNIT_HOUR
extern

Definition at line 54 of file yac.c.

◆ YAC_TIME_UNIT_ISO_FORMAT

int const YAC_TIME_UNIT_ISO_FORMAT
extern

Definition at line 58 of file yac.c.

◆ YAC_TIME_UNIT_MILLISECOND

int const YAC_TIME_UNIT_MILLISECOND
extern

Definition at line 51 of file yac.c.

◆ YAC_TIME_UNIT_MINUTE

int const YAC_TIME_UNIT_MINUTE
extern

Definition at line 53 of file yac.c.

◆ YAC_TIME_UNIT_MONTH

int const YAC_TIME_UNIT_MONTH
extern

Definition at line 56 of file yac.c.

◆ YAC_TIME_UNIT_SECOND

int const YAC_TIME_UNIT_SECOND
extern

Definition at line 52 of file yac.c.

◆ YAC_TIME_UNIT_YEAR

int const YAC_TIME_UNIT_YEAR
extern

Definition at line 57 of file yac.c.

◆ YAC_YAML_EMITTER_DEFAULT

int YAC_YAML_EMITTER_DEFAULT
extern

emit to YAML format

Definition at line 46 of file config_yaml.c.

◆ YAC_YAML_EMITTER_JSON

int YAC_YAML_EMITTER_JSON
extern

emit to JSON format

Definition at line 47 of file config_yaml.c.

◆ YAC_YEAR_OF_360_DAYS

int const YAC_YEAR_OF_360_DAYS
extern

Definition at line 63 of file yac.c.

◆ YAC_YEAR_OF_365_DAYS

int const YAC_YEAR_OF_365_DAYS
extern

Definition at line 62 of file yac.c.