YAC 3.6.2
Yet Another Coupler
Loading...
Searching...
No Matches
read_icon_grid.c File Reference
#include "config.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include "read_icon_grid.h"
#include "utils_common.h"
#include "io_utils.h"
#include "geometry.h"
#include "read_grid.h"
#include <netcdf.h>
Include dependency graph for read_icon_grid.c:

Go to the source code of this file.

Functions

static int * get_icon_cell_mask (int ncid, size_t nbr_cells)
 
static void get_icon_connect (int ncid, size_t nbr_cells, int **vertex_of_cell, size_t *nv)
 
void yac_read_part_icon_grid_information (const char *filename, int *nbr_vertices, int *nbr_cells, int **num_vertices_per_cell, int **cell_to_vertex, double **x_vertices, double **y_vertices, double **x_cells, double **y_cells, int **global_cell_id, int **cell_mask, int **cell_core_mask, int **global_corner_id, int **corner_core_mask, int rank, int size)
 
void yac_read_icon_grid_information (const char *filename, int *nbr_vertices, int *nbr_cells, int **num_vertices_per_cell, int **cell_to_vertex, double **x_vertices, double **y_vertices, double **x_cells, double **y_cells, int **cell_mask)
 
static int partition_idx_from_element_idx (unsigned element_idx, unsigned num_elements, int num_partitions)
 
static void convert_to_rad (int ncid, int varid, double *array, size_t count)
 
void yac_read_icon_grid_information_parallel (const char *filename, MPI_Comm comm, int *nbr_vertices, int *nbr_cells, int **num_vertices_per_cell, int **cell_to_vertex, int **global_cell_ids, int **cell_owner, int **global_vertex_ids, int **vertex_owner, double **x_vertices, double **y_vertices, double **x_cells, double **y_cells, int **cell_msk)
 
void yac_read_icon_grid_information_parallel_f2c (const char *filename, MPI_Fint comm, int *nbr_vertices, int *nbr_cells, int **num_vertices_per_cell, int **cell_to_vertex, int **global_cell_ids, int **cell_owner, int **global_vertex_ids, int **vertex_owner, double **x_vertices, double **y_vertices, double **x_cells, double **y_cells, int **cell_msk)
 
static int * generate_simple_core_mask (size_t N)
 
static size_t * generate_offsets (size_t N, int *counts)
 
struct yac_basic_grid_data yac_read_icon_basic_grid_data_parallel (const char *filename, MPI_Comm comm)
 
struct yac_basic_gridyac_read_icon_basic_grid_parallel (char const *filename, char const *gridname, MPI_Comm comm)
 
struct yac_basic_gridyac_read_icon_basic_grid_parallel_f2c (char const *filename, char const *gridname, MPI_Fint comm)
 
struct yac_basic_grid_data yac_read_icon_basic_grid_data (char const *filename)
 
struct yac_basic_gridyac_read_icon_basic_grid (char const *filename, char const *gridname)
 
void yac_delete_icon_grid_data (int **cell_mask, int **global_cell_id, int **global_cell_id_rank, int **num_vertices_per_cell, int **global_corner_id, int **global_corner_id_rank, int **cell_to_vertex, double **x_cells, double **y_cells, double **x_vertices, double **y_vertices)
 

Function Documentation

◆ convert_to_rad()

static void convert_to_rad ( int ncid,
int varid,
double * array,
size_t count )
static

Definition at line 242 of file read_icon_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generate_offsets()

static size_t * generate_offsets ( size_t N,
int * counts )
static

Definition at line 891 of file read_icon_grid.c.

Here is the caller graph for this function:

◆ generate_simple_core_mask()

static int * generate_simple_core_mask ( size_t N)
static

Definition at line 885 of file read_icon_grid.c.

Here is the caller graph for this function:

◆ get_icon_cell_mask()

static int * get_icon_cell_mask ( int ncid,
size_t nbr_cells )
static

Definition at line 1522 of file read_icon_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_icon_connect()

