YAC 3.20.0
Yet Another Coupler
Loading...
Searching...
No Matches
io_utils.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 IO_UTILS_H
6#define IO_UTILS_H
7
8#include "yac_config.h"
9
10#include <mpi.h>
11
12#include "yac_assert.h"
13
14// YAC PUBLIC HEADER START
15
23int yac_file_exists(const char * filename);
24
35int yac_file_contains(char const *path, char const *needle);
36
51 char const *path_prefix, char const *path_suffix, char const *extension);
52
61void yac_remove_directory(char const *path);
62
64 MPI_Comm comm, int * local_is_io, int ** io_ranks, int * num_io_ranks);
65
66void yac_nc_open(const char * path, int omode, int * ncidp);
67void yac_nc_create(const char * path, int cmode, int * ncidp);
68void yac_nc_inq_dimid(int ncid, char const * name, int * dimidp);
69void yac_nc_inq_varid(int ncid, char const * name, int * varidp);
70
71#define YAC_HANDLE_ERROR(exp) \
72 do { \
73 int handle_error_status = (exp); \
74 YAC_ASSERT_F( \
75 (handle_error_status) == NC_NOERR, \
76 "%s", nc_strerror(handle_error_status)) \
77 } while(0)
78
79// YAC PUBLIC HEADER STOP
80
81#endif // IO_UTILS_H
char * yac_file_path_join(char const *path_prefix, char const *path_suffix, char const *extension)
Join two path components with a '/' and optional extension.
Definition io_utils.c:426
void yac_nc_create(const char *path, int cmode, int *ncidp)
Definition io_utils.c:326
void yac_remove_directory(char const *path)
Remove a directory and its contents recursively.
Definition io_utils.c:500
void yac_nc_inq_varid(int ncid, char const *name, int *varidp)
Definition io_utils.c:369
void yac_get_io_ranks(MPI_Comm comm, int *local_is_io, int **io_ranks, int *num_io_ranks)
Definition io_utils.c:271
int yac_file_contains(char const *path, char const *needle)
Check whether a file contains a specific string.
Definition io_utils.c:399
int yac_file_exists(const char *filename)
Check whether a file exists.
Definition io_utils.c:394
void yac_nc_open(const char *path, int omode, int *ncidp)
Definition io_utils.c:311
void yac_nc_inq_dimid(int ncid, char const *name, int *dimidp)
Definition io_utils.c:344
char const * name
Definition toy_scrip.c:114