source: XIOS/trunk/src/interface/c_attr/icfieldgroup_attr.cpp @ 676

Last change on this file since 676 was 676, checked in by rlacroix, 9 years ago

Add support for indexed output.

If the new field attribute "indexed_output" is set to true and a mask is defined (either at grid, domain or axis level), the indexed data will be outputed instead of the full data with missing values.

See http://cfconventions.org/Data/cf-conventions/cf-conventions-1.5/build/cf-conventions.html#compression-by-gathering for more information.

  • 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: 21.5 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::CFieldGroup* fieldgroup_Ptr;
19
[464]20  void cxios_set_fieldgroup_add_offset(fieldgroup_Ptr fieldgroup_hdl, double add_offset)
21  {
[581]22    CTimer::get("XIOS").resume();
[464]23    fieldgroup_hdl->add_offset.setValue(add_offset);
[581]24    CTimer::get("XIOS").suspend();
[464]25  }
[581]26
[464]27  void cxios_get_fieldgroup_add_offset(fieldgroup_Ptr fieldgroup_hdl, double* add_offset)
28  {
[581]29    CTimer::get("XIOS").resume();
[464]30    *add_offset = fieldgroup_hdl->add_offset.getInheritedValue();
[581]31    CTimer::get("XIOS").suspend();
[464]32  }
[581]33
34  bool cxios_is_defined_fieldgroup_add_offset(fieldgroup_Ptr fieldgroup_hdl)
[464]35  {
36     CTimer::get("XIOS").resume();
[581]37     bool isDefined = fieldgroup_hdl->add_offset.hasInheritedValue();
[464]38     CTimer::get("XIOS").suspend();
[581]39     return isDefined;
[464]40  }
[581]41
42
[325]43  void cxios_set_fieldgroup_axis_ref(fieldgroup_Ptr fieldgroup_hdl, const char * axis_ref, int axis_ref_size)
44  {
45    std::string axis_ref_str;
[581]46    if (!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return;
47    CTimer::get("XIOS").resume();
[325]48    fieldgroup_hdl->axis_ref.setValue(axis_ref_str);
[581]49    CTimer::get("XIOS").suspend();
[325]50  }
[581]51
[325]52  void cxios_get_fieldgroup_axis_ref(fieldgroup_Ptr fieldgroup_hdl, char * axis_ref, int axis_ref_size)
53  {
[581]54    CTimer::get("XIOS").resume();
55    if (!string_copy(fieldgroup_hdl->axis_ref.getInheritedValue(), axis_ref, axis_ref_size))
56      ERROR("void cxios_get_fieldgroup_axis_ref(fieldgroup_Ptr fieldgroup_hdl, char * axis_ref, int axis_ref_size)", << "Input string is too short");
57    CTimer::get("XIOS").suspend();
[325]58  }
[581]59
60  bool cxios_is_defined_fieldgroup_axis_ref(fieldgroup_Ptr fieldgroup_hdl)
[432]61  {
62     CTimer::get("XIOS").resume();
[581]63     bool isDefined = fieldgroup_hdl->axis_ref.hasInheritedValue();
[432]64     CTimer::get("XIOS").suspend();
[581]65     return isDefined;
[432]66  }
[581]67
68
[608]69  void cxios_set_fieldgroup_compression_level(fieldgroup_Ptr fieldgroup_hdl, int compression_level)
70  {
71    CTimer::get("XIOS").resume();
72    fieldgroup_hdl->compression_level.setValue(compression_level);
73    CTimer::get("XIOS").suspend();
74  }
75
76  void cxios_get_fieldgroup_compression_level(fieldgroup_Ptr fieldgroup_hdl, int* compression_level)
77  {
78    CTimer::get("XIOS").resume();
79    *compression_level = fieldgroup_hdl->compression_level.getInheritedValue();
80    CTimer::get("XIOS").suspend();
81  }
82
83  bool cxios_is_defined_fieldgroup_compression_level(fieldgroup_Ptr fieldgroup_hdl)
84  {
85     CTimer::get("XIOS").resume();
86     bool isDefined = fieldgroup_hdl->compression_level.hasInheritedValue();
87     CTimer::get("XIOS").suspend();
88     return isDefined;
89  }
90
91
[325]92  void cxios_set_fieldgroup_default_value(fieldgroup_Ptr fieldgroup_hdl, double default_value)
93  {
[581]94    CTimer::get("XIOS").resume();
[325]95    fieldgroup_hdl->default_value.setValue(default_value);
[581]96    CTimer::get("XIOS").suspend();
[325]97  }
[581]98
[325]99  void cxios_get_fieldgroup_default_value(fieldgroup_Ptr fieldgroup_hdl, double* default_value)
100  {
[581]101    CTimer::get("XIOS").resume();
[445]102    *default_value = fieldgroup_hdl->default_value.getInheritedValue();
[581]103    CTimer::get("XIOS").suspend();
[325]104  }
[581]105
106  bool cxios_is_defined_fieldgroup_default_value(fieldgroup_Ptr fieldgroup_hdl)
[432]107  {
108     CTimer::get("XIOS").resume();
[581]109     bool isDefined = fieldgroup_hdl->default_value.hasInheritedValue();
[432]110     CTimer::get("XIOS").suspend();
[581]111     return isDefined;
[432]112  }
[581]113
114
[472]115  void cxios_set_fieldgroup_detect_missing_value(fieldgroup_Ptr fieldgroup_hdl, bool detect_missing_value)
116  {
[581]117    CTimer::get("XIOS").resume();
[472]118    fieldgroup_hdl->detect_missing_value.setValue(detect_missing_value);
[581]119    CTimer::get("XIOS").suspend();
[472]120  }
[581]121
[472]122  void cxios_get_fieldgroup_detect_missing_value(fieldgroup_Ptr fieldgroup_hdl, bool* detect_missing_value)
123  {
[581]124    CTimer::get("XIOS").resume();
[472]125    *detect_missing_value = fieldgroup_hdl->detect_missing_value.getInheritedValue();
[581]126    CTimer::get("XIOS").suspend();
[472]127  }
[581]128
129  bool cxios_is_defined_fieldgroup_detect_missing_value(fieldgroup_Ptr fieldgroup_hdl)
[472]130  {
131     CTimer::get("XIOS").resume();
[581]132     bool isDefined = fieldgroup_hdl->detect_missing_value.hasInheritedValue();
[472]133     CTimer::get("XIOS").suspend();
[581]134     return isDefined;
[472]135  }
[581]136
137
[325]138  void cxios_set_fieldgroup_domain_ref(fieldgroup_Ptr fieldgroup_hdl, const char * domain_ref, int domain_ref_size)
139  {
140    std::string domain_ref_str;
[581]141    if (!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return;
142    CTimer::get("XIOS").resume();
[325]143    fieldgroup_hdl->domain_ref.setValue(domain_ref_str);
[581]144    CTimer::get("XIOS").suspend();
[325]145  }
[581]146
[325]147  void cxios_get_fieldgroup_domain_ref(fieldgroup_Ptr fieldgroup_hdl, char * domain_ref, int domain_ref_size)
148  {
[581]149    CTimer::get("XIOS").resume();
150    if (!string_copy(fieldgroup_hdl->domain_ref.getInheritedValue(), domain_ref, domain_ref_size))
151      ERROR("void cxios_get_fieldgroup_domain_ref(fieldgroup_Ptr fieldgroup_hdl, char * domain_ref, int domain_ref_size)", << "Input string is too short");
152    CTimer::get("XIOS").suspend();
[325]153  }
[581]154
155  bool cxios_is_defined_fieldgroup_domain_ref(fieldgroup_Ptr fieldgroup_hdl)
[432]156  {
157     CTimer::get("XIOS").resume();
[581]158     bool isDefined = fieldgroup_hdl->domain_ref.hasInheritedValue();
[432]159     CTimer::get("XIOS").suspend();
[581]160     return isDefined;
[432]161  }
[581]162
163
[325]164  void cxios_set_fieldgroup_enabled(fieldgroup_Ptr fieldgroup_hdl, bool enabled)
165  {
[581]166    CTimer::get("XIOS").resume();
[325]167    fieldgroup_hdl->enabled.setValue(enabled);
[581]168    CTimer::get("XIOS").suspend();
[325]169  }
[581]170
[325]171  void cxios_get_fieldgroup_enabled(fieldgroup_Ptr fieldgroup_hdl, bool* enabled)
172  {
[581]173    CTimer::get("XIOS").resume();
[445]174    *enabled = fieldgroup_hdl->enabled.getInheritedValue();
[581]175    CTimer::get("XIOS").suspend();
[325]176  }
[581]177
178  bool cxios_is_defined_fieldgroup_enabled(fieldgroup_Ptr fieldgroup_hdl)
[432]179  {
180     CTimer::get("XIOS").resume();
[581]181     bool isDefined = fieldgroup_hdl->enabled.hasInheritedValue();
[432]182     CTimer::get("XIOS").suspend();
[581]183     return isDefined;
[432]184  }
[581]185
186
[325]187  void cxios_set_fieldgroup_field_ref(fieldgroup_Ptr fieldgroup_hdl, const char * field_ref, int field_ref_size)
188  {
189    std::string field_ref_str;
[581]190    if (!cstr2string(field_ref, field_ref_size, field_ref_str)) return;
191    CTimer::get("XIOS").resume();
[325]192    fieldgroup_hdl->field_ref.setValue(field_ref_str);
[581]193    CTimer::get("XIOS").suspend();
[325]194  }
[581]195
[325]196  void cxios_get_fieldgroup_field_ref(fieldgroup_Ptr fieldgroup_hdl, char * field_ref, int field_ref_size)
197  {
[581]198    CTimer::get("XIOS").resume();
199    if (!string_copy(fieldgroup_hdl->field_ref.getInheritedValue(), field_ref, field_ref_size))
200      ERROR("void cxios_get_fieldgroup_field_ref(fieldgroup_Ptr fieldgroup_hdl, char * field_ref, int field_ref_size)", << "Input string is too short");
201    CTimer::get("XIOS").suspend();
[325]202  }
[581]203
204  bool cxios_is_defined_fieldgroup_field_ref(fieldgroup_Ptr fieldgroup_hdl)
[432]205  {
206     CTimer::get("XIOS").resume();
[581]207     bool isDefined = fieldgroup_hdl->field_ref.hasInheritedValue();
[432]208     CTimer::get("XIOS").suspend();
[581]209     return isDefined;
[432]210  }
[581]211
212
[538]213  void cxios_set_fieldgroup_freq_offset(fieldgroup_Ptr fieldgroup_hdl, cxios_duration freq_offset_c)
[325]214  {
[538]215    CTimer::get("XIOS").resume();
216    fieldgroup_hdl->freq_offset.allocate();
217    CDuration& freq_offset = fieldgroup_hdl->freq_offset.get();
218    freq_offset.year = freq_offset_c.year;
219    freq_offset.month = freq_offset_c.month;
220    freq_offset.day = freq_offset_c.day;
221    freq_offset.hour = freq_offset_c.hour;
222    freq_offset.minute = freq_offset_c.minute;
223    freq_offset.second = freq_offset_c.second;
224    freq_offset.timestep = freq_offset_c.timestep;
225    CTimer::get("XIOS").suspend();
[325]226  }
[581]227
[538]228  void cxios_get_fieldgroup_freq_offset(fieldgroup_Ptr fieldgroup_hdl, cxios_duration* freq_offset_c)
[325]229  {
[538]230    CTimer::get("XIOS").resume();
231    CDuration freq_offset = fieldgroup_hdl->freq_offset.getInheritedValue();
232    freq_offset_c->year = freq_offset.year;
233    freq_offset_c->month = freq_offset.month;
234    freq_offset_c->day = freq_offset.day;
235    freq_offset_c->hour = freq_offset.hour;
236    freq_offset_c->minute = freq_offset.minute;
237    freq_offset_c->second = freq_offset.second;
238    freq_offset_c->timestep = freq_offset.timestep;
239    CTimer::get("XIOS").suspend();
[325]240  }
[581]241
242  bool cxios_is_defined_fieldgroup_freq_offset(fieldgroup_Ptr fieldgroup_hdl)
[432]243  {
244     CTimer::get("XIOS").resume();
[581]245     bool isDefined = fieldgroup_hdl->freq_offset.hasInheritedValue();
[432]246     CTimer::get("XIOS").suspend();
[581]247     return isDefined;
[432]248  }
[581]249
250
[538]251  void cxios_set_fieldgroup_freq_op(fieldgroup_Ptr fieldgroup_hdl, cxios_duration freq_op_c)
[325]252  {
[538]253    CTimer::get("XIOS").resume();
254    fieldgroup_hdl->freq_op.allocate();
255    CDuration& freq_op = fieldgroup_hdl->freq_op.get();
256    freq_op.year = freq_op_c.year;
257    freq_op.month = freq_op_c.month;
258    freq_op.day = freq_op_c.day;
259    freq_op.hour = freq_op_c.hour;
260    freq_op.minute = freq_op_c.minute;
261    freq_op.second = freq_op_c.second;
262    freq_op.timestep = freq_op_c.timestep;
263    CTimer::get("XIOS").suspend();
[325]264  }
[581]265
[538]266  void cxios_get_fieldgroup_freq_op(fieldgroup_Ptr fieldgroup_hdl, cxios_duration* freq_op_c)
[325]267  {
[538]268    CTimer::get("XIOS").resume();
269    CDuration freq_op = fieldgroup_hdl->freq_op.getInheritedValue();
270    freq_op_c->year = freq_op.year;
271    freq_op_c->month = freq_op.month;
272    freq_op_c->day = freq_op.day;
273    freq_op_c->hour = freq_op.hour;
274    freq_op_c->minute = freq_op.minute;
275    freq_op_c->second = freq_op.second;
276    freq_op_c->timestep = freq_op.timestep;
277    CTimer::get("XIOS").suspend();
[325]278  }
[581]279
280  bool cxios_is_defined_fieldgroup_freq_op(fieldgroup_Ptr fieldgroup_hdl)
[432]281  {
282     CTimer::get("XIOS").resume();
[581]283     bool isDefined = fieldgroup_hdl->freq_op.hasInheritedValue();
[432]284     CTimer::get("XIOS").suspend();
[581]285     return isDefined;
[432]286  }
[581]287
288
[325]289  void cxios_set_fieldgroup_grid_ref(fieldgroup_Ptr fieldgroup_hdl, const char * grid_ref, int grid_ref_size)
290  {
291    std::string grid_ref_str;
[581]292    if (!cstr2string(grid_ref, grid_ref_size, grid_ref_str)) return;
293    CTimer::get("XIOS").resume();
[325]294    fieldgroup_hdl->grid_ref.setValue(grid_ref_str);
[581]295    CTimer::get("XIOS").suspend();
[325]296  }
[581]297
[325]298  void cxios_get_fieldgroup_grid_ref(fieldgroup_Ptr fieldgroup_hdl, char * grid_ref, int grid_ref_size)
299  {
[581]300    CTimer::get("XIOS").resume();
301    if (!string_copy(fieldgroup_hdl->grid_ref.getInheritedValue(), grid_ref, grid_ref_size))
302      ERROR("void cxios_get_fieldgroup_grid_ref(fieldgroup_Ptr fieldgroup_hdl, char * grid_ref, int grid_ref_size)", << "Input string is too short");
303    CTimer::get("XIOS").suspend();
[325]304  }
[581]305
306  bool cxios_is_defined_fieldgroup_grid_ref(fieldgroup_Ptr fieldgroup_hdl)
[432]307  {
308     CTimer::get("XIOS").resume();
[581]309     bool isDefined = fieldgroup_hdl->grid_ref.hasInheritedValue();
[432]310     CTimer::get("XIOS").suspend();
[581]311     return isDefined;
[432]312  }
[581]313
314
[325]315  void cxios_set_fieldgroup_group_ref(fieldgroup_Ptr fieldgroup_hdl, const char * group_ref, int group_ref_size)
316  {
317    std::string group_ref_str;
[581]318    if (!cstr2string(group_ref, group_ref_size, group_ref_str)) return;
319    CTimer::get("XIOS").resume();
[325]320    fieldgroup_hdl->group_ref.setValue(group_ref_str);
[581]321    CTimer::get("XIOS").suspend();
[325]322  }
[581]323
[325]324  void cxios_get_fieldgroup_group_ref(fieldgroup_Ptr fieldgroup_hdl, char * group_ref, int group_ref_size)
325  {
[581]326    CTimer::get("XIOS").resume();
327    if (!string_copy(fieldgroup_hdl->group_ref.getInheritedValue(), group_ref, group_ref_size))
328      ERROR("void cxios_get_fieldgroup_group_ref(fieldgroup_Ptr fieldgroup_hdl, char * group_ref, int group_ref_size)", << "Input string is too short");
329    CTimer::get("XIOS").suspend();
[325]330  }
[581]331
332  bool cxios_is_defined_fieldgroup_group_ref(fieldgroup_Ptr fieldgroup_hdl)
[432]333  {
334     CTimer::get("XIOS").resume();
[581]335     bool isDefined = fieldgroup_hdl->group_ref.hasInheritedValue();
[432]336     CTimer::get("XIOS").suspend();
[581]337     return isDefined;
[432]338  }
[581]339
340
[676]341  void cxios_set_fieldgroup_indexed_output(fieldgroup_Ptr fieldgroup_hdl, bool indexed_output)
342  {
343    CTimer::get("XIOS").resume();
344    fieldgroup_hdl->indexed_output.setValue(indexed_output);
345    CTimer::get("XIOS").suspend();
346  }
347
348  void cxios_get_fieldgroup_indexed_output(fieldgroup_Ptr fieldgroup_hdl, bool* indexed_output)
349  {
350    CTimer::get("XIOS").resume();
351    *indexed_output = fieldgroup_hdl->indexed_output.getInheritedValue();
352    CTimer::get("XIOS").suspend();
353  }
354
355  bool cxios_is_defined_fieldgroup_indexed_output(fieldgroup_Ptr fieldgroup_hdl)
356  {
357     CTimer::get("XIOS").resume();
358     bool isDefined = fieldgroup_hdl->indexed_output.hasInheritedValue();
359     CTimer::get("XIOS").suspend();
360     return isDefined;
361  }
362
363
[325]364  void cxios_set_fieldgroup_level(fieldgroup_Ptr fieldgroup_hdl, int level)
365  {
[581]366    CTimer::get("XIOS").resume();
[325]367    fieldgroup_hdl->level.setValue(level);
[581]368    CTimer::get("XIOS").suspend();
[325]369  }
[581]370
[325]371  void cxios_get_fieldgroup_level(fieldgroup_Ptr fieldgroup_hdl, int* level)
372  {
[581]373    CTimer::get("XIOS").resume();
[445]374    *level = fieldgroup_hdl->level.getInheritedValue();
[581]375    CTimer::get("XIOS").suspend();
[325]376  }
[581]377
378  bool cxios_is_defined_fieldgroup_level(fieldgroup_Ptr fieldgroup_hdl)
[432]379  {
380     CTimer::get("XIOS").resume();
[581]381     bool isDefined = fieldgroup_hdl->level.hasInheritedValue();
[432]382     CTimer::get("XIOS").suspend();
[581]383     return isDefined;
[432]384  }
[581]385
386
[325]387  void cxios_set_fieldgroup_long_name(fieldgroup_Ptr fieldgroup_hdl, const char * long_name, int long_name_size)
388  {
389    std::string long_name_str;
[581]390    if (!cstr2string(long_name, long_name_size, long_name_str)) return;
391    CTimer::get("XIOS").resume();
[325]392    fieldgroup_hdl->long_name.setValue(long_name_str);
[581]393    CTimer::get("XIOS").suspend();
[325]394  }
[581]395
[325]396  void cxios_get_fieldgroup_long_name(fieldgroup_Ptr fieldgroup_hdl, char * long_name, int long_name_size)
397  {
[581]398    CTimer::get("XIOS").resume();
399    if (!string_copy(fieldgroup_hdl->long_name.getInheritedValue(), long_name, long_name_size))
400      ERROR("void cxios_get_fieldgroup_long_name(fieldgroup_Ptr fieldgroup_hdl, char * long_name, int long_name_size)", << "Input string is too short");
401    CTimer::get("XIOS").suspend();
[325]402  }
[581]403
404  bool cxios_is_defined_fieldgroup_long_name(fieldgroup_Ptr fieldgroup_hdl)
[432]405  {
406     CTimer::get("XIOS").resume();
[581]407     bool isDefined = fieldgroup_hdl->long_name.hasInheritedValue();
[432]408     CTimer::get("XIOS").suspend();
[581]409     return isDefined;
[432]410  }
[581]411
412
[325]413  void cxios_set_fieldgroup_name(fieldgroup_Ptr fieldgroup_hdl, const char * name, int name_size)
414  {
415    std::string name_str;
[581]416    if (!cstr2string(name, name_size, name_str)) return;
417    CTimer::get("XIOS").resume();
[325]418    fieldgroup_hdl->name.setValue(name_str);
[581]419    CTimer::get("XIOS").suspend();
[325]420  }
[581]421
[325]422  void cxios_get_fieldgroup_name(fieldgroup_Ptr fieldgroup_hdl, char * name, int name_size)
423  {
[581]424    CTimer::get("XIOS").resume();
425    if (!string_copy(fieldgroup_hdl->name.getInheritedValue(), name, name_size))
426      ERROR("void cxios_get_fieldgroup_name(fieldgroup_Ptr fieldgroup_hdl, char * name, int name_size)", << "Input string is too short");
427    CTimer::get("XIOS").suspend();
[325]428  }
[581]429
430  bool cxios_is_defined_fieldgroup_name(fieldgroup_Ptr fieldgroup_hdl)
[432]431  {
432     CTimer::get("XIOS").resume();
[581]433     bool isDefined = fieldgroup_hdl->name.hasInheritedValue();
[432]434     CTimer::get("XIOS").suspend();
[581]435     return isDefined;
[432]436  }
[581]437
438
[325]439  void cxios_set_fieldgroup_operation(fieldgroup_Ptr fieldgroup_hdl, const char * operation, int operation_size)
440  {
441    std::string operation_str;
[581]442    if (!cstr2string(operation, operation_size, operation_str)) return;
443    CTimer::get("XIOS").resume();
[325]444    fieldgroup_hdl->operation.setValue(operation_str);
[581]445    CTimer::get("XIOS").suspend();
[325]446  }
[581]447
[325]448  void cxios_get_fieldgroup_operation(fieldgroup_Ptr fieldgroup_hdl, char * operation, int operation_size)
449  {
[581]450    CTimer::get("XIOS").resume();
451    if (!string_copy(fieldgroup_hdl->operation.getInheritedValue(), operation, operation_size))
452      ERROR("void cxios_get_fieldgroup_operation(fieldgroup_Ptr fieldgroup_hdl, char * operation, int operation_size)", << "Input string is too short");
453    CTimer::get("XIOS").suspend();
[325]454  }
[581]455
456  bool cxios_is_defined_fieldgroup_operation(fieldgroup_Ptr fieldgroup_hdl)
[432]457  {
458     CTimer::get("XIOS").resume();
[581]459     bool isDefined = fieldgroup_hdl->operation.hasInheritedValue();
[432]460     CTimer::get("XIOS").suspend();
[581]461     return isDefined;
[432]462  }
[581]463
464
[325]465  void cxios_set_fieldgroup_prec(fieldgroup_Ptr fieldgroup_hdl, int prec)
466  {
[581]467    CTimer::get("XIOS").resume();
[325]468    fieldgroup_hdl->prec.setValue(prec);
[581]469    CTimer::get("XIOS").suspend();
[325]470  }
[581]471
[325]472  void cxios_get_fieldgroup_prec(fieldgroup_Ptr fieldgroup_hdl, int* prec)
473  {
[581]474    CTimer::get("XIOS").resume();
[445]475    *prec = fieldgroup_hdl->prec.getInheritedValue();
[581]476    CTimer::get("XIOS").suspend();
[325]477  }
[581]478
479  bool cxios_is_defined_fieldgroup_prec(fieldgroup_Ptr fieldgroup_hdl)
[432]480  {
481     CTimer::get("XIOS").resume();
[581]482     bool isDefined = fieldgroup_hdl->prec.hasInheritedValue();
[432]483     CTimer::get("XIOS").suspend();
[581]484     return isDefined;
[432]485  }
[581]486
487
[593]488  void cxios_set_fieldgroup_read_access(fieldgroup_Ptr fieldgroup_hdl, bool read_access)
489  {
490    CTimer::get("XIOS").resume();
491    fieldgroup_hdl->read_access.setValue(read_access);
492    CTimer::get("XIOS").suspend();
493  }
494
495  void cxios_get_fieldgroup_read_access(fieldgroup_Ptr fieldgroup_hdl, bool* read_access)
496  {
497    CTimer::get("XIOS").resume();
498    *read_access = fieldgroup_hdl->read_access.getInheritedValue();
499    CTimer::get("XIOS").suspend();
500  }
501
502  bool cxios_is_defined_fieldgroup_read_access(fieldgroup_Ptr fieldgroup_hdl)
503  {
504     CTimer::get("XIOS").resume();
505     bool isDefined = fieldgroup_hdl->read_access.hasInheritedValue();
506     CTimer::get("XIOS").suspend();
507     return isDefined;
508  }
509
510
[464]511  void cxios_set_fieldgroup_scale_factor(fieldgroup_Ptr fieldgroup_hdl, double scale_factor)
512  {
[581]513    CTimer::get("XIOS").resume();
[464]514    fieldgroup_hdl->scale_factor.setValue(scale_factor);
[581]515    CTimer::get("XIOS").suspend();
[464]516  }
[581]517
[464]518  void cxios_get_fieldgroup_scale_factor(fieldgroup_Ptr fieldgroup_hdl, double* scale_factor)
519  {
[581]520    CTimer::get("XIOS").resume();
[464]521    *scale_factor = fieldgroup_hdl->scale_factor.getInheritedValue();
[581]522    CTimer::get("XIOS").suspend();
[464]523  }
[581]524
525  bool cxios_is_defined_fieldgroup_scale_factor(fieldgroup_Ptr fieldgroup_hdl)
[464]526  {
527     CTimer::get("XIOS").resume();
[581]528     bool isDefined = fieldgroup_hdl->scale_factor.hasInheritedValue();
[464]529     CTimer::get("XIOS").suspend();
[581]530     return isDefined;
[464]531  }
[581]532
533
[325]534  void cxios_set_fieldgroup_standard_name(fieldgroup_Ptr fieldgroup_hdl, const char * standard_name, int standard_name_size)
535  {
536    std::string standard_name_str;
[581]537    if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;
538    CTimer::get("XIOS").resume();
[325]539    fieldgroup_hdl->standard_name.setValue(standard_name_str);
[581]540    CTimer::get("XIOS").suspend();
[325]541  }
[581]542
[325]543  void cxios_get_fieldgroup_standard_name(fieldgroup_Ptr fieldgroup_hdl, char * standard_name, int standard_name_size)
544  {
[581]545    CTimer::get("XIOS").resume();
546    if (!string_copy(fieldgroup_hdl->standard_name.getInheritedValue(), standard_name, standard_name_size))
547      ERROR("void cxios_get_fieldgroup_standard_name(fieldgroup_Ptr fieldgroup_hdl, char * standard_name, int standard_name_size)", << "Input string is too short");
548    CTimer::get("XIOS").suspend();
[325]549  }
[581]550
551  bool cxios_is_defined_fieldgroup_standard_name(fieldgroup_Ptr fieldgroup_hdl)
[432]552  {
553     CTimer::get("XIOS").resume();
[581]554     bool isDefined = fieldgroup_hdl->standard_name.hasInheritedValue();
[432]555     CTimer::get("XIOS").suspend();
[581]556     return isDefined;
[432]557  }
[581]558
559
[325]560  void cxios_set_fieldgroup_unit(fieldgroup_Ptr fieldgroup_hdl, const char * unit, int unit_size)
561  {
562    std::string unit_str;
[581]563    if (!cstr2string(unit, unit_size, unit_str)) return;
564    CTimer::get("XIOS").resume();
[325]565    fieldgroup_hdl->unit.setValue(unit_str);
[581]566    CTimer::get("XIOS").suspend();
[325]567  }
[581]568
[325]569  void cxios_get_fieldgroup_unit(fieldgroup_Ptr fieldgroup_hdl, char * unit, int unit_size)
570  {
[581]571    CTimer::get("XIOS").resume();
572    if (!string_copy(fieldgroup_hdl->unit.getInheritedValue(), unit, unit_size))
573      ERROR("void cxios_get_fieldgroup_unit(fieldgroup_Ptr fieldgroup_hdl, char * unit, int unit_size)", << "Input string is too short");
574    CTimer::get("XIOS").suspend();
[325]575  }
[581]576
577  bool cxios_is_defined_fieldgroup_unit(fieldgroup_Ptr fieldgroup_hdl)
[432]578  {
579     CTimer::get("XIOS").resume();
[581]580     bool isDefined = fieldgroup_hdl->unit.hasInheritedValue();
[432]581     CTimer::get("XIOS").suspend();
[581]582     return isDefined;
[432]583  }
[581]584
585
[463]586  void cxios_set_fieldgroup_valid_max(fieldgroup_Ptr fieldgroup_hdl, double valid_max)
587  {
[581]588    CTimer::get("XIOS").resume();
[463]589    fieldgroup_hdl->valid_max.setValue(valid_max);
[581]590    CTimer::get("XIOS").suspend();
[463]591  }
[581]592
[463]593  void cxios_get_fieldgroup_valid_max(fieldgroup_Ptr fieldgroup_hdl, double* valid_max)
594  {
[581]595    CTimer::get("XIOS").resume();
[463]596    *valid_max = fieldgroup_hdl->valid_max.getInheritedValue();
[581]597    CTimer::get("XIOS").suspend();
[463]598  }
[581]599
600  bool cxios_is_defined_fieldgroup_valid_max(fieldgroup_Ptr fieldgroup_hdl)
[463]601  {
602     CTimer::get("XIOS").resume();
[581]603     bool isDefined = fieldgroup_hdl->valid_max.hasInheritedValue();
[463]604     CTimer::get("XIOS").suspend();
[581]605     return isDefined;
[463]606  }
[581]607
608
[463]609  void cxios_set_fieldgroup_valid_min(fieldgroup_Ptr fieldgroup_hdl, double valid_min)
610  {
[581]611    CTimer::get("XIOS").resume();
[463]612    fieldgroup_hdl->valid_min.setValue(valid_min);
[581]613    CTimer::get("XIOS").suspend();
[463]614  }
[581]615
[463]616  void cxios_get_fieldgroup_valid_min(fieldgroup_Ptr fieldgroup_hdl, double* valid_min)
617  {
[581]618    CTimer::get("XIOS").resume();
[463]619    *valid_min = fieldgroup_hdl->valid_min.getInheritedValue();
[581]620    CTimer::get("XIOS").suspend();
[463]621  }
[581]622
623  bool cxios_is_defined_fieldgroup_valid_min(fieldgroup_Ptr fieldgroup_hdl)
[463]624  {
625     CTimer::get("XIOS").resume();
[581]626     bool isDefined = fieldgroup_hdl->valid_min.hasInheritedValue();
[463]627     CTimer::get("XIOS").suspend();
[581]628     return isDefined;
[463]629  }
[325]630}
Note: See TracBrowser for help on using the repository browser.