PISM, A Parallel Ice Sheet Model 2.3.0-79cae578d committed by Constantine Khrulev on 2026-03-22
Loading...
Searching...
No Matches
OutputFile.cc
Go to the documentation of this file.
1/* Copyright (C) 2025 PISM Authors
2 *
3 * This file is part of PISM.
4 *
5 * PISM is free software; you can redistribute it and/or modify it under the
6 * terms of the GNU General Public License as published by the Free Software
7 * Foundation; either version 3 of the License, or (at your option) any later
8 * version.
9 *
10 * PISM is distributed in the hope that it will be useful, but WITHOUT ANY
11 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13 * details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with PISM; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19#include <string>
20
21#include "pism/util/io/OutputWriter.hh"
22#include "pism/util/VariableMetadata.hh"
23
24namespace pism {
25
26OutputFile::OutputFile(std::shared_ptr<OutputWriter> writer, const std::string &name)
27 : m_file_name(name), m_writer(writer) {
28 // empty
29}
30
31void OutputFile::define_variable(const VariableMetadata &variable) const {
32 m_writer->define_variable(m_file_name, variable);
33}
34
36 const std::map<std::string, std::string> &strings,
37 const std::map<std::string, std::vector<double> > &numbers) const {
38 m_writer->set_global_attributes(m_file_name, strings, numbers);
39}
40
41void OutputFile::append_time(double time_seconds) const {
42 m_writer->append_time(m_file_name, time_seconds);
43}
44
45void OutputFile::append_history(const std::string &text) const {
46 m_writer->append_history(m_file_name, text);
47}
48
49void OutputFile::write_array(const std::string &variable_name,
50 const std::vector<unsigned int> &start,
51 const std::vector<unsigned int> &count,
52 const std::vector<double> &input) const {
53 m_writer->write_array(m_file_name, variable_name, start, count, input);
54}
55
56void OutputFile::write_distributed_array(const std::string &variable_name,
57 const double *input) const {
58 m_writer->write_distributed_array(m_file_name, variable_name, input);
59}
60
61void OutputFile::write_timeseries(const std::string &variable_name,
62 const std::vector<unsigned int> &start,
63 const std::vector<unsigned int> &count,
64 const std::vector<double> &input) const {
65 m_writer->write_timeseries(m_file_name, variable_name, start, count, input);
66}
67
68void OutputFile::write_text(const std::string &variable_name,
69 const std::vector<unsigned int> &start,
70 const std::vector<unsigned int> &count, const std::string &input) const {
71 m_writer->write_text(m_file_name, variable_name, start, count, input);
72}
73
75 m_writer->append(m_file_name);
76}
77
79 m_writer->sync(m_file_name);
80}
81
83 m_writer->close(m_file_name);
84}
85
87 return m_writer->time_dimension_length(m_file_name);
88}
89
91 return m_writer->last_time_value(m_file_name);
92}
93
94const std::string &OutputFile::name() const {
95 return m_file_name;
96}
97
98} // namespace pism
std::string m_file_name
void write_distributed_array(const std::string &variable_name, const double *input) const
Definition OutputFile.cc:56
void append_time(double time_seconds) const
Definition OutputFile.cc:41
OutputFile(std::shared_ptr< OutputWriter > writer, const std::string &name)
Definition OutputFile.cc:26
void set_global_attributes(const std::map< std::string, std::string > &strings, const std::map< std::string, std::vector< double > > &numbers) const
Definition OutputFile.cc:35
const std::string & name() const
Definition OutputFile.cc:94
std::shared_ptr< OutputWriter > m_writer
void append_history(const std::string &text) const
Definition OutputFile.cc:45
unsigned int time_dimension_length() const
Definition OutputFile.cc:86
void write_text(const std::string &variable_name, const std::vector< unsigned int > &start, const std::vector< unsigned int > &count, const std::string &input) const
Definition OutputFile.cc:68
void write_timeseries(const std::string &variable_name, const std::vector< unsigned int > &start, const std::vector< unsigned int > &count, const std::vector< double > &input) const
Definition OutputFile.cc:61
void define_variable(const VariableMetadata &variable) const
Definition OutputFile.cc:31
void write_array(const std::string &variable_name, const std::vector< unsigned int > &start, const std::vector< unsigned int > &count, const std::vector< double > &input) const
Definition OutputFile.cc:49
double last_time_value() const
Definition OutputFile.cc:90
int count
Definition test_cube.c:16