12#include "yac_config.h"
97#define YAC_MAX_CHARLEN (132)
134 char const** group_names,
135 MPI_Comm * group_comms );
204 int * yac_instance_id );
234 const char * yaml_file);
249 const char * json_file);
274 const char * filename,
277 int include_definitions);
295 int include_definitions);
307 const char * gridname,
308 const char * filename);
317 const char * filename);
370 const char * end_datetime );
380 const char * start_datetime,
381 const char * end_datetime );
415 MPI_Comm * group_comm );
440 char const * comp_name,
471 const char * comp_name,
504 const char ** comp_names,
518 MPI_Comm *comp_comm );
536 MPI_Comm * comps_comm);
551 const char ** comp_names,
553 MPI_Comm * comps_comm );
575 int const *nbr_points,
577 double const *x_points,
578 double const *y_points,
601 int const *nbr_points,
603 double const *x_points,
604 double const *y_points,
623 int const nbr_points,
625 double const *x_points,
626 double const *y_points,
651 int const *nbr_points,
653 double const *x_points,
654 double const *y_points,
795 int *num_vertices_per_cell,
822 int *num_vertices_per_cell,
850 int *num_edges_per_cell,
880 int *num_edges_per_cell,
1042 int const nbr_points,
1044 int const * is_valid,
1060 int const nbr_points,
1062 int const * is_valid,
1087 int const component_id,
1088 int const * point_ids,
1089 int const num_pointsets,
1091 const char* timestep,
1117 int const component_id,
1118 int const * point_ids,
1119 int const * mask_ids,
1120 int const num_pointsets,
1122 const char* timestep,
1141 const char* grid_name,
1142 const char* field_name,
1143 double frac_mask_fallback_value);
1159 int yac_instance_id,
1160 const char* comp_name,
1161 const char* grid_name,
1162 const char* field_name,
1163 double frac_mask_fallback_value);
1172 const char* metadata);
1180 const char* comp_name,
1181 const char* metadata);
1188 const char* metadata);
1196 const char* grid_name,
1197 const char* metadata);
1206 const char* grid_name,
1207 const char* field_name,
1208 const char* metadata);
1218 const char* comp_name,
1219 const char* grid_name,
1220 const char* field_name,
1221 const char* metadata);
1288 char const * weight_file);
1296 char const ** weight_file);
1309 int ext_couple_config_id,
int weight_file_on_existing);
1316 int ext_couple_config_id,
int * weight_file_on_existing);
1331 int * mapping_side);
1338 double scale_factor);
1345 double * scale_factor);
1352 double scale_summand);
1359 double * scale_summand);
1367 int ext_couple_config_id,
1368 size_t num_src_mask_names,
1369 char const *
const * src_mask_names);
1377 int ext_couple_config_id,
1378 size_t * num_src_mask_names,
1379 char const *
const ** src_mask_names);
1386 char const * tgt_mask_name);
1393 char const ** tgt_mask_name);
1400 int ext_couple_config_id,
char const * yaxt_exchanger_name);
1407 int ext_couple_config_id,
char const ** yaxt_exchanger_name);
1415 int ext_couple_config_id,
int use_raw_exchange);
1422 int ext_couple_config_id,
int * use_raw_exchange);
1433 int ext_couple_config_id,
1435 int const * collection_indices);
1450 int ext_couple_config_id,
1452 int ** collection_indices);
1477 char const * src_comp_name,
1479 char const * src_field_name,
1480 char const * tgt_comp_name,
1482 char const * tgt_field_name,
1483 char const * coupling_timestep,
1486 int interp_stack_config_id,
1489 int ext_couple_config_id);
1513 char const * src_field_name,
1514 char const * tgt_comp_name,
1516 char const * tgt_field_name,
1517 char const * coupling_timestep,
1520 int interp_stack_config_id,
1523 int ext_couple_config_id);
1547 char const * src_comp_name,
1549 char const * src_field_name,
1550 char const * tgt_comp_name,
1552 char const * tgt_field_name,
1553 char const * coupling_timestep,
1556 int interp_stack_config_id,
1580 char const * src_field_name,
1581 char const * tgt_comp_name,
1583 char const * tgt_field_name,
1584 char const * coupling_timestep,
1587 int interp_stack_config_id,
1606 int const * pointset_sizes );
1620 int src_field_buffer_size );
1633 int * src_field_buffer_sizes );
1669 double * frac_mask_fallback_value,
1670 double * scaling_factor,
1671 double * scaling_summand,
1672 size_t * num_fixed_values,
1673 double ** fixed_values,
1674 size_t ** num_tgt_per_fixed_value,
1675 size_t ** tgt_idx_fixed,
1676 size_t * num_wgt_tgt,
1677 size_t ** wgt_tgt_idx,
1678 size_t ** num_src_per_tgt,
1680 size_t ** src_field_idx,
1682 size_t * num_src_fields,
1683 size_t ** src_field_buffer_sizes );
1715 double * frac_mask_fallback_value,
1716 double * scaling_factor,
1717 double * scaling_summand,
1718 size_t * num_fixed_values,
1719 double ** fixed_values,
1720 size_t ** num_tgt_per_fixed_value,
1721 size_t ** tgt_idx_fixed,
1722 size_t ** src_indptr,
1724 size_t ** src_field_idx,
1726 size_t * num_src_fields,
1727 size_t ** src_field_buffer_sizes );
1758 double **recv_field,
1797 double **recv_field,
1820 double *src_field_buffer,
1841 double ***src_field_buffer,
1867 double *src_field_buffer,
1892 double ***src_field_buffer,
1925 double *src_field_buffer,
1926 double *src_frac_mask_buffer,
1955 double ***src_field_buffer,
1956 double ***src_frac_mask_buffer,
1993 double *src_field_buffer,
1994 double *src_frac_mask_buffer,
2027 double ***src_field_buffer,
2028 double ***src_frac_mask_buffer,
2067 double ***
const send_field,
2094 double *send_frac_mask,
2116 double ***
const send_field,
2117 double ***
const send_frac_mask,
2136 double ** send_field,
2158 double ** send_field,
2159 double ** send_frac_mask,
2184 int const recv_field_id,
2186 double *send_field ,
2210 int const recv_field_id,
2212 double ***
const send_field,
2213 double ** recv_field,
2241 int const recv_field_id,
2243 double ***
const send_field,
2244 double ***src_field_buffer,
2272 int const recv_field_id,
2275 double *src_field_buffer,
2316 int const recv_field_id,
2318 double ***
const send_field,
2319 double ***
const send_frac_mask,
2320 double ***src_field_buffer,
2321 double ***src_frac_mask_buffer,
2366 int const recv_field_id,
2369 double *send_frac_mask,
2370 double *src_field_buffer,
2371 double *src_frac_mask_buffer,
2402 int const recv_field_id,
2405 double *send_frac_mask,
2433 int const recv_field_id,
2435 double ***
const send_field,
2436 double ***
const send_frac_mask,
2437 double ** recv_field,
2460 int const recv_field_id,
2462 double ** send_field,
2463 double ** recv_field,
2489 int const recv_field_id,
2491 double ** send_field,
2492 double ** src_field_buffer,
2518 int const recv_field_id,
2520 double ** send_field,
2521 double ** send_frac_mask,
2522 double ** recv_field,
2558 int const recv_field_id,
2560 double ** send_field,
2561 double ** send_frac_mask,
2562 double ** src_field_buffer,
2563 double ** src_frac_mask_buffer,
2749 const char* comp_name );
2760 const char* grid_name );
2772 const char* comp_name,
2773 const char* grid_name);
2784 const char ** comp_names );
2795 const char ** comp_names );
2844 const char* comp_name,
2858 const char* grid_name,
2872 const char * comp_name,
2873 const char* grid_name,
2954 const char* grid_name,
2955 const char* field_name);
2969 const char* comp_name,
2970 const char* grid_name,
2971 const char* field_name);
2982 const char* grid_name,
2983 const char* field_name);
2995 const char* comp_name,
2996 const char* grid_name,
2997 const char* field_name);
3013 const char* comp_name);
3027 const char* grid_name);
3036 const char* grid_name,
3037 const char* field_name);
3047 const char* comp_name,
3048 const char* grid_name,
3049 const char* field_name);
3064 const char* grid_name,
3065 const char* field_name );
3079 const char* comp_name,
3080 const char* grid_name,
3081 const char* field_name );
3095 const char* grid_name,
3096 const char* field_name);
3108 const char* grid_name,
3109 const char* field_name);
3124 int yac_instance_id,
3125 const char* comp_name,
3126 const char* grid_name,
3127 const char* field_name );
3140 int yac_instance_id,
3141 const char* comp_name,
3142 const char* grid_name,
3143 const char* field_name);
3160 const char* grid_name,
3161 const char* field_name );
3179 const char* comp_name,
3180 const char* grid_name,
3181 const char* field_name );
3196 const char* tgt_field_name,
3197 const char** src_comp_name,
3199 const char** src_field_name);
3214 const char* tgt_comp_name,
3216 const char* tgt_field_name,
3217 const char** src_comp_name,
3219 const char** src_field_name);
3226# define __attribute__(x)
3231# define __attribute__(x)
3238 const char *source,
int line)
3243# undef __attribute__
3318 double * cell_areas );
3353 int ext_spmap_config_id,
double spread_distance);
3362 int ext_spmap_config_id,
double max_search_distance);
3380 int ext_spmap_config_id,
int scale_type);
3389 int ext_spmap_config_id,
double sphere_radius);
3398 int ext_spmap_config_id,
double sphere_radius);
3409 int ext_spmap_config_id,
char const * filename,
3410 char const * varname,
int min_global_id);
3421 int ext_spmap_config_id,
char const * filename,
3422 char const * varname,
int min_global_id);
3452 int spmap_overwrite_config_id,
double center_lon,
double center_lat,
3462 int spmap_overwrite_config_id,
double spread_distance);
3471 int spmap_overwrite_config_id,
double max_search_distance);
3501 int partial_coverage);
3511 int partial_coverage);
3527 double max_search_distance,
3540 double max_search_distance,
3551 int interp_stack_config_id,
3553 int enforced_conserv,
3554 int partial_coverage,
3584 int interp_stack_config_id,
3585 double spread_distance,
3586 double max_search_distance,
3589 double src_sphere_radius,
3590 char const * src_filename,
3591 char const * src_varname,
3592 int src_min_global_id,
3593 double tgt_sphere_radius,
3594 char const * tgt_filename,
3595 char const * tgt_varname,
3596 int tgt_min_global_id);
3607 int interp_stack_config_id,
3608 int ext_spmap_config_id,
3609 int * spmap_overwrite_config_ids,
3610 int spmap_overwrite_config_count);
3626 int interp_stack_config_id,
char const * filename);
3641 int interp_stack_config_id,
char const * filename,
3642 int on_missing_file,
int on_success);
3661 char const * constructor_key,
3662 char const * do_search_key);
3669 int creep_distance);
3678 int interp_stack_config_id,
3679 char const * func_compute_weights_key);
3750#ifndef TYPEDEF_YAC_FUNC_COMPUTE_WEIGHTS
3751#define TYPEDEF_YAC_FUNC_COMPUTE_WEIGHTS
3755 double const tgt_coords[3],
int src_cell_id,
size_t src_cell_idx,
3756 int const ** global_results_points,
double ** result_weights,
3757 size_t * result_count,
void *
user_data);
3783 char const * interp_stack_config,
int * interp_stack_config_id);
3792 char const * interp_stack_config,
int * interp_stack_config_id);
char const * grid_names[]
char const * field_names[8]
char const src_grid_name[]
char const tgt_grid_name[]
static void compute_weights_callback(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)
int const YAC_YEAR_OF_365_DAYS
void yac_cget_raw_(int const field_id, int const collection_size, double *src_field_buffer, int *info, int *ierror)
void yac_cset_ext_spmap_config_src_cell_area_config_yac(int ext_spmap_config_id, double sphere_radius)
void yac_cdef_comps(const char **comp_names, int num_comps, int *comp_ids)
void yac_cexchange_raw_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 ***src_field_buffer, double ***src_frac_mask_buffer, int *send_info, int *recv_info, int *ierror)
int const YAC_REDUCTION_TIME_AVERAGE
void yac_cenddef_and_emit_config(int emit_flags, char **config)
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_cread_config_yaml_instance(int yac_instance_id, const char *yaml_file)
void yac_ccompute_grid_cell_areas(int grid_id, double *cell_areas)
void yac_cinit_comm_dummy(MPI_Comm comm)
void yac_cget_grid_names(int nbr_grids, const char **grid_names)
void yac_cadd_interp_stack_config_ncc(int interp_stack_config_id, int weight_type, int partial_coverage)
void yac_cread_config_json_instance(int yac_instance_id, const char *json_file)
void yac_cget_ext_couple_config_scale_factor(int ext_couple_config_id, double *scale_factor)
const char * yac_cget_field_metadata_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
void yac_cexchange_raw_(int const send_field_id, int const recv_field_id, int const collection_size, double *send_field, double *src_field_buffer, 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_cget_async(int const field_id, int const collection_size, double **recv_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_cadd_interp_stack_config_spmap_ext(int interp_stack_config_id, int ext_spmap_config_id, int *spmap_overwrite_config_ids, int spmap_overwrite_config_count)
void yac_cset_global_index_yac_int(yac_int const *global_index, int location, int grid_id)
yac_abort_func yac_get_abort_handler(void)
void yac_ccheck_field_dimensions(int field_id, int collection_size, int num_pointsets, int const *pointset_sizes)
void yac_cget_groupcomm_instance(int yac_instance_id, MPI_Comm *group_comm)
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_cget_raw_async(int const field_id, int const collection_size, double ***src_field_buffer, int *info, int *ierror)
int const YAC_ACTION_OUT_OF_BOUND
put/get is outside of the valid range
void yac_cget_ext_couple_config_mapping_side(int ext_couple_config_id, int *mapping_side)
void yac_cput_(int const field_id, int const collection_size, double *send_field, int *info, int *ierror)
int const YAC_SPMAP_SRCAREA
int const YAC_CONFIG_OUTPUT_SYNC_LOC_ENDDEF
after end of definitions
char * yac_cget_start_datetime_instance(int yac_instance_id)
void yac_cset_global_index(int const *global_index, int location, int grid_id)
void yac_cset_grid_output_file_instance(int yac_instance_id, const char *gridname, const char *filename)
void yac_cdef_datetime_instance(int yac_instance_id, const char *start_datetime, const char *end_datetime)
int yac_cget_role_from_field_id(int field_id)
int yac_cget_nbr_grids_instance(int yac_instance_id)
void yac_cfree_ext_couple_config(int ext_couple_config_id)
const char * yac_cget_grid_metadata_instance(int yac_instance_id, const char *grid_name)
int const YAC_FILE_SUCCESS_CONT
char * yac_cget_end_datetime_instance(int yac_instance_id)
void yac_cdef_datetime(const char *start_datetime, const char *end_datetime)
int const YAC_SPMAP_INVTGTAREA
int const YAC_LOCATION_CELL
void yac_cfree_spmap_overwrite_config(int spmap_overwrite_config_id)
int const YAC_REDUCTION_TIME_MINIMUM
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_weight_file_on_existing(int ext_couple_config_id, int *weight_file_on_existing)
void yac_cget_async_(int const field_id, int const collection_size, double *recv_field, int *info, int *ierror)
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_grid_metadata(const char *grid_name, const char *metadata)
int const YAC_FILE_MISSING_CONT
continue on missing file
int const YAC_TIME_UNIT_MINUTE
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_cget_grid_names_instance(int yac_instance_id, int nbr_grids, const char **grid_names)
void yac_cset_ext_couple_config_scale_factor(int ext_couple_config_id, double scale_factor)
void yac_cexchange_raw_frac_ptr_(int const send_field_id, int const recv_field_id, int const collection_size, double **send_field, double **send_frac_mask, double **src_field_buffer, double **src_frac_mask_buffer, int *send_info, int *recv_info, int *ierror)
int const YAC_FILE_MISSING_ERROR
abort on missing file
void yac_cset_ext_couple_config_weight_file_on_existing(int ext_couple_config_id, int weight_file_on_existing)
void yac_cadd_interp_stack_config_creep(int interp_stack_config_id, int creep_distance)
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_component_metadata(const char *comp_name, const char *metadata)
int const YAC_TIME_UNIT_YEAR
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)
int yac_cget_field_role(const char *comp_name, const char *grid_name, const char *field_name)
void yac_ccleanup()
Clean-up default YAC instance (see Restarting YAC)
int const YAC_AVG_ARITHMETIC
void yac_set_default_comm(MPI_Comm comm)
void yac_cset_spmap_overwrite_config_max_search_distance(int spmap_overwrite_config_id, double max_search_distance)
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_cadd_compute_weights_callback(yac_func_compute_weights compute_weights_callback, void *user_data, char const *key)
void yac_cmpi_handshake(MPI_Comm comm, size_t n, char const **group_names, MPI_Comm *group_comms)
void yac_cget_raw_interp_weights_data_csr(int const field_id, double *frac_mask_fallback_value, double *scaling_factor, double *scaling_summand, size_t *num_fixed_values, double **fixed_values, size_t **num_tgt_per_fixed_value, size_t **tgt_idx_fixed, size_t **src_indptr, double **weights, size_t **src_field_idx, size_t **src_idx, size_t *num_src_fields, size_t **src_field_buffer_sizes)
void yac_cput(int const field_id, int const collection_size, double ***const send_field, int *info, int *ierror)
int const YAC_REDUCTION_TIME_MAXIMUM
int const YAC_WGT_ON_EXISTING_ERROR
int const YAC_TIME_UNIT_MILLISECOND
int yac_cget_field_id_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
int yac_cget_comp_nbr_grids_instance(int yac_instance_id, const char *comp_name)
void yac_cget_raw_interp_weights_data(int const field_id, double *frac_mask_fallback_value, double *scaling_factor, double *scaling_summand, size_t *num_fixed_values, double **fixed_values, size_t **num_tgt_per_fixed_value, size_t **tgt_idx_fixed, size_t *num_wgt_tgt, size_t **wgt_tgt_idx, size_t **num_src_per_tgt, double **weights, size_t **src_field_idx, size_t **src_idx, size_t *num_src_fields, size_t **src_field_buffer_sizes)
int yac_cget_field_is_defined(const char *comp_name, const char *grid_name, const char *field_name)
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)
const char * yac_cget_timestep_from_field_id(int field_id)
int const YAC_FILE_SUCCESS_STOP
void yac_cget_raw_async_(int const field_id, int const collection_size, double *src_field_buffer, int *info, int *ierror)
int yac_cget_nbr_fields(const char *comp_name, const char *grid_name)
void yac_cset_ext_spmap_config_scale_type(int ext_spmap_config_id, int scale_type)
int const YAC_YAML_EMITTER_DEFAULT
emit to YAML format
void yac_csync_def_instance(int yac_instance_id)
void yac_cget_raw_frac_(int const field_id, int const collection_size, double *src_field_buffer, double *src_frac_mask_buffer, int *info, int *ierror)
void yac_cget_field_source(const char *tgt_comp_name, const char *tgt_grid_name, const char *tgt_field_name, const char **src_comp_name, const char **src_grid_name, const char **src_field_name)
void yac_cget_interp_stack_config_from_string_json(char const *interp_stack_config, int *interp_stack_config_id)
void yac_cexchange_raw_ptr_(int const send_field_id, int const recv_field_id, int const collection_size, double **send_field, double **src_field_buffer, int *send_info, int *recv_info, int *ierror)
void yac_cget_raw(int const field_id, int const collection_size, double ***src_field_buffer, int *info, int *ierror)
int yac_cget_field_is_defined_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
void yac_cdef_grid_reg2d_rot(const char *grid_name, int nbr_vertices[2], int cyclic[2], double *x_vertices, double *y_vertices, double x_north_pole, double y_north_pole, int *grid_id)
void(* yac_abort_func)(MPI_Comm comm, const char *msg, const char *source, int line) __attribute__((noreturn))
int const YAC_TIME_UNIT_HOUR
void yac_cexchange_raw_frac_(int const send_field_id, int const recv_field_id, int const collection_size, double *send_field, double *send_frac_mask, double *src_field_buffer, double *src_frac_mask_buffer, int *send_info, int *recv_info, int *ierror)
int const YAC_YEAR_OF_360_DAYS
void yac_cfinalize_instance(int yac_instance_id)
Finalises YAC.
void yac_cfinalize()
Finalises YAC.
const char * yac_cget_field_name_from_field_id(int field_id)
void yac_cget_ext_couple_config_collection_selection(int ext_couple_config_id, int *collection_size, int **collection_indices)
void yac_cadd_interp_stack_config_check(int interp_stack_config_id, char const *constructor_key, char const *do_search_key)
void yac_cenddef_instance(int yac_instance_id)
void yac_cget_ext_couple_config_yaxt_exchanger_name(int ext_couple_config_id, char const **yaxt_exchanger_name)
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)
int const YAC_YAML_EMITTER_JSON
emit to JSON format
int yac_cget_nbr_comps_instance(int yac_instance_id)
int yac_cget_nbr_fields_instance(int yac_instance_id, const char *comp_name, const char *grid_name)
void yac_cdef_comp(const char *comp_name, int *comp_id)
void yac_cget_ext_couple_config(int *ext_couple_config_id)
const char * yac_cget_mpi_handshake_group_name(void)
Retrieve the MPI handshake group name used by YAC.
void yac_cdef_grid_unstruct_edge(const char *grid_name, int nbr_vertices, int nbr_cells, int nbr_edges, int *num_edges_per_cell, double *x_vertices, double *y_vertices, int *cell_to_edge, int *edge_to_vertex, int *grid_id)
void yac_cdef_grid_metadata_instance(int yac_instance_id, const char *grid_name, const char *metadata)
void yac_cset_ext_couple_config_weight_file(int ext_couple_config_id, char const *weight_file)
const char * yac_cget_component_metadata_instance(int yac_instance_id, const char *comp_name)
void yac_cset_ext_spmap_config_spread_distance(int ext_spmap_config_id, double spread_distance)
void yac_cset_ext_couple_config_yaxt_exchanger_name(int ext_couple_config_id, char const *yaxt_exchanger_name)
int const YAC_LOCATION_CORNER
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)
const char * yac_cget_field_timestep_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
void yac_cset_ext_couple_config_scale_summand(int ext_couple_config_id, double scale_summand)
void yac_cget_comp_comm(int comp_id, MPI_Comm *comp_comm)
void yac_cget_raw_frac_async_(int const field_id, int const collection_size, double *src_field_buffer, double *src_frac_mask_buffer, int *info, int *ierror)
void yac_cset_spmap_overwrite_config_weight_type(int spmap_overwrite_config_id, int weight_type)
const char * yac_cget_field_datetime(int field_id)
int const YAC_CONSERV_DESTAREA
int const YAC_EXCHANGE_TYPE_SOURCE
void yac_cupdate(int field_id)
void yac_cget_action(int field_id, int *action)
size_t yac_cget_grid_size(int location, int grid_id)
int const YAC_REDUCTION_TIME_ACCUMULATE
void yac_cset_ext_spmap_config_weight_type(int ext_spmap_config_id, int weight_type)
void yac_cset_spmap_overwrite_config_src_point_selection_bnd_circle(int spmap_overwrite_config_id, double center_lon, double center_lat, double inc_angle)
void yac_abort(MPI_Comm comm, const char *msg, const char *source, int line) __attribute__((noreturn))
void yac_cget_raw_frac(int const field_id, int const collection_size, double ***src_field_buffer, double ***src_frac_mask_buffer, int *info, int *ierror)
int yac_cget_field_id(const char *comp_name, const char *grid_name, const char *field_name)
void yac_cget_ext_couple_config_tgt_mask_name(int ext_couple_config_id, char const **tgt_mask_name)
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)
const char * yac_cget_grid_name_from_field_id(int field_id)
int yac_cget_collection_size_from_field_id(int field_id)
void yac_cdef_comps_instance(int yac_instance_id, const char **comp_names, int num_comps, int *comp_ids)
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_cget_ext_couple_config_use_raw_exchange(int ext_couple_config_id, int *use_raw_exchange)
int const YAC_EXCHANGE_TYPE_NONE
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_cset_ext_couple_config_use_raw_exchange(int ext_couple_config_id, int use_raw_exchange)
void yac_cdef_points_reg2d_rot(int const grid_id, int const *nbr_points, int const location, double const *x_points, double const *y_points, double x_north_pole, double y_north_pole, int *point_id)
void yac_cset_config_output_file_instance(int yac_instance_id, const char *filename, int fileformat, int sync_location, int include_definitions)
void yac_cget_comps_comm(const char **comp_names, int num_comps, MPI_Comm *comps_comm)
void yac_cinit_comm_instance(MPI_Comm comm, int *yac_instance_id)
void yac_cfree_ext_spmap_config(int ext_spmap_config_id)
int const YAC_EXCHANGE_TYPE_TARGET
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)
const char * yac_cget_grid_metadata(const char *grid_name)
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)
char * yac_cget_start_datetime(void)
void yac_cget_interp_stack_config_from_string_yaml(char const *interp_stack_config, int *interp_stack_config_id)
int const YAC_TIME_UNIT_MONTH
void yac_cset_ext_spmap_config_max_search_distance(int ext_spmap_config_id, double max_search_distance)
int const YAC_CONFIG_OUTPUT_FORMAT_YAML
int const YAC_TIME_UNIT_SECOND
void yac_cget(int const field_id, int const collection_size, double **recv_field, int *info, int *ierror)
void yac_cadd_interp_stack_config_conservative(int interp_stack_config_id, int order, int enforced_conserv, int partial_coverage, int normalisation)
void yac_cdef_grid_cloud(const char *grid_name, int nbr_points, double *x_points, double *y_points, int *grid_id)
void yac_cget_comps_comm_instance(int yac_instance_id, const char **comp_names, int num_comps, MPI_Comm *comps_comm)
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)
char * yac_cget_version(void)
int const YAC_LOCATION_EDGE
void yac_ccheck_src_field_buffer_sizes(int field_id, int num_src_fields, int collection_size, int *src_field_buffer_sizes)
void yac_cset_ext_spmap_config_tgt_cell_area_config_file(int ext_spmap_config_id, char const *filename, char const *varname, int min_global_id)
void yac_cput_ptr_(int const field_id, int const collection_size, double **send_field, int *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_(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)
int yac_cget_default_instance_id()
void yac_cadd_interp_stack_config_user_file(int interp_stack_config_id, char const *filename)
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_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)
const char * yac_cget_component_name_from_field_id(int field_id)
int yac_cget_field_collection_size(const char *comp_name, const char *grid_name, const char *field_name)
int const YAC_CONFIG_OUTPUT_SYNC_LOC_DEF_COMP
after component definition
void yac_restore_default_abort_handler(void)
int const YAC_SPMAP_FRACAREA
void yac_cdef_component_metadata_instance(int yac_instance_id, const char *comp_name, const char *metadata)
void yac_cenddef_and_emit_config_instance(int yac_instance_id, int emit_flags, char **config)
void yac_abort_message(char const *msg, const char *source, int line)
yac_abort_func yac_get_default_abort_handler(void)
char * yac_cget_end_datetime(void)
int const YAC_WGT_ON_EXISTING_OVERWRITE
overwrite existing weight file
void yac_cread_config_yaml(const char *yaml_file)
int const YAC_ACTION_NONE
no data exchanges
int const YAC_WGT_ON_EXISTING_KEEP
keep existing weight file
void yac_cdef_calendar(int calendar)
void yac_cset_core_mask(int const *is_core, int location, int grid_id)
void yac_cexchange_raw(int const send_field_id, int const recv_field_id, int const collection_size, double ***const send_field, double ***src_field_buffer, int *send_info, int *recv_info, int *ierror)
void yac_cwait(int field_id)
void yac_cadd_interp_stack_config_rbf(int interp_stack_config_id, size_t n, double max_search_distance, double scale)
int const YAC_CONFIG_OUTPUT_SYNC_LOC_SYNC_DEF
after synchronization of definition
void yac_cget_comp_names(int nbr_comps, const char **comp_names)
const char * yac_cget_field_metadata(const char *comp_name, const char *grid_name, const char *field_name)
int const YAC_ACTION_REDUCTION
data reduction, but data exchange
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)
int const YAC_ACTION_GET_FOR_RESTART
last valid get
void yac_cset_ext_spmap_config_tgt_cell_area_config_yac(int ext_spmap_config_id, double sphere_radius)
void yac_ccheck_src_field_buffer_size(int field_id, int collection_size, int src_field_buffer_size)
int const YAC_PROLEPTIC_GREGORIAN
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_cget_comp_grid_names_instance(int yac_instance_id, const char *comp_name, int nbr_grids, const char **grid_names)
double yac_cget_field_frac_mask_fallback_value(const char *comp_name, const char *grid_name, const char *field_name)
void yac_cset_mask(int const *is_valid, int points_id)
void yac_cadd_interp_stack_config_hcsbb(int interp_stack_config_id)
void yac_cdef_comp_instance(int yac_instance_id, const char *comp_name, int *comp_id)
void yac_cadd_interp_stack_config_fixed(int interp_stack_config_id, double value)
int const YAC_TIME_UNIT_DAY
int yac_cget_comp_nbr_grids(const char *comp_name)
int const YAC_ACTION_COUPLING
data exchange
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)
void yac_cset_ext_spmap_config_src_cell_area_config_file(int ext_spmap_config_id, char const *filename, char const *varname, int min_global_id)
int const YAC_TIME_UNIT_ISO_FORMAT
void yac_cget_field_source_instance(int yac_instance_id, const char *tgt_comp_name, const char *tgt_grid_name, const char *tgt_field_name, const char **src_comp_name, const char **src_grid_name, const char **src_field_name)
void yac_cpredef_comp_instance(int yac_instance_id, char const *comp_name, int *comp_id)
int yac_cget_field_role_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
void yac_cget_raw_frac_async(int const field_id, int const collection_size, double ***src_field_buffer, double ***src_frac_mask_buffer, int *info, int *ierror)
int const YAC_CONSERV_FRACAREA
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, char const *src_filename, char const *src_varname, int src_min_global_id, double tgt_sphere_radius, char const *tgt_filename, char const *tgt_varname, int tgt_min_global_id)
void yac_cadd_interp_stack_config_user_callback(int interp_stack_config_id, char const *func_compute_weights_key)
void yac_cdef_grid_unstruct_edge_ll(const char *grid_name, int nbr_vertices, int nbr_cells, int nbr_edges, int *num_edges_per_cell, double *x_vertices, double *y_vertices, int *cell_to_edge, int *edge_to_vertex, int *grid_id)
void yac_cset_ext_couple_config_mapping_side(int ext_couple_config_id, int mapping_side)
void yac_ccleanup_instance(int yac_instance_id)
Clean-up a YAC instance (see Restarting YAC)
int yac_cget_field_collection_size_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
void yac_cfree_interp_stack_config(int interp_stack_config_id)
int const YAC_CALENDAR_NOT_SET
void yac_cset_grid_output_file(const char *gridname, const char *filename)
void yac_cadd_interp_stack_config_user_file_2(int interp_stack_config_id, char const *filename, int on_missing_file, int on_success)
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_cadd_interp_stack_config_nnn(int interp_stack_config_id, int type, size_t n, double max_search_distance, double scale)
void yac_cget_ext_couple_config_scale_summand(int ext_couple_config_id, double *scale_summand)
int const YAC_CONFIG_OUTPUT_FORMAT_JSON
void yac_cinit_instance(int *yac_instance_id)
void yac_ctest(int field_id, int *flag)
void yac_cset_config_output_file(const char *filename, int fileformat, int sync_location, int include_definitions)
void yac_cget_interp_stack_config(int *interp_stack_config_id)
void yac_cset_ext_couple_config_collection_selection(int ext_couple_config_id, int collection_size, int const *collection_indices)
void yac_cinit_dummy(void)
void yac_cadd_interp_stack_config_average(int interp_stack_config_id, int reduction_type, int partial_coverage)
int const YAC_ACTION_PUT_FOR_RESTART
last valid put
void yac_cread_config_json(const char *json_file)
void yac_cpredef_comp(char const *comp_name, int *comp_id)
size_t yac_cget_points_size(int points_id)
void yac_cset_spmap_overwrite_config_spread_distance(int spmap_overwrite_config_id, double spread_distance)
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_cget_spmap_overwrite_config(int *spmap_overwrite_config_id)
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)
double const YAC_FRAC_MASK_NO_VALUE
int yac_cget_nbr_comps(void)
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_set_abort_handler(yac_abort_func custom_abort)
void yac_cget_(int const field_id, int const collection_size, double *recv_field, int *info, int *ierror)
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_cget_comp_grid_names(const char *comp_name, int nbr_grids, const char **grid_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)
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)
int const YAC_REDUCTION_TIME_NONE
void yac_cget_comp_names_instance(int yac_instance_id, int nbr_comps, const char **comp_names)
void yac_cdef_field_metadata(const char *comp_name, const char *grid_name, const char *field_name, const char *metadata)
void yac_cget_ext_spmap_config(int *ext_spmap_config_id)
const char * yac_cget_component_metadata(const char *comp_name)
const char * yac_cget_field_timestep(const char *comp_name, const char *grid_name, const char *field_name)
void yac_cget_field_names(const char *comp_name, const char *grid_name, int nbr_fields, const char **field_names)
void yac_cget_groupcomm(MPI_Comm *group_comm)
void yac_cget_ext_couple_config_weight_file(int ext_couple_config_id, char const **weight_file)
void yac_cinit_comm(MPI_Comm comm)