source: XIOS/trunk/src/interface/c_attr/icinterpolate_domain_attr.cpp @ 1106

Last change on this file since 1106 was 1014, checked in by mhnguyen, 7 years ago

Fixing Bug: Writing interpolation weights of masked domain causes error

+) If domain is masked, some processes can have no interpolation weight at all,
which can cause writing problem if we use the collective mode.
By changing to independent mode, this problem is solved.
+) Remove redundant attribute of interpolate_domain.

Test
+) On Curie
+) Work

File size: 5.2 KB
Line 
1/* ************************************************************************** *
2 *               Interface auto generated - do not modify                     *
3 * ************************************************************************** */
4
5#include <boost/multi_array.hpp>
6#include <boost/shared_ptr.hpp>
7#include "xios.hpp"
8#include "attribute_template.hpp"
9#include "object_template.hpp"
10#include "group_template.hpp"
11#include "icutil.hpp"
12#include "icdate.hpp"
13#include "timer.hpp"
14#include "node_type.hpp"
15
16extern "C"
17{
18  typedef xios::CInterpolateDomain* interpolate_domain_Ptr;
19
20  void cxios_set_interpolate_domain_mode(interpolate_domain_Ptr interpolate_domain_hdl, const char * mode, int mode_size)
21  {
22    std::string mode_str;
23    if (!cstr2string(mode, mode_size, mode_str)) return;
24    CTimer::get("XIOS").resume();
25    interpolate_domain_hdl->mode.fromString(mode_str);
26    CTimer::get("XIOS").suspend();
27  }
28
29  void cxios_get_interpolate_domain_mode(interpolate_domain_Ptr interpolate_domain_hdl, char * mode, int mode_size)
30  {
31    CTimer::get("XIOS").resume();
32    if (!string_copy(interpolate_domain_hdl->mode.getInheritedStringValue(), mode, mode_size))
33      ERROR("void cxios_get_interpolate_domain_mode(interpolate_domain_Ptr interpolate_domain_hdl, char * mode, int mode_size)", << "Input string is too short");
34    CTimer::get("XIOS").suspend();
35  }
36
37  bool cxios_is_defined_interpolate_domain_mode(interpolate_domain_Ptr interpolate_domain_hdl)
38  {
39     CTimer::get("XIOS").resume();
40     bool isDefined = interpolate_domain_hdl->mode.hasInheritedValue();
41     CTimer::get("XIOS").suspend();
42     return isDefined;
43  }
44
45
46  void cxios_set_interpolate_domain_order(interpolate_domain_Ptr interpolate_domain_hdl, int order)
47  {
48    CTimer::get("XIOS").resume();
49    interpolate_domain_hdl->order.setValue(order);
50    CTimer::get("XIOS").suspend();
51  }
52
53  void cxios_get_interpolate_domain_order(interpolate_domain_Ptr interpolate_domain_hdl, int* order)
54  {
55    CTimer::get("XIOS").resume();
56    *order = interpolate_domain_hdl->order.getInheritedValue();
57    CTimer::get("XIOS").suspend();
58  }
59
60  bool cxios_is_defined_interpolate_domain_order(interpolate_domain_Ptr interpolate_domain_hdl)
61  {
62     CTimer::get("XIOS").resume();
63     bool isDefined = interpolate_domain_hdl->order.hasInheritedValue();
64     CTimer::get("XIOS").suspend();
65     return isDefined;
66  }
67
68
69  void cxios_set_interpolate_domain_renormalize(interpolate_domain_Ptr interpolate_domain_hdl, bool renormalize)
70  {
71    CTimer::get("XIOS").resume();
72    interpolate_domain_hdl->renormalize.setValue(renormalize);
73    CTimer::get("XIOS").suspend();
74  }
75
76  void cxios_get_interpolate_domain_renormalize(interpolate_domain_Ptr interpolate_domain_hdl, bool* renormalize)
77  {
78    CTimer::get("XIOS").resume();
79    *renormalize = interpolate_domain_hdl->renormalize.getInheritedValue();
80    CTimer::get("XIOS").suspend();
81  }
82
83  bool cxios_is_defined_interpolate_domain_renormalize(interpolate_domain_Ptr interpolate_domain_hdl)
84  {
85     CTimer::get("XIOS").resume();
86     bool isDefined = interpolate_domain_hdl->renormalize.hasInheritedValue();
87     CTimer::get("XIOS").suspend();
88     return isDefined;
89  }
90
91
92  void cxios_set_interpolate_domain_weight_filename(interpolate_domain_Ptr interpolate_domain_hdl, const char * weight_filename, int weight_filename_size)
93  {
94    std::string weight_filename_str;
95    if (!cstr2string(weight_filename, weight_filename_size, weight_filename_str)) return;
96    CTimer::get("XIOS").resume();
97    interpolate_domain_hdl->weight_filename.setValue(weight_filename_str);
98    CTimer::get("XIOS").suspend();
99  }
100
101  void cxios_get_interpolate_domain_weight_filename(interpolate_domain_Ptr interpolate_domain_hdl, char * weight_filename, int weight_filename_size)
102  {
103    CTimer::get("XIOS").resume();
104    if (!string_copy(interpolate_domain_hdl->weight_filename.getInheritedValue(), weight_filename, weight_filename_size))
105      ERROR("void cxios_get_interpolate_domain_weight_filename(interpolate_domain_Ptr interpolate_domain_hdl, char * weight_filename, int weight_filename_size)", << "Input string is too short");
106    CTimer::get("XIOS").suspend();
107  }
108
109  bool cxios_is_defined_interpolate_domain_weight_filename(interpolate_domain_Ptr interpolate_domain_hdl)
110  {
111     CTimer::get("XIOS").resume();
112     bool isDefined = interpolate_domain_hdl->weight_filename.hasInheritedValue();
113     CTimer::get("XIOS").suspend();
114     return isDefined;
115  }
116
117
118  void cxios_set_interpolate_domain_write_weight(interpolate_domain_Ptr interpolate_domain_hdl, bool write_weight)
119  {
120    CTimer::get("XIOS").resume();
121    interpolate_domain_hdl->write_weight.setValue(write_weight);
122    CTimer::get("XIOS").suspend();
123  }
124
125  void cxios_get_interpolate_domain_write_weight(interpolate_domain_Ptr interpolate_domain_hdl, bool* write_weight)
126  {
127    CTimer::get("XIOS").resume();
128    *write_weight = interpolate_domain_hdl->write_weight.getInheritedValue();
129    CTimer::get("XIOS").suspend();
130  }
131
132  bool cxios_is_defined_interpolate_domain_write_weight(interpolate_domain_Ptr interpolate_domain_hdl)
133  {
134     CTimer::get("XIOS").resume();
135     bool isDefined = interpolate_domain_hdl->write_weight.hasInheritedValue();
136     CTimer::get("XIOS").suspend();
137     return isDefined;
138  }
139}
Note: See TracBrowser for help on using the repository browser.