source: XIOS/trunk/src/interface/c_attr/icgrid_attr.cpp @ 1201

Last change on this file since 1201 was 932, checked in by mhnguyen, 8 years ago

Adding Fortran interface for high-dimension grid (up to 7)

+) Add check mask for high-dimension grid
+) Add Fortran interface for send_field, recv_field

Test
+) On Curie
+) Work

  • Property copyright set to
    Software name : XIOS (Xml I/O Server)
    http://forge.ipsl.jussieu.fr/ioserver
    Creation date : January 2009
    Licence : CeCCIL version2
    see license file in root directory : Licence_CeCILL_V2-en.txt
    or http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
    Holder : CEA/LSCE (Laboratoire des Sciences du CLimat et de l'Environnement)
    CNRS/IPSL (Institut Pierre Simon Laplace)
    Project Manager : Yann Meurdesoif
    yann.meurdesoif@cea.fr
  • Property svn:eol-style set to native
File size: 8.0 KB
RevLine 
[325]1/* ************************************************************************** *
[581]2 *               Interface auto generated - do not modify                     *
[325]3 * ************************************************************************** */
4
5#include <boost/multi_array.hpp>
6#include <boost/shared_ptr.hpp>
[591]7#include "xios.hpp"
[352]8#include "attribute_template.hpp"
9#include "object_template.hpp"
10#include "group_template.hpp"
[325]11#include "icutil.hpp"
[532]12#include "icdate.hpp"
[347]13#include "timer.hpp"
[369]14#include "node_type.hpp"
[325]15
16extern "C"
17{
[581]18  typedef xios::CGrid* grid_Ptr;
19
[325]20  void cxios_set_grid_description(grid_Ptr grid_hdl, const char * description, int description_size)
21  {
22    std::string description_str;
[581]23    if (!cstr2string(description, description_size, description_str)) return;
24    CTimer::get("XIOS").resume();
[325]25    grid_hdl->description.setValue(description_str);
[581]26    CTimer::get("XIOS").suspend();
[325]27  }
[581]28
[325]29  void cxios_get_grid_description(grid_Ptr grid_hdl, char * description, int description_size)
30  {
[581]31    CTimer::get("XIOS").resume();
32    if (!string_copy(grid_hdl->description.getInheritedValue(), description, description_size))
33      ERROR("void cxios_get_grid_description(grid_Ptr grid_hdl, char * description, int description_size)", << "Input string is too short");
34    CTimer::get("XIOS").suspend();
[325]35  }
[581]36
37  bool cxios_is_defined_grid_description(grid_Ptr grid_hdl)
[432]38  {
39     CTimer::get("XIOS").resume();
[581]40     bool isDefined = grid_hdl->description.hasInheritedValue();
[432]41     CTimer::get("XIOS").suspend();
[581]42     return isDefined;
[432]43  }
[581]44
45
[817]46  void cxios_set_grid_mask_1d(grid_Ptr grid_hdl, bool* mask_1d, int* extent)
[415]47  {
48    CTimer::get("XIOS").resume();
[817]49    CArray<bool,1> tmp(mask_1d, shape(extent[0]), neverDeleteData);
50    grid_hdl->mask_1d.reference(tmp.copy());
[416]51     CTimer::get("XIOS").suspend();
[415]52  }
[581]53
[817]54  void cxios_get_grid_mask_1d(grid_Ptr grid_hdl, bool* mask_1d, int* extent)
[415]55  {
[416]56    CTimer::get("XIOS").resume();
[817]57    CArray<bool,1> tmp(mask_1d, shape(extent[0]), neverDeleteData);
58    tmp=grid_hdl->mask_1d.getInheritedValue();
[415]59     CTimer::get("XIOS").suspend();
60  }
[581]61
[817]62  bool cxios_is_defined_grid_mask_1d(grid_Ptr grid_hdl)
[432]63  {
64     CTimer::get("XIOS").resume();
[817]65     bool isDefined = grid_hdl->mask_1d.hasInheritedValue();
[432]66     CTimer::get("XIOS").suspend();
[581]67     return isDefined;
[432]68  }
[581]69
70
[817]71  void cxios_set_grid_mask_2d(grid_Ptr grid_hdl, bool* mask_2d, int* extent)
[567]72  {
73    CTimer::get("XIOS").resume();
[817]74    CArray<bool,2> tmp(mask_2d, shape(extent[0], extent[1]), neverDeleteData);
75    grid_hdl->mask_2d.reference(tmp.copy());
[567]76     CTimer::get("XIOS").suspend();
77  }
[581]78
[817]79  void cxios_get_grid_mask_2d(grid_Ptr grid_hdl, bool* mask_2d, int* extent)
[567]80  {
81    CTimer::get("XIOS").resume();
[817]82    CArray<bool,2> tmp(mask_2d, shape(extent[0], extent[1]), neverDeleteData);
83    tmp=grid_hdl->mask_2d.getInheritedValue();
[567]84     CTimer::get("XIOS").suspend();
85  }
[581]86
[817]87  bool cxios_is_defined_grid_mask_2d(grid_Ptr grid_hdl)
[567]88  {
89     CTimer::get("XIOS").resume();
[817]90     bool isDefined = grid_hdl->mask_2d.hasInheritedValue();
[567]91     CTimer::get("XIOS").suspend();
[581]92     return isDefined;
[567]93  }
[581]94
95
[817]96  void cxios_set_grid_mask_3d(grid_Ptr grid_hdl, bool* mask_3d, int* extent)
[567]97  {
98    CTimer::get("XIOS").resume();
[817]99    CArray<bool,3> tmp(mask_3d, shape(extent[0], extent[1], extent[2]), neverDeleteData);
100    grid_hdl->mask_3d.reference(tmp.copy());
[567]101     CTimer::get("XIOS").suspend();
102  }
[581]103
[817]104  void cxios_get_grid_mask_3d(grid_Ptr grid_hdl, bool* mask_3d, int* extent)
[567]105  {
106    CTimer::get("XIOS").resume();
[817]107    CArray<bool,3> tmp(mask_3d, shape(extent[0], extent[1], extent[2]), neverDeleteData);
108    tmp=grid_hdl->mask_3d.getInheritedValue();
[567]109     CTimer::get("XIOS").suspend();
110  }
[581]111
[817]112  bool cxios_is_defined_grid_mask_3d(grid_Ptr grid_hdl)
[567]113  {
114     CTimer::get("XIOS").resume();
[817]115     bool isDefined = grid_hdl->mask_3d.hasInheritedValue();
[567]116     CTimer::get("XIOS").suspend();
[581]117     return isDefined;
[567]118  }
[581]119
120
[932]121  void cxios_set_grid_mask_4d(grid_Ptr grid_hdl, bool* mask_4d, int* extent)
122  {
123    CTimer::get("XIOS").resume();
124    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData);
125    grid_hdl->mask_4d.reference(tmp.copy());
126     CTimer::get("XIOS").suspend();
127  }
128
129  void cxios_get_grid_mask_4d(grid_Ptr grid_hdl, bool* mask_4d, int* extent)
130  {
131    CTimer::get("XIOS").resume();
132    CArray<bool,4> tmp(mask_4d, shape(extent[0], extent[1], extent[2], extent[3]), neverDeleteData);
133    tmp=grid_hdl->mask_4d.getInheritedValue();
134     CTimer::get("XIOS").suspend();
135  }
136
137  bool cxios_is_defined_grid_mask_4d(grid_Ptr grid_hdl)
138  {
139     CTimer::get("XIOS").resume();
140     bool isDefined = grid_hdl->mask_4d.hasInheritedValue();
141     CTimer::get("XIOS").suspend();
142     return isDefined;
143  }
144
145
146  void cxios_set_grid_mask_5d(grid_Ptr grid_hdl, bool* mask_5d, int* extent)
147  {
148    CTimer::get("XIOS").resume();
149    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData);
150    grid_hdl->mask_5d.reference(tmp.copy());
151     CTimer::get("XIOS").suspend();
152  }
153
154  void cxios_get_grid_mask_5d(grid_Ptr grid_hdl, bool* mask_5d, int* extent)
155  {
156    CTimer::get("XIOS").resume();
157    CArray<bool,5> tmp(mask_5d, shape(extent[0], extent[1], extent[2], extent[3], extent[4]), neverDeleteData);
158    tmp=grid_hdl->mask_5d.getInheritedValue();
159     CTimer::get("XIOS").suspend();
160  }
161
162  bool cxios_is_defined_grid_mask_5d(grid_Ptr grid_hdl)
163  {
164     CTimer::get("XIOS").resume();
165     bool isDefined = grid_hdl->mask_5d.hasInheritedValue();
166     CTimer::get("XIOS").suspend();
167     return isDefined;
168  }
169
170
171  void cxios_set_grid_mask_6d(grid_Ptr grid_hdl, bool* mask_6d, int* extent)
172  {
173    CTimer::get("XIOS").resume();
174    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData);
175    grid_hdl->mask_6d.reference(tmp.copy());
176     CTimer::get("XIOS").suspend();
177  }
178
179  void cxios_get_grid_mask_6d(grid_Ptr grid_hdl, bool* mask_6d, int* extent)
180  {
181    CTimer::get("XIOS").resume();
182    CArray<bool,6> tmp(mask_6d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5]), neverDeleteData);
183    tmp=grid_hdl->mask_6d.getInheritedValue();
184     CTimer::get("XIOS").suspend();
185  }
186
187  bool cxios_is_defined_grid_mask_6d(grid_Ptr grid_hdl)
188  {
189     CTimer::get("XIOS").resume();
190     bool isDefined = grid_hdl->mask_6d.hasInheritedValue();
191     CTimer::get("XIOS").suspend();
192     return isDefined;
193  }
194
195
196  void cxios_set_grid_mask_7d(grid_Ptr grid_hdl, bool* mask_7d, int* extent)
197  {
198    CTimer::get("XIOS").resume();
199    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData);
200    grid_hdl->mask_7d.reference(tmp.copy());
201     CTimer::get("XIOS").suspend();
202  }
203
204  void cxios_get_grid_mask_7d(grid_Ptr grid_hdl, bool* mask_7d, int* extent)
205  {
206    CTimer::get("XIOS").resume();
207    CArray<bool,7> tmp(mask_7d, shape(extent[0], extent[1], extent[2], extent[3], extent[4], extent[5], extent[6]), neverDeleteData);
208    tmp=grid_hdl->mask_7d.getInheritedValue();
209     CTimer::get("XIOS").suspend();
210  }
211
212  bool cxios_is_defined_grid_mask_7d(grid_Ptr grid_hdl)
213  {
214     CTimer::get("XIOS").resume();
215     bool isDefined = grid_hdl->mask_7d.hasInheritedValue();
216     CTimer::get("XIOS").suspend();
217     return isDefined;
218  }
219
220
[325]221  void cxios_set_grid_name(grid_Ptr grid_hdl, const char * name, int name_size)
222  {
223    std::string name_str;
[581]224    if (!cstr2string(name, name_size, name_str)) return;
225    CTimer::get("XIOS").resume();
[325]226    grid_hdl->name.setValue(name_str);
[581]227    CTimer::get("XIOS").suspend();
[325]228  }
[581]229
[325]230  void cxios_get_grid_name(grid_Ptr grid_hdl, char * name, int name_size)
231  {
[581]232    CTimer::get("XIOS").resume();
233    if (!string_copy(grid_hdl->name.getInheritedValue(), name, name_size))
234      ERROR("void cxios_get_grid_name(grid_Ptr grid_hdl, char * name, int name_size)", << "Input string is too short");
235    CTimer::get("XIOS").suspend();
[325]236  }
[581]237
238  bool cxios_is_defined_grid_name(grid_Ptr grid_hdl)
[432]239  {
240     CTimer::get("XIOS").resume();
[581]241     bool isDefined = grid_hdl->name.hasInheritedValue();
[432]242     CTimer::get("XIOS").suspend();
[581]243     return isDefined;
[432]244  }
[325]245}
Note: See TracBrowser for help on using the repository browser.