YetAnotherCoupler 3.5.2
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 const YAC_YAML_EMITTER_DEFAULT;
72extern int const YAC_YAML_EMITTER_JSON;
73
74extern int const YAC_CONFIG_OUTPUT_FORMAT_YAML;
75extern int const YAC_CONFIG_OUTPUT_FORMAT_JSON;
76
77extern int const YAC_CONFIG_OUTPUT_SYNC_LOC_DEF_COMP; // after component definition
78extern int const YAC_CONFIG_OUTPUT_SYNC_LOC_SYNC_DEF; // after synchronization of definition
79extern int const YAC_CONFIG_OUTPUT_SYNC_LOC_ENDDEF; // after end of definitions
80
81#define YAC_MAX_CHARLEN (132)
82
143/* -----------------------------------------------------------------------------
144
145 C and Fortran description of the user API
146
147 ----------------------------------------------------------------------------- */
148
175 void yac_cmpi_handshake( MPI_Comm comm,
176 size_t n,
177 char const** group_names,
178 MPI_Comm * group_comms );
179
189
198 void yac_cinit (void);
199
209 void yac_cinit_instance ( int * yac_instance_id );
210
220 void yac_cinit_comm ( MPI_Comm comm );
221
231 void yac_cinit_comm_instance ( MPI_Comm comm,
232 int * yac_instance_id );
233
234/* -------------------------------------------------------------------------------- */
235
241 void yac_cinit_dummy(void);
242
251 void yac_cinit_comm_dummy ( MPI_Comm comm );
252
253/* -------------------------------------------------------------------------------- */
254
261 void yac_cread_config_yaml_instance( int yac_instance_id,
262 const char * yaml_file);
263
268 void yac_cread_config_yaml(const char * yaml_file);
269
276 void yac_cread_config_json_instance( int yac_instance_id,
277 const char * json_file);
278
283 void yac_cread_config_json( const char * json_file );
284
285/* -------------------------------------------------------------------------------- */
286
301 void yac_cset_config_output_file_instance( int yac_instance_id,
302 const char * filename,
303 int fileformat,
304 int sync_location,
305 int include_definitions);
306
320 void yac_cset_config_output_file( const char * filename,
321 int fileformat,
322 int sync_location,
323 int include_definitions);
324
325/* -------------------------------------------------------------------------------- */
326
334 void yac_cset_grid_output_file_instance( int yac_instance_id,
335 const char * gridname,
336 const char * filename);
337
344 void yac_cset_grid_output_file( const char * gridname,
345 const char * filename);
346
347/* -------------------------------------------------------------------------------- */
348
355 void yac_ccleanup ();
356
363 void yac_ccleanup_instance ( int yac_instance_id );
364
365/* -------------------------------------------------------------------------------- */
366
370 void yac_cfinalize ();
371
376 void yac_cfinalize_instance (int yac_instance_id);
377
378/* -------------------------------------------------------------------------------- */
379
386 void yac_cdef_datetime ( const char * start_datetime,
387 const char * end_datetime );
388
396 void yac_cdef_datetime_instance ( int yac_instance_id,
397 const char * start_datetime,
398 const char * end_datetime );
399
405 void yac_cdef_calendar ( int calendar );
406
410 int yac_cget_calendar ( );
411
412/* -------------------------------------------------------------------------------- */
413
421 void yac_cget_groupcomm( MPI_Comm * group_comm );
422
431 void yac_cget_groupcomm_instance( int yac_instance_id,
432 MPI_Comm * group_comm );
433
434/* -------------------------------------------------------------------------------- */
435
444 void yac_cpredef_comp( char const * comp_name,
445 int * comp_id );
446
456 void yac_cpredef_comp_instance( int yac_instance_id,
457 char const * comp_name,
458 int * comp_id );
459
460/* -------------------------------------------------------------------------------- */
461
472 void yac_cdef_comp ( const char * comp_name,
473 int * comp_id );
474
487 void yac_cdef_comp_instance ( int yac_instance_id,
488 const char * comp_name,
489 int * comp_id );
490
491/* -------------------------------------------------------------------------------- */
492
504 void yac_cdef_comps ( const char ** comp_names,
505 int num_comps,
506 int * comp_ids );
507
520 void yac_cdef_comps_instance ( int yac_instance_id,
521 const char ** comp_names,
522 int num_comps,
523 int * comp_ids );
524
525/* -------------------------------------------------------------------------------- */
526
534 void yac_cget_comp_comm ( int comp_id,
535 MPI_Comm *comp_comm );
536
537/* -------------------------------------------------------------------------------- */
538
551 void yac_cget_comps_comm ( const char ** comp_names,
552 int num_comps,
553 MPI_Comm * comps_comm);
554
567 void yac_cget_comps_comm_instance ( int yac_instance_id,
568 const char ** comp_names,
569 int num_comps,
570 MPI_Comm * comps_comm );
571
572/* -------------------------------------------------------------------------------- */
573
591 void yac_cdef_points_reg2d ( int const grid_id,
592 int const *nbr_points,
593 int const location,
594 double const *x_points,
595 double const *y_points,
596 int *point_id );
597
598/* -------------------------------------------------------------------------------- */
599
617 void yac_cdef_points_curve2d ( int const grid_id,
618 int const *nbr_points,
619 int const location,
620 double const *x_points,
621 double const *y_points,
622 int *point_id );
623
624/* -------------------------------------------------------------------------------- */
625
639 void yac_cdef_points_unstruct ( int const grid_id,
640 int const nbr_points,
641 int const location,
642 double const *x_points,
643 double const *y_points,
644 int *point_id );
645
646/* -------------------------------------------------------------------------------- */
647
697 void yac_cdef_grid_reg2d ( const char * grid_name,
698 int nbr_vertices[2],
699 int cyclic[2],
700 double *x_vertices,
701 double *y_vertices,
702 int *grid_id);
703
704/* -------------------------------------------------------------------------------- */
705
755 void yac_cdef_grid_curve2d ( const char * grid_name,
756 int nbr_vertices[2],
757 int cyclic[2],
758 double *x_vertices,
759 double *y_vertices,
760 int *grid_id);
761
762/* -------------------------------------------------------------------------------- */
763
779 void yac_cdef_grid_unstruct ( const char * grid_name,
780 int nbr_vertices,
781 int nbr_cells,
782 int *num_vertices_per_cell,
783 double *x_vertices,
784 double *y_vertices,
785 int *cell_to_vertex,
786 int *grid_id);
787
788/* -------------------------------------------------------------------------------- */
789
806 void yac_cdef_grid_unstruct_ll ( const char * grid_name,
807 int nbr_vertices,
808 int nbr_cells,
809 int *num_vertices_per_cell,
810 double *x_vertices,
811 double *y_vertices,
812 int *cell_to_vertex,
813 int *grid_id);
814
815/* -------------------------------------------------------------------------------- */
816
833 void yac_cdef_grid_unstruct_edge ( const char * grid_name,
834 int nbr_vertices,
835 int nbr_cells,
836 int nbr_edges,
837 int *num_edges_per_cell,
838 double *x_vertices,
839 double *y_vertices,
840 int *cell_to_edge,
841 int *edge_to_vertex,
842 int *grid_id);
843
844/* -------------------------------------------------------------------------------- */
845
863 void yac_cdef_grid_unstruct_edge_ll ( const char * grid_name,
864 int nbr_vertices,
865 int nbr_cells,
866 int nbr_edges,
867 int *num_edges_per_cell,
868 double *x_vertices,
869 double *y_vertices,
870 int *cell_to_edge,
871 int *edge_to_vertex,
872 int *grid_id);
873
874/* -------------------------------------------------------------------------------- */
875
884 void yac_cdef_grid_cloud ( const char * grid_name,
885 int nbr_points,
886 double *x_points,
887 double *y_points,
888 int *grid_id);
889
890/* -------------------------------------------------------------------------------- */
891
901 void yac_cset_global_index ( int const * global_index,
902 int location,
903 int grid_id);
904
905/* -------------------------------------------------------------------------------- */
906
919 void yac_cset_core_mask ( int const * is_core,
920 int location,
921 int grid_id);
922
923/* -------------------------------------------------------------------------------- */
924
931 void yac_cset_mask ( int const * is_valid,
932 int points_id );
933
934/* -------------------------------------------------------------------------------- */
935
945 void yac_cdef_mask ( int const grid_id,
946 int const nbr_points,
947 int const location,
948 int const * is_valid,
949 int *mask_id );
950
951/* -------------------------------------------------------------------------------- */
952
963 void yac_cdef_mask_named ( int const grid_id,
964 int const nbr_points,
965 int const location,
966 int const * is_valid,
967 char const * name,
968 int *mask_id );
969
970/* -------------------------------------------------------------------------------- */
971
990 void yac_cdef_field ( char const * field_name,
991 int const component_id,
992 int const * point_ids,
993 int const num_pointsets,
994 int collection_size,
995 const char* timestep,
996 int time_unit,
997 int * field_id );
998
999/* -------------------------------------------------------------------------------- */
1000
1020 void yac_cdef_field_mask ( char const * field_name,
1021 int const component_id,
1022 int const * point_ids,
1023 int const * mask_ids,
1024 int const num_pointsets,
1025 int collection_size,
1026 const char* timestep,
1027 int time_unit,
1028 int * field_id );
1029
1030/* -------------------------------------------------------------------------- */
1031
1044 void yac_cenable_field_frac_mask( const char* comp_name,
1045 const char* grid_name,
1046 const char* field_name,
1047 double frac_mask_fallback_value);
1048
1063 int yac_instance_id,
1064 const char* comp_name,
1065 const char* grid_name,
1066 const char* field_name,
1067 double frac_mask_fallback_value);
1068
1069/* -------------------------------------------------------------------------- */
1070
1075 void yac_cdef_component_metadata( const char* comp_name,
1076 const char* metadata);
1077
1083 void yac_cdef_component_metadata_instance( int yac_instance_id,
1084 const char* comp_name,
1085 const char* metadata);
1086
1091 void yac_cdef_grid_metadata( const char* grid_name,
1092 const char* metadata);
1093
1099 void yac_cdef_grid_metadata_instance( int yac_instance_id,
1100 const char* grid_name,
1101 const char* metadata);
1102
1109 void yac_cdef_field_metadata( const char* comp_name,
1110 const char* grid_name,
1111 const char* field_name,
1112 const char* metadata);
1113
1121 void yac_cdef_field_metadata_instance( int yac_instance_id,
1122 const char* comp_name,
1123 const char* grid_name,
1124 const char* field_name,
1125 const char* metadata);
1126
1127/* -------------------------------------------------------------------------- */
1128
1145 void yac_cget_action( int field_id,
1146 int * action);
1147
1153 const char * yac_cget_field_datetime(int field_id);
1154
1155/* -------------------------------------------------------------------------- */
1156
1168 void yac_cupdate(int field_id);
1169
1170/* -------------------------------------------------------------------------- */
1171
1176 void yac_cget_ext_couple_config(int * ext_couple_config_id);
1177
1181 void yac_cfree_ext_couple_config(int ext_couple_config_id);
1182
1191 void yac_cset_ext_couple_config_weight_file( int ext_couple_config_id,
1192 char const * weight_file);
1193
1199 void yac_cget_ext_couple_config_weight_file( int ext_couple_config_id,
1200 char const ** weight_file);
1201
1207 void yac_cset_ext_couple_config_mapping_side( int ext_couple_config_id,
1208 int mapping_side);
1209
1214 void yac_cget_ext_couple_config_mapping_side( int ext_couple_config_id,
1215 int * mapping_side);
1216
1221 void yac_cset_ext_couple_config_scale_factor( int ext_couple_config_id,
1222 double scale_factor);
1223
1228 void yac_cget_ext_couple_config_scale_factor( int ext_couple_config_id,
1229 double * scale_factor);
1230
1235 void yac_cset_ext_couple_config_scale_summand( int ext_couple_config_id,
1236 double scale_summand);
1237
1242 void yac_cget_ext_couple_config_scale_summand( int ext_couple_config_id,
1243 double * scale_summand);
1244
1251 int ext_couple_config_id,
1252 size_t num_src_mask_names,
1253 char const * const * src_mask_names);
1254
1261 int ext_couple_config_id,
1262 size_t * num_src_mask_names,
1263 char const * const ** src_mask_names);
1264
1269 void yac_cset_ext_couple_config_tgt_mask_name( int ext_couple_config_id,
1270 char const * tgt_mask_name);
1271
1276 void yac_cget_ext_couple_config_tgt_mask_name( int ext_couple_config_id,
1277 char const ** tgt_mask_name);
1278
1284 int ext_couple_config_id, char const * yaxt_exchanger_name);
1285
1291 int ext_couple_config_id, char const ** yaxt_exchanger_name);
1292
1293/* -------------------------------------------------------------------------- */
1294
1315 void yac_cdef_couple_custom_instance( int yac_instance_id,
1316 char const * src_comp_name,
1317 char const * src_grid_name,
1318 char const * src_field_name,
1319 char const * tgt_comp_name,
1320 char const * tgt_grid_name,
1321 char const * tgt_field_name,
1322 char const * coupling_timestep,
1323 int time_unit,
1324 int time_reduction,
1325 int interp_stack_config_id,
1326 int src_lag,
1327 int tgt_lag,
1328 int ext_couple_config_id);
1329
1350 void yac_cdef_couple_custom( char const * src_comp_name,
1351 char const * src_grid_name,
1352 char const * src_field_name,
1353 char const * tgt_comp_name,
1354 char const * tgt_grid_name,
1355 char const * tgt_field_name,
1356 char const * coupling_timestep,
1357 int time_unit,
1358 int time_reduction,
1359 int interp_stack_config_id,
1360 int src_lag,
1361 int tgt_lag,
1362 int ext_couple_config_id);
1363
1364/* -------------------------------------------------------------------------- */
1365
1385 void yac_cdef_couple_instance( int yac_instance_id,
1386 char const * src_comp_name,
1387 char const * src_grid_name,
1388 char const * src_field_name,
1389 char const * tgt_comp_name,
1390 char const * tgt_grid_name,
1391 char const * tgt_field_name,
1392 char const * coupling_timestep,
1393 int time_unit,
1394 int time_reduction,
1395 int interp_stack_config_id,
1396 int src_lag,
1397 int tgt_lag);
1398
1417 void yac_cdef_couple( char const * src_comp_name,
1418 char const * src_grid_name,
1419 char const * src_field_name,
1420 char const * tgt_comp_name,
1421 char const * tgt_grid_name,
1422 char const * tgt_field_name,
1423 char const * coupling_timestep,
1424 int time_unit,
1425 int time_reduction,
1426 int interp_stack_config_id,
1427 int src_lag,
1428 int tgt_lag);
1429
1430/* -------------------------------------------------------------------------------- */
1431
1442 void yac_ccheck_field_dimensions ( int field_id,
1443 int collection_size,
1444 int num_pointsets,
1445 int const * pointset_sizes );
1446
1447/* -------------------------------------------------------------------------------- */
1448
1459 void yac_cget_ ( int const field_id,
1460 int const collection_size,
1461 double *recv_field,
1462 int *info,
1463 int *ierror );
1464
1474 void yac_cget ( int const field_id,
1475 int const collection_size,
1476 double **recv_field,
1477 int *info,
1478 int *ierror );
1479
1494 void yac_cget_async_ ( int const field_id,
1495 int const collection_size,
1496 double *recv_field,
1497 int *info,
1498 int *ierror );
1499
1513 void yac_cget_async ( int const field_id,
1514 int const collection_size,
1515 double **recv_field,
1516 int *info,
1517 int *ierror );
1518
1519/* -------------------------------------------------------------------------------- */
1520
1534 void yac_cput_ ( int const field_id,
1535 int const collection_size,
1536 double *send_field,
1537 int *info,
1538 int *ierror );
1539
1552 void yac_cput ( int const field_id,
1553 int const collection_size,
1554 double *** const send_field,
1555 int *info,
1556 int *ierror );
1557
1558/* -------------------------------------------------------------------------------- */
1559
1578 void yac_cput_frac_ ( int const field_id,
1579 int const collection_size,
1580 double *send_field,
1581 double *send_frac_mask,
1582 int *info,
1583 int *ierror );
1584
1601 void yac_cput_frac ( int const field_id,
1602 int const collection_size,
1603 double *** const send_field,
1604 double *** const send_frac_mask,
1605 int *info,
1606 int *ierror );
1607
1608/* -------------------------------------------------------------------------------- */
1609
1621 void yac_cput_ptr_ ( int const field_id,
1622 int const collection_size,
1623 double ** send_field,
1624 int *info,
1625 int *ierror );
1626
1627/* -------------------------------------------------------------------------------- */
1628
1643 void yac_cput_frac_ptr_ ( int const field_id,
1644 int const collection_size,
1645 double ** send_field,
1646 double ** send_frac_mask,
1647 int *info,
1648 int *ierror );
1649
1650/* -------------------------------------------------------------------------------- */
1651
1670 void yac_cexchange_ ( int const send_field_id,
1671 int const recv_field_id,
1672 int const collection_size,
1673 double *send_field ,
1674 double *recv_field,
1675 int *send_info,
1676 int *recv_info,
1677 int *ierror );
1678
1679
1696 void yac_cexchange ( int const send_field_id,
1697 int const recv_field_id,
1698 int const collection_size,
1699 double *** const send_field,
1700 double ** recv_field,
1701 int *send_info,
1702 int *recv_info,
1703 int *ierror );
1704
1705/* -------------------------------------------------------------------------------- */
1706
1730 void yac_cexchange_frac_ ( int const send_field_id,
1731 int const recv_field_id,
1732 int const collection_size,
1733 double *send_field,
1734 double *send_frac_mask,
1735 double *recv_field,
1736 int *send_info,
1737 int *recv_info,
1738 int *ierror );
1739
1740
1761 void yac_cexchange_frac ( int const send_field_id,
1762 int const recv_field_id,
1763 int const collection_size,
1764 double *** const send_field,
1765 double *** const send_frac_mask,
1766 double ** recv_field,
1767 int *send_info,
1768 int *recv_info,
1769 int *ierror );
1770
1771/* -------------------------------------------------------------------------------- */
1772
1788 void yac_cexchange_ptr_ ( int const send_field_id,
1789 int const recv_field_id,
1790 int const collection_size,
1791 double ** send_field,
1792 double ** recv_field,
1793 int *send_info,
1794 int *recv_info,
1795 int *ierror );
1796
1797/* -------------------------------------------------------------------------------- */
1798
1817 void yac_cexchange_frac_ptr_ ( int const send_field_id,
1818 int const recv_field_id,
1819 int const collection_size,
1820 double ** send_field,
1821 double ** send_frac_mask,
1822 double ** recv_field,
1823 int *send_info,
1824 int *recv_info,
1825 int *ierror );
1826
1827/* -------------------------------------------------------------------------------- */
1828
1838 void yac_ctest ( int field_id, int * flag );
1839
1840/* -------------------------------------------------------------------------------- */
1841
1848 void yac_cwait ( int field_id );
1849
1850/* -------------------------------------------------------------------------------- */
1851
1854 void yac_csync_def ( void );
1855
1860 void yac_csync_def_instance ( int yac_instance_id );
1861
1866 void yac_cenddef ( void );
1867
1874 void yac_cenddef_instance ( int yac_instance_id );
1875
1891 void yac_cenddef_and_emit_config ( int emit_flags,
1892 char ** config );
1893
1908 void yac_cenddef_and_emit_config_instance ( int yac_instance_id,
1909 int emit_flags,
1910 char ** config);
1911
1912/* --------------------------------------------------------------------------------
1913 query routines
1914 -------------------------------------------------------------------------------- */
1915
1919 char * yac_cget_start_datetime ( void );
1920
1926 char * yac_cget_start_datetime_instance ( int yac_instance_id );
1927
1931 char * yac_cget_end_datetime ( void );
1932
1938 char * yac_cget_end_datetime_instance ( int yac_instance_id );
1939
1943 char * yac_cget_version ( void );
1944
1945/* -------------------------------------------------------------------------------- */
1946
1953 int yac_cget_nbr_comps ( void );
1954
1960 int yac_cget_nbr_comps_instance ( int yac_instance_id );
1961
1969 int yac_cget_nbr_grids ( );
1970
1977 int yac_cget_nbr_grids_instance ( int yac_instance_id );
1978
1986 int yac_cget_comp_nbr_grids ( const char* comp_name );
1987
1995 int yac_cget_comp_nbr_grids_instance ( int yac_instance_id,
1996 const char* comp_name );
1997
2006 int yac_cget_nbr_fields ( const char* comp_name,
2007 const char* grid_name );
2008
2018 int yac_cget_nbr_fields_instance ( int yac_instance_id,
2019 const char* comp_name,
2020 const char* grid_name);
2021
2022/* -------------------------------------------------------------------------------- */
2023
2030 void yac_cget_comp_names ( int nbr_comps,
2031 const char ** comp_names );
2032
2040 void yac_cget_comp_names_instance ( int yac_instance_id,
2041 int nbr_comps,
2042 const char ** comp_names );
2043
2052 void yac_cget_grid_names ( int nbr_grids,
2053 const char ** grid_names );
2054
2063 void yac_cget_grid_names_instance ( int yac_instance_id,
2064 int nbr_grids,
2065 const char ** grid_names );
2066
2076 void yac_cget_comp_grid_names ( const char* comp_name,
2077 int nbr_grids,
2078 const char ** grid_names );
2079
2090 void yac_cget_comp_grid_names_instance ( int yac_instance_id,
2091 const char* comp_name,
2092 int nbr_grids,
2093 const char ** grid_names );
2094
2104 void yac_cget_field_names ( const char* comp_name,
2105 const char* grid_name,
2106 int nbr_fields,
2107 const char ** field_names );
2108
2118 void yac_cget_field_names_instance ( int yac_instance_id,
2119 const char * comp_name,
2120 const char* grid_name,
2121 int nbr_fields,
2122 const char ** field_names );
2123
2124/* ---------------------------------------------------------------------- */
2125
2134 const char* yac_cget_component_name_from_field_id ( int field_id );
2135
2144 const char* yac_cget_grid_name_from_field_id ( int field_id );
2145
2154 const char* yac_cget_field_name_from_field_id ( int field_id );
2155
2165 const char* yac_cget_timestep_from_field_id ( int field_id );
2166
2174 int yac_cget_collection_size_from_field_id ( int field_id );
2175
2188 int yac_cget_role_from_field_id ( int field_id );
2189
2198 int yac_cget_field_id( const char* comp_name,
2199 const char* grid_name,
2200 const char* field_name);
2201
2211 int yac_cget_field_id_instance( int yac_instance_id,
2212 const char* comp_name,
2213 const char* grid_name,
2214 const char* field_name);
2215
2216/* ---------------------------------------------------------------------- */
2217
2222 const char* yac_cget_component_metadata(const char* comp_name);
2223
2229 const char* yac_cget_component_metadata_instance( int yac_instance_id,
2230 const char* comp_name);
2231
2236 const char* yac_cget_grid_metadata(const char* grid_name);
2237
2243 const char* yac_cget_grid_metadata_instance( int yac_instance_id,
2244 const char* grid_name);
2245
2252 const char* yac_cget_field_metadata( const char* comp_name,
2253 const char* grid_name,
2254 const char* field_name);
2255
2263 const char* yac_cget_field_metadata_instance( int yac_instance_id,
2264 const char* comp_name,
2265 const char* grid_name,
2266 const char* field_name);
2267
2268/* ---------------------------------------------------------------------- */
2269
2280 const char* yac_cget_field_timestep ( const char* comp_name,
2281 const char* grid_name,
2282 const char* field_name );
2283
2295 const char* yac_cget_field_timestep_instance ( int yac_instance_id,
2296 const char* comp_name,
2297 const char* grid_name,
2298 const char* field_name );
2299
2311 double yac_cget_field_frac_mask_fallback_value( const char* comp_name,
2312 const char* grid_name,
2313 const char* field_name);
2314
2324 int yac_cget_field_collection_size( const char* comp_name,
2325 const char* grid_name,
2326 const char* field_name);
2327
2341 int yac_instance_id,
2342 const char* comp_name,
2343 const char* grid_name,
2344 const char* field_name );
2345
2357 int yac_instance_id,
2358 const char* comp_name,
2359 const char* grid_name,
2360 const char* field_name);
2361
2376 int yac_cget_field_role ( const char* comp_name,
2377 const char* grid_name,
2378 const char* field_name );
2379
2395 int yac_cget_field_role_instance ( int yac_instance_id,
2396 const char* comp_name,
2397 const char* grid_name,
2398 const char* field_name );
2399
2411 void yac_cget_field_source ( const char* tgt_comp_name,
2412 const char* tgt_grid_name,
2413 const char* tgt_field_name,
2414 const char** src_comp_name,
2415 const char** src_grid_name,
2416 const char** src_field_name);
2417
2430 void yac_cget_field_source_instance ( int yac_instance_id,
2431 const char* tgt_comp_name,
2432 const char* tgt_grid_name,
2433 const char* tgt_field_name,
2434 const char** src_comp_name,
2435 const char** src_grid_name,
2436 const char** src_field_name);
2437
2438/* --------------------------------------------------------------------------------
2439 auxiliary routines
2440 -------------------------------------------------------------------------------- */
2441
2442#ifndef __GNUC__
2443# define __attribute__(x) /*NOTHING*/
2444#endif
2445
2446// prevent warning if compile with cython
2447#ifdef YAC_CYTHON
2448# define __attribute__(x) /*NOTHING*/
2449#endif
2450
2454typedef void (*yac_abort_func)(MPI_Comm comm, const char *msg,
2455 const char *source, int line)
2456 __attribute__((noreturn));
2457
2458
2459#ifdef YAC_CYTHON
2460# undef __attribute__
2461#endif
2462
2470 void yac_abort( MPI_Comm comm,
2471 const char *msg,
2472 const char *source,
2473 int line)
2474 __attribute__((noreturn));
2475
2482 void yac_abort_message( char const *msg,
2483 const char *source,
2484 int line);
2485
2489
2497
2502
2507
2511 void yac_set_default_comm(MPI_Comm comm);
2512
2513/* -------------------------------------------------------------------------------- */
2514
2522 size_t yac_cget_grid_size ( int location,
2523 int grid_id );
2524
2525/* -------------------------------------------------------------------------------- */
2526
2534 void yac_ccompute_grid_cell_areas ( int grid_id,
2535 double * cell_areas );
2536
2537
2538/* -------------------------------------------------------------------------------- */
2539
2546 size_t yac_cget_points_size ( int points_id );
2547
2548/* -------------------------------------------------------------------------------- */
2549
2553 void yac_cget_interp_stack_config(int * interp_stack_config_id);
2554
2558 void yac_cfree_interp_stack_config(int interp_stack_config_id);
2559
2565 void yac_cadd_interp_stack_config_average( int interp_stack_config_id,
2566 int reduction_type,
2567 int partial_coverage);
2568
2575 void yac_cadd_interp_stack_config_ncc( int interp_stack_config_id,
2576 int weight_type,
2577 int partial_coverage);
2578
2590 void yac_cadd_interp_stack_config_nnn( int interp_stack_config_id,
2591 int type,
2592 size_t n,
2593 double max_search_distance,
2594 double scale);
2595
2604 int interp_stack_config_id,
2605 int order,
2606 int enforced_conserv,
2607 int partial_coverage,
2608 int normalisation);
2609
2637 int interp_stack_config_id,
2638 double spread_distance,
2639 double max_search_distance,
2640 int weight_type,
2641 int scale_type,
2642 double src_sphere_radius,
2643 char const * src_filename,
2644 char const * src_varname,
2645 int src_min_global_id,
2646 double tgt_sphere_radius,
2647 char const * tgt_filename,
2648 char const * tgt_varname,
2649 int tgt_min_global_id);
2650
2654 void yac_cadd_interp_stack_config_hcsbb(int interp_stack_config_id);
2655
2665 int interp_stack_config_id, char const * filename);
2666
2671 void yac_cadd_interp_stack_config_fixed( int interp_stack_config_id,
2672 double value);
2673
2683 void yac_cadd_interp_stack_config_check( int interp_stack_config_id,
2684 char const * constructor_key,
2685 char const * do_search_key);
2686
2691 void yac_cadd_interp_stack_config_creep( int interp_stack_config_id,
2692 int creep_distance);
2693
2701 int interp_stack_config_id,
2702 char const * func_compute_weights_key);
2703
2773#ifndef TYPEDEF_YAC_FUNC_COMPUTE_WEIGHTS
2774#define TYPEDEF_YAC_FUNC_COMPUTE_WEIGHTS
2775
2776// Remark: make sure that this typedef is consistent with the one in interp_method_callback.h
2778 double const tgt_coords[3], int src_cell_id, size_t src_cell_idx,
2779 int const ** global_results_points, double ** result_weights,
2780 size_t * result_count, void * user_data);
2781#endif
2782
2795 yac_func_compute_weights compute_weights_callback,
2796 void * user_data,
2797 char const * key);
2798
2806 char const * interp_stack_config, int * interp_stack_config_id);
2807
2815 char const * interp_stack_config, int * interp_stack_config_id);
2816
2817#endif // YAC_H
enum yac_interp_ncc_weight_type weight_type
void * user_data
char * key
struct @7::@8 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:872
int const YAC_REDUCTION_TIME_AVERAGE
Definition yac.c:47
void yac_cenddef_and_emit_config(int emit_flags, char **config)
Definition yac.c:3015
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:1012
void yac_cread_config_yaml_instance(int yac_instance_id, const char *yaml_file)
Definition yac.c:465
void yac_ccompute_grid_cell_areas(int grid_id, double *cell_areas)
Definition yac.c:3646
void yac_cinit_comm_dummy(MPI_Comm comm)
Definition yac.c:429
void yac_cget_grid_names(int nbr_grids, const char **grid_names)
Definition yac.c:3172
void yac_cadd_interp_stack_config_ncc(int interp_stack_config_id, int weight_type, int partial_coverage)
Definition yac.c:3720
void yac_cread_config_json_instance(int yac_instance_id, const char *json_file)
Definition yac.c:479
void yac_cget_ext_couple_config_scale_factor(int ext_couple_config_id, double *scale_factor)
Definition yac.c:1449
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:1337
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:2827
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:2016
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:2192
void yac_cenddef(void)
Definition yac.c:3000
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:1706
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:1259
int const YAC_ACTION_OUT_OF_BOUND
put/get is outside of the valid range
Definition yac.c:43
void yac_cget_ext_couple_config_mapping_side(int ext_couple_config_id, int *mapping_side)
Definition yac.c:1426
void yac_cput_(int const field_id, int const collection_size, double *send_field, int *info, int *ierror)
Definition yac.c:2074
int const YAC_SPMAP_SRCAREA
Definition yac.c:85
int const YAC_CONFIG_OUTPUT_SYNC_LOC_ENDDEF
Definition yac.c:102
char * yac_cget_start_datetime_instance(int yac_instance_id)
Definition yac.c:672
void yac_cset_global_index(int const *global_index, int location, int grid_id)
Definition yac.c:3554
void yac_cset_grid_output_file_instance(int yac_instance_id, const char *gridname, const char *filename)
Definition yac.c:538
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:631
int yac_cget_role_from_field_id(int field_id)
Definition yac.c:3307
int yac_cget_nbr_grids_instance(int yac_instance_id)
Definition yac.c:3060
void yac_cfree_ext_couple_config(int ext_couple_config_id)
Definition yac.c:1373
const char * yac_cget_grid_metadata_instance(int yac_instance_id, const char *grid_name)
Definition yac.c:1324
char * yac_cget_end_datetime_instance(int yac_instance_id)
Definition yac.c:687
void yac_cdef_datetime(const char *start_datetime, const char *end_datetime)
Definition yac.c:640
int const YAC_SPMAP_INVTGTAREA
Definition yac.c:86
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:1520
void yac_cget_async_(int const field_id, int const collection_size, double *recv_field, int *info, int *ierror)
Definition yac.c:1998
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:1216
void yac_cdef_grid_metadata(const char *grid_name, const char *metadata)
Definition yac.c:1290
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:3434
void yac_cget_grid_names_instance(int yac_instance_id, int nbr_grids, const char **grid_names)
Definition yac.c:3152
void yac_cset_ext_couple_config_scale_factor(int ext_couple_config_id, double scale_factor)
Definition yac.c:1442
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:3874
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:1115
void yac_cdef_component_metadata(const char *comp_name, const char *metadata)
Definition yac.c:1276
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:2963
int yac_cget_field_role(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:3382
void yac_ccleanup()
Definition yac.c:590
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:2095
void yac_cadd_compute_weights_callback(yac_func_compute_weights compute_weights_callback, void *user_data, char const *key)
Definition yac.c:3897
void yac_cmpi_handshake(MPI_Comm comm, size_t n, char const **group_names, MPI_Comm *group_comms)
Definition yac.c:344
void yac_cput(int const field_id, int const collection_size, double ***const send_field, int *info, int *ierror)
Definition yac.c:2672
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:3026
int yac_cget_comp_nbr_grids_instance(int yac_instance_id, const char *comp_name)
Definition yac.c:3073
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:3473
const char * yac_cget_timestep_from_field_id(int field_id)
Definition yac.c:3293
int yac_cget_nbr_fields(const char *comp_name, const char *grid_name)
Definition yac.c:3121
int const YAC_NNN_GAUSS
Definition yac.c:74
int const YAC_YAML_EMITTER_DEFAULT
emit to YAML format
Definition config_yaml.c:63
void yac_csync_def_instance(int yac_instance_id)
Definition yac.c:2980
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:3403
void yac_cget_interp_stack_config_from_string_json(char const *interp_stack_config, int *interp_stack_config_id)
Definition yac.c:3935
void yac_csync_def(void)
Definition yac.c:2985
void(* yac_abort_func)(MPI_Comm comm, const char *msg, const char *source, int line) __attribute__((noreturn))
Definition yac.h:2454
int const YAC_TIME_UNIT_HOUR
Definition yac.c:54
void yac_cinit(void)
Definition yac.c:419
int const YAC_YEAR_OF_360_DAYS
Definition yac.c:63
void yac_cfinalize_instance(int yac_instance_id)
Definition yac.c:610
void yac_cfinalize()
Definition yac.c:619
const char * yac_cget_field_name_from_field_id(int field_id)
Definition yac.c:3286
void yac_cadd_interp_stack_config_check(int interp_stack_config_id, char const *constructor_key, char const *do_search_key)
Definition yac.c:3862
void yac_cenddef_instance(int yac_instance_id)
Definition yac.c:2993
void yac_cget_ext_couple_config_yaxt_exchanger_name(int ext_couple_config_id, char const **yaxt_exchanger_name)
Definition yac.c:1549
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:1495
int const YAC_YAML_EMITTER_JSON
emit to JSON format
Definition config_yaml.c:64
int yac_cget_nbr_comps_instance(int yac_instance_id)
Definition yac.c:3047
int yac_cget_nbr_fields_instance(int yac_instance_id, const char *comp_name, const char *grid_name)
Definition yac.c:3101
void yac_cdef_comp(const char *comp_name, int *comp_id)
Definition yac.c:886
void yac_cget_ext_couple_config(int *ext_couple_config_id)
Definition yac.c:1365
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:3494
void yac_cdef_grid_metadata_instance(int yac_instance_id, const char *grid_name, const char *metadata)
Definition yac.c:1281
void yac_cset_ext_couple_config_weight_file(int ext_couple_config_id, char const *weight_file)
Definition yac.c:1393
const char * yac_cget_component_metadata_instance(int yac_instance_id, const char *comp_name)
Definition yac.c:1311
void yac_cset_ext_couple_config_yaxt_exchanger_name(int ext_couple_config_id, char const *yaxt_exchanger_name)
Definition yac.c:1542
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:1600
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:3316
void yac_cset_ext_couple_config_scale_summand(int ext_couple_config_id, double scale_summand)
Definition yac.c:1465
void yac_cget_comp_comm(int comp_id, MPI_Comm *comp_comm)
Definition yac.c:729
const char * yac_cget_field_datetime(int field_id)
Definition yac.c:1810
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:1830
void yac_cget_action(int field_id, int *action)
Definition yac.c:1767
size_t yac_cget_grid_size(int location, int grid_id)
Definition yac.c:3635
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:3039
void yac_cget_ext_couple_config_tgt_mask_name(int ext_couple_config_id, char const **tgt_mask_name)
Definition yac.c:1527
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:1503
const char * yac_cget_grid_name_from_field_id(int field_id)
Definition yac.c:3278
int yac_cget_collection_size_from_field_id(int field_id)
Definition yac.c:3300
void yac_cdef_comps_instance(int yac_instance_id, const char **comp_names, int num_comps, int *comp_ids)
Definition yac.c:847
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:3416
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:1585
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:495
void yac_cget_comps_comm(const char **comp_names, int num_comps, MPI_Comm *comps_comm)
Definition yac.c:779
void yac_cinit_comm_instance(MPI_Comm comm, int *yac_instance_id)
Definition yac.c:381
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:2582
const char * yac_cget_grid_metadata(const char *grid_name)
Definition yac.c:1332
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:1247
char * yac_cget_start_datetime(void)
Definition yac.c:679
void yac_cget_interp_stack_config_from_string_yaml(char const *interp_stack_config, int *interp_stack_config_id)
Definition yac.c:3927
int const YAC_TIME_UNIT_MONTH
Definition yac.c:56
int const YAC_CONFIG_OUTPUT_FORMAT_YAML
Definition yac.c:89
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:2007
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:3759
void yac_cdef_grid_cloud(const char *grid_name, int nbr_points, double *x_points, double *y_points, int *grid_id)
Definition yac.c:3538
void yac_cget_comps_comm_instance(int yac_instance_id, const char **comp_names, int num_comps, MPI_Comm *comps_comm)
Definition yac.c:769
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:3452
char * yac_cget_version(void)
Definition yac.c:705
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:2172
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:2761
#define __attribute__(x)
Definition yac.h:2443
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:2719
int yac_cget_default_instance_id()
Definition yac.c:376
void yac_cadd_interp_stack_config_user_file(int interp_stack_config_id, char const *filename)
Definition yac.c:3841
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:2791
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:2777
const char * yac_cget_component_name_from_field_id(int field_id)
Definition yac.c:3271
int yac_cget_field_collection_size(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:3364
int const YAC_CONFIG_OUTPUT_SYNC_LOC_DEF_COMP
Definition yac.c:98
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:1268
void yac_cenddef_and_emit_config_instance(int yac_instance_id, int emit_flags, char **config)
Definition yac.c:3006
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:694
void yac_cread_config_yaml(const char *yaml_file)
Definition yac.c:474
int const YAC_ACTION_NONE
no data exchanges
Definition yac.c:35
void yac_cdef_calendar(int calendar)
Definition yac.c:648
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:3595
void yac_cwait(int field_id)
Definition yac.c:2247
int yac_cget_calendar()
Definition yac.c:665
int const YAC_CONFIG_OUTPUT_SYNC_LOC_SYNC_DEF
Definition yac.c:100
void yac_cget_comp_names(int nbr_comps, const char **comp_names)
Definition yac.c:3146
const char * yac_cget_field_metadata(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:1346
int const YAC_ACTION_REDUCTION
data reduction, but data exchange
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:1143
int const YAC_ACTION_GET_FOR_RESTART
last valid get
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:1050
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:3177
double yac_cget_field_frac_mask_fallback_value(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:3356
void yac_cset_mask(int const *is_valid, int points_id)
Definition yac.c:1124
void yac_cadd_interp_stack_config_hcsbb(int interp_stack_config_id)
Definition yac.c:3832
void yac_cdef_comp_instance(int yac_instance_id, const char *comp_name, int *comp_id)
Definition yac.c:880
void yac_cadd_interp_stack_config_fixed(int interp_stack_config_id, double value)
Definition yac.c:3852
int const YAC_TIME_UNIT_DAY
Definition yac.c:55
int yac_cget_comp_nbr_grids(const char *comp_name)
Definition yac.c:3096
int const YAC_ACTION_COUPLING
data exchange
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:3335
int const YAC_TIME_UNIT_ISO_FORMAT
Definition yac.c:58
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:3389
void yac_cpredef_comp_instance(int yac_instance_id, char const *comp_name, int *comp_id)
Definition yac.c:809
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:3371
int const YAC_CONSERV_FRACAREA
Definition yac.c:79
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:3778
void yac_cadd_interp_stack_config_user_callback(int interp_stack_config_id, char const *func_compute_weights_key)
Definition yac.c:3884
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:3516
void yac_cset_ext_couple_config_mapping_side(int ext_couple_config_id, int mapping_side)
Definition yac.c:1419
void yac_ccleanup_instance(int yac_instance_id)
Definition yac.c:582
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:3346
void yac_cfree_interp_stack_config(int interp_stack_config_id)
Definition yac.c:3681
int const YAC_CALENDAR_NOT_SET
Definition yac.c:60
void yac_cset_grid_output_file(const char *gridname, const char *filename)
Definition yac.c:555
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:976
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:3738
void yac_cget_ext_couple_config_scale_summand(int ext_couple_config_id, double *scale_summand)
Definition yac.c:1472
int const YAC_CONFIG_OUTPUT_FORMAT_JSON
Definition yac.c:90
void yac_cinit_instance(int *yac_instance_id)
Definition yac.c:407
void yac_ctest(int field_id, int *flag)
Definition yac.c:2223
void yac_cset_config_output_file(const char *filename, int fileformat, int sync_location, int include_definitions)
Definition yac.c:526
void yac_cget_interp_stack_config(int *interp_stack_config_id)
Definition yac.c:3667
void yac_cinit_dummy(void)
Definition yac.c:445
void yac_cadd_interp_stack_config_average(int interp_stack_config_id, int reduction_type, int partial_coverage)
Definition yac.c:3701
int const YAC_ACTION_PUT_FOR_RESTART
last valid put
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:488
void yac_cpredef_comp(char const *comp_name, int *comp_id)
Definition yac.c:842
int const YAC_SPMAP_DIST
Definition yac.c:82
size_t yac_cget_points_size(int points_id)
Definition yac.c:3655
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:1615
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:1632
int yac_cget_nbr_comps(void)
Definition yac.c:3055
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:1295
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:1989
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:1096
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:3219
int yac_cget_nbr_grids()
Definition yac.c:3068
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:3225
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:2686
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:3126
void yac_cdef_field_metadata(const char *comp_name, const char *grid_name, const char *field_name, const char *metadata)
Definition yac.c:1304
const char * yac_cget_component_metadata(const char *comp_name)
Definition yac.c:1319
const char * yac_cget_field_timestep(const char *comp_name, const char *grid_name, const char *field_name)
Definition yac.c:3328
void yac_cget_field_names(const char *comp_name, const char *grid_name, int nbr_fields, const char **field_names)
Definition yac.c:3264
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:1400
void yac_cinit_comm(MPI_Comm comm)
Definition yac.c:393