27 .core_cell_mask = NULL,
28 .core_vertex_mask = NULL,
29 .core_edge_mask = NULL,
30 .num_vertices_per_cell = NULL,
31 .num_cells_per_vertex = NULL,
32 .cell_to_vertex = NULL,
33 .cell_to_vertex_offsets = NULL,
35 .cell_to_edge_offsets = NULL,
36 .vertex_to_cell = NULL,
37 .vertex_to_cell_offsets = NULL,
38 .edge_to_vertex = NULL,
41 .num_total_vertices = 0,
53 grid->
data = grid_data;
68 grid,
"ERROR(yac_basic_grid_delete): "
69 "NULL is not a valid value for argument grid")
80 grid,
"ERROR(yac_basic_grid_get_field_coordinates): "
81 "NULL is not a valid value for argument grid")
103 "ERROR(yac_basic_grid_get_core_mask): invalid location")
116 if (field.
masks_idx == SIZE_MAX)
return NULL;
126 grid,
"ERROR(yac_basic_grid_get_name): "
127 "NULL is not a valid value for argument grid")
136 grid,
"ERROR(yac_basic_grid_get_data): "
137 "NULL is not a valid value for argument grid")
139 return &(grid->
data);
146 grid,
"ERROR(yac_basic_grid_get_data_size): "
147 "NULL is not a valid value for argument grid")
152 "ERROR(yac_basic_grid_get_data_size): invalid location")
174 char const * mask_name) {
176 if (mask_name == NULL)
return SIZE_MAX;
181 if (
data == NULL)
return SIZE_MAX;
183 size_t mask_idx = SIZE_MAX;
186 for (
size_t i = 0; (i <
masks_count) && (mask_idx == SIZE_MAX); ++i) {
187 char const * curr_mask_name =
189 if ((curr_mask_name != NULL) &&
190 (!strcmp(mask_name, curr_mask_name)))
195 mask_idx != SIZE_MAX,
196 "ERROR(yac_basic_grid_get_named_mask_idx): grid \"%s\" does not contain "
197 "%s-mask with the name \"%s\"",
208 grid,
"ERROR(yac_basic_grid_add_coordinates_nocpy): "
209 "NULL is not a valid value for argument grid")
211 !grid->
is_empty,
"ERROR(yac_basic_grid_add_coordinates_nocpy): "
212 "grid \"%s\" is an empty grid", grid->
name)
232 grid,
"ERROR(yac_basic_grid_add_coordinates): "
233 "NULL is not a valid value for argument grid")
235 !grid->
is_empty,
"ERROR(yac_basic_grid_add_coordinates): "
236 "grid \"%s\" is an empty grid", grid->
name)
256 char const * mask_name) {
259 grid,
"ERROR(yac_basic_grid_add_mask_nocpy): "
260 "NULL is not a valid value for argument grid")
262 !grid->
is_empty,
"ERROR(yac_basic_grid_add_mask_nocpy): "
263 "grid \"%s\" is an empty grid", grid->
name)
272 int const * mask,
char const * mask_name) {
281 int const * mask,
size_t count,
char const * mask_name) {
284 grid,
"ERROR(yac_basic_grid_add_mask): "
285 "NULL is not a valid value for argument grid")
287 !grid->
is_empty,
"ERROR(yac_basic_grid_add_mask): "
288 "grid \"%s\" is an empty grid", grid->
name)
297 int const * mask,
size_t count,
char const * mask_name) {
308 grid,
"ERROR(yac_basic_grid_get_field_data): "
309 "NULL is not a valid value for argument grid")
320 char const *
name,
size_t nbr_vertices[2],
int cyclic[2],
321 double *lon_vertices,
double *lat_vertices) {
327 nbr_vertices, cyclic, lon_vertices, lat_vertices));
331 char const *
name,
size_t nbr_vertices[2],
int cyclic[2],
332 double *lon_vertices,
double *lat_vertices) {
338 nbr_vertices, cyclic, lon_vertices, lat_vertices));
342 char const *
name,
size_t nbr_vertices[2],
int cyclic[2],
343 double *lon_vertices,
double *lat_vertices) {
349 nbr_vertices, cyclic, lon_vertices, lat_vertices));
353 char const *
name,
size_t nbr_vertices[2],
int cyclic[2],
354 double *lon_vertices,
double *lat_vertices) {
360 nbr_vertices, cyclic, lon_vertices, lat_vertices));
364 char const *
name,
size_t nbr_vertices,
size_t nbr_cells,
365 int *num_vertices_per_cell,
double *x_vertices,
double *y_vertices,
366 int *cell_to_vertex) {
372 nbr_vertices, nbr_cells, num_vertices_per_cell,
373 x_vertices, y_vertices, cell_to_vertex));
377 char const *
name,
size_t nbr_vertices,
size_t nbr_cells,
378 int *num_vertices_per_cell,
double *x_vertices,
double *y_vertices,
379 int *cell_to_vertex) {
385 nbr_vertices, nbr_cells, num_vertices_per_cell,
386 x_vertices, y_vertices, cell_to_vertex));
390 char const *
name,
size_t nbr_vertices,
size_t nbr_cells,
391 int *num_vertices_per_cell,
double *x_vertices,
double *y_vertices,
392 int *cell_to_vertex) {
398 nbr_vertices, nbr_cells, num_vertices_per_cell,
399 x_vertices, y_vertices, cell_to_vertex));
403 char const *
name,
size_t nbr_vertices,
size_t nbr_cells,
404 int *num_vertices_per_cell,
double *x_vertices,
double *y_vertices,
405 int *cell_to_vertex) {
411 nbr_vertices, nbr_cells, num_vertices_per_cell,
412 x_vertices, y_vertices, cell_to_vertex));
static struct yac_basic_grid_data yac_basic_grid_data_empty
struct yac_field_data * yac_basic_grid_get_field_data(struct yac_basic_grid *grid, enum yac_location location)
size_t yac_basic_grid_get_named_mask_idx(struct yac_basic_grid *grid, enum yac_location location, char const *mask_name)
int const * yac_basic_grid_get_field_mask(struct yac_basic_grid *grid, struct yac_interp_field field)
struct yac_basic_grid * yac_basic_grid_new(char const *name, struct yac_basic_grid_data grid_data)
struct yac_basic_grid * yac_basic_grid_reg_2d_deg_new(char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
struct yac_basic_grid * yac_basic_grid_unstruct_deg_new(char const *name, size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
struct yac_basic_grid * yac_basic_grid_unstruct_new(char const *name, size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
yac_const_coordinate_pointer yac_basic_grid_get_field_coordinates(struct yac_basic_grid *grid, struct yac_interp_field field)
struct yac_basic_grid_data * yac_basic_grid_get_data(struct yac_basic_grid *grid)
size_t yac_basic_grid_add_mask(struct yac_basic_grid *grid, enum yac_location location, int const *mask, size_t count, char const *mask_name)
struct yac_basic_grid * yac_basic_grid_reg_2d_new(char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
struct yac_basic_grid * yac_basic_grid_unstruct_ll_new(char const *name, size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
size_t yac_basic_grid_get_data_size_f2c(struct yac_basic_grid *grid, int location)
size_t yac_basic_grid_add_coordinates_nocpy(struct yac_basic_grid *grid, enum yac_location location, yac_coordinate_pointer coordinates)
char const * yac_basic_grid_get_name(struct yac_basic_grid *grid)
size_t yac_basic_grid_add_mask_nocpy_f2c(struct yac_basic_grid *grid, int location, int const *mask, char const *mask_name)
size_t yac_basic_grid_add_coordinates_f2c(struct yac_basic_grid *grid, int location, double *coordinates, size_t count)
size_t yac_basic_grid_add_coordinates(struct yac_basic_grid *grid, enum yac_location location, yac_coordinate_pointer coordinates, size_t count)
size_t yac_basic_grid_get_data_size(struct yac_basic_grid *grid, enum yac_location location)
struct yac_basic_grid * yac_basic_grid_unstruct_ll_deg_new(char const *name, size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
int const * yac_basic_grid_get_core_mask(struct yac_basic_grid *grid, enum yac_location location)
size_t yac_basic_grid_add_coordinates_nocpy_f2c(struct yac_basic_grid *grid, int location, double *coordinates)
struct yac_basic_grid * yac_basic_grid_empty_new(char const *name)
void yac_basic_grid_delete(struct yac_basic_grid *grid)
size_t yac_basic_grid_add_mask_f2c(struct yac_basic_grid *grid, int location, int const *mask, size_t count, char const *mask_name)
struct yac_basic_grid * yac_basic_grid_curve_2d_new(char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
struct yac_basic_grid * yac_basic_grid_curve_2d_deg_new(char const *name, size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
size_t yac_basic_grid_add_mask_nocpy(struct yac_basic_grid *grid, enum yac_location location, int const *mask, char const *mask_name)
void yac_basic_grid_data_free(struct yac_basic_grid_data grid)
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct_deg(size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
struct yac_basic_grid_data yac_generate_basic_grid_data_reg_2d(size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct_ll(size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
struct yac_basic_grid_data yac_generate_basic_grid_data_curve_2d_deg(size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
struct yac_basic_grid_data yac_generate_basic_grid_data_curve_2d(size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct(size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
struct yac_basic_grid_data yac_generate_basic_grid_data_reg_2d_deg(size_t nbr_vertices[2], int cyclic[2], double *lon_vertices, double *lat_vertices)
struct yac_basic_grid_data yac_generate_basic_grid_data_unstruct_ll_deg(size_t nbr_vertices, size_t nbr_cells, int *num_vertices_per_cell, double *x_vertices, double *y_vertices, int *cell_to_vertex)
size_t yac_field_data_get_masks_count(struct yac_field_data *field_data)
yac_const_coordinate_pointer yac_field_data_get_coordinates_data(struct yac_field_data *field_data, size_t coordinates_idx)
int const * yac_field_data_get_mask_data(struct yac_field_data *field_data, size_t mask_idx)
char const * yac_field_data_get_mask_name(struct yac_field_data *field_data, size_t mask_idx)
void yac_field_data_set_delete(struct yac_field_data_set *field_data_set)
size_t yac_field_data_set_add_mask_nocpy(struct yac_field_data_set *field_data_set, enum yac_location location, int const *mask, char const *mask_name)
struct yac_field_data * yac_field_data_set_get_field_data(struct yac_field_data_set *field_data_set, enum yac_location location)
size_t yac_field_data_set_add_mask(struct yac_field_data_set *field_data_set, enum yac_location location, int const *mask, size_t count, char const *mask_name)
struct yac_field_data_set * yac_field_data_set_empty_new()
size_t yac_field_data_set_add_coordinates(struct yac_field_data_set *field_data_set, enum yac_location location, yac_coordinate_pointer coordinates, size_t count)
size_t yac_field_data_set_add_coordinates_nocpy(struct yac_field_data_set *field_data_set, enum yac_location location, yac_coordinate_pointer coordinates)
char const * yac_loc2str(enum yac_location location)
enum yac_location yac_get_location(int const location)
yac_coordinate_pointer vertex_coordinates
struct yac_basic_grid_data data
struct yac_field_data_set * field_data_set
yac_coordinate_pointer * coordinates
enum yac_location location
#define YAC_ASSERT_F(exp, format,...)
#define YAC_ASSERT(exp, msg)
double const (*const yac_const_coordinate_pointer)[3]
double(* yac_coordinate_pointer)[3]