1 #ifndef teca_arakawa_c_grid_h
2 #define teca_arakawa_c_grid_h
4 #include "teca_config.h"
8 #include "teca_array_collection.h"
73 TECA_DATASET_NEW_INSTANCE()
74 TECA_DATASET_NEW_COPY()
79 TECA_DATASET_METADATA(whole_extent,
unsigned long, 6)
80 TECA_DATASET_METADATA(extent,
unsigned long, 6)
81 TECA_DATASET_METADATA(bounds,
double, 6)
84 TECA_DATASET_METADATA(periodic_in_x,
int, 1)
85 TECA_DATASET_METADATA(periodic_in_y,
int, 1)
86 TECA_DATASET_METADATA(periodic_in_z,
int, 1)
89 unsigned long get_number_of_points() const override;
92 unsigned long get_number_of_cells() const override;
96 TECA_DATASET_METADATA(m_x_coordinate_variable, std::
string, 1)
97 TECA_DATASET_METADATA(m_y_coordinate_variable, std::
string, 1)
98 TECA_DATASET_METADATA(u_x_coordinate_variable, std::
string, 1)
99 TECA_DATASET_METADATA(u_y_coordinate_variable, std::
string, 1)
100 TECA_DATASET_METADATA(v_x_coordinate_variable, std::
string, 1)
101 TECA_DATASET_METADATA(v_y_coordinate_variable, std::
string, 1)
105 TECA_DATASET_METADATA(m_z_coordinate_variable, std::
string, 1)
106 TECA_DATASET_METADATA(w_z_coordinate_variable, std::
string, 1)
110 TECA_DATASET_METADATA(t_coordinate_variable, std::
string, 1)
140 void set_m_x_coordinates(const std::
string &name,
143 void set_m_y_coordinates(const std::
string &name,
146 void set_u_x_coordinates(const std::
string &name,
149 void set_u_y_coordinates(const std::
string &name,
152 void set_v_x_coordinates(const std::
string &name,
155 void set_v_y_coordinates(const std::
string &name,
159 void set_m_z_coordinates(const std::
string &name,
162 void set_w_z_coordinates(const std::
string &name,
166 void set_t_coordinates(const std::
string &name,
170 std::
string get_class_name()
const override
171 {
return "teca_arakawa_c_grid"; }
174 int get_type_code()
const override;
177 void copy(
const const_p_teca_dataset &other,
178 allocator alloc = allocator::malloc)
override;
181 void shallow_copy(
const p_teca_dataset &other)
override;
184 void copy_metadata(
const const_p_teca_dataset &other)
override;
187 void swap(
const p_teca_dataset &)
override;
190 bool empty() const noexcept override;
198 int to_stream(std::ostream &) const override;
224 std::shared_ptr<impl_t> m_impl;