tpism_File.i - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
 (HTM) git clone git://src.adamsgaard.dk/pism
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
       tpism_File.i (1220B)
       ---
            1 %{
            2 #include "util/io/File.hh"
            3 #include "util/io/io_helpers.hh"
            4 %}
            5 
            6 %ignore pism::File::read_variable(const std::string &, const std::vector<unsigned int> &, const std::vector<unsigned int> &, double *) const;
            7 %ignore pism::File::write_variable(const std::string &, const std::vector<unsigned int> &, const std::vector<unsigned int> &, const double *) const;
            8 
            9 %include "util/io/IO_Flags.hh"
           10 %include "util/io/File.hh"
           11 %include "util/io/io_helpers.hh"
           12 
           13 %extend pism::File
           14 {
           15   void write_variable(const std::string &variable_name,
           16                       const std::vector<unsigned int> &start,
           17                       const std::vector<unsigned int> &count,
           18                       const std::vector<double> &data) const {
           19     $self->write_variable(variable_name, start, count, data.data());
           20   }
           21 
           22   std::vector<double> read_variable(const std::string &variable_name,
           23                                     const std::vector<unsigned int> &start,
           24                                     const std::vector<unsigned int> &count) {
           25     size_t size = 1;
           26     for (auto c : count) {
           27       size *= c;
           28     }
           29 
           30     std::vector<double> result(size);
           31     $self->read_variable(variable_name, start, count, result.data());
           32 
           33     return result;
           34   }
           35 };