static void get_icon_connect ( int ncid,
size_t nbr_cells,
int ** vertex_of_cell,
size_t * nv )
static

Definition at line 1560 of file read_icon_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ partition_idx_from_element_idx()

static int partition_idx_from_element_idx ( unsigned element_idx,
unsigned num_elements,
int num_partitions )
inlinestatic

Definition at line 234 of file read_icon_grid.c.

Here is the caller graph for this function:

◆ yac_delete_icon_grid_data()

void yac_delete_icon_grid_data ( int ** cell_mask,
int ** global_cell_id,
int ** cell_core_mask,
int ** num_vertices_per_cell,
int ** global_corner_id,
int ** corner_core_mask,
int ** cell_to_vertex,
double ** x_cells,
double ** y_cells,
double ** x_vertices,
double ** y_vertices )

destroys remaining icon grid data

Parameters
[out]cell_maskmask for cells
[out]global_cell_idglobal cell IDs
[out]cell_core_maskcell core mask
[out]num_vertices_per_cellnumber of vertices per cell
[out]global_corner_idglobal corner IDs
[out]corner_core_maskcorner core mask
[out]cell_to_vertexvertex indices for each cell
[out]x_cellslongitudes of cell center
[out]y_cellslatitudes of cell center
[out]x_verticeslongitudes of vertices
[out]y_verticeslatitudes of vertices
Examples
test_dummy_coupling2_c.c, and test_restart_c.c.

Definition at line 1593 of file read_icon_grid.c.

◆ yac_read_icon_basic_grid()

struct yac_basic_grid * yac_read_icon_basic_grid ( char const * filename,
char const * gridname )

reads in an icon grid netcdf file and generates a struct basic_grid from it

Parameters
[in]filenamename of the icon grid netcdf file
[in]gridnamename of the grid
Returns
yac_basic_grid structure that contains the icon grid

Definition at line 1512 of file read_icon_grid.c.

Here is the call graph for this function:

◆ yac_read_icon_basic_grid_data()

struct yac_basic_grid_data yac_read_icon_basic_grid_data ( char const * filename)

reads in an icon grid netcdf file and generates a struct yac_basic_grid_data from it

Parameters
[in]filenamename of the icon grid netcdf file
Returns
basic_grid_data structure that contains the icon grid
Examples
test_generate_cubed_sphere.c, and test_read_icon.c.

Definition at line 1476 of file read_icon_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_read_icon_basic_grid_data_parallel()

struct yac_basic_grid_data yac_read_icon_basic_grid_data_parallel ( const char * filename,
MPI_Comm comm )
Examples
test_dist_grid_pair_parallel.c, test_interp_grid_parallel.c, test_interp_method_parallel.c, test_interp_weights_parallel.c, and test_read_icon_parallel.c.

Definition at line 901 of file read_icon_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_read_icon_basic_grid_parallel()

struct yac_basic_grid * yac_read_icon_basic_grid_parallel ( char const * filename,
char const * gridname,
MPI_Comm comm )

Definition at line 1459 of file read_icon_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_read_icon_basic_grid_parallel_f2c()

struct yac_basic_grid * yac_read_icon_basic_grid_parallel_f2c ( char const * filename,
char const * gridname,
MPI_Fint comm )

Definition at line 1468 of file read_icon_grid.c.

Here is the call graph for this function:

◆ yac_read_icon_grid_information()

void yac_read_icon_grid_information ( const char * filename,
int * num_vertices,
int * num_cells,
int ** num_vertices_per_cell,
int ** cell_to_vertex,
double ** x_vertices,
double ** y_vertices,
double ** x_cells,
double ** y_cells,
int ** cell_mask )

reads in an icon grid netcdf file and return the grid information in a format that is supported by the YAC user interface.

Parameters
[in]filenamename of the icon grid netcdf file
[out]num_verticesnumber of vertices in the grid
[out]num_cellsnumber of cells in the grid
[out]num_vertices_per_cellnumber of vertices per cell
[out]cell_to_vertexvertex indices for each cell
[out]x_verticeslongitudes of vertices
[out]y_verticeslatitudes of vertices
[out]x_cellslongitudes of cell center
[out]y_cellslatitudes of cell center
[out]cell_maskmask for cells

