YetAnotherCoupler 3.2.0_a
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
10#include <mpi.h>
11
12extern int const YAC_LOCATION_CELL;
13extern int const YAC_LOCATION_CORNER;
14extern int const YAC_LOCATION_EDGE;
15
16extern int const YAC_EXCHANGE_TYPE_NONE;
17extern int const YAC_EXCHANGE_TYPE_SOURCE;
18extern int const YAC_EXCHANGE_TYPE_TARGET;
19
20extern int const YAC_ACTION_NONE;
21extern int const YAC_ACTION_REDUCTION;
22extern int const YAC_ACTION_COUPLING;
23extern int const YAC_ACTION_GET_FOR_RESTART;
24extern int const YAC_ACTION_PUT_FOR_RESTART;
25extern int const YAC_ACTION_OUT_OF_BOUND;
26
27extern int const YAC_REDUCTION_TIME_NONE;
28extern int const YAC_REDUCTION_TIME_ACCUMULATE;
29extern int const YAC_REDUCTION_TIME_AVERAGE;
30extern int const YAC_REDUCTION_TIME_MINIMUM;
31extern int const YAC_REDUCTION_TIME_MAXIMUM;
32
33extern int const YAC_TIME_UNIT_MILLISECOND;
34extern int const YAC_TIME_UNIT_SECOND;
35extern int const YAC_TIME_UNIT_MINUTE;
36extern int const YAC_TIME_UNIT_HOUR;
37extern int const YAC_TIME_UNIT_DAY;
38extern int const YAC_TIME_UNIT_MONTH;
39extern int const YAC_TIME_UNIT_YEAR;
40extern int const YAC_TIME_UNIT_ISO_FORMAT;
41
42extern int const YAC_CALENDAR_NOT_SET;
43extern int const YAC_PROLEPTIC_GREGORIAN;
44extern int const YAC_YEAR_OF_365_DAYS;
45extern int const YAC_YEAR_OF_360_DAYS;
46
47extern int const YAC_AVG_ARITHMETIC;
48extern int const YAC_AVG_DIST;
49extern int const YAC_AVG_BARY;
50
51extern int const YAC_NCC_AVG;
52extern int const YAC_NCC_DIST;
53
54extern int const YAC_NNN_AVG;
55extern int const YAC_NNN_DIST;
56extern int const YAC_NNN_GAUSS;
57extern int const YAC_NNN_RBF;
58extern int const YAC_NNN_ZERO;
59
60extern int const YAC_CONSERV_DESTAREA;
61extern int const YAC_CONSERV_FRACAREA;
62
63extern int const YAC_SPMAP_AVG;
64extern int const YAC_SPMAP_DIST;
65
66extern int const YAC_SPMAP_NONE;
67extern int const YAC_SPMAP_SRCAREA;
68extern int const YAC_SPMAP_INVTGTAREA;
69extern int const YAC_SPMAP_FRACAREA;
70
71extern int YAC_YAML_EMITTER_DEFAULT;
72extern int YAC_YAML_EMITTER_JSON;
73
74#define YAC_MAX_CHARLEN (132)
75
136/* -----------------------------------------------------------------------------
137
138 C and Fortran description of the user API
139
140 ----------------------------------------------------------------------------- */
141
168 void yac_cmpi_handshake( MPI_Comm comm,
169 size_t n,
170 char const** group_names,
171 MPI_Comm * group_comms );
172
182
191 void yac_cinit (void);
192
202 void yac_cinit_instance ( int * yac_instance_id );
203
213 void yac_cinit_comm ( MPI_Comm comm );
214
224 void yac_cinit_comm_instance ( MPI_Comm comm,
225 int * yac_instance_id );
226
227/* -------------------------------------------------------------------------------- */
228
234 void yac_cinit_dummy(void);
235
244 void yac_cinit_comm_dummy ( MPI_Comm comm );
245
246/* -------------------------------------------------------------------------------- */
247
254 void yac_cread_config_yaml_instance( int yac_instance_id,
255 const char * yaml_file);
256
261 void yac_cread_config_yaml(const char * yaml_file);
262
269 void yac_cread_config_json_instance( int yac_instance_id,
270 const char * json_file);
271
276 void yac_cread_config_json( const char * json_file );
277
278/* -------------------------------------------------------------------------------- */
279
286 void yac_ccleanup ();
287
294 void yac_ccleanup_instance ( int yac_instance_id );
295
296/* -------------------------------------------------------------------------------- */
297
301 void yac_cfinalize ();
302
307 void yac_cfinalize_instance (int yac_instance_id);
308
309/* -------------------------------------------------------------------------------- */
310
317 void yac_cdef_datetime ( const char * start_datetime,
318 const char * end_datetime );
319
327 void yac_cdef_datetime_instance ( int yac_instance_id,
328 const char * start_datetime,
329 const char * end_datetime );
330
336 void yac_cdef_calendar ( int calendar );
337
338/* -------------------------------------------------------------------------------- */
339
347 void yac_cget_groupcomm( MPI_Comm * group_comm );
348
357 void yac_cget_groupcomm_instance( int yac_instance_id,
358 MPI_Comm * group_comm );
359
360/* -------------------------------------------------------------------------------- */
361
370 void yac_cpredef_comp( char const * comp_name,
371 int * comp_id );
372
382 void yac_cpredef_comp_instance( int yac_instance_id,
383 char const * comp_name,
384 int * comp_id );
385
386/* -------------------------------------------------------------------------------- */
387
398 void yac_cdef_comp ( const char * comp_name,
399 int * comp_id );
400
413 void yac_cdef_comp_instance ( int yac_instance_id,
414 const char * comp_name,
415 int * comp_id );
416
417/* -------------------------------------------------------------------------------- */
418
430 void yac_cdef_comps ( const char ** comp_names,
431 int num_comps,
432 int * comp_ids );
433
446 void yac_cdef_comps_instance ( int yac_instance_id,
447 const char ** comp_names,
448 int num_comps,
449 int * comp_ids );
450
451/* -------------------------------------------------------------------------------- */
452
460 void yac_cget_comp_comm ( int comp_id,
461 MPI_Comm *comp_comm );
462
463/* -------------------------------------------------------------------------------- */
464
477 void yac_cget_comps_comm ( const char ** comp_names,
478 int num_comps,
479 MPI_Comm * comps_comm);
480
493 void yac_cget_comps_comm_instance ( int yac_instance_id,
494 const char ** comp_names,
495 int num_comps,
496 MPI_Comm * comps_comm );
497
498/* -------------------------------------------------------------------------------- */
499
517 void yac_cdef_points_reg2d ( int const grid_id,
518 int const *nbr_points,
519 int const location,
520 double const *x_points,
521 double const *y_points,
522 int *point_id );
523
524/* -------------------------------------------------------------------------------- */
525
543 void yac_cdef_points_curve2d ( int const grid_id,
544 int const *nbr_points,
545 int const location,
546 double const *x_points,
547 double const *y_points,
548 int *point_id );
549
550/* -------------------------------------------------------------------------------- */
551
565 void yac_cdef_points_unstruct ( int const grid_id,
566 int const nbr_points,
567 int const location,
568 double const *x_points,
569 double const *y_points,
570 int *point_id );
571
572/* -------------------------------------------------------------------------------- */
573
623 void yac_cdef_grid_reg2d ( const char * grid_name,
624 int nbr_vertices[2],
625 int cyclic[2],
626 double *x_vertices,
627 double *y_vertices,
628 int *grid_id);
629
630/* -------------------------------------------------------------------------------- */
631
681 void yac_cdef_grid_curve2d ( const char * grid_name,
682 int nbr_vertices[2],
683 int cyclic[2],
684 double *x_vertices,
685 double *y_vertices,
686 int *grid_id);
687
688/* -------------------------------------------------------------------------------- */
689
705 void yac_cdef_grid_unstruct ( const char * grid_name,
706 int nbr_vertices,
707 int nbr_cells,
708 int *num_vertices_per_cell,
709 double *x_vertices,
710 double *y_vertices,
711 int *cell_to_vertex,
712 int *grid_id);
713
714/* -------------------------------------------------------------------------------- */
715
736 void yac_cdef_grid_unstruct_ll ( const char * grid_name,
737 int nbr_vertices,
738 int nbr_cells,
739 int *num_vertices_per_cell,
740 double *x_vertices,
741 double *y_vertices,
742 int *cell_to_vertex,
743 int *grid_id);
744
745/* -------------------------------------------------------------------------------- */
746
756 void yac_cset_global_index ( int const * global_index,
757 int location,
758 int grid_id);
759
760/* -------------------------------------------------------------------------------- */
761
774 void yac_cset_core_mask ( int const * is_core,
775 int location,
776 int grid_id);
777
778/* -------------------------------------------------------------------------------- */
779
786 void yac_cset_mask ( int const * is_valid,
787 int points_id );
788
789/* -------------------------------------------------------------------------------- */
790
800 void yac_cdef_mask ( int const grid_id,
801 int const nbr_points,
802 int const location,
803 int const * is_valid,
804 int *mask_id );
805
806/* -------------------------------------------------------------------------------- */
807
818 void yac_cdef_mask_named ( int const grid_id,
819 int const nbr_points,
820 int const location,
821 int const * is_valid,
822 char const * name,
823 int *mask_id );
824
825/* -------------------------------------------------------------------------------- */
826
845 void yac_cdef_field ( char const * field_name,
846 int const component_id,
847 int const * point_ids,
848 int const num_pointsets,
849 int collection_size,
850 const char* timestep,
851 int time_unit,
852 int * field_id );
853
854/* -------------------------------------------------------------------------------- */
855
875 void yac_cdef_field_mask ( char const * field_name,
876 int const component_id,
877 int const * point_ids,
878 int const * mask_ids,
879 int const num_pointsets,
880 int collection_size,
881 const char* timestep,
882 int time_unit,
883 int * field_id );
884
885/* -------------------------------------------------------------------------- */
886
899 void yac_cenable_field_frac_mask( const char* comp_name,
900 const char* grid_name,
901 const char* field_name,
902 double frac_mask_fallback_value);
903
918 int yac_instance_id,
919 const char* comp_name,
920 const char* grid_name,
921 const char* field_name,
922 double frac_mask_fallback_value);
923
924/* -------------------------------------------------------------------------- */
925
930 void yac_cdef_component_metadata( const char* comp_name,
931 const char* metadata);
932
938 void yac_cdef_component_metadata_instance( int yac_instance_id,
939 const char* comp_name,
940 const char* metadata);
941
946 void yac_cdef_grid_metadata( const char* grid_name,
947 const char* metadata);
948
954 void yac_cdef_grid_metadata_instance( int yac_instance_id,
955 const char* grid_name,
956 const char* metadata);
957
964 void yac_cdef_field_metadata( const char* comp_name,
965 const char* grid_name,
966 const char* field_name,
967 const char* metadata);
968
976 void yac_cdef_field_metadata_instance( int yac_instance_id,
977 const char* comp_name,
978 const char* grid_name,
979 const char* field_name,
980 const char* metadata);
981
982/* -------------------------------------------------------------------------- */
983
1000 void yac_cget_action( int field_id,
1001 int * action);
1002
1008 const char * yac_cget_field_datetime(int field_id);
1009
1010/* -------------------------------------------------------------------------- */
1011
1023 void yac_cupdate(int field_id);
1024
1025/* -------------------------------------------------------------------------- */
1026
1031 void yac_cget_ext_couple_config(int * ext_couple_config_id);
1032
1036 void yac_cfree_ext_couple_config(int ext_couple_config_id);
1037
1046 void yac_cset_ext_couple_config_weight_file( int ext_couple_config_id,
1047 char const * weight_file);
1048
1054 void yac_cget_ext_couple_config_weight_file( int ext_couple_config_id,
1055 char const ** weight_file);
1056
1062 void yac_cset_ext_couple_config_mapping_side( int ext_couple_config_id,
1063 int mapping_side);
1064
1069 void yac_cget_ext_couple_config_mapping_side( int ext_couple_config_id,
1070 int * mapping_side);
1071
1076 void yac_cset_ext_couple_config_scale_factor( int ext_couple_config_id,
1077 double scale_factor);
1078
1083 void yac_cget_ext_couple_config_scale_factor( int ext_couple_config_id,
1084 double * scale_factor);
1085
1090 void yac_cset_ext_couple_config_scale_summand( int ext_couple_config_id,
1091 double scale_summand);
1092
1097 void yac_cget_ext_couple_config_scale_summand( int ext_couple_config_id,
1098 double * scale_summand);
1099
1106 int ext_couple_config_id,
1107 size_t num_src_mask_names,
1108 char const * const * src_mask_names);
1109
1116 int ext_couple_config_id,
1117 size_t * num_src_mask_names,
1118 char const * const ** src_mask_names);
1119
1124 void yac_cset_ext_couple_config_tgt_mask_name( int ext_couple_config_id,
1125 char const * tgt_mask_name);
1126
1131 void yac_cget_ext_couple_config_mask_name( int ext_couple_config_id,
1132 char const ** tgt_mask_name);
1133
1134/* -------------------------------------------------------------------------- */
1135
1156 void yac_cdef_couple_custom_instance( int yac_instance_id,
1157 char const * src_comp_name,
1158 char const * src_grid_name,
1159 char const * src_field_name,
1160 char const * tgt_comp_name,
1161 char const * tgt_grid_name,
1162 char const * tgt_field_name,
1163 char const * coupling_timestep,
1164 int time_unit,
1165 int time_reduction,
1166 int interp_stack_config_id,
1167 int src_lag,
1168 int tgt_lag,
1169 int ext_couple_config_id);
1170
1191 void yac_cdef_couple_custom( char const * src_comp_name,
1192 char const * src_grid_name,
1193 char const * src_field_name,
1194 char const * tgt_comp_name,
1195 char const * tgt_grid_name,
1196 char const * tgt_field_name,
1197 char const * coupling_timestep,
1198 int time_unit,
1199 int time_reduction,
1200 int interp_stack_config_id,
1201 int src_lag,
1202 int tgt_lag,
1203 int ext_couple_config_id);
1204
1205/* -------------------------------------------------------------------------- */
1206
1226 void yac_cdef_couple_instance( int yac_instance_id,
1227 char const * src_comp_name,
1228 char const * src_grid_name,
1229 char const * src_field_name,
1230 char const * tgt_comp_name,
1231 char const * tgt_grid_name,
1232 char const * tgt_field_name,
1233 char const * coupling_timestep,
1234 int time_unit,
1235 int time_reduction,
1236 int interp_stack_config_id,
1237 int src_lag,
1238 int tgt_lag);
1239
1258 void yac_cdef_couple( char const * src_comp_name,
1259 char const * src_grid_name,
1260 char const * src_field_name,
1261 char const * tgt_comp_name,
1262 char const * tgt_grid_name,
1263 char const * tgt_field_name,
1264 char const * coupling_timestep,
1265 int time_unit,
1266 int time_reduction,
1267 int interp_stack_config_id,
1268 int src_lag,
1269 int tgt_lag);
1270
1271/* -------------------------------------------------------------------------------- */
1272
1283 void yac_ccheck_field_dimensions ( int field_id,
1284 int collection_size,
1285 int num_pointsets,
1286 int const * pointset_sizes );
1287
1288/* -------------------------------------------------------------------------------- */
1289
1300 void yac_cget_ ( int const field_id,
1301 int const collection_size,
1302 double *recv_field,
1303 int *info,
1304 int *ierror );
1305
1315 void yac_cget ( int const field_id,
1316 int const collection_size,
1317 double **recv_field,
1318 int *info,
1319 int *ierror );
1320
1335 void yac_cget_async_ ( int const field_id,
1336 int const collection_size,
1337 double *recv_field,
1338 int *info,
1339 int *ierror );
1340
1354 void yac_cget_async ( int const field_id,
1355 int const collection_size,
1356 double **recv_field,
1357 int *info,
1358 int *ierror );
1359
1360/* -------------------------------------------------------------------------------- */
1361
1375 void yac_cput_ ( int const field_id,
1376 int const collection_size,
1377 double *send_field,
1378 int *info,
1379 int *ierror );
1380
1393 void yac_cput ( int const field_id,
1394 int const collection_size,
1395 double *** const send_field,
1396 int *info,
1397 int *ierror );
1398
1399/* -------------------------------------------------------------------------------- */
1400
1419 void yac_cput_frac_ ( int const field_id,
1420 int const collection_size,
1421 double *send_field,
1422 double *send_frac_mask,
1423 int *info,
1424 int *ierror );
1425
1442 void yac_cput_frac ( int const field_id,
1443 int const collection_size,
1444 double *** const send_field,
1445 double *** const send_frac_mask,
1446 int *info,
1447 int *ierror );
1448
1449/* -------------------------------------------------------------------------------- */
1450
1462 void yac_cput_ptr_ ( int const field_id,
1463 int const collection_size,
1464 double ** send_field,
1465 int *info,
1466 int *ierror );
1467
1468/* -------------------------------------------------------------------------------- */
1469
1484 void yac_cput_frac_ptr_ ( int const field_id,
1485 int const collection_size,
1486 double ** send_field,
1487 double ** send_frac_mask,
1488 int *info,
1489 int *ierror );
1490
1491/* -------------------------------------------------------------------------------- */
1492
1511 void yac_cexchange_ ( int const send_field_id,
1512 int const recv_field_id,
1513 int const collection_size,
1514 double *send_field ,
1515 double *recv_field,
1516 int *send_info,
1517 int *recv_info,
1518 int *ierror );
1519
1520
1537 void yac_cexchange ( int const send_field_id,
1538 int const recv_field_id,
1539 int const collection_size,
1540 double *** const send_field,
1541 double ** recv_field,
1542 int *send_info,
1543 int *recv_info,
1544 int *ierror );
1545
1546/* -------------------------------------------------------------------------------- */
1547
1571 void yac_cexchange_frac_ ( int const send_field_id,
1572 int const recv_field_id,
1573 int const collection_size,
1574 double *send_field,
1575 double *send_frac_mask,
1576 double *recv_field,
1577 int *send_info,
1578 int *recv_info,
1579 int *ierror );
1580
1581
1602 void yac_cexchange_frac ( int const send_field_id,
1603 int const recv_field_id,
1604 int const collection_size,
1605 double *** const send_field,
1606 double *** const send_frac_mask,
1607 double ** recv_field,
1608 int *send_info,
1609 int *recv_info,
1610 int *ierror );
1611
1612/* -------------------------------------------------------------------------------- */
1613
1629 void yac_cexchange_ptr_ ( int const send_field_id,
1630 int const recv_field_id,
1631 int const collection_size,
1632 double ** send_field,
1633 double ** recv_field,
1634 int *send_info,
1635 int *recv_info,
1636 int *ierror );
1637
1638/* -------------------------------------------------------------------------------- */
1639
1658 void yac_cexchange_frac_ptr_ ( int const send_field_id,
1659 int const recv_field_id,
1660 int const collection_size,
1661 double ** send_field,
1662 double ** send_frac_mask,
1663 double ** recv_field,
1664 int *send_info,
1665 int *recv_info,
1666 int *ierror );
1667
1668/* -------------------------------------------------------------------------------- */
1669
1679 void yac_ctest ( int field_id, int * flag );
1680
1681/* -------------------------------------------------------------------------------- */
1682
1689 void yac_cwait ( int field_id );
1690
1691/* -------------------------------------------------------------------------------- */
1692
1695 void yac_csync_def ( void );
1696
1701 void yac_csync_def_instance ( int yac_instance_id );
1702
1707 void yac_cenddef ( void );
1708
1715 void yac_cenddef_instance ( int yac_instance_id );
1716
1732 void yac_cenddef_and_emit_config ( int emit_flags,
1733 char ** config );
1734
1749 void yac_cenddef_and_emit_config_instance ( int yac_instance_id,
1750 int emit_flags,
1751 char ** config);
1752
1753/* --------------------------------------------------------------------------------
1754 query routines
1755 -------------------------------------------------------------------------------- */
1756
1760 char * yac_cget_start_datetime ( void );
1761
1767 char * yac_cget_start_datetime_instance ( int yac_instance_id );
1768
1772 char * yac_cget_end_datetime ( void );
1773
1779 char * yac_cget_end_datetime_instance ( int yac_instance_id );
1780
1784 char * yac_cget_version ( void );
1785
1786/* -------------------------------------------------------------------------------- */
1787
1794 int yac_cget_nbr_comps ( void );
1795
1801 int yac_cget_nbr_comps_instance ( int yac_instance_id );
1802
1810 int yac_cget_nbr_grids ( );
1811
1818 int yac_cget_nbr_grids_instance ( int yac_instance_id );
1819
1827 int yac_cget_comp_nbr_grids ( const char* comp_name );
1828
1836 int yac_cget_comp_nbr_grids_instance ( int yac_instance_id,
1837 const char* comp_name );
1838
1847 int yac_cget_nbr_fields ( const char* comp_name,
1848 const char* grid_name );
1849
1859 int yac_cget_nbr_fields_instance ( int yac_instance_id,
1860 const char* comp_name,
1861 const char* grid_name);
1862
1863/* -------------------------------------------------------------------------------- */
1864
1871 void yac_cget_comp_names ( int nbr_comps,
1872 const char ** comp_names );
1873
1881 void yac_cget_comp_names_instance ( int yac_instance_id,
1882 int nbr_comps,
1883 const char ** comp_names );
1884
1893 void yac_cget_grid_names ( int nbr_grids,
1894 const char ** grid_names );
1895
1904 void yac_cget_grid_names_instance ( int yac_instance_id,
1905 int nbr_grids,
1906 const char ** grid_names );
1907
1917 void yac_cget_comp_grid_names ( const char* comp_name,
1918 int nbr_grids,
1919 const char ** grid_names );
1920
1931 void yac_cget_comp_grid_names_instance ( int yac_instance_id,
1932 const char* comp_name,
1933 int nbr_grids,
1934 const char ** grid_names );
1935
1945 void yac_cget_field_names ( const char* comp_name,
1946 const char* grid_name,
1947 int nbr_fields,
1948 const char ** field_names );
1949
1959 void yac_cget_field_names_instance ( int yac_instance_id,
1960 const char * comp_name,
1961 const char* grid_name,
1962 int nbr_fields,
1963 const char ** field_names );
1964
1965/* ---------------------------------------------------------------------- */
1966
1975 const char* yac_cget_component_name_from_field_id ( int field_id );
1976
1985 const char* yac_cget_grid_name_from_field_id ( int field_id );
1986
1995 const char* yac_cget_field_name_from_field_id ( int field_id );
1996
2006 const char* yac_cget_timestep_from_field_id ( int field_id );
2007
2015 int yac_cget_collection_size_from_field_id ( int field_id );
2016
2029 int yac_cget_role_from_field_id ( int field_id );
2030
2039 int yac_cget_field_id( const char* comp_name,
2040 const char* grid_name,
2041 const char* field_name);
2042
2052 int yac_cget_field_id_instance( int yac_instance_id,
2053 const char* comp_name,
2054 const char* grid_name,
2055 const char* field_name);
2056
2057/* ---------------------------------------------------------------------- */
2058
2063 const char* yac_cget_component_metadata(const char* comp_name);
2064
2070 const char* yac_cget_component_metadata_instance( int yac_instance_id,
2071 const char* comp_name);
2072
2077 const char* yac_cget_grid_metadata(const char* grid_name);
2078
2084 const char* yac_cget_grid_metadata_instance( int yac_instance_id,
2085 const char* grid_name);
2086
2093 const char* yac_cget_field_metadata( const char* comp_name,
2094 const char* grid_name,
2095 const char* field_name);
2096
2104 const char* yac_cget_field_metadata_instance( int yac_instance_id,
2105 const char* comp_name,
2106 const char* grid_name,
2107 const char* field_name);
2108
2109/* ---------------------------------------------------------------------- */
2110
2121 const char* yac_cget_field_timestep ( const char* comp_name,
2122 const char* grid_name,
2123 const char* field_name );
2124
2136 const char* yac_cget_field_timestep_instance ( int yac_instance_id,
2137 const char* comp_name,
2138 const char* grid_name,
2139 const char* field_name );
2140
2152 double yac_cget_field_frac_mask_fallback_value( const char* comp_name,
2153 const char* grid_name,
2154 const char* field_name);
2155
2165 int yac_cget_field_collection_size( const char* comp_name,
2166 const char* grid_name,
2167 const char* field_name);
2168
2182 int yac_instance_id,
2183 const char* comp_name,
2184 const char* grid_name,
2185 const char* field_name );
2186
2198 int yac_instance_id,
2199 const char* comp_name,
2200 const char* grid_name,
2201 const char* field_name);
2202
2217 int yac_cget_field_role ( const char* comp_name,
2218 const char* grid_name,
2219 const char* field_name );
2220
2236 int yac_cget_field_role_instance ( int yac_instance_id,
2237 const char* comp_name,
2238 const char* grid_name,
2239 const char* field_name );
2240
2241/* --------------------------------------------------------------------------------
2242 auxiliary routines
2243 -------------------------------------------------------------------------------- */
2244
2245#ifndef __GNUC__
2246# define __attribute__(x) /*NOTHING*/
2247#endif
2248
2249// prevent warning if compile with cython
2250#ifdef YAC_CYTHON
2251# define __attribute__(x) /*NOTHING*/
2252#endif
2253
2257typedef void (*yac_abort_func)(MPI_Comm comm, const char *msg,
2258 const char *source, int line)
2259 __attribute__((noreturn));
2260
2261
2262#ifdef YAC_CYTHON
2263# undef __attribute__
2264#endif
2265
2273 void yac_abort( MPI_Comm comm,
2274 const char *msg,
2275 const char *source,
2276 int line)
2277 __attribute__((noreturn));
2278
2285 void yac_abort_message( char const *msg,
2286 const char *source,
2287 int line);
2288
2292
2300
2305
2310
2314 void yac_set_default_comm(MPI_Comm comm);
2315
2316/* -------------------------------------------------------------------------------- */
2317
2325 size_t yac_cget_grid_size ( int location,
2326 int grid_id );
2327
2328/* -------------------------------------------------------------------------------- */
2329
2336 size_t yac_cget_points_size ( int points_id );
2337
2338/* -------------------------------------------------------------------------------- */
2339
2343 void yac_cget_interp_stack_config(int * interp_stack_config_id);
2344
2348 void yac_cfree_interp_stack_config(int interp_stack_config_id);
2349
2355 void yac_cadd_interp_stack_config_average( int interp_stack_config_id,
2356 int reduction_type,
2357 int partial_coverage);
2358
2365 void yac_cadd_interp_stack_config_ncc( int interp_stack_config_id,
2366 int weight_type,
2367 int partial_coverage);
2368
2377 void yac_cadd_interp_stack_config_nnn( int interp_stack_config_id,
2378 int type,
2379 size_t n,
2380 double scale);
2381
2390 int interp_stack_config_id,
2391 int order,
2392 int enforced_conserv,
2393 int partial_coverage,
2394 int normalisation);
2395
2409 int interp_stack_config_id,
2410 double spread_distance,
2411 double max_search_distance,
2412 int weight_type,
2413 int scale_type,
2414 double src_sphere_radius,
2415 double tgt_sphere_radius);
2416
2420 void yac_cadd_interp_stack_config_hcsbb(int interp_stack_config_id);
2421
2433 int interp_stack_config_id,
2434 char const * filename,
2435 char const * src_grid_name,
2436 char const * tgt_grid_name);
2437
2442 void yac_cadd_interp_stack_config_fixed( int interp_stack_config_id,
2443 double value);
2444
2454 void yac_cadd_interp_stack_config_check( int interp_stack_config_id,
2455 char const * constructor_key,
2456 char const * do_search_key);
2457
2462 void yac_cadd_interp_stack_config_creep( int interp_stack_config_id,
2463 int creep_distance);
2464
2472 int interp_stack_config_id,
2473 char const * func_compute_weights_key);
2474
2544#ifndef TYPEDEF_YAC_FUNC_COMPUTE_WEIGHTS
2545#define TYPEDEF_YAC_FUNC_COMPUTE_WEIGHTS
2546
2547// Remark: make sure that this typedef is consistent with the one in interp_method_callback.h
2549 double const tgt_coords[3], int src_cell_id, size_t src_cell_idx,
2550 int const ** global_results_points, double ** result_weights,
2551 size_t * result_count, void * user_data);
2552#endif
2553
2566 yac_func_compute_weights compute_weights_callback,
2567 void * user_data,
2568 char const * key);
2569
2570#endif // YAC_H
void * user_data
char * key
struct @8::@9 value
enum callback_type type
int const YAC_YEAR_OF_365_DAYS
Definition yac.c:62
void yac_cdef_comps(const char **comp_names, int num_comps, int *comp_ids)
Definition yac.c:781
int const YAC_REDUCTION_TIME_AVERAGE
Definition yac.c:47
void yac_cenddef_and_emit_config(int emit_flags, char **config)
Definition yac.c:2855
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:881
void yac_cread_config_yaml_instance(int yac_instance_id, const char *yaml_file)
Definition yac.c:448
void yac_cinit_comm_dummy(MPI_Comm comm)
Definition yac.c:412
void yac_cget_grid_names(int nbr_grids, const char **grid_names)
Definition yac.c:2989
void yac_cadd_interp_stack_config_ncc(int interp_stack_config_id, int weight_type, int partial_coverage)
Definition yac.c:3401
void yac_cread_config_json_instance(int yac_instance_id, const char *json_file)
Definition yac.c:462
void yac_cget_ext_couple_config_scale_factor(int ext_couple_config_id, double *scale_factor)
Definition yac.c:1316
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:1206
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:2669
int const YAC_NCC_AVG
Definition yac.c:69
void yac_cget_async(int const field_id, int const collection_size, double **recv_field, int *info, int *ierror)
Definition yac.c:1859
void yac_cadd_interp_stack_config_spmap(int interp_stack_config_id, double spread_distance, double max_search_distance, int weight_type, int scale_type, double src_sphere_radius, double tgt_sphere_radius)
Definition yac.c:3458
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:2035
int YAC_YAML_EMITTER_JSON
emit to JSON format
Definition config_yaml.c:47
void yac_cenddef(void)
Definition yac.c:2840
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:1550
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)
Definition yac.c:1128
int const YAC_ACTION_OUT_OF_BOUND
Definition yac.c:43
void yac_cget_ext_couple_config_mapping_side(int ext_couple_config_id, int *mapping_side)
Definition yac.c:1293
void yac_cput_(int const field_id, int const collection_size, double *send_field, int *info, int *ierror)
Definition yac.c:1917
int const YAC_SPMAP_SRCAREA
Definition yac.c:85
char * yac_cget_start_datetime_instance(int yac_instance_id)
Definition yac.c:581
void yac_cset_global_index(int const *global_index, int location, int grid_id)
Definition yac.c:3244
int const YAC_NNN_RBF
Definition yac.c:75
void yac_cdef_datetime_instance(int yac_instance_id, const char *start_datetime, const char *end_datetime)
Definition yac.c:545
int yac_cget_role_from_field_id(int field_id)
Definition yac.c:3088
int yac_cget_nbr_grids_instance(int yac_instance_id)
Definition yac.c:2900
void yac_cfree_ext_couple_config(int ext_couple_config_id)
Definition yac.c:1241
const char * yac_cget_grid_metadata_instance(int yac_instance_id, const char *grid_name)
Definition yac.c:1193
char * yac_cget_end_datetime_instance(int yac_instance_id)
Definition yac.c:596
void yac_cdef_datetime(const char *start_datetime, const char *end_datetime)
Definition yac.c:554
int const YAC_SPMAP_INVTGTAREA
Definition yac.c:86
void yac_cget_ext_couple_config_mask_name(int ext_couple_config_id, char const **tgt_mask_name)
Definition yac.c:1394
int const YAC_LOCATION_CELL
Definition yac.c:27
int const YAC_REDUCTION_TIME_MINIMUM
Definition yac.c:48
void yac_cset_ext_couple_config_tgt_mask_name(int ext_couple_config_id, char const *tgt_mask_name)
Definition yac.c:1387
void yac_cget_async_(int const field_id, int const collection_size, double *recv_field, int *info, int *ierror)
Definition yac.c:1841
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:1085
void yac_cdef_grid_metadata(const char *grid_name, const char *metadata)
Definition yac.c:1159
int const YAC_TIME_UNIT_MINUTE
Definition yac.c:53
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:3190
void yac_cget_grid_names_instance(int yac_instance_id, int nbr_grids, const char **grid_names)
Definition yac.c:2978
void yac_cset_ext_couple_config_scale_factor(int ext_couple_config_id, double scale_factor)
Definition yac.c:1309
int const YAC_NCC_DIST
Definition yac.c:70
void yac_cadd_interp_stack_config_creep(int interp_stack_config_id, int creep_distance)
Definition yac.c:3532
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:984
void yac_cdef_component_metadata(const char *comp_name, const char *metadata)
Definition yac.c:1145
int const YAC_TIME_UNIT_YEAR
Definition yac.c:57
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:2804
int yac_cget_field_role(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:3163
void yac_ccleanup()
Definition yac.c:505
int const YAC_AVG_ARITHMETIC
Definition yac.c:65
void yac_set_default_comm(MPI_Comm comm)
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:1938
void yac_cadd_compute_weights_callback(yac_func_compute_weights compute_weights_callback, void *user_data, char const *key)
Definition yac.c:3555
void yac_cmpi_handshake(MPI_Comm comm, size_t n, char const **group_names, MPI_Comm *group_comms)
Definition yac.c:327
void yac_cput(int const field_id, int const collection_size, double ***const send_field, int *info, int *ierror)
Definition yac.c:2514
int const YAC_REDUCTION_TIME_MAXIMUM
Definition yac.c:49
int const YAC_TIME_UNIT_MILLISECOND
Definition yac.c:51
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:2866
int yac_cget_comp_nbr_grids_instance(int yac_instance_id, const char *comp_name)
Definition yac.c:2913
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:3226
const char * yac_cget_timestep_from_field_id(int field_id)
Definition yac.c:3074
int yac_cget_nbr_fields(const char *comp_name, const char *grid_name)
Definition yac.c:2956
int const YAC_NNN_GAUSS
Definition yac.c:74
void yac_csync_def_instance(int yac_instance_id)
Definition yac.c:2821
void yac_csync_def(void)
Definition yac.c:2826
void(* yac_abort_func)(MPI_Comm comm, const char *msg, const char *source, int line) __attribute__((noreturn))
Definition yac.h:2257
int const YAC_TIME_UNIT_HOUR
Definition yac.c:54
void yac_cinit(void)
Definition yac.c:402
int const YAC_YEAR_OF_360_DAYS
Definition yac.c:63
void yac_cfinalize_instance(int yac_instance_id)
Definition yac.c:524
void yac_cfinalize()
Definition yac.c:533
const char * yac_cget_field_name_from_field_id(int field_id)
Definition yac.c:3067
void yac_cadd_interp_stack_config_check(int interp_stack_config_id, char const *constructor_key, char const *do_search_key)
Definition yac.c:3520
void yac_cenddef_instance(int yac_instance_id)
Definition yac.c:2834
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:1362
int yac_cget_nbr_comps_instance(int yac_instance_id)
Definition yac.c:2887
int yac_cget_nbr_fields_instance(int yac_instance_id, const char *comp_name, const char *grid_name)
Definition yac.c:2936
void yac_cdef_comp(const char *comp_name, int *comp_id)
Definition yac.c:795
void yac_cget_ext_couple_config(int *ext_couple_config_id)
Definition yac.c:1233
void yac_cdef_grid_metadata_instance(int yac_instance_id, const char *grid_name, const char *metadata)
Definition yac.c:1150
void yac_cset_ext_couple_config_weight_file(int ext_couple_config_id, char const *weight_file)
Definition yac.c:1260
const char * yac_cget_component_metadata_instance(int yac_instance_id, const char *comp_name)
Definition yac.c:1180
int const YAC_LOCATION_CORNER
Definition yac.c:28
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:1444
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:3097
void yac_cset_ext_couple_config_scale_summand(int ext_couple_config_id, double scale_summand)
Definition yac.c:1332
void yac_cget_comp_comm(int comp_id, MPI_Comm *comp_comm)
Definition yac.c:638
const char * yac_cget_field_datetime(int field_id)
Definition yac.c:1654
int const YAC_SPMAP_AVG
Definition yac.c:81
int const YAC_CONSERV_DESTAREA
Definition yac.c:78
int const YAC_EXCHANGE_TYPE_SOURCE
Definition yac.c:32
void yac_cupdate(int field_id)
Definition yac.c:1674
void yac_cget_action(int field_id, int *action)
Definition yac.c:1611
size_t yac_cget_grid_size(int location, int grid_id)
Definition yac.c:3325
int const YAC_REDUCTION_TIME_ACCUMULATE
Definition yac.c:46
void yac_abort(MPI_Comm comm, const char *msg, const char *source, int line) __attribute__((noreturn))
int yac_cget_field_id(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:2879
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:1370
const char * yac_cget_grid_name_from_field_id(int field_id)
Definition yac.c:3059
int yac_cget_collection_size_from_field_id(int field_id)
Definition yac.c:3081
void yac_cdef_comps_instance(int yac_instance_id, const char **comp_names, int num_comps, int *comp_ids)
Definition yac.c:756
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:3172
int const YAC_EXCHANGE_TYPE_NONE
Definition yac.c:31
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:1429
void yac_cget_comps_comm(const char **comp_names, int num_comps, MPI_Comm *comps_comm)
Definition yac.c:688
void yac_cinit_comm_instance(MPI_Comm comm, int *yac_instance_id)
Definition yac.c:364
void yac_cadd_interp_stack_config_nnn(int interp_stack_config_id, int type, size_t n, double scale)
Definition yac.c:3419
int const YAC_EXCHANGE_TYPE_TARGET
Definition yac.c:33
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:2425
const char * yac_cget_grid_metadata(const char *grid_name)
Definition yac.c:1201
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:1116
char * yac_cget_start_datetime(void)
Definition yac.c:588
int const YAC_TIME_UNIT_MONTH
Definition yac.c:56
int const YAC_TIME_UNIT_SECOND
Definition yac.c:52
void yac_cget(int const field_id, int const collection_size, double **recv_field, int *info, int *ierror)
Definition yac.c:1850
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:3439
void yac_cget_comps_comm_instance(int yac_instance_id, const char **comp_names, int num_comps, MPI_Comm *comps_comm)
Definition yac.c:678
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:3208
char * yac_cget_version(void)
Definition yac.c:614
int const YAC_LOCATION_EDGE
Definition yac.c:29
void yac_cput_ptr_(int const field_id, int const collection_size, double **send_field, int *info, int *ierror)
Definition yac.c:2015
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:2603
#define __attribute__(x)
Definition yac.h:2246
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:2561
int yac_cget_default_instance_id()
Definition yac.c:359
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:2633
int YAC_YAML_EMITTER_DEFAULT
emit to YAML format
Definition config_yaml.c:46
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:2548
const char * yac_cget_component_name_from_field_id(int field_id)
Definition yac.c:3052
int yac_cget_field_collection_size(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:3145
void yac_restore_default_abort_handler(void)
int const YAC_SPMAP_FRACAREA
Definition yac.c:87
void yac_cdef_component_metadata_instance(int yac_instance_id, const char *comp_name, const char *metadata)
Definition yac.c:1137
void yac_cenddef_and_emit_config_instance(int yac_instance_id, int emit_flags, char **config)
Definition yac.c:2846
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:603
void yac_cread_config_yaml(const char *yaml_file)
Definition yac.c:457
int const YAC_ACTION_NONE
Definition yac.c:35
void yac_cdef_calendar(int calendar)
Definition yac.c:562
int const YAC_SPMAP_NONE
Definition yac.c:84
void yac_cset_core_mask(int const *is_core, int location, int grid_id)
Definition yac.c:3285
void yac_cwait(int field_id)
Definition yac.c:2090
void yac_cget_comp_names(int nbr_comps, const char **comp_names)
Definition yac.c:2972
const char * yac_cget_field_metadata(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:1215
int const YAC_ACTION_REDUCTION
Definition yac.c:36
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:1012
int const YAC_ACTION_GET_FOR_RESTART
Definition yac.c:39
int const YAC_PROLEPTIC_GREGORIAN
Definition yac.c:61
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:919
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:2994
double yac_cget_field_frac_mask_fallback_value(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:3137
void yac_cset_mask(int const *is_valid, int points_id)
Definition yac.c:993
void yac_cadd_interp_stack_config_hcsbb(int interp_stack_config_id)
Definition yac.c:3488
void yac_cdef_comp_instance(int yac_instance_id, const char *comp_name, int *comp_id)
Definition yac.c:789
void yac_cadd_interp_stack_config_fixed(int interp_stack_config_id, double value)
Definition yac.c:3510
int const YAC_TIME_UNIT_DAY
Definition yac.c:55
int yac_cget_comp_nbr_grids(const char *comp_name)
Definition yac.c:2931
int const YAC_ACTION_COUPLING
Definition yac.c:37
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:3116
int const YAC_TIME_UNIT_ISO_FORMAT
Definition yac.c:58
void yac_cpredef_comp_instance(int yac_instance_id, char const *comp_name, int *comp_id)
Definition yac.c:718
int const YAC_AVG_DIST
Definition yac.c:66
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:3152
int const YAC_CONSERV_FRACAREA
Definition yac.c:79
void yac_cadd_interp_stack_config_user_callback(int interp_stack_config_id, char const *func_compute_weights_key)
Definition yac.c:3542
void yac_cset_ext_couple_config_mapping_side(int ext_couple_config_id, int mapping_side)
Definition yac.c:1286
void yac_ccleanup_instance(int yac_instance_id)
Definition yac.c:497
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:3127
void yac_cfree_interp_stack_config(int interp_stack_config_id)
Definition yac.c:3362
int const YAC_CALENDAR_NOT_SET
Definition yac.c:60
int const YAC_NNN_AVG
Definition yac.c:72
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:845
void yac_cadd_interp_stack_config_user_file(int interp_stack_config_id, char const *filename, char const *src_grid_name, char const *tgt_grid_name)
Definition yac.c:3497
void yac_cget_ext_couple_config_scale_summand(int ext_couple_config_id, double *scale_summand)
Definition yac.c:1339
void yac_cinit_instance(int *yac_instance_id)
Definition yac.c:390
void yac_ctest(int field_id, int *flag)
Definition yac.c:2066
void yac_cget_interp_stack_config(int *interp_stack_config_id)
Definition yac.c:3348
void yac_cinit_dummy(void)
Definition yac.c:428
void yac_cadd_interp_stack_config_average(int interp_stack_config_id, int reduction_type, int partial_coverage)
Definition yac.c:3382
int const YAC_ACTION_PUT_FOR_RESTART
Definition yac.c:40
int const YAC_NNN_ZERO
Definition yac.c:76
void yac_cread_config_json(const char *json_file)
Definition yac.c:471
void yac_cpredef_comp(char const *comp_name, int *comp_id)
Definition yac.c:751
int const YAC_SPMAP_DIST
Definition yac.c:82
size_t yac_cget_points_size(int points_id)
Definition yac.c:3336
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:1459
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:1476
int yac_cget_nbr_comps(void)
Definition yac.c:2895
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:1164
int const YAC_AVG_BARY
Definition yac.c:67
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:1832
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:965
int const YAC_NNN_DIST
Definition yac.c:73
void yac_cget_comp_grid_names(const char *comp_name, int nbr_grids, const char **grid_names)
Definition yac.c:3013
int yac_cget_nbr_grids()
Definition yac.c:2908
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:3019
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:2528
int const YAC_REDUCTION_TIME_NONE
Definition yac.c:45
void yac_cget_comp_names_instance(int yac_instance_id, int nbr_comps, const char **comp_names)
Definition yac.c:2961
void yac_cdef_field_metadata(const char *comp_name, const char *grid_name, const char *field_name, const char *metadata)
Definition yac.c:1173
const char * yac_cget_component_metadata(const char *comp_name)
Definition yac.c:1188
const char * yac_cget_field_timestep(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:3109
void yac_cget_field_names(const char *comp_name, const char *grid_name, int nbr_fields, const char **field_names)
Definition yac.c:3045
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)
Definition yac.c:1267
void yac_cinit_comm(MPI_Comm comm)
Definition yac.c:376