1 #ifndef teca_arakawa_c_grid_h
2 #define teca_arakawa_c_grid_h
7 #include "teca_array_collection.h"
72 TECA_DATASET_NEW_INSTANCE()
73 TECA_DATASET_NEW_COPY()
78 TECA_DATASET_METADATA(whole_extent,
unsigned long, 6)
79 TECA_DATASET_METADATA(extent,
unsigned long, 6)
80 TECA_DATASET_METADATA(bounds,
double, 6)
83 TECA_DATASET_METADATA(periodic_in_x,
int, 1)
84 TECA_DATASET_METADATA(periodic_in_y,
int, 1)
85 TECA_DATASET_METADATA(periodic_in_z,
int, 1)
88 unsigned long get_number_of_points()
const override;
91 unsigned long get_number_of_cells()
const override;
95 TECA_DATASET_METADATA(m_x_coordinate_variable, std::string, 1)
96 TECA_DATASET_METADATA(m_y_coordinate_variable, std::string, 1)
97 TECA_DATASET_METADATA(u_x_coordinate_variable, std::string, 1)
98 TECA_DATASET_METADATA(u_y_coordinate_variable, std::string, 1)
99 TECA_DATASET_METADATA(v_x_coordinate_variable, std::string, 1)
100 TECA_DATASET_METADATA(v_y_coordinate_variable, std::string, 1)
104 TECA_DATASET_METADATA(m_z_coordinate_variable, std::string, 1)
105 TECA_DATASET_METADATA(w_z_coordinate_variable, std::string, 1)
109 TECA_DATASET_METADATA(t_coordinate_variable, std::string, 1)
139 void set_m_x_coordinates(
const std::string &name,
142 void set_m_y_coordinates(
const std::string &name,
145 void set_u_x_coordinates(
const std::string &name,
148 void set_u_y_coordinates(
const std::string &name,
151 void set_v_x_coordinates(
const std::string &name,
154 void set_v_y_coordinates(
const std::string &name,
158 void set_m_z_coordinates(
const std::string &name,
161 void set_w_z_coordinates(
const std::string &name,
165 void set_t_coordinates(
const std::string &name,
169 std::string get_class_name()
const override
170 {
return "teca_arakawa_c_grid"; }
173 int get_type_code()
const override;
177 void copy(
const const_p_teca_dataset &)
override;
178 void shallow_copy(
const p_teca_dataset &)
override;
181 void copy_metadata(
const const_p_teca_dataset &other)
override;
184 void swap(
const p_teca_dataset &)
override;
187 bool empty()
const noexcept
override;
195 int to_stream(std::ostream &)
const override;
215 std::shared_ptr<impl_t> m_impl;