Definition at line 181 of file read_icon_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_read_icon_grid_information_parallel()

void yac_read_icon_grid_information_parallel ( const char * filename,
MPI_Comm comm,
int * num_vertices,
int * num_cells,
int ** num_vertices_per_cell,
int ** cell_to_vertex,
int ** global_cell_ids,
int ** cell_owner,
int ** global_vertex_ids,
int ** vertex_owner,
double ** x_vertices,
double ** y_vertices,
double ** x_cells,
double ** y_cells,
int ** cell_mask )

reads in an icon grid netcdf file and return the grid information in a format that is supported by the YAC user interface. The reading is done in parallel and a basic domain decomposition is applied.

Parameters
[in]filenamename of the icon grid netcdf file
[in]commMPI communicator containing all proceses that will get a part of the grid
[out]num_verticesnumber of vertices in the local part of the grid
[out]num_cellsnumber of cells in the local part of the grid
[out]num_vertices_per_cellnumber of vertices per cell
[out]cell_to_vertexvertex indices for each cell
[out]global_cell_idsglobal ids of local cells (core and halo cells)
[out]cell_ownerowner of each cell (locally owned cells are marked with -1)
[out]global_vertex_idsglobal ids of local vertices (core and halo vertices)
[out]vertex_ownerowner of each vertex (locally owned vertices are marked with -1)
[out]x_verticeslongitudes of vertices
[out]y_verticeslatitudes of vertices
[out]x_cellslongitudes of cell center
[out]y_cellslatitudes of cell center
[out]cell_maskmask for cells
Examples
test_read_icon_parallel.c.

Definition at line 248 of file read_icon_grid.c.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ yac_read_icon_grid_information_parallel_f2c()

void yac_read_icon_grid_information_parallel_f2c ( const char * filename,
MPI_Fint comm,
int * nbr_vertices,
int * nbr_cells,
int ** num_vertices_per_cell,
int ** cell_to_vertex,
int ** global_cell_ids,
int ** cell_owner,
int ** global_vertex_ids,
int ** vertex_owner,
double ** x_vertices,
double ** y_vertices,
double ** x_cells,
double ** y_cells,
int ** cell_msk )

Definition at line 871 of file read_icon_grid.c.

Here is the call graph for this function:

◆ yac_read_part_icon_grid_information()

void yac_read_part_icon_grid_information ( const char * filename,
int * num_vertices,
int * num_cells,
int ** num_vertices_per_cell,
int ** cell_to_vertex,
double ** x_vertices,
double ** y_vertices,
double ** x_cells,
double ** y_cells,
int ** global_cell_id,
int ** cell_mask,
int ** cell_core_mask,
int ** global_corner_id,
int ** corner_core_mask,
int rank,
int size )

reads in an icon grid netcdf file and return the grid information in a format that is supported by the YAC user interface.

Parameters
[in]filenamename of the icon grid netcdf file
[out]num_verticesnumber of vertices in the grid
[out]num_cellsnumber of cells in the grid
[out]num_vertices_per_cellnumber of vertices per cell
[out]cell_to_vertexvertex indices for each cell
[out]x_verticeslongitudes of vertices
[out]y_verticeslatitudes of vertices
[out]x_cellslongitudes of cell center
[out]y_cellslatitudes of cell center
[out]global_cell_idglobal cell IDs
[out]cell_maskmask for cells
[out]cell_core_maskcell core mask
[out]global_corner_idglobal corner IDs
[out]corner_core_maskcorner core mask
[out]ranklocal MPI rank
[out]sizenumber of MPI ranks
Examples
test_dummy_coupling2_c.c, test_dummy_coupling3_c.c, and test_restart_c.c.

Definition at line 28 of file read_icon_grid.c.

Here is the call graph for this function: