Loading [MathJax]/extensions/tex2jax.js
PISM, A Parallel Ice Sheet Model 2.2.2-d6b3a29ca committed by Constantine Khrulev on 2025-03-28
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Enumerations | Functions
pism::io Namespace Reference

Input and output code (NetCDF wrappers, etc) More...

Classes

class  Default
 
class  NC4_Par
 
class  NC4_Serial
 
class  NC4File
 
class  NC_Serial
 
class  NCFile
 The PISM wrapper for a subset of the NetCDF C API. More...
 
class  PNCFile
 PISM's PnetCDF I/O wrapper. More...
 
struct  StartCountInfo
 

Enumerations

enum  Type : int {
  PISM_NAT = 0 , PISM_BYTE = 1 , PISM_CHAR = 2 , PISM_SHORT = 3 ,
  PISM_INT = 4 , PISM_FLOAT = 5 , PISM_DOUBLE = 6
}
 
enum  Backend : int {
  PISM_GUESS , PISM_NETCDF3 , PISM_NETCDF4_SERIAL , PISM_NETCDF4_PARALLEL ,
  PISM_PNETCDF
}
 
enum  Mode : int { PISM_READONLY = 7 , PISM_READWRITE = 8 , PISM_READWRITE_CLOBBER = 9 , PISM_READWRITE_MOVE = 10 }
 
enum  Dim_Length : int { PISM_UNLIMITED = 0 }
 
enum  Fill_Mode : int { PISM_FILL = 0 , PISM_NOFILL = 0x100 }
 

Functions

static void interpolate (const Grid &grid, const LocalInterpCtx &lic, double const *input_array, double *output_array)
 Bi-(or tri-)linear interpolation.
 
static StartCountInfo compute_start_and_count (std::vector< AxisType > &dim_types, const std::array< int, 4 > &start, const std::array< int, 4 > &count)
 
void define_dimension (const File &file, unsigned long int length, const VariableMetadata &metadata)
 Define a dimension and the associated coordinate variable. Set attributes.
 
void define_time (const File &file, const Context &ctx)
 Prepare a file for output.
 
void define_time (const File &file, const std::string &name, const std::string &calendar, const std::string &units, units::System::Ptr unit_system)
 
void append_time (const File &file, const Config &config, double time_seconds)
 Prepare a file for output.
 
void append_time (const File &file, const std::string &name, double value)
 Append to the time dimension.
 
static void define_dimensions (const SpatialVariableMetadata &var, const Grid &grid, const File &file)
 Define dimensions a variable depends on.
 
static void write_dimension_data (const File &file, const std::string &name, const std::vector< double > &data)
 
void write_dimensions (const SpatialVariableMetadata &var, const Grid &grid, const File &file)
 
static bool transpose (std::vector< AxisType > dimension_types)
 
static std::vector< AxisTypedimension_types (const File &file, const std::string &var_name, std::shared_ptr< units::System > unit_system)
 
static void transpose (const double *input, const std::vector< AxisType > &input_axes, const std::array< int, 4 > &count, double *output)
 
static void check_for_missing_values (const File &file, const std::string &variable_name, double tolerance, const double *buffer, size_t buffer_length)
 
static void read_distributed_array (const File &file, const std::string &variable_name, std::shared_ptr< units::System > unit_system, const std::array< int, 4 > &start, const std::array< int, 4 > &count, double *output)
 Read an array distributed according to the grid.
 
void define_spatial_variable (const SpatialVariableMetadata &metadata, const Grid &grid, const File &file, io::Type default_type)
 Define a NetCDF variable corresponding to a VariableMetadata object.
 
static std::string check_units (const VariableMetadata &variable, const std::string &input_units, const Logger &log)
 
void read_spatial_variable (const SpatialVariableMetadata &variable, const Grid &grid, const File &file, unsigned int time, double *output)
 Read a variable from a file into an array output.
 
void write_spatial_variable (const SpatialVariableMetadata &metadata, const Grid &grid, const File &file, const double *input)
 Write a double array to a file.
 
static void check_grid_overlap (const grid::InputGridInfo &input, const Grid &internal, const std::vector< double > &z_internal)
 
void check_input_grid (const grid::InputGridInfo &input_grid, const Grid &internal_grid, const std::vector< double > &internal_z_levels)
 Check that x, y, and z coordinates of the input grid are strictly increasing.
 
void regrid_spatial_variable (const SpatialVariableMetadata &variable, const Grid &target_grid, const LocalInterpCtx &interp_context, const File &file, double *output)
 Regrid from a NetCDF file into a distributed array output.
 
void define_timeseries (const VariableMetadata &var, const std::string &dimension_name, const File &file, io::Type nctype)
 Define a NetCDF variable corresponding to a time-series.
 
std::vector< doubleread_1d_variable (const File &file, const std::string &variable_name, const std::string &units, std::shared_ptr< units::System > unit_system)
 
void write_timeseries (const File &file, const VariableMetadata &metadata, size_t t_start, const std::vector< double > &data)
 Write a time-series data to a file.
 
void define_time_bounds (const VariableMetadata &var, const std::string &dimension_name, const std::string &bounds_name, const File &file, io::Type nctype)
 
std::vector< doubleread_bounds (const File &file, const std::string &bounds_variable_name, const std::string &internal_units, std::shared_ptr< units::System > unit_system)
 
void write_time_bounds (const File &file, const VariableMetadata &metadata, size_t t_start, const std::vector< double > &data)
 
void read_time_info (std::shared_ptr< units::System > unit_system, const File &file, const std::string &time_name, const std::string &time_units, std::vector< double > &times, std::vector< double > &bounds)
 
bool file_exists (MPI_Comm com, const std::string &filename)
 
VariableMetadata read_attributes (const File &file, const std::string &variable_name, std::shared_ptr< units::System > unit_system)
 
void write_attributes (const File &file, const VariableMetadata &variable, io::Type nctype)
 Write variable attributes to a NetCDF file.
 
std::string time_dimension (units::System::Ptr unit_system, const File &file, const std::string &variable_name)
 
void move_if_exists (MPI_Comm com, const std::string &file_to_move, int rank_to_use)
 Moves the file aside (file.nc -> file.nc~).
 
void remove_if_exists (MPI_Comm com, const std::string &file_to_remove, int rank_to_use)
 Check if a file is present are remove it.
 
static void check (const ErrorLocation &where, int return_code)
 Prints an error message; for debugging.
 
static void check (const ErrorLocation &where, int return_code)
 Prints an error message; for debugging.
 
static void check (const ErrorLocation &where, int return_code)
 Prints an error message; for debugging.
 
static void get_att_text (int ncid, int varid, const std::string &att_name, std::string &result)
 
static void get_att_string (int ncid, int varid, const std::string &att_name, std::string &result)
 
static void check (const ErrorLocation &where, int return_code)
 Prints an error message; for debugging.
 
static void check_and_abort (MPI_Comm com, const ErrorLocation &where, int return_code)
 call MPI_Abort() if a NetCDF call failed
 
static int get_att_text (int ncid, int varid, const std::string &att_name, std::string &result)
 
static int get_att_string (int ncid, int varid, const std::string &att_name, std::string &result)
 
static void check (const ErrorLocation &where, int return_code)
 

Detailed Description

Input and output code (NetCDF wrappers, etc)