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

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

Support creating the timeseries automatically.

Fields which should be outputted as timeseries must have the ts_enabled attribute set to true.

Files have a new attribute timeseries which must be one of:

  • none: no timeseries are outputted, only the regular file (default behavior when the attribute is ommited).
  • only: only the timeseries are outputted, the regular file is not created.
  • both: both the timeseries and the regular files are outputted.
  • exclusive: the timeseries are outputted and a regular file is created with only the fields which were not marked for output as a timeserie (if any).

The name of the files created for the timeseries is composed of a prefix followed by the name of the variable. The file attribute ts_prefix can be used to control the prefix used (by default, the name of the regular file is used).

All the attributes of the regular file are inherited by the files created for the timeseries. The field attribute ts_split_freq can be used to configure the splitting for each timeseries (by default, the splitting frequency of the regular file is used).

  • 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: 23.7 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::CFieldGroup* fieldgroup_Ptr;
19
20  void cxios_set_fieldgroup_add_offset(fieldgroup_Ptr fieldgroup_hdl, double add_offset)
21  {
22    CTimer::get("XIOS").resume();
23    fieldgroup_hdl->add_offset.setValue(add_offset);
24    CTimer::get("XIOS").suspend();
25  }
26
27  void cxios_get_fieldgroup_add_offset(fieldgroup_Ptr fieldgroup_hdl, double* add_offset)
28  {
29    CTimer::get("XIOS").resume();
30    *add_offset = fieldgroup_hdl->add_offset.getInheritedValue();
31    CTimer::get("XIOS").suspend();
32  }
33
34  bool cxios_is_defined_fieldgroup_add_offset(fieldgroup_Ptr fieldgroup_hdl)
35  {
36     CTimer::get("XIOS").resume();
37     bool isDefined = fieldgroup_hdl->add_offset.hasInheritedValue();
38     CTimer::get("XIOS").suspend();
39     return isDefined;
40  }
41
42
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;
46    if (!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return;
47    CTimer::get("XIOS").resume();
48    fieldgroup_hdl->axis_ref.setValue(axis_ref_str);
49    CTimer::get("XIOS").suspend();
50  }
51
52  void cxios_get_fieldgroup_axis_ref(fieldgroup_Ptr fieldgroup_hdl, char * axis_ref, int axis_ref_size)
53  {
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();
58  }
59
60  bool cxios_is_defined_fieldgroup_axis_ref(fieldgroup_Ptr fieldgroup_hdl)
61  {
62     CTimer::get("XIOS").resume();
63     bool isDefined = fieldgroup_hdl->axis_ref.hasInheritedValue();
64     CTimer::get("XIOS").suspend();
65     return isDefined;
66  }
67
68
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
92  void cxios_set_fieldgroup_default_value(fieldgroup_Ptr fieldgroup_hdl, double default_value)
93  {
94    CTimer::get("XIOS").resume();
95    fieldgroup_hdl->default_value.setValue(default_value);
96    CTimer::get("XIOS").suspend();
97  }
98
99  void cxios_get_fieldgroup_default_value(fieldgroup_Ptr fieldgroup_hdl, double* default_value)
100  {
101    CTimer::get("XIOS").resume();
102    *default_value = fieldgroup_hdl->default_value.getInheritedValue();
103    CTimer::get("XIOS").suspend();
104  }
105
106  bool cxios_is_defined_fieldgroup_default_value(fieldgroup_Ptr fieldgroup_hdl)
107  {
108     CTimer::get("XIOS").resume();
109     bool isDefined = fieldgroup_hdl->default_value.hasInheritedValue();
110     CTimer::get("XIOS").suspend();
111     return isDefined;
112  }
113
114
115  void cxios_set_fieldgroup_detect_missing_value(fieldgroup_Ptr fieldgroup_hdl, bool detect_missing_value)
116  {
117    CTimer::get("XIOS").resume();
118    fieldgroup_hdl->detect_missing_value.setValue(detect_missing_value);
119    CTimer::get("XIOS").suspend();
120  }
121
122  void cxios_get_fieldgroup_detect_missing_value(fieldgroup_Ptr fieldgroup_hdl, bool* detect_missing_value)
123  {
124    CTimer::get("XIOS").resume();
125    *detect_missing_value = fieldgroup_hdl->detect_missing_value.getInheritedValue();
126    CTimer::get("XIOS").suspend();
127  }
128
129  bool cxios_is_defined_fieldgroup_detect_missing_value(fieldgroup_Ptr fieldgroup_hdl)
130  {
131     CTimer::get("XIOS").resume();
132     bool isDefined = fieldgroup_hdl->detect_missing_value.hasInheritedValue();
133     CTimer::get("XIOS").suspend();
134     return isDefined;
135  }
136
137
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;
141    if (!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return;
142    CTimer::get("XIOS").resume();
143    fieldgroup_hdl->domain_ref.setValue(domain_ref_str);
144    CTimer::get("XIOS").suspend();
145  }
146
147  void cxios_get_fieldgroup_domain_ref(fieldgroup_Ptr fieldgroup_hdl, char * domain_ref, int domain_ref_size)
148  {
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();
153  }
154
155  bool cxios_is_defined_fieldgroup_domain_ref(fieldgroup_Ptr fieldgroup_hdl)
156  {
157     CTimer::get("XIOS").resume();
158     bool isDefined = fieldgroup_hdl->domain_ref.hasInheritedValue();
159     CTimer::get("XIOS").suspend();
160     return isDefined;
161  }
162
163
164  void cxios_set_fieldgroup_enabled(fieldgroup_Ptr fieldgroup_hdl, bool enabled)
165  {
166    CTimer::get("XIOS").resume();
167    fieldgroup_hdl->enabled.setValue(enabled);
168    CTimer::get("XIOS").suspend();
169  }
170
171  void cxios_get_fieldgroup_enabled(fieldgroup_Ptr fieldgroup_hdl, bool* enabled)
172  {
173    CTimer::get("XIOS").resume();
174    *enabled = fieldgroup_hdl->enabled.getInheritedValue();
175    CTimer::get("XIOS").suspend();
176  }
177
178  bool cxios_is_defined_fieldgroup_enabled(fieldgroup_Ptr fieldgroup_hdl)
179  {
180     CTimer::get("XIOS").resume();
181     bool isDefined = fieldgroup_hdl->enabled.hasInheritedValue();
182     CTimer::get("XIOS").suspend();
183     return isDefined;
184  }
185
186
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;
190    if (!cstr2string(field_ref, field_ref_size, field_ref_str)) return;
191    CTimer::get("XIOS").resume();
192    fieldgroup_hdl->field_ref.setValue(field_ref_str);
193    CTimer::get("XIOS").suspend();
194  }
195
196  void cxios_get_fieldgroup_field_ref(fieldgroup_Ptr fieldgroup_hdl, char * field_ref, int field_ref_size)
197  {
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();
202  }
203
204  bool cxios_is_defined_fieldgroup_field_ref(fieldgroup_Ptr fieldgroup_hdl)
205  {
206     CTimer::get("XIOS").resume();
207     bool isDefined = fieldgroup_hdl->field_ref.hasInheritedValue();
208     CTimer::get("XIOS").suspend();
209     return isDefined;
210  }
211
212
213  void cxios_set_fieldgroup_freq_offset(fieldgroup_Ptr fieldgroup_hdl, cxios_duration freq_offset_c)
214  {
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();
226  }
227
228  void cxios_get_fieldgroup_freq_offset(fieldgroup_Ptr fieldgroup_hdl, cxios_duration* freq_offset_c)
229  {
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();
240  }
241
242  bool cxios_is_defined_fieldgroup_freq_offset(fieldgroup_Ptr fieldgroup_hdl)
243  {
244     CTimer::get("XIOS").resume();
245     bool isDefined = fieldgroup_hdl->freq_offset.hasInheritedValue();
246     CTimer::get("XIOS").suspend();
247     return isDefined;
248  }
249
250
251  void cxios_set_fieldgroup_freq_op(fieldgroup_Ptr fieldgroup_hdl, cxios_duration freq_op_c)
252  {
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();
264  }
265
266  void cxios_get_fieldgroup_freq_op(fieldgroup_Ptr fieldgroup_hdl, cxios_duration* freq_op_c)
267  {
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();
278  }
279
280  bool cxios_is_defined_fieldgroup_freq_op(fieldgroup_Ptr fieldgroup_hdl)
281  {
282     CTimer::get("XIOS").resume();
283     bool isDefined = fieldgroup_hdl->freq_op.hasInheritedValue();
284     CTimer::get("XIOS").suspend();
285     return isDefined;
286  }
287
288
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;
292    if (!cstr2string(grid_ref, grid_ref_size, grid_ref_str)) return;
293    CTimer::get("XIOS").resume();
294    fieldgroup_hdl->grid_ref.setValue(grid_ref_str);
295    CTimer::get("XIOS").suspend();
296  }
297
298  void cxios_get_fieldgroup_grid_ref(fieldgroup_Ptr fieldgroup_hdl, char * grid_ref, int grid_ref_size)
299  {
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();
304  }
305
306  bool cxios_is_defined_fieldgroup_grid_ref(fieldgroup_Ptr fieldgroup_hdl)
307  {
308     CTimer::get("XIOS").resume();
309     bool isDefined = fieldgroup_hdl->grid_ref.hasInheritedValue();
310     CTimer::get("XIOS").suspend();
311     return isDefined;
312  }
313
314
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;
318    if (!cstr2string(group_ref, group_ref_size, group_ref_str)) return;
319    CTimer::get("XIOS").resume();
320    fieldgroup_hdl->group_ref.setValue(group_ref_str);
321    CTimer::get("XIOS").suspend();
322  }
323
324  void cxios_get_fieldgroup_group_ref(fieldgroup_Ptr fieldgroup_hdl, char * group_ref, int group_ref_size)
325  {
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();
330  }
331
332  bool cxios_is_defined_fieldgroup_group_ref(fieldgroup_Ptr fieldgroup_hdl)
333  {
334     CTimer::get("XIOS").resume();
335     bool isDefined = fieldgroup_hdl->group_ref.hasInheritedValue();
336     CTimer::get("XIOS").suspend();
337     return isDefined;
338  }
339
340
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
364  void cxios_set_fieldgroup_level(fieldgroup_Ptr fieldgroup_hdl, int level)
365  {
366    CTimer::get("XIOS").resume();
367    fieldgroup_hdl->level.setValue(level);
368    CTimer::get("XIOS").suspend();
369  }
370
371  void cxios_get_fieldgroup_level(fieldgroup_Ptr fieldgroup_hdl, int* level)
372  {
373    CTimer::get("XIOS").resume();
374    *level = fieldgroup_hdl->level.getInheritedValue();
375    CTimer::get("XIOS").suspend();
376  }
377
378  bool cxios_is_defined_fieldgroup_level(fieldgroup_Ptr fieldgroup_hdl)
379  {
380     CTimer::get("XIOS").resume();
381     bool isDefined = fieldgroup_hdl->level.hasInheritedValue();
382     CTimer::get("XIOS").suspend();
383     return isDefined;
384  }
385
386
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;
390    if (!cstr2string(long_name, long_name_size, long_name_str)) return;
391    CTimer::get("XIOS").resume();
392    fieldgroup_hdl->long_name.setValue(long_name_str);
393    CTimer::get("XIOS").suspend();
394  }
395
396  void cxios_get_fieldgroup_long_name(fieldgroup_Ptr fieldgroup_hdl, char * long_name, int long_name_size)
397  {
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();
402  }
403
404  bool cxios_is_defined_fieldgroup_long_name(fieldgroup_Ptr fieldgroup_hdl)
405  {
406     CTimer::get("XIOS").resume();
407     bool isDefined = fieldgroup_hdl->long_name.hasInheritedValue();
408     CTimer::get("XIOS").suspend();
409     return isDefined;
410  }
411
412
413  void cxios_set_fieldgroup_name(fieldgroup_Ptr fieldgroup_hdl, const char * name, int name_size)
414  {
415    std::string name_str;
416    if (!cstr2string(name, name_size, name_str)) return;
417    CTimer::get("XIOS").resume();
418    fieldgroup_hdl->name.setValue(name_str);
419    CTimer::get("XIOS").suspend();
420  }
421
422  void cxios_get_fieldgroup_name(fieldgroup_Ptr fieldgroup_hdl, char * name, int name_size)
423  {
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();
428  }
429
430  bool cxios_is_defined_fieldgroup_name(fieldgroup_Ptr fieldgroup_hdl)
431  {
432     CTimer::get("XIOS").resume();
433     bool isDefined = fieldgroup_hdl->name.hasInheritedValue();
434     CTimer::get("XIOS").suspend();
435     return isDefined;
436  }
437
438
439  void cxios_set_fieldgroup_operation(fieldgroup_Ptr fieldgroup_hdl, const char * operation, int operation_size)
440  {
441    std::string operation_str;
442    if (!cstr2string(operation, operation_size, operation_str)) return;
443    CTimer::get("XIOS").resume();
444    fieldgroup_hdl->operation.setValue(operation_str);
445    CTimer::get("XIOS").suspend();
446  }
447
448  void cxios_get_fieldgroup_operation(fieldgroup_Ptr fieldgroup_hdl, char * operation, int operation_size)
449  {
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();
454  }
455
456  bool cxios_is_defined_fieldgroup_operation(fieldgroup_Ptr fieldgroup_hdl)
457  {
458     CTimer::get("XIOS").resume();
459     bool isDefined = fieldgroup_hdl->operation.hasInheritedValue();
460     CTimer::get("XIOS").suspend();
461     return isDefined;
462  }
463
464
465  void cxios_set_fieldgroup_prec(fieldgroup_Ptr fieldgroup_hdl, int prec)
466  {
467    CTimer::get("XIOS").resume();
468    fieldgroup_hdl->prec.setValue(prec);
469    CTimer::get("XIOS").suspend();
470  }
471
472  void cxios_get_fieldgroup_prec(fieldgroup_Ptr fieldgroup_hdl, int* prec)
473  {
474    CTimer::get("XIOS").resume();
475    *prec = fieldgroup_hdl->prec.getInheritedValue();
476    CTimer::get("XIOS").suspend();
477  }
478
479  bool cxios_is_defined_fieldgroup_prec(fieldgroup_Ptr fieldgroup_hdl)
480  {
481     CTimer::get("XIOS").resume();
482     bool isDefined = fieldgroup_hdl->prec.hasInheritedValue();
483     CTimer::get("XIOS").suspend();
484     return isDefined;
485  }
486
487
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
511  void cxios_set_fieldgroup_scale_factor(fieldgroup_Ptr fieldgroup_hdl, double scale_factor)
512  {
513    CTimer::get("XIOS").resume();
514    fieldgroup_hdl->scale_factor.setValue(scale_factor);
515    CTimer::get("XIOS").suspend();
516  }
517
518  void cxios_get_fieldgroup_scale_factor(fieldgroup_Ptr fieldgroup_hdl, double* scale_factor)
519  {
520    CTimer::get("XIOS").resume();
521    *scale_factor = fieldgroup_hdl->scale_factor.getInheritedValue();
522    CTimer::get("XIOS").suspend();
523  }
524
525  bool cxios_is_defined_fieldgroup_scale_factor(fieldgroup_Ptr fieldgroup_hdl)
526  {
527     CTimer::get("XIOS").resume();
528     bool isDefined = fieldgroup_hdl->scale_factor.hasInheritedValue();
529     CTimer::get("XIOS").suspend();
530     return isDefined;
531  }
532
533
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;
537    if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;
538    CTimer::get("XIOS").resume();
539    fieldgroup_hdl->standard_name.setValue(standard_name_str);
540    CTimer::get("XIOS").suspend();
541  }
542
543  void cxios_get_fieldgroup_standard_name(fieldgroup_Ptr fieldgroup_hdl, char * standard_name, int standard_name_size)
544  {
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();
549  }
550
551  bool cxios_is_defined_fieldgroup_standard_name(fieldgroup_Ptr fieldgroup_hdl)
552  {
553     CTimer::get("XIOS").resume();
554     bool isDefined = fieldgroup_hdl->standard_name.hasInheritedValue();
555     CTimer::get("XIOS").suspend();
556     return isDefined;
557  }
558
559
560  void cxios_set_fieldgroup_ts_enabled(fieldgroup_Ptr fieldgroup_hdl, bool ts_enabled)
561  {
562    CTimer::get("XIOS").resume();
563    fieldgroup_hdl->ts_enabled.setValue(ts_enabled);
564    CTimer::get("XIOS").suspend();
565  }
566
567  void cxios_get_fieldgroup_ts_enabled(fieldgroup_Ptr fieldgroup_hdl, bool* ts_enabled)
568  {
569    CTimer::get("XIOS").resume();
570    *ts_enabled = fieldgroup_hdl->ts_enabled.getInheritedValue();
571    CTimer::get("XIOS").suspend();
572  }
573
574  bool cxios_is_defined_fieldgroup_ts_enabled(fieldgroup_Ptr fieldgroup_hdl)
575  {
576     CTimer::get("XIOS").resume();
577     bool isDefined = fieldgroup_hdl->ts_enabled.hasInheritedValue();
578     CTimer::get("XIOS").suspend();
579     return isDefined;
580  }
581
582
583  void cxios_set_fieldgroup_ts_split_freq(fieldgroup_Ptr fieldgroup_hdl, cxios_duration ts_split_freq_c)
584  {
585    CTimer::get("XIOS").resume();
586    fieldgroup_hdl->ts_split_freq.allocate();
587    CDuration& ts_split_freq = fieldgroup_hdl->ts_split_freq.get();
588    ts_split_freq.year = ts_split_freq_c.year;
589    ts_split_freq.month = ts_split_freq_c.month;
590    ts_split_freq.day = ts_split_freq_c.day;
591    ts_split_freq.hour = ts_split_freq_c.hour;
592    ts_split_freq.minute = ts_split_freq_c.minute;
593    ts_split_freq.second = ts_split_freq_c.second;
594    ts_split_freq.timestep = ts_split_freq_c.timestep;
595    CTimer::get("XIOS").suspend();
596  }
597
598  void cxios_get_fieldgroup_ts_split_freq(fieldgroup_Ptr fieldgroup_hdl, cxios_duration* ts_split_freq_c)
599  {
600    CTimer::get("XIOS").resume();
601    CDuration ts_split_freq = fieldgroup_hdl->ts_split_freq.getInheritedValue();
602    ts_split_freq_c->year = ts_split_freq.year;
603    ts_split_freq_c->month = ts_split_freq.month;
604    ts_split_freq_c->day = ts_split_freq.day;
605    ts_split_freq_c->hour = ts_split_freq.hour;
606    ts_split_freq_c->minute = ts_split_freq.minute;
607    ts_split_freq_c->second = ts_split_freq.second;
608    ts_split_freq_c->timestep = ts_split_freq.timestep;
609    CTimer::get("XIOS").suspend();
610  }
611
612  bool cxios_is_defined_fieldgroup_ts_split_freq(fieldgroup_Ptr fieldgroup_hdl)
613  {
614     CTimer::get("XIOS").resume();
615     bool isDefined = fieldgroup_hdl->ts_split_freq.hasInheritedValue();
616     CTimer::get("XIOS").suspend();
617     return isDefined;
618  }
619
620
621  void cxios_set_fieldgroup_unit(fieldgroup_Ptr fieldgroup_hdl, const char * unit, int unit_size)
622  {
623    std::string unit_str;
624    if (!cstr2string(unit, unit_size, unit_str)) return;
625    CTimer::get("XIOS").resume();
626    fieldgroup_hdl->unit.setValue(unit_str);
627    CTimer::get("XIOS").suspend();
628  }
629
630  void cxios_get_fieldgroup_unit(fieldgroup_Ptr fieldgroup_hdl, char * unit, int unit_size)
631  {
632    CTimer::get("XIOS").resume();
633    if (!string_copy(fieldgroup_hdl->unit.getInheritedValue(), unit, unit_size))
634      ERROR("void cxios_get_fieldgroup_unit(fieldgroup_Ptr fieldgroup_hdl, char * unit, int unit_size)", << "Input string is too short");
635    CTimer::get("XIOS").suspend();
636  }
637
638  bool cxios_is_defined_fieldgroup_unit(fieldgroup_Ptr fieldgroup_hdl)
639  {
640     CTimer::get("XIOS").resume();
641     bool isDefined = fieldgroup_hdl->unit.hasInheritedValue();
642     CTimer::get("XIOS").suspend();
643     return isDefined;
644  }
645
646
647  void cxios_set_fieldgroup_valid_max(fieldgroup_Ptr fieldgroup_hdl, double valid_max)
648  {
649    CTimer::get("XIOS").resume();
650    fieldgroup_hdl->valid_max.setValue(valid_max);
651    CTimer::get("XIOS").suspend();
652  }
653
654  void cxios_get_fieldgroup_valid_max(fieldgroup_Ptr fieldgroup_hdl, double* valid_max)
655  {
656    CTimer::get("XIOS").resume();
657    *valid_max = fieldgroup_hdl->valid_max.getInheritedValue();
658    CTimer::get("XIOS").suspend();
659  }
660
661  bool cxios_is_defined_fieldgroup_valid_max(fieldgroup_Ptr fieldgroup_hdl)
662  {
663     CTimer::get("XIOS").resume();
664     bool isDefined = fieldgroup_hdl->valid_max.hasInheritedValue();
665     CTimer::get("XIOS").suspend();
666     return isDefined;
667  }
668
669
670  void cxios_set_fieldgroup_valid_min(fieldgroup_Ptr fieldgroup_hdl, double valid_min)
671  {
672    CTimer::get("XIOS").resume();
673    fieldgroup_hdl->valid_min.setValue(valid_min);
674    CTimer::get("XIOS").suspend();
675  }
676
677  void cxios_get_fieldgroup_valid_min(fieldgroup_Ptr fieldgroup_hdl, double* valid_min)
678  {
679    CTimer::get("XIOS").resume();
680    *valid_min = fieldgroup_hdl->valid_min.getInheritedValue();
681    CTimer::get("XIOS").suspend();
682  }
683
684  bool cxios_is_defined_fieldgroup_valid_min(fieldgroup_Ptr fieldgroup_hdl)
685  {
686     CTimer::get("XIOS").resume();
687     bool isDefined = fieldgroup_hdl->valid_min.hasInheritedValue();
688     CTimer::get("XIOS").suspend();
689     return isDefined;
690  }
691}
Note: See TracBrowser for help on using the repository browser.