YAC 3.21.0
Yet Another Coupler
Loading...
Searching...
No Matches
yac.h
Go to the documentation of this file.
1// Copyright (c) 2024 The YAC Authors
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
5#ifndef YAC_H
6#define YAC_H
7
8#include <stddef.h>
9#include <mpi.h>
10
11#include "yac_version_check.h"
12#include "yac_config.h"
13
14extern int const YAC_LOCATION_CELL;
15extern int const YAC_LOCATION_CORNER;
16extern int const YAC_LOCATION_EDGE;
17
18extern int const YAC_EXCHANGE_TYPE_INVALID;
19extern int const YAC_EXCHANGE_TYPE_NONE;
20extern int const YAC_EXCHANGE_TYPE_SOURCE;
21extern int const YAC_EXCHANGE_TYPE_TARGET;
22
23extern int const YAC_ACTION_NONE;
24extern int const YAC_ACTION_REDUCTION;
25extern int const YAC_ACTION_COUPLING;
26extern int const YAC_ACTION_GET_FOR_RESTART;
27extern int const YAC_ACTION_PUT_FOR_RESTART;
28extern int const YAC_ACTION_OUT_OF_BOUND;
29
30extern int const YAC_REDUCTION_TIME_NONE;
31extern int const YAC_REDUCTION_TIME_ACCUMULATE;
32extern int const YAC_REDUCTION_TIME_AVERAGE;
33extern int const YAC_REDUCTION_TIME_MINIMUM;
34extern int const YAC_REDUCTION_TIME_MAXIMUM;
35
36extern int const YAC_TIME_UNIT_MILLISECOND;
37extern int const YAC_TIME_UNIT_SECOND;
38extern int const YAC_TIME_UNIT_MINUTE;
39extern int const YAC_TIME_UNIT_HOUR;
40extern int const YAC_TIME_UNIT_DAY;
41extern int const YAC_TIME_UNIT_MONTH;
42extern int const YAC_TIME_UNIT_YEAR;
43extern int const YAC_TIME_UNIT_ISO_FORMAT;
44
45extern int const YAC_CALENDAR_NOT_SET;
46extern int const YAC_PROLEPTIC_GREGORIAN;
47extern int const YAC_YEAR_OF_365_DAYS;
48extern int const YAC_YEAR_OF_360_DAYS;
49
50extern int const YAC_AVG_ARITHMETIC;
51extern int const YAC_AVG_DIST;
52extern int const YAC_AVG_BARY;
53
54extern int const YAC_NCC_AVG;
55extern int const YAC_NCC_DIST;
56
57extern int const YAC_NNN_AVG;
58extern int const YAC_NNN_DIST;
59extern int const YAC_NNN_GAUSS;
60extern int const YAC_NNN_RBF;
61extern int const YAC_NNN_ZERO;
62
63extern int const YAC_DNN_AVG;
64extern int const YAC_DNN_DIST;
65extern int const YAC_DNN_GAUSS;
66extern int const YAC_DNN_RBF;
67
68extern int const YAC_DNN_SEARCH_DISTANCE_FIXED;
70
71extern int const YAC_CONSERV_DESTAREA;
72extern int const YAC_CONSERV_FRACAREA;
73
74extern int const YAC_SPMAP_AVG;
75extern int const YAC_SPMAP_DIST;
76
77extern int const YAC_SPMAP_NONE;
78extern int const YAC_SPMAP_SRCAREA;
79extern int const YAC_SPMAP_INVTGTAREA;
80extern int const YAC_SPMAP_FRACAREA;
81
82extern int const YAC_FILE_MISSING_ERROR;
83extern int const YAC_FILE_MISSING_CONT;
84
85extern int const YAC_FILE_SUCCESS_STOP;
86extern int const YAC_FILE_SUCCESS_CONT;
87
88extern int const YAC_YAML_EMITTER_DEFAULT;
89extern int const YAC_YAML_EMITTER_JSON;
90
91extern int const YAC_CONFIG_OUTPUT_FORMAT_YAML;
92extern int const YAC_CONFIG_OUTPUT_FORMAT_JSON;
93
96extern int const YAC_CONFIG_OUTPUT_SYNC_LOC_ENDDEF;
97
98extern double const YAC_FRAC_MASK_NO_VALUE;
99
100extern int const YAC_WGT_ON_EXISTING_ERROR;
103extern int const YAC_WGT_ON_EXISTING_KEEP;
104extern int const YAC_WGT_ON_EXISTING_OVERWRITE;
105
106#define YAC_MAX_CHARLEN (132)
107
108// Global index type for YAC
109typedef YAC_INT yac_int;
110
111/* -----------------------------------------------------------------------------
112
113 C and Fortran description of the user API
114
115 ----------------------------------------------------------------------------- */
116
143 void yac_cmpi_handshake( MPI_Comm comm,
144 size_t n,
145 char const** group_names,
146 MPI_Comm * group_comms );
147
158
166
178 void yac_cinit (void);
179
194 void yac_cinit_instance ( int * yac_instance_id );
195
207 void yac_cinit_comm ( MPI_Comm comm );
208
222 void yac_cinit_comm_instance ( MPI_Comm comm,
223 int * yac_instance_id );
224
225/* -------------------------------------------------------------------------------- */
226
232 void yac_cinit_dummy(void);
233
242 void yac_cinit_comm_dummy ( MPI_Comm comm );
243
244/* -------------------------------------------------------------------------------- */
245
252 void yac_cread_config_yaml_instance( int yac_instance_id,
253 const char * yaml_file);
254
259 void yac_cread_config_yaml(const char * yaml_file);
260
267 void yac_cread_config_json_instance( int yac_instance_id,
268 const char * json_file);
269
274 void yac_cread_config_json( const char * json_file );
275
276/* -------------------------------------------------------------------------------- */
277
292 void yac_cset_config_output_file_instance( int yac_instance_id,
293 const char * filename,
294 int fileformat,
295 int sync_location,
296 int include_definitions);
297
311 void yac_cset_config_output_file( const char * filename,
312 int fileformat,
313 int sync_location,
314 int include_definitions);
315
316/* -------------------------------------------------------------------------------- */
317
325 void yac_cset_grid_output_file_instance( int yac_instance_id,
326 const char * gridname,
327 const char * filename);
328
335 void yac_cset_grid_output_file( const char * gridname,
336 const char * filename);
337
349 void yac_cset_grids_output_file_instance( int yac_instance_id,
350 const char * filename);
351
362 void yac_cset_grids_output_file( const char * filename);
363
370 int yac_instance_id, int apply_check);
371
377 void yac_cset_coordinates_check(int apply_check);
378
385 int yac_instance_id, int is_fatal);
386
393
394/* -------------------------------------------------------------------------------- */
395
402 void yac_ccleanup ();
403
411 void yac_ccleanup_instance ( int yac_instance_id );
412
413/* -------------------------------------------------------------------------------- */
414
423 void yac_cfinalize ();
424
434 void yac_cfinalize_instance (int yac_instance_id);
435
436/* -------------------------------------------------------------------------------- */
437
451 void yac_cdef_datetime ( const char * start_datetime,
452 const char * end_datetime );
453
468 void yac_cdef_datetime_instance ( int yac_instance_id,
469 const char * start_datetime,
470 const char * end_datetime );
471
477 void yac_cdef_calendar ( int calendar );
478
482 int yac_cget_calendar ( );
483
484/* -------------------------------------------------------------------------------- */
485
494 void yac_cpredef_comp( char const * comp_name,
495 int * comp_id );
496
506 void yac_cpredef_comp_instance( int yac_instance_id,
507 char const * comp_name,
508 int * comp_id );
509
510/* -------------------------------------------------------------------------------- */
511
522 void yac_cdef_comp ( const char * comp_name,
523 int * comp_id );
524
537 void yac_cdef_comp_instance ( int yac_instance_id,
538 const char * comp_name,
539 int * comp_id );
540
541/* -------------------------------------------------------------------------------- */
542
554 void yac_cdef_comps ( const char ** comp_names,
555 int num_comps,
556 int * comp_ids );
557
570 void yac_cdef_comps_instance ( int yac_instance_id,
571 const char ** comp_names,
572 int num_comps,
573 int * comp_ids );
574
575/* -------------------------------------------------------------------------------- */
576
586 void yac_cget_comp_comm ( int comp_id,
587 MPI_Comm *comp_comm );
588
589/* -------------------------------------------------------------------------------- */
590
605 void yac_cget_comps_comm ( const char ** comp_names,
606 int num_comps,
607 MPI_Comm * comps_comm);
608
623 void yac_cget_comps_comm_instance ( int yac_instance_id,
624 const char ** comp_names,
625 int num_comps,
626 MPI_Comm * comps_comm );
627
628/* -------------------------------------------------------------------------------- */
629
648 void yac_cdef_points_reg2d_named ( int const grid_id,
649 int const *nbr_points,
650 int const location,
651 double const *x_points,
652 double const *y_points,
653 char const * name,
654 int *point_id );
655
656/* -------------------------------------------------------------------------------- */
657
675 void yac_cdef_points_reg2d ( int const grid_id,
676 int const *nbr_points,
677 int const location,
678 double const *x_points,
679 double const *y_points,
680 int *point_id );
681
682/* -------------------------------------------------------------------------------- */
683
702 void yac_cdef_points_curve2d_named ( int const grid_id,
703 int const *nbr_points,
704 int const location,
705 double const *x_points,
706 double const *y_points,
707 char const * name,
708 int *point_id );
709
710/* -------------------------------------------------------------------------------- */
711
729 void yac_cdef_points_curve2d ( int const grid_id,
730 int const *nbr_points,
731 int const location,
732 double const *x_points,
733 double const *y_points,
734 int *point_id );
735
736/* -------------------------------------------------------------------------------- */
737
753 int const nbr_points,
754 int const location,
755 double const *x_points,
756 double const *y_points,
757 char const * name,
758 int *point_id );
759
760/* -------------------------------------------------------------------------------- */
761
775 void yac_cdef_points_unstruct ( int const grid_id,
776 int const nbr_points,
777 int const location,
778 double const *x_points,
779 double const *y_points,
780 int *point_id );
781
782/* -------------------------------------------------------------------------------- */
783
805 int const *nbr_points,
806 int const location,
807 double const *x_points,
808 double const *y_points,
809 double x_north_pole,
810 double y_north_pole,
811 char const * name,
812 int *point_id );
813
814/* -------------------------------------------------------------------------------- */
815
835 void yac_cdef_points_reg2d_rot ( int const grid_id,
836 int const *nbr_points,
837 int const location,
838 double const *x_points,
839 double const *y_points,
840 double x_north_pole,
841 double y_north_pole,
842 int *point_id );
843
844/* -------------------------------------------------------------------------------- */
845
897 void yac_cdef_grid_reg2d ( const char * grid_name,
898 int nbr_vertices[2],
899 int cyclic[2],
900 double *x_vertices,
901 double *y_vertices,
902 int *grid_id);
903
904/* -------------------------------------------------------------------------------- */
905
955 void yac_cdef_grid_curve2d ( const char * grid_name,
956 int nbr_vertices[2],
957 int cyclic[2],
958 double *x_vertices,
959 double *y_vertices,
960 int *grid_id);
961
962/* -------------------------------------------------------------------------------- */
963
981 void yac_cdef_grid_unstruct ( const char * grid_name,
982 int nbr_vertices,
983 int nbr_cells,
984 int *num_vertices_per_cell,
985 double *x_vertices,
986 double *y_vertices,
987 int *cell_to_vertex,
988 int *grid_id);
989
990/* -------------------------------------------------------------------------------- */
991
1011 void yac_cdef_grid_unstruct_ll ( const char * grid_name,
1012 int nbr_vertices,
1013 int nbr_cells,
1014 int *num_vertices_per_cell,
1015 double *x_vertices,
1016 double *y_vertices,
1017 int *cell_to_vertex,
1018 int *grid_id);
1019
1020/* -------------------------------------------------------------------------------- */
1021
1040 void yac_cdef_grid_unstruct_edge ( const char * grid_name,
1041 int nbr_vertices,
1042 int nbr_cells,
1043 int nbr_edges,
1044 int *num_edges_per_cell,
1045 double *x_vertices,
1046 double *y_vertices,
1047 int *cell_to_edge,
1048 int *edge_to_vertex,
1049 int *grid_id);
1050
1051/* -------------------------------------------------------------------------------- */
1052
1073 void yac_cdef_grid_unstruct_edge_ll ( const char * grid_name,
1074 int nbr_vertices,
1075 int nbr_cells,
1076 int nbr_edges,
1077 int *num_edges_per_cell,
1078 double *x_vertices,
1079 double *y_vertices,
1080 int *cell_to_edge,
1081 int *edge_to_vertex,
1082 int *grid_id);
1083
1084/* -------------------------------------------------------------------------------- */
1085
1097 void yac_cdef_grid_cloud ( const char * grid_name,
1098 int nbr_points,
1099 double *x_points,
1100 double *y_points,
1101 int *grid_id);
1102
1159 void yac_cdef_grid_reg2d_rot ( const char * grid_name,
1160 int nbr_vertices[2],
1161 int cyclic[2],
1162 double *x_vertices,
1163 double *y_vertices,
1164 double x_north_pole,
1165 double y_north_pole,
1166 int *grid_id);
1167
1168/* -------------------------------------------------------------------------------- */
1169
1185 int location,
1186 int grid_id);
1187
1188/* -------------------------------------------------------------------------------- */
1189
1199 void yac_cset_global_index ( int const * global_index,
1200 int location,
1201 int grid_id);
1202
1203/* -------------------------------------------------------------------------------- */
1204
1217 void yac_cset_core_mask ( int const * is_core,
1218 int location,
1219 int grid_id);
1220
1221/* -------------------------------------------------------------------------------- */
1222
1229 void yac_cset_mask ( int const * is_valid,
1230 int points_id );
1231
1232/* -------------------------------------------------------------------------------- */
1233
1243 void yac_cdef_mask ( int const grid_id,
1244 int const nbr_points,
1245 int const location,
1246 int const * is_valid,
1247 int *mask_id );
1248
1249/* -------------------------------------------------------------------------------- */
1250
1261 void yac_cdef_mask_named ( int const grid_id,
1262 int const nbr_points,
1263 int const location,
1264 int const * is_valid,
1265 char const * name,
1266 int *mask_id );
1267
1268/* -------------------------------------------------------------------------------- */
1269
1288 void yac_cdef_field ( char const * field_name,
1289 int const component_id,
1290 int const * point_ids,
1291 int const num_pointsets,
1292 int collection_size,
1293 const char* timestep,
1294 int time_unit,
1295 int * field_id );
1296
1297/* -------------------------------------------------------------------------------- */
1298
1318 void yac_cdef_field_mask ( char const * field_name,
1319 int const component_id,
1320 int const * point_ids,
1321 int const * mask_ids,
1322 int const num_pointsets,
1323 int collection_size,
1324 const char* timestep,
1325 int time_unit,
1326 int * field_id );
1327
1328/* -------------------------------------------------------------------------- */
1329
1342 void yac_cenable_field_frac_mask( const char* comp_name,
1343 const char* grid_name,
1344 const char* field_name,
1345 double frac_mask_fallback_value);
1346
1361 int yac_instance_id,
1362 const char* comp_name,
1363 const char* grid_name,
1364 const char* field_name,
1365 double frac_mask_fallback_value);
1366
1367/* -------------------------------------------------------------------------- */
1368
1373 void yac_cdef_component_metadata( const char* comp_name,
1374 const char* metadata);
1375
1381 void yac_cdef_component_metadata_instance( int yac_instance_id,
1382 const char* comp_name,
1383 const char* metadata);
1384
1389 void yac_cdef_grid_metadata( const char* grid_name,
1390 const char* metadata);
1391
1397 void yac_cdef_grid_metadata_instance( int yac_instance_id,
1398 const char* grid_name,
1399 const char* metadata);
1400
1407 void yac_cdef_field_metadata( const char* comp_name,
1408 const char* grid_name,
1409 const char* field_name,
1410 const char* metadata);
1411
1419 void yac_cdef_field_metadata_instance( int yac_instance_id,
1420 const char* comp_name,
1421 const char* grid_name,
1422 const char* field_name,
1423 const char* metadata);
1424
1425/* -------------------------------------------------------------------------- */
1426
1443 void yac_cget_action( int field_id,
1444 int * action);
1445
1451 const char * yac_cget_field_datetime(int field_id);
1452
1453/* -------------------------------------------------------------------------- */
1454
1466 void yac_cupdate(int field_id);
1467
1468/* -------------------------------------------------------------------------- */
1469
1474 void yac_cget_ext_couple_config(int * ext_couple_config_id);
1475
1479 void yac_cfree_ext_couple_config(int ext_couple_config_id);
1480
1489 void yac_cset_ext_couple_config_weight_file( int ext_couple_config_id,
1490 char const * weight_file);
1491
1497 void yac_cget_ext_couple_config_weight_file( int ext_couple_config_id,
1498 char const ** weight_file);
1499
1511 int ext_couple_config_id, int weight_file_on_existing);
1512
1518 int ext_couple_config_id, int * weight_file_on_existing);
1519
1525 void yac_cset_ext_couple_config_mapping_side( int ext_couple_config_id,
1526 int mapping_side);
1527
1532 void yac_cget_ext_couple_config_mapping_side( int ext_couple_config_id,
1533 int * mapping_side);
1534
1539 void yac_cset_ext_couple_config_scale_factor( int ext_couple_config_id,
1540 double scale_factor);
1541
1546 void yac_cget_ext_couple_config_scale_factor( int ext_couple_config_id,
1547 double * scale_factor);
1548
1553 void yac_cset_ext_couple_config_scale_summand( int ext_couple_config_id,
1554 double scale_summand);
1555
1560 void yac_cget_ext_couple_config_scale_summand( int ext_couple_config_id,
1561 double * scale_summand);
1562
1569 int ext_couple_config_id,
1570 size_t num_src_mask_names,
1571 char const * const * src_mask_names);
1572
1579 int ext_couple_config_id,
1580 size_t * num_src_mask_names,
1581 char const * const ** src_mask_names);
1582
1587 void yac_cset_ext_couple_config_tgt_mask_name( int ext_couple_config_id,
1588 char const * tgt_mask_name);
1589
1594 void yac_cget_ext_couple_config_tgt_mask_name( int ext_couple_config_id,
1595 char const ** tgt_mask_name);
1596
1602 int ext_couple_config_id, char const * yaxt_exchanger_name);
1603
1609 int ext_couple_config_id, char const ** yaxt_exchanger_name);
1610
1611
1617 int ext_couple_config_id, int use_raw_exchange);
1618
1624 int ext_couple_config_id, int * use_raw_exchange);
1625
1635 int ext_couple_config_id,
1636 int collection_size,
1637 int const * collection_indices);
1638
1652 int ext_couple_config_id,
1653 int * collection_size,
1654 int ** collection_indices);
1655
1656/* -------------------------------------------------------------------------- */
1657
1678 void yac_cdef_couple_custom_instance( int yac_instance_id,
1679 char const * src_comp_name,
1680 char const * src_grid_name,
1681 char const * src_field_name,
1682 char const * tgt_comp_name,
1683 char const * tgt_grid_name,
1684 char const * tgt_field_name,
1685 char const * coupling_timestep,
1686 int time_unit,
1687 int time_reduction,
1688 int interp_stack_config_id,
1689 int src_lag,
1690 int tgt_lag,
1691 int ext_couple_config_id);
1692
1713 void yac_cdef_couple_custom( char const * src_comp_name,
1714 char const * src_grid_name,
1715 char const * src_field_name,
1716 char const * tgt_comp_name,
1717 char const * tgt_grid_name,
1718 char const * tgt_field_name,
1719 char const * coupling_timestep,
1720 int time_unit,
1721 int time_reduction,
1722 int interp_stack_config_id,
1723 int src_lag,
1724 int tgt_lag,
1725 int ext_couple_config_id);
1726
1727/* -------------------------------------------------------------------------- */
1728
1748 void yac_cdef_couple_instance( int yac_instance_id,
1749 char const * src_comp_name,
1750 char const * src_grid_name,
1751 char const * src_field_name,
1752 char const * tgt_comp_name,
1753 char const * tgt_grid_name,
1754 char const * tgt_field_name,
1755 char const * coupling_timestep,
1756 int time_unit,
1757 int time_reduction,
1758 int interp_stack_config_id,
1759 int src_lag,
1760 int tgt_lag);
1761
1780 void yac_cdef_couple( char const * src_comp_name,
1781 char const * src_grid_name,
1782 char const * src_field_name,
1783 char const * tgt_comp_name,
1784 char const * tgt_grid_name,
1785 char const * tgt_field_name,
1786 char const * coupling_timestep,
1787 int time_unit,
1788 int time_reduction,
1789 int interp_stack_config_id,
1790 int src_lag,
1791 int tgt_lag);
1792
1793/* -------------------------------------------------------------------------------- */
1794
1806 int collection_size,
1807 int num_pointsets,
1808 int const * pointset_sizes );
1809
1810/* -------------------------------------------------------------------------------- */
1811
1821 int collection_size,
1822 int src_field_buffer_size );
1823
1833 int num_src_fields,
1834 int collection_size,
1835 int * src_field_buffer_sizes );
1836
1837/* -------------------------------------------------------------------------------- */
1838
1872 double * frac_mask_fallback_value,
1873 double * scaling_factor,
1874 double * scaling_summand,
1875 size_t * num_fixed_values,
1876 double ** fixed_values,
1877 size_t ** num_tgt_per_fixed_value,
1878 size_t ** tgt_idx_fixed,
1879 size_t * num_wgt_tgt,
1880 size_t ** wgt_tgt_idx,
1881 size_t ** num_src_per_tgt,
1882 double ** weights,
1883 size_t ** src_pointset_idx,
1884 size_t ** src_idx,
1885 size_t * num_src_pointsets,
1886 size_t ** src_field_buffer_sizes );
1887
1919 double * frac_mask_fallback_value,
1920 double * scaling_factor,
1921 double * scaling_summand,
1922 size_t * num_fixed_values,
1923 double ** fixed_values,
1924 size_t ** num_tgt_per_fixed_value,
1925 size_t ** tgt_idx_fixed,
1926 size_t ** src_indptr,
1927 double ** weights,
1928 size_t ** src_pointset_idx,
1929 size_t ** src_idx,
1930 size_t * num_src_pointsets,
1931 size_t ** src_field_buffer_sizes );
1932
1933/* -------------------------------------------------------------------------------- */
1934
1945 void yac_cget_ ( int const field_id,
1946 int const collection_size,
1947 double *recv_field,
1948 int *info,
1949 int *ierror );
1950
1960 void yac_cget ( int const field_id,
1961 int const collection_size,
1962 double **recv_field,
1963 int *info,
1964 int *ierror );
1965
1980 void yac_cget_async_ ( int const field_id,
1981 int const collection_size,
1982 double *recv_field,
1983 int *info,
1984 int *ierror );
1985
1999 void yac_cget_async ( int const field_id,
2000 int const collection_size,
2001 double **recv_field,
2002 int *info,
2003 int *ierror );
2004
2022 void yac_cget_raw_ ( int const field_id,
2023 int const collection_size,
2024 double *src_field_buffer,
2025 int *info,
2026 int *ierror );
2027
2043 void yac_cget_raw ( int const field_id,
2044 int const collection_size,
2045 double ***src_field_buffer,
2046 int *info,
2047 int *ierror );
2048
2070 void yac_cget_raw_async_ ( int const field_id,
2071 int const collection_size,
2072 double *src_field_buffer,
2073 int *info,
2074 int *ierror );
2075
2095 void yac_cget_raw_async ( int const field_id,
2096 int const collection_size,
2097 double ***src_field_buffer,
2098 int *info,
2099 int *ierror );
2100
2128 void yac_cget_raw_frac_ ( int const field_id,
2129 int const collection_size,
2130 double *src_field_buffer,
2131 double *src_frac_mask_buffer,
2132 int *info,
2133 int *ierror );
2134
2158 void yac_cget_raw_frac ( int const field_id,
2159 int const collection_size,
2160 double ***src_field_buffer,
2161 double ***src_frac_mask_buffer,
2162 int *info,
2163 int *ierror );
2164
2196 void yac_cget_raw_frac_async_ ( int const field_id,
2197 int const collection_size,
2198 double *src_field_buffer,
2199 double *src_frac_mask_buffer,
2200 int *info,
2201 int *ierror );
2202
2230 void yac_cget_raw_frac_async ( int const field_id,
2231 int const collection_size,
2232 double ***src_field_buffer,
2233 double ***src_frac_mask_buffer,
2234 int *info,
2235 int *ierror );
2236
2237/* -------------------------------------------------------------------------------- */
2238
2254 void yac_cput_ ( int const field_id,
2255 int const collection_size,
2256 double *send_field,
2257 int *info,
2258 int *ierror );
2259
2274 void yac_cput ( int const field_id,
2275 int const collection_size,
2276 double *** const send_field,
2277 int *info,
2278 int *ierror );
2279
2280/* -------------------------------------------------------------------------------- */
2281
2303 void yac_cput_frac_ ( int const field_id,
2304 int const collection_size,
2305 double *send_field,
2306 double *send_frac_mask,
2307 int *info,
2308 int *ierror );
2309
2329 void yac_cput_frac ( int const field_id,
2330 int const collection_size,
2331 double *** const send_field,
2332 double *** const send_frac_mask,
2333 int *info,
2334 int *ierror );
2335
2336/* -------------------------------------------------------------------------------- */
2337
2351 void yac_cput_ptr_ ( int const field_id,
2352 int const collection_size,
2353 double ** send_field,
2354 int *info,
2355 int *ierror );
2356
2357/* -------------------------------------------------------------------------------- */
2358
2376 void yac_cput_frac_ptr_ ( int const field_id,
2377 int const collection_size,
2378 double ** send_field,
2379 double ** send_frac_mask,
2380 int *info,
2381 int *ierror );
2382
2383/* -------------------------------------------------------------------------------- */
2384
2403 void yac_cexchange_ ( int const send_field_id,
2404 int const recv_field_id,
2405 int const collection_size,
2406 double *send_field ,
2407 double *recv_field,
2408 int *send_info,
2409 int *recv_info,
2410 int *ierror );
2411
2412
2429 void yac_cexchange ( int const send_field_id,
2430 int const recv_field_id,
2431 int const collection_size,
2432 double *** const send_field,
2433 double ** recv_field,
2434 int *send_info,
2435 int *recv_info,
2436 int *ierror );
2437
2460 void yac_cexchange_raw ( int const send_field_id,
2461 int const recv_field_id,
2462 int const collection_size,
2463 double *** const send_field,
2464 double ***src_field_buffer,
2465 int *send_info,
2466 int *recv_info,
2467 int *ierror );
2468
2491 void yac_cexchange_raw_ ( int const send_field_id,
2492 int const recv_field_id,
2493 int const collection_size,
2494 double *send_field,
2495 double *src_field_buffer,
2496 int *send_info,
2497 int *recv_info,
2498 int *ierror );
2499
2500/* -------------------------------------------------------------------------------- */
2501
2535 void yac_cexchange_raw_frac ( int const send_field_id,
2536 int const recv_field_id,
2537 int const collection_size,
2538 double *** const send_field,
2539 double *** const send_frac_mask,
2540 double ***src_field_buffer,
2541 double ***src_frac_mask_buffer,
2542 int *send_info,
2543 int *recv_info,
2544 int *ierror );
2545
2585 void yac_cexchange_raw_frac_ ( int const send_field_id,
2586 int const recv_field_id,
2587 int const collection_size,
2588 double *send_field,
2589 double *send_frac_mask,
2590 double *src_field_buffer,
2591 double *src_frac_mask_buffer,
2592 int *send_info,
2593 int *recv_info,
2594 int *ierror );
2595
2596/* -------------------------------------------------------------------------------- */
2597
2621 void yac_cexchange_frac_ ( int const send_field_id,
2622 int const recv_field_id,
2623 int const collection_size,
2624 double *send_field,
2625 double *send_frac_mask,
2626 double *recv_field,
2627 int *send_info,
2628 int *recv_info,
2629 int *ierror );
2630
2631
2652 void yac_cexchange_frac ( int const send_field_id,
2653 int const recv_field_id,
2654 int const collection_size,
2655 double *** const send_field,
2656 double *** const send_frac_mask,
2657 double ** recv_field,
2658 int *send_info,
2659 int *recv_info,
2660 int *ierror );
2661
2662/* -------------------------------------------------------------------------------- */
2663
2681 void yac_cexchange_ptr_ ( int const send_field_id,
2682 int const recv_field_id,
2683 int const collection_size,
2684 double ** send_field,
2685 double ** recv_field,
2686 int *send_info,
2687 int *recv_info,
2688 int *ierror );
2689
2711 void yac_cexchange_raw_ptr_ ( int const send_field_id,
2712 int const recv_field_id,
2713 int const collection_size,
2714 double ** send_field,
2715 double ** src_field_buffer,
2716 int *send_info,
2717 int *recv_info,
2718 int *ierror );
2719
2720/* -------------------------------------------------------------------------------- */
2721
2743 void yac_cexchange_frac_ptr_ ( int const send_field_id,
2744 int const recv_field_id,
2745 int const collection_size,
2746 double ** send_field,
2747 double ** send_frac_mask,
2748 double ** recv_field,
2749 int *send_info,
2750 int *recv_info,
2751 int *ierror );
2752
2785 void yac_cexchange_raw_frac_ptr_ ( int const send_field_id,
2786 int const recv_field_id,
2787 int const collection_size,
2788 double ** send_field,
2789 double ** send_frac_mask,
2790 double ** src_field_buffer,
2791 double ** src_frac_mask_buffer,
2792 int *send_info,
2793 int *recv_info,
2794 int *ierror );
2795
2796/* -------------------------------------------------------------------------------- */
2797
2807 void yac_ctest ( int field_id, int * flag );
2808
2809/* -------------------------------------------------------------------------------- */
2810
2817 void yac_cwait ( int field_id );
2818
2819/* -------------------------------------------------------------------------------- */
2820
2823 void yac_csync_def ( void );
2824
2829 void yac_csync_def_instance ( int yac_instance_id );
2830
2842 void yac_csync_def_comps (
2843 char const ** comp_names, int num_comp_names );
2844
2858 int yac_instance_id, char const ** comp_names, int num_comp_names );
2859
2864 void yac_cenddef ( void );
2865
2872 void yac_cenddef_instance ( int yac_instance_id );
2873
2889 void yac_cenddef_and_emit_config ( int emit_flags,
2890 char ** config );
2891
2906 void yac_cenddef_and_emit_config_instance ( int yac_instance_id,
2907 int emit_flags,
2908 char ** config);
2909
2910/* --------------------------------------------------------------------------------
2911 query routines
2912 -------------------------------------------------------------------------------- */
2913
2919 char * yac_cget_start_datetime ( void );
2920
2928 char * yac_cget_start_datetime_instance ( int yac_instance_id );
2929
2935 char * yac_cget_end_datetime ( void );
2936
2944 char * yac_cget_end_datetime_instance ( int yac_instance_id );
2945
2951 char * yac_cget_version ( void );
2952
2963 const char * yac_cget_mpi_handshake_group_name( void );
2964
2965/* -------------------------------------------------------------------------------- */
2966
2973 int yac_cget_nbr_comps ( void );
2974
2980 int yac_cget_nbr_comps_instance ( int yac_instance_id );
2981
2989 int yac_cget_nbr_grids ( );
2990
2997 int yac_cget_nbr_grids_instance ( int yac_instance_id );
2998
3006 int yac_cget_comp_nbr_grids ( const char* comp_name );
3007
3015 int yac_cget_comp_nbr_grids_instance ( int yac_instance_id,
3016 const char* comp_name );
3017
3026 int yac_cget_nbr_fields ( const char* comp_name,
3027 const char* grid_name );
3028
3038 int yac_cget_nbr_fields_instance ( int yac_instance_id,
3039 const char* comp_name,
3040 const char* grid_name);
3041
3042/* -------------------------------------------------------------------------------- */
3043
3050 void yac_cget_comp_names ( int nbr_comps,
3051 const char ** comp_names );
3052
3060 void yac_cget_comp_names_instance ( int yac_instance_id,
3061 int nbr_comps,
3062 const char ** comp_names );
3063
3072 void yac_cget_grid_names ( int nbr_grids,
3073 const char ** grid_names );
3074
3083 void yac_cget_grid_names_instance ( int yac_instance_id,
3084 int nbr_grids,
3085 const char ** grid_names );
3086
3096 void yac_cget_comp_grid_names ( const char* comp_name,
3097 int nbr_grids,
3098 const char ** grid_names );
3099
3110 void yac_cget_comp_grid_names_instance ( int yac_instance_id,
3111 const char* comp_name,
3112 int nbr_grids,
3113 const char ** grid_names );
3114
3124 void yac_cget_field_names ( const char* comp_name,
3125 const char* grid_name,
3126 int nbr_fields,
3127 const char ** field_names );
3128
3138 void yac_cget_field_names_instance ( int yac_instance_id,
3139 const char * comp_name,
3140 const char* grid_name,
3141 int nbr_fields,
3142 const char ** field_names );
3143
3144/* ---------------------------------------------------------------------- */
3145
3155
3164 const char* yac_cget_grid_name_from_field_id ( int field_id );
3165
3174 const char* yac_cget_field_name_from_field_id ( int field_id );
3175
3185 const char* yac_cget_timestep_from_field_id ( int field_id );
3186
3195
3209
3221 int yac_cget_comp_id(const char* comp_name);
3222
3235 int yac_cget_comp_id_instance(int yac_instance_id,
3236 const char* comp_name);
3237
3249 int yac_cget_grid_id(const char* grid_name);
3250
3264 int yac_cget_points_id(int grid_id, int location,
3265 const char* point_name);
3266
3280 int yac_cget_mask_id(int grid_id, int location,
3281 const char* mask_name);
3282
3293 int yac_cget_field_is_defined( const char* comp_name,
3294 const char* grid_name,
3295 const char* field_name);
3296
3308 int yac_cget_field_is_defined_instance( int yac_instance_id,
3309 const char* comp_name,
3310 const char* grid_name,
3311 const char* field_name);
3312
3321 int yac_cget_field_id( const char* comp_name,
3322 const char* grid_name,
3323 const char* field_name);
3324
3334 int yac_cget_field_id_instance( int yac_instance_id,
3335 const char* comp_name,
3336 const char* grid_name,
3337 const char* field_name);
3338
3339/* ---------------------------------------------------------------------- */
3340
3346 const char* yac_cget_component_metadata(const char* comp_name);
3347
3354 const char* yac_cget_component_metadata_instance( int yac_instance_id,
3355 const char* comp_name);
3356
3362 const char* yac_cget_grid_metadata(const char* grid_name);
3363
3370 const char* yac_cget_grid_metadata_instance( int yac_instance_id,
3371 const char* grid_name);
3372
3380 const char* yac_cget_field_metadata( const char* comp_name,
3381 const char* grid_name,
3382 const char* field_name);
3383
3392 const char* yac_cget_field_metadata_instance( int yac_instance_id,
3393 const char* comp_name,
3394 const char* grid_name,
3395 const char* field_name);
3396
3397/* ---------------------------------------------------------------------- */
3398
3409 const char* yac_cget_field_timestep ( const char* comp_name,
3410 const char* grid_name,
3411 const char* field_name );
3412
3424 const char* yac_cget_field_timestep_instance ( int yac_instance_id,
3425 const char* comp_name,
3426 const char* grid_name,
3427 const char* field_name );
3428
3440 double yac_cget_field_frac_mask_fallback_value( const char* comp_name,
3441 const char* grid_name,
3442 const char* field_name);
3443
3454 int yac_cget_field_collection_size( const char* comp_name,
3455 const char* grid_name,
3456 const char* field_name);
3457
3471 int yac_instance_id,
3472 const char* comp_name,
3473 const char* grid_name,
3474 const char* field_name );
3475
3488 int yac_instance_id,
3489 const char* comp_name,
3490 const char* grid_name,
3491 const char* field_name);
3492
3508 int yac_cget_field_role ( const char* comp_name,
3509 const char* grid_name,
3510 const char* field_name );
3511
3528 int yac_cget_field_role_instance ( int yac_instance_id,
3529 const char* comp_name,
3530 const char* grid_name,
3531 const char* field_name );
3532
3544 void yac_cget_field_source ( const char* tgt_comp_name,
3545 const char* tgt_grid_name,
3546 const char* tgt_field_name,
3547 const char** src_comp_name,
3548 const char** src_grid_name,
3549 const char** src_field_name);
3550
3563 void yac_cget_field_source_instance ( int yac_instance_id,
3564 const char* tgt_comp_name,
3565 const char* tgt_grid_name,
3566 const char* tgt_field_name,
3567 const char** src_comp_name,
3568 const char** src_grid_name,
3569 const char** src_field_name);
3570
3571/* --------------------------------------------------------------------------------
3572 auxiliary routines
3573 -------------------------------------------------------------------------------- */
3574
3575#ifndef __GNUC__
3576# define __attribute__(x) /*NOTHING*/
3577#endif
3578
3579// prevent warning if compile with cython
3580#ifdef YAC_CYTHON
3581# define __attribute__(x) /*NOTHING*/
3582#endif
3583
3587typedef void (*yac_abort_func)(MPI_Comm comm, const char *msg,
3588 const char *source, int line)
3589 __attribute__((noreturn));
3590
3591
3592#ifdef YAC_CYTHON
3593# undef __attribute__
3594#endif
3595
3603 void yac_abort( MPI_Comm comm,
3604 const char *msg,
3605 const char *source,
3606 int line)
3607 __attribute__((noreturn));
3608
3615 void yac_abort_message( char const *msg,
3616 const char *source,
3617 int line);
3618
3622
3630
3635
3640
3644 void yac_set_default_comm(MPI_Comm comm);
3645
3646/* -------------------------------------------------------------------------------- */
3647
3655 size_t yac_cget_grid_size ( int location,
3656 int grid_id );
3657
3658/* -------------------------------------------------------------------------------- */
3659
3668 double * cell_areas );
3669
3670
3671/* -------------------------------------------------------------------------------- */
3672
3679 size_t yac_cget_points_size ( int points_id );
3680
3681/* -------------------------------------------------------------------------------- */
3682
3688 void yac_cget_ext_spmap_config(int * ext_spmap_config_id);
3689
3694 void yac_cfree_ext_spmap_config(int ext_spmap_config_id);
3695
3703 int ext_spmap_config_id, double spread_distance);
3704
3712 int ext_spmap_config_id, double max_search_distance);
3713
3721 int ext_spmap_config_id, int weight_type);
3722
3730 int ext_spmap_config_id, int scale_type);
3731
3739 int ext_spmap_config_id, double sphere_radius);
3740
3748 int ext_spmap_config_id, double sphere_radius);
3749
3759 int ext_spmap_config_id, char const * filename,
3760 char const * varname, int min_global_id);
3761
3771 int ext_spmap_config_id, char const * filename,
3772 char const * varname, int min_global_id);
3773
3774
3780 void yac_cget_spmap_overwrite_config(int * spmap_overwrite_config_id);
3781
3787 void yac_cfree_spmap_overwrite_config(int spmap_overwrite_config_id);
3788
3802 int spmap_overwrite_config_id, double center_lon, double center_lat,
3803 double inc_angle);
3804
3812 int spmap_overwrite_config_id, double spread_distance);
3813
3821 int spmap_overwrite_config_id, double max_search_distance);
3822
3830 int spmap_overwrite_config_id, int weight_type);
3831
3832/* -------------------------------------------------------------------------------- */
3833
3837 void yac_cget_interp_stack_config(int * interp_stack_config_id);
3838
3842 void yac_cfree_interp_stack_config(int interp_stack_config_id);
3843
3849 void yac_cadd_interp_stack_config_average( int interp_stack_config_id,
3850 int reduction_type,
3851 int partial_coverage);
3852
3859 void yac_cadd_interp_stack_config_ncc( int interp_stack_config_id,
3860 int weight_type,
3861 int partial_coverage);
3862
3874 void yac_cadd_interp_stack_config_nnn( int interp_stack_config_id,
3875 int type,
3876 size_t n,
3877 double max_search_distance,
3878 double scale);
3879
3895 void yac_cadd_interp_stack_config_dnn( int interp_stack_config_id,
3896 int weight_type,
3897 int search_distance_type,
3898 double search_distance,
3899 double scale);
3900
3909 void yac_cadd_interp_stack_config_rbf( int interp_stack_config_id,
3910 size_t n,
3911 double max_search_distance,
3912 double scale);
3913
3922 int interp_stack_config_id,
3923 int order,
3924 int enforced_conserv,
3925 int partial_coverage,
3926 int normalisation);
3927
3955 int interp_stack_config_id,
3956 double spread_distance,
3957 double max_search_distance,
3958 int weight_type,
3959 int scale_type,
3960 double src_sphere_radius,
3961 char const * src_filename,
3962 char const * src_varname,
3963 int src_min_global_id,
3964 double tgt_sphere_radius,
3965 char const * tgt_filename,
3966 char const * tgt_varname,
3967 int tgt_min_global_id);
3968
3978 int interp_stack_config_id,
3979 int ext_spmap_config_id,
3980 int * spmap_overwrite_config_ids,
3981 int spmap_overwrite_config_count);
3982
3986 void yac_cadd_interp_stack_config_hcsbb(int interp_stack_config_id);
3987
3997 int interp_stack_config_id, char const * filename);
3998
4012 int interp_stack_config_id, char const * filename,
4013 int on_missing_file, int on_success);
4014
4019 void yac_cadd_interp_stack_config_fixed( int interp_stack_config_id,
4020 double value);
4021
4031 void yac_cadd_interp_stack_config_check( int interp_stack_config_id,
4032 char const * constructor_key,
4033 char const * do_search_key);
4034
4039 void yac_cadd_interp_stack_config_creep( int interp_stack_config_id,
4040 int creep_distance);
4041
4049 int interp_stack_config_id,
4050 char const * func_compute_weights_key);
4051
4121#ifndef TYPEDEF_YAC_FUNC_COMPUTE_WEIGHTS
4122#define TYPEDEF_YAC_FUNC_COMPUTE_WEIGHTS
4123
4124// Remark: make sure that this typedef is consistent with the one in interp_method_callback.h
4126 double const tgt_coords[3], int src_cell_id, size_t src_cell_idx,
4127 int const ** global_results_points, double ** result_weights,
4128 size_t * result_count, void * user_data);
4129#endif
4130
4144 void * user_data,
4145 char const * key);
4146
4154 char const * interp_stack_config, int * interp_stack_config_id);
4155
4163 char const * interp_stack_config, int * interp_stack_config_id);
4164
4165#endif // YAC_H
char const * grid_names[]
char const * field_names[8]
void * user_data
char * key
enum callback_type type
struct @23::@24 value
int * cell_to_vertex
int collection_size
static struct yac_interp_method_config * config
char const src_grid_name[]
char const tgt_grid_name[]
unsigned cyclic[2]
int info
int comp_ids[1]
int grid_id
int nbr_fields
int ierror
int * global_index
int * field_id
int comp_id
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 * location
char const * name
Definition toy_scrip.c:114
int const YAC_YEAR_OF_365_DAYS
Definition yac.c:74
void yac_cget_raw_(int const field_id, int const collection_size, double *src_field_buffer, int *info, int *ierror)
Definition yac.c:3388
int yac_cget_points_id(int grid_id, int location, const char *point_name)
Definition yac.c:5076
void yac_cset_ext_spmap_config_src_cell_area_config_yac(int ext_spmap_config_id, double sphere_radius)
Definition yac.c:6065
void yac_cdef_comps(const char **comp_names, int num_comps, int *comp_ids)
Definition yac.c:1331
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)
Definition yac.c:4695
void yac_cset_grids_output_file(const char *filename)
Definition yac.c:910
int const YAC_REDUCTION_TIME_AVERAGE
Definition yac.c:59
void yac_cenddef_and_emit_config(int emit_flags, char **config)
Definition yac.c:5036
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 yac.c:1594
void yac_cread_config_yaml_instance(int yac_instance_id, const char *yaml_file)
Definition yac.c:808
void yac_ccompute_grid_cell_areas(int grid_id, double *cell_areas)
Definition yac.c:5795
int const YAC_DNN_GAUSS
Definition yac.c:92
void yac_cinit_comm_dummy(MPI_Comm comm)
Definition yac.c:746
void yac_cget_grid_names(int nbr_grids, const char **grid_names)
Definition yac.c:5260
void yac_cadd_interp_stack_config_ncc(int interp_stack_config_id, int weight_type, int partial_coverage)
Definition yac.c:5873
void yac_cread_config_json_instance(int yac_instance_id, const char *json_file)
Definition yac.c:822
void yac_cget_ext_couple_config_scale_factor(int ext_couple_config_id, double *scale_factor)
Definition yac.c:2200
const char * yac_cget_field_metadata_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:2047
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)
Definition yac.c:4374
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)
Definition yac.c:4582
int const YAC_NCC_AVG
Definition yac.c:81
void yac_cget_async(int const field_id, int const collection_size, double **recv_field, int *info, int *ierror)
Definition yac.c:3307
void yac_cput_frac_ptr_(int const field_id, int const collection_size, double **send_field, double **send_frac_mask, int *info, int *ierror)
Definition yac.c:3716
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)
Definition yac.c:6343
void yac_cset_global_index_yac_int(yac_int const *global_index, int location, int grid_id)
Definition yac.c:5714
void yac_cenddef(void)
Definition yac.c:5006
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)
Definition yac.c:2567
void yac_cenable_field_frac_mask(const char *comp_name, const char *grid_name, const char *field_name, double frac_mask_fallback_value)
Definition yac.c:1969
void yac_cget_raw_async(int const field_id, int const collection_size, double ***src_field_buffer, int *info, int *ierror)
Definition yac.c:3514
int const YAC_ACTION_OUT_OF_BOUND
put/get is outside of the valid range
Definition yac.c:55
int const YAC_DNN_SEARCH_DISTANCE_CELL_AREA
Definition yac.c:96
void yac_cget_ext_couple_config_mapping_side(int ext_couple_config_id, int *mapping_side)
Definition yac.c:2178
void yac_cput_(int const field_id, int const collection_size, double *send_field, int *info, int *ierror)
Definition yac.c:3601
int const YAC_SPMAP_SRCAREA
Definition yac.c:105
int const YAC_CONFIG_OUTPUT_SYNC_LOC_ENDDEF
after end of definitions
Definition yac.c:134
char * yac_cget_start_datetime_instance(int yac_instance_id)
Definition yac.c:1048
void yac_cset_global_index(int const *global_index, int location, int grid_id)
Definition yac.c:5726
void yac_cset_grid_output_file_instance(int yac_instance_id, const char *gridname, const char *filename)
Definition yac.c:877
void yac_cset_coordinates_check(int apply_check)
Definition yac.c:925
int const YAC_NNN_RBF
Definition yac.c:87
void yac_cdef_datetime_instance(int yac_instance_id, const char *start_datetime, const char *end_datetime)
Definition of job start and end datetime.
Definition yac.c:1019
int yac_cget_role_from_field_id(int field_id)
Definition yac.c:5391
int yac_cget_nbr_grids_instance(int yac_instance_id)
Definition yac.c:5152
void yac_cfree_ext_couple_config(int ext_couple_config_id)
Definition yac.c:2100
const char * yac_cget_grid_metadata_instance(int yac_instance_id, const char *grid_name)
Definition yac.c:2034
int const YAC_FILE_SUCCESS_CONT
Definition yac.c:114
char * yac_cget_end_datetime_instance(int yac_instance_id)
Definition yac.c:1063
void yac_cdef_datetime(const char *start_datetime, const char *end_datetime)
Definition of job start and end datetime for the default YAC instance.
Definition yac.c:1028
int const YAC_SPMAP_INVTGTAREA
Definition yac.c:106
int const YAC_LOCATION_CELL
Definition yac.c:38
void yac_cfree_spmap_overwrite_config(int spmap_overwrite_config_id)
Definition yac.c:6183
int const YAC_REDUCTION_TIME_MINIMUM
Definition yac.c:60
void yac_cset_ext_couple_config_tgt_mask_name(int ext_couple_config_id, char const *tgt_mask_name)
Definition yac.c:2270
void yac_cget_ext_couple_config_weight_file_on_existing(int ext_couple_config_id, int *weight_file_on_existing)
Definition yac.c:2153
void yac_cget_async_(int const field_id, int const collection_size, double *recv_field, int *info, int *ierror)
Definition yac.c:3289
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 yac.c:1929
void yac_cdef_grid_metadata(const char *grid_name, const char *metadata)
Definition yac.c:2000
int const YAC_FILE_MISSING_CONT
continue on missing file
Definition yac.c:110
int const YAC_TIME_UNIT_MINUTE
Definition yac.c:65
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 yac.c:5529
void yac_cget_grid_names_instance(int yac_instance_id, int nbr_grids, const char **grid_names)
Definition yac.c:5241
void yac_cset_ext_couple_config_scale_factor(int ext_couple_config_id, double scale_factor)
Definition yac.c:2193
int const YAC_NCC_DIST
Definition yac.c:82
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)
Definition yac.c:4532
int const YAC_FILE_MISSING_ERROR
abort on missing file
Definition yac.c:109
void yac_cset_ext_couple_config_weight_file_on_existing(int ext_couple_config_id, int weight_file_on_existing)
Definition yac.c:2146
void yac_cadd_interp_stack_config_creep(int interp_stack_config_id, int creep_distance)
Definition yac.c:6533
void yac_cdef_mask(int const grid_id, int const nbr_points, int const location, int const *is_valid, int *mask_id)
Definition yac.c:1824
void yac_cdef_component_metadata(const char *comp_name, const char *metadata)
Definition yac.c:1986
int const YAC_TIME_UNIT_YEAR
Definition yac.c:69
void yac_csync_def_comps(char const **comp_names, int num_comp_names)
Definition yac.c:4935
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)
Definition yac.c:4883
int yac_cget_field_role(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:5477
void yac_ccleanup()
Clean-up default YAC instance (see Restarting YAC)
Definition yac.c:977
int const YAC_AVG_ARITHMETIC
Definition yac.c:77
void yac_cset_grids_output_file_instance(int yac_instance_id, const char *filename)
Definition yac.c:898
int const YAC_DNN_AVG
Definition yac.c:90
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)
Definition yac.c:6221
void yac_cput_frac_(int const field_id, int const collection_size, double *send_field, double *send_frac_mask, int *info, int *ierror)
Definition yac.c:3621
void yac_cadd_compute_weights_callback(yac_func_compute_weights compute_weights_callback, void *user_data, char const *key)
Definition yac.c:6556
void yac_cmpi_handshake(MPI_Comm comm, size_t n, char const **group_names, MPI_Comm *group_comms)
Definition yac.c:661
void yac_cput(int const field_id, int const collection_size, double ***const send_field, int *info, int *ierror)
Definition yac.c:4271
int const YAC_REDUCTION_TIME_MAXIMUM
Definition yac.c:61
int const YAC_WGT_ON_EXISTING_ERROR
Definition yac.c:120
int const YAC_TIME_UNIT_MILLISECOND
Definition yac.c:63
int yac_cget_field_id_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:5121
int yac_cget_comp_nbr_grids_instance(int yac_instance_id, const char *comp_name)
Definition yac.c:5165
int yac_cget_field_is_defined(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:5113
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 yac.c:5567
const char * yac_cget_timestep_from_field_id(int field_id)
Definition yac.c:5377
int yac_cget_comp_id(const char *comp_name)
Definition yac.c:5060
int const YAC_FILE_SUCCESS_STOP
Definition yac.c:112
void yac_cget_raw_async_(int const field_id, int const collection_size, double *src_field_buffer, int *info, int *ierror)
Definition yac.c:3445
int yac_cget_nbr_fields(const char *comp_name, const char *grid_name)
Definition yac.c:5211
int const YAC_DNN_SEARCH_DISTANCE_FIXED
Definition yac.c:95
void yac_cdef_points_curve2d_named(int const grid_id, int const *nbr_points, int const location, double const *x_points, double const *y_points, char const *name, int *point_id)
Definition yac.c:1553
int const YAC_NNN_GAUSS
Definition yac.c:86
void yac_cset_ext_spmap_config_scale_type(int ext_spmap_config_id, int scale_type)
Definition yac.c:6048
int const YAC_YAML_EMITTER_DEFAULT
emit to YAML format
Definition config_yaml.c:59
void yac_cdef_points_unstruct_named(int const grid_id, int const nbr_points, int const location, double const *x_points, double const *y_points, char const *name, int *point_id)
Definition yac.c:1607
void yac_csync_def_instance(int yac_instance_id)
Definition yac.c:4918
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)
Definition yac.c:3400
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)
Definition yac.c:5498
void yac_cget_interp_stack_config_from_string_json(char const *interp_stack_config, int *interp_stack_config_id)
Definition yac.c:6596
void yac_csync_def(void)
Definition yac.c:4923
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)
Definition yac.c:4462
void yac_cget_raw(int const field_id, int const collection_size, double ***src_field_buffer, int *info, int *ierror)
Definition yac.c:3501
int yac_cget_field_is_defined_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:5104
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)
Definition yac.c:5645
void(* yac_abort_func)(MPI_Comm comm, const char *msg, const char *source, int line) __attribute__((noreturn))
Definition yac.h:3587
int const YAC_TIME_UNIT_HOUR
Definition yac.c:66
void yac_cinit(void)
Definition yac.c:737
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)
Definition yac.c:4316
int const YAC_YEAR_OF_360_DAYS
Definition yac.c:75
void yac_cfinalize_instance(int yac_instance_id)
Finalises YAC.
Definition yac.c:998
YAC_INT yac_int
Definition yac.h:109
int const YAC_DNN_RBF
Definition yac.c:93
void yac_cfinalize()
Finalises YAC.
Definition yac.c:1007
const char * yac_cget_field_name_from_field_id(int field_id)
Definition yac.c:5370
void yac_cget_ext_couple_config_collection_selection(int ext_couple_config_id, int *collection_size, int **collection_indices)
Definition yac.c:2364
void yac_cadd_interp_stack_config_check(int interp_stack_config_id, char const *constructor_key, char const *do_search_key)
Definition yac.c:6521
void yac_cenddef_instance(int yac_instance_id)
Definition yac.c:4984
void yac_cget_ext_couple_config_yaxt_exchanger_name(int ext_couple_config_id, char const **yaxt_exchanger_name)
Definition yac.c:2299
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)
Definition yac.c:2245
int const YAC_YAML_EMITTER_JSON
emit to JSON format
Definition config_yaml.c:60
int yac_cget_nbr_comps_instance(int yac_instance_id)
Definition yac.c:5141
int yac_cget_nbr_fields_instance(int yac_instance_id, const char *comp_name, const char *grid_name)
Definition yac.c:5191
void yac_cdef_comp(const char *comp_name, int *comp_id)
Definition yac.c:1345
void yac_cset_coordinates_mismatch_is_fatal_instance(int yac_instance_id, int is_fatal)
Definition yac.c:931
void yac_cget_ext_couple_config(int *ext_couple_config_id)
Definition yac.c:2079
const char * yac_cget_mpi_handshake_group_name(void)
Retrieve the MPI handshake group name used by YAC.
Definition yac.c:1088
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)
Definition yac.c:5587
void yac_cdef_grid_metadata_instance(int yac_instance_id, const char *grid_name, const char *metadata)
Definition yac.c:1991
void yac_cset_ext_couple_config_weight_file(int ext_couple_config_id, char const *weight_file)
Definition yac.c:2116
const char * yac_cget_component_metadata_instance(int yac_instance_id, const char *comp_name)
Definition yac.c:2021
void yac_cset_ext_spmap_config_spread_distance(int ext_spmap_config_id, double spread_distance)
Definition yac.c:6013
void yac_cset_ext_couple_config_yaxt_exchanger_name(int ext_couple_config_id, char const *yaxt_exchanger_name)
Definition yac.c:2292
int const YAC_LOCATION_CORNER
Definition yac.c:39
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)
Definition yac.c:2443
const char * yac_cget_field_timestep_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:5400
void yac_cset_ext_couple_config_scale_summand(int ext_couple_config_id, double scale_summand)
Definition yac.c:2215
void yac_cget_comp_comm(int comp_id, MPI_Comm *comp_comm)
Definition yac.c:1132
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)
Definition yac.c:3457
void yac_cset_coordinates_mismatch_is_fatal(int is_fatal)
Definition yac.c:940
void yac_cset_spmap_overwrite_config_weight_type(int spmap_overwrite_config_id, int weight_type)
Definition yac.c:6231
const char * yac_cget_field_datetime(int field_id)
Definition yac.c:2935
int const YAC_SPMAP_AVG
Definition yac.c:101
int const YAC_CONSERV_DESTAREA
Definition yac.c:98
int const YAC_EXCHANGE_TYPE_SOURCE
Definition yac.c:44
void yac_cupdate(int field_id)
Definition yac.c:2962
void yac_cget_action(int field_id, int *action)
Definition yac.c:2893
size_t yac_cget_grid_size(int location, int grid_id)
Definition yac.c:5784
int const YAC_REDUCTION_TIME_ACCUMULATE
Definition yac.c:58
void yac_cset_ext_spmap_config_weight_type(int ext_spmap_config_id, int weight_type)
Definition yac.c:6033
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)
Definition yac.c:6193
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)
Definition yac.c:3528
int yac_cget_field_id(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:5133
void yac_cget_ext_couple_config_tgt_mask_name(int ext_couple_config_id, char const **tgt_mask_name)
Definition yac.c:2277
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)
Definition yac.c:2253
void yac_cdef_points_reg2d_rot_named(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, char const *name, int *point_id)
Definition yac.c:1652
const char * yac_cget_grid_name_from_field_id(int field_id)
Definition yac.c:5362
int yac_cget_collection_size_from_field_id(int field_id)
Definition yac.c:5384
void yac_cdef_comps_instance(int yac_instance_id, const char **comp_names, int num_comps, int *comp_ids)
Definition yac.c:1294
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 yac.c:5511
void yac_cget_ext_couple_config_use_raw_exchange(int ext_couple_config_id, int *use_raw_exchange)
Definition yac.c:2319
int yac_cget_comp_id_instance(int yac_instance_id, const char *comp_name)
Definition yac.c:5047
int yac_cdefault_instance_defined(void)
Definition yac.c:696
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_pointset_idx, size_t **src_idx, size_t *num_src_pointsets, size_t **src_field_buffer_sizes)
Definition yac.c:2709
int const YAC_EXCHANGE_TYPE_NONE
Definition yac.c:43
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)
Definition yac.c:2428
void yac_cset_ext_couple_config_use_raw_exchange(int ext_couple_config_id, int use_raw_exchange)
Definition yac.c:2312
int yac_cget_grid_id(const char *grid_name)
Definition yac.c:5066
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)
Definition yac.c:1700
void yac_cset_config_output_file_instance(int yac_instance_id, const char *filename, int fileformat, int sync_location, int include_definitions)
Definition yac.c:838
void yac_cget_comps_comm(const char **comp_names, int num_comps, MPI_Comm *comps_comm)
Definition yac.c:1182
void yac_cinit_comm_instance(MPI_Comm comm, int *yac_instance_id)
Definition yac.c:700
void yac_cfree_ext_spmap_config(int ext_spmap_config_id)
Definition yac.c:5992
int const YAC_EXCHANGE_TYPE_TARGET
Definition yac.c:45
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)
Definition yac.c:4141
const char * yac_cget_grid_metadata(const char *grid_name)
Definition yac.c:2042
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)
Definition yac.c:1957
char * yac_cget_start_datetime(void)
Definition yac.c:1055
void yac_cget_interp_stack_config_from_string_yaml(char const *interp_stack_config, int *interp_stack_config_id)
Definition yac.c:6588
int const YAC_TIME_UNIT_MONTH
Definition yac.c:68
void yac_cset_ext_spmap_config_max_search_distance(int ext_spmap_config_id, double max_search_distance)
Definition yac.c:6023
int const YAC_CONFIG_OUTPUT_FORMAT_YAML
Definition yac.c:117
int const YAC_TIME_UNIT_SECOND
Definition yac.c:64
void yac_cget(int const field_id, int const collection_size, double **recv_field, int *info, int *ierror)
Definition yac.c:3298
void yac_cadd_interp_stack_config_conservative(int interp_stack_config_id, int order, int enforced_conserv, int partial_coverage, int normalisation)
Definition yac.c:5948
void yac_cdef_grid_cloud(const char *grid_name, int nbr_points, double *x_points, double *y_points, int *grid_id)
Definition yac.c:5629
void yac_cget_comps_comm_instance(int yac_instance_id, const char **comp_names, int num_comps, MPI_Comm *comps_comm)
Definition yac.c:1172
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 yac.c:5547
char * yac_cget_version(void)
Definition yac.c:1081
int const YAC_LOCATION_EDGE
Definition yac.c:40
void yac_ccheck_src_field_buffer_sizes(int field_id, int num_src_fields, int collection_size, int *src_field_buffer_sizes)
Definition yac.c:2663
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)
Definition yac.c:6153
void yac_cput_ptr_(int const field_id, int const collection_size, double **send_field, int *info, int *ierror)
Definition yac.c:3695
int const YAC_DNN_DIST
Definition yac.c:91
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)
Definition yac.c:4434
#define __attribute__(x)
Definition yac.h:3576
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)
Definition yac.c:4395
int yac_cget_default_instance_id()
Definition yac.c:691
void yac_cadd_interp_stack_config_user_file(int interp_stack_config_id, char const *filename)
Definition yac.c:6502
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)
Definition yac.c:4499
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 yac.h:4125
const char * yac_cget_component_name_from_field_id(int field_id)
Definition yac.c:5355
int yac_cget_field_collection_size(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:5458
int const YAC_CONFIG_OUTPUT_SYNC_LOC_DEF_COMP
after component definition
Definition yac.c:130
void yac_restore_default_abort_handler(void)
int const YAC_SPMAP_FRACAREA
Definition yac.c:107
void yac_cdef_component_metadata_instance(int yac_instance_id, const char *comp_name, const char *metadata)
Definition yac.c:1978
void yac_cenddef_and_emit_config_instance(int yac_instance_id, int emit_flags, char **config)
Definition yac.c:5012
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)
Definition yac.c:1070
int const YAC_WGT_ON_EXISTING_OVERWRITE
overwrite existing weight file
Definition yac.c:122
void yac_cread_config_yaml(const char *yaml_file)
Definition yac.c:817
int const YAC_ACTION_NONE
no data exchanges
Definition yac.c:47
int const YAC_WGT_ON_EXISTING_KEEP
keep existing weight file
Definition yac.c:121
void yac_cdef_calendar(int calendar)
Definition yac.c:1036
int const YAC_SPMAP_NONE
Definition yac.c:104
void yac_cset_core_mask(int const *is_core, int location, int grid_id)
Definition yac.c:5742
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)
Definition yac.c:4898
void yac_cset_coordinates_check_instance(int yac_instance_id, int apply_check)
Definition yac.c:916
void yac_cwait(int field_id)
Definition yac.c:3773
void yac_cadd_interp_stack_config_rbf(int interp_stack_config_id, size_t n, double max_search_distance, double scale)
Definition yac.c:5936
int yac_cget_mask_id(int grid_id, int location, const char *mask_name)
Definition yac.c:5090
int yac_cget_calendar()
Definition yac.c:1041
int const YAC_CONFIG_OUTPUT_SYNC_LOC_SYNC_DEF
after synchronization of definition
Definition yac.c:132
void yac_cget_comp_names(int nbr_comps, const char **comp_names)
Definition yac.c:5235
const char * yac_cget_field_metadata(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:2056
int const YAC_ACTION_REDUCTION
data reduction, but data exchange
Definition yac.c:48
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 yac.c:1854
int const YAC_ACTION_GET_FOR_RESTART
last valid get
Definition yac.c:51
void yac_cset_ext_spmap_config_tgt_cell_area_config_yac(int ext_spmap_config_id, double sphere_radius)
Definition yac.c:6083
void yac_ccheck_src_field_buffer_size(int field_id, int collection_size, int src_field_buffer_size)
Definition yac.c:2627
int const YAC_PROLEPTIC_GREGORIAN
Definition yac.c:73
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 yac.c:1639
void yac_cget_comp_grid_names_instance(int yac_instance_id, const char *comp_name, int nbr_grids, const char **grid_names)
Definition yac.c:5265
double yac_cget_field_frac_mask_fallback_value(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:5450
void yac_cset_mask(int const *is_valid, int points_id)
Definition yac.c:1833
void yac_cadd_interp_stack_config_hcsbb(int interp_stack_config_id)
Definition yac.c:6470
void yac_cdef_comp_instance(int yac_instance_id, const char *comp_name, int *comp_id)
Definition yac.c:1339
void yac_cadd_interp_stack_config_fixed(int interp_stack_config_id, double value)
Definition yac.c:6511
int const YAC_TIME_UNIT_DAY
Definition yac.c:67
int yac_cget_comp_nbr_grids(const char *comp_name)
Definition yac.c:5186
int const YAC_ACTION_COUPLING
data exchange
Definition yac.c:49
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)
Definition yac.c:5419
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_pointset_idx, size_t **src_idx, size_t *num_src_pointsets, size_t **src_field_buffer_sizes)
Definition yac.c:2749
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)
Definition yac.c:6141
int const YAC_TIME_UNIT_ISO_FORMAT
Definition yac.c:70
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)
Definition yac.c:5484
void yac_cpredef_comp_instance(int yac_instance_id, char const *comp_name, int *comp_id)
Definition yac.c:1266
int const YAC_AVG_DIST
Definition yac.c:78
int yac_cget_field_role_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:5466
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)
Definition yac.c:3546
int const YAC_CONSERV_FRACAREA
Definition yac.c:99
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)
Definition yac.c:6246
void yac_cadd_interp_stack_config_user_callback(int interp_stack_config_id, char const *func_compute_weights_key)
Definition yac.c:6543
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)
Definition yac.c:5608
void yac_cset_ext_couple_config_mapping_side(int ext_couple_config_id, int mapping_side)
Definition yac.c:2171
void yac_ccleanup_instance(int yac_instance_id)
Clean-up a YAC instance (see Restarting YAC)
Definition yac.c:969
int yac_cget_field_collection_size_instance(int yac_instance_id, const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:5430
void yac_cfree_interp_stack_config(int interp_stack_config_id)
Definition yac.c:5834
void yac_cdef_points_reg2d_named(int const grid_id, int const *nbr_points, int const location, double const *x_points, double const *y_points, char const *name, int *point_id)
Definition yac.c:1499
int const YAC_CALENDAR_NOT_SET
Definition yac.c:72
void yac_cset_grid_output_file(const char *gridname, const char *filename)
Definition yac.c:890
int const YAC_NNN_AVG
Definition yac.c:84
void yac_cadd_interp_stack_config_user_file_2(int interp_stack_config_id, char const *filename, int on_missing_file, int on_success)
Definition yac.c:6479
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 yac.c:1540
void yac_cadd_interp_stack_config_nnn(int interp_stack_config_id, int type, size_t n, double max_search_distance, double scale)
Definition yac.c:5890
void yac_cget_ext_couple_config_scale_summand(int ext_couple_config_id, double *scale_summand)
Definition yac.c:2222
int const YAC_CONFIG_OUTPUT_FORMAT_JSON
Definition yac.c:118
void yac_cinit_instance(int *yac_instance_id)
Definition yac.c:725
void yac_ctest(int field_id, int *flag)
Definition yac.c:3749
void yac_cset_config_output_file(const char *filename, int fileformat, int sync_location, int include_definitions)
Definition yac.c:865
void yac_cget_interp_stack_config(int *interp_stack_config_id)
Definition yac.c:5818
void yac_cset_ext_couple_config_collection_selection(int ext_couple_config_id, int collection_size, int const *collection_indices)
Definition yac.c:2356
void yac_cinit_dummy(void)
Definition yac.c:763
void yac_cadd_interp_stack_config_average(int interp_stack_config_id, int reduction_type, int partial_coverage)
Definition yac.c:5855
int const YAC_ACTION_PUT_FOR_RESTART
last valid put
Definition yac.c:52
int const YAC_NNN_ZERO
Definition yac.c:88
void yac_cread_config_json(const char *json_file)
Definition yac.c:831
void yac_cpredef_comp(char const *comp_name, int *comp_id)
Definition yac.c:1289
int const YAC_EXCHANGE_TYPE_INVALID
Definition yac.c:42
int const YAC_SPMAP_DIST
Definition yac.c:102
size_t yac_cget_points_size(int points_id)
Definition yac.c:5805
void yac_cset_spmap_overwrite_config_spread_distance(int spmap_overwrite_config_id, double spread_distance)
Definition yac.c:6211
void yac_csync_def_comps_instance(int yac_instance_id, char const **comp_names, int num_comp_names)
Definition yac.c:4928
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)
Definition yac.c:2458
void yac_cget_spmap_overwrite_config(int *spmap_overwrite_config_id)
Definition yac.c:6165
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)
Definition yac.c:2475
double const YAC_FRAC_MASK_NO_VALUE
int yac_cget_nbr_comps(void)
Definition yac.c:5147
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)
Definition yac.c:2005
int const YAC_AVG_BARY
Definition yac.c:79
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)
Definition yac.c:3280
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)
Definition yac.c:1801
void yac_cadd_interp_stack_config_dnn(int interp_stack_config_id, int weight_type, int search_distance_type, double search_distance, double scale)
Definition yac.c:5910
int const YAC_NNN_DIST
Definition yac.c:85
void yac_cget_comp_grid_names(const char *comp_name, int nbr_grids, const char **grid_names)
Definition yac.c:5304
int yac_cget_nbr_grids()
Definition yac.c:5160
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)
Definition yac.c:5311
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)
Definition yac.c:4284
int const YAC_REDUCTION_TIME_NONE
Definition yac.c:57
void yac_cget_comp_names_instance(int yac_instance_id, int nbr_comps, const char **comp_names)
Definition yac.c:5216
void yac_cdef_field_metadata(const char *comp_name, const char *grid_name, const char *field_name, const char *metadata)
Definition yac.c:2014
void yac_cget_ext_spmap_config(int *ext_spmap_config_id)
Definition yac.c:5966
const char * yac_cget_component_metadata(const char *comp_name)
Definition yac.c:2029
const char * yac_cget_field_timestep(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:5412
void yac_cget_field_names(const char *comp_name, const char *grid_name, int nbr_fields, const char **field_names)
Definition yac.c:5348
void yac_cget_ext_couple_config_weight_file(int ext_couple_config_id, char const **weight_file)
Definition yac.c:2123
void yac_cinit_comm(MPI_Comm comm)
Definition yac.c:712
YAC_INT yac_int
Definition yac_types.h:15