source: XIOS/trunk/src/interface/c_attr/icfield_attr.cpp @ 711

Last change on this file since 711 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: 21.0 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::CField* field_Ptr;
19
20  void cxios_set_field_add_offset(field_Ptr field_hdl, double add_offset)
21  {
22    CTimer::get("XIOS").resume();
23    field_hdl->add_offset.setValue(add_offset);
24    CTimer::get("XIOS").suspend();
25  }
26
27  void cxios_get_field_add_offset(field_Ptr field_hdl, double* add_offset)
28  {
29    CTimer::get("XIOS").resume();
30    *add_offset = field_hdl->add_offset.getInheritedValue();
31    CTimer::get("XIOS").suspend();
32  }
33
34  bool cxios_is_defined_field_add_offset(field_Ptr field_hdl)
35  {
36     CTimer::get("XIOS").resume();
37     bool isDefined = field_hdl->add_offset.hasInheritedValue();
38     CTimer::get("XIOS").suspend();
39     return isDefined;
40  }
41
42
43  void cxios_set_field_axis_ref(field_Ptr field_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    field_hdl->axis_ref.setValue(axis_ref_str);
49    CTimer::get("XIOS").suspend();
50  }
51
52  void cxios_get_field_axis_ref(field_Ptr field_hdl, char * axis_ref, int axis_ref_size)
53  {
54    CTimer::get("XIOS").resume();
55    if (!string_copy(field_hdl->axis_ref.getInheritedValue(), axis_ref, axis_ref_size))
56      ERROR("void cxios_get_field_axis_ref(field_Ptr field_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_field_axis_ref(field_Ptr field_hdl)
61  {
62     CTimer::get("XIOS").resume();
63     bool isDefined = field_hdl->axis_ref.hasInheritedValue();
64     CTimer::get("XIOS").suspend();
65     return isDefined;
66  }
67
68
69  void cxios_set_field_compression_level(field_Ptr field_hdl, int compression_level)
70  {
71    CTimer::get("XIOS").resume();
72    field_hdl->compression_level.setValue(compression_level);
73    CTimer::get("XIOS").suspend();
74  }
75
76  void cxios_get_field_compression_level(field_Ptr field_hdl, int* compression_level)
77  {
78    CTimer::get("XIOS").resume();
79    *compression_level = field_hdl->compression_level.getInheritedValue();
80    CTimer::get("XIOS").suspend();
81  }
82
83  bool cxios_is_defined_field_compression_level(field_Ptr field_hdl)
84  {
85     CTimer::get("XIOS").resume();
86     bool isDefined = field_hdl->compression_level.hasInheritedValue();
87     CTimer::get("XIOS").suspend();
88     return isDefined;
89  }
90
91
92  void cxios_set_field_default_value(field_Ptr field_hdl, double default_value)
93  {
94    CTimer::get("XIOS").resume();
95    field_hdl->default_value.setValue(default_value);
96    CTimer::get("XIOS").suspend();
97  }
98
99  void cxios_get_field_default_value(field_Ptr field_hdl, double* default_value)
100  {
101    CTimer::get("XIOS").resume();
102    *default_value = field_hdl->default_value.getInheritedValue();
103    CTimer::get("XIOS").suspend();
104  }
105
106  bool cxios_is_defined_field_default_value(field_Ptr field_hdl)
107  {
108     CTimer::get("XIOS").resume();
109     bool isDefined = field_hdl->default_value.hasInheritedValue();
110     CTimer::get("XIOS").suspend();
111     return isDefined;
112  }
113
114
115  void cxios_set_field_detect_missing_value(field_Ptr field_hdl, bool detect_missing_value)
116  {
117    CTimer::get("XIOS").resume();
118    field_hdl->detect_missing_value.setValue(detect_missing_value);
119    CTimer::get("XIOS").suspend();
120  }
121
122  void cxios_get_field_detect_missing_value(field_Ptr field_hdl, bool* detect_missing_value)
123  {
124    CTimer::get("XIOS").resume();
125    *detect_missing_value = field_hdl->detect_missing_value.getInheritedValue();
126    CTimer::get("XIOS").suspend();
127  }
128
129  bool cxios_is_defined_field_detect_missing_value(field_Ptr field_hdl)
130  {
131     CTimer::get("XIOS").resume();
132     bool isDefined = field_hdl->detect_missing_value.hasInheritedValue();
133     CTimer::get("XIOS").suspend();
134     return isDefined;
135  }
136
137
138  void cxios_set_field_domain_ref(field_Ptr field_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    field_hdl->domain_ref.setValue(domain_ref_str);
144    CTimer::get("XIOS").suspend();
145  }
146
147  void cxios_get_field_domain_ref(field_Ptr field_hdl, char * domain_ref, int domain_ref_size)
148  {
149    CTimer::get("XIOS").resume();
150    if (!string_copy(field_hdl->domain_ref.getInheritedValue(), domain_ref, domain_ref_size))
151      ERROR("void cxios_get_field_domain_ref(field_Ptr field_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_field_domain_ref(field_Ptr field_hdl)
156  {
157     CTimer::get("XIOS").resume();
158     bool isDefined = field_hdl->domain_ref.hasInheritedValue();
159     CTimer::get("XIOS").suspend();
160     return isDefined;
161  }
162
163
164  void cxios_set_field_enabled(field_Ptr field_hdl, bool enabled)
165  {
166    CTimer::get("XIOS").resume();
167    field_hdl->enabled.setValue(enabled);
168    CTimer::get("XIOS").suspend();
169  }
170
171  void cxios_get_field_enabled(field_Ptr field_hdl, bool* enabled)
172  {
173    CTimer::get("XIOS").resume();
174    *enabled = field_hdl->enabled.getInheritedValue();
175    CTimer::get("XIOS").suspend();
176  }
177
178  bool cxios_is_defined_field_enabled(field_Ptr field_hdl)
179  {
180     CTimer::get("XIOS").resume();
181     bool isDefined = field_hdl->enabled.hasInheritedValue();
182     CTimer::get("XIOS").suspend();
183     return isDefined;
184  }
185
186
187  void cxios_set_field_field_ref(field_Ptr field_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    field_hdl->field_ref.setValue(field_ref_str);
193    CTimer::get("XIOS").suspend();
194  }
195
196  void cxios_get_field_field_ref(field_Ptr field_hdl, char * field_ref, int field_ref_size)
197  {
198    CTimer::get("XIOS").resume();
199    if (!string_copy(field_hdl->field_ref.getInheritedValue(), field_ref, field_ref_size))
200      ERROR("void cxios_get_field_field_ref(field_Ptr field_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_field_field_ref(field_Ptr field_hdl)
205  {
206     CTimer::get("XIOS").resume();
207     bool isDefined = field_hdl->field_ref.hasInheritedValue();
208     CTimer::get("XIOS").suspend();
209     return isDefined;
210  }
211
212
213  void cxios_set_field_freq_offset(field_Ptr field_hdl, cxios_duration freq_offset_c)
214  {
215    CTimer::get("XIOS").resume();
216    field_hdl->freq_offset.allocate();
217    CDuration& freq_offset = field_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_field_freq_offset(field_Ptr field_hdl, cxios_duration* freq_offset_c)
229  {
230    CTimer::get("XIOS").resume();
231    CDuration freq_offset = field_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_field_freq_offset(field_Ptr field_hdl)
243  {
244     CTimer::get("XIOS").resume();
245     bool isDefined = field_hdl->freq_offset.hasInheritedValue();
246     CTimer::get("XIOS").suspend();
247     return isDefined;
248  }
249
250
251  void cxios_set_field_freq_op(field_Ptr field_hdl, cxios_duration freq_op_c)
252  {
253    CTimer::get("XIOS").resume();
254    field_hdl->freq_op.allocate();
255    CDuration& freq_op = field_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_field_freq_op(field_Ptr field_hdl, cxios_duration* freq_op_c)
267  {
268    CTimer::get("XIOS").resume();
269    CDuration freq_op = field_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_field_freq_op(field_Ptr field_hdl)
281  {
282     CTimer::get("XIOS").resume();
283     bool isDefined = field_hdl->freq_op.hasInheritedValue();
284     CTimer::get("XIOS").suspend();
285     return isDefined;
286  }
287
288
289  void cxios_set_field_grid_ref(field_Ptr field_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    field_hdl->grid_ref.setValue(grid_ref_str);
295    CTimer::get("XIOS").suspend();
296  }
297
298  void cxios_get_field_grid_ref(field_Ptr field_hdl, char * grid_ref, int grid_ref_size)
299  {
300    CTimer::get("XIOS").resume();
301    if (!string_copy(field_hdl->grid_ref.getInheritedValue(), grid_ref, grid_ref_size))
302      ERROR("void cxios_get_field_grid_ref(field_Ptr field_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_field_grid_ref(field_Ptr field_hdl)
307  {
308     CTimer::get("XIOS").resume();
309     bool isDefined = field_hdl->grid_ref.hasInheritedValue();
310     CTimer::get("XIOS").suspend();
311     return isDefined;
312  }
313
314
315  void cxios_set_field_indexed_output(field_Ptr field_hdl, bool indexed_output)
316  {
317    CTimer::get("XIOS").resume();
318    field_hdl->indexed_output.setValue(indexed_output);
319    CTimer::get("XIOS").suspend();
320  }
321
322  void cxios_get_field_indexed_output(field_Ptr field_hdl, bool* indexed_output)
323  {
324    CTimer::get("XIOS").resume();
325    *indexed_output = field_hdl->indexed_output.getInheritedValue();
326    CTimer::get("XIOS").suspend();
327  }
328
329  bool cxios_is_defined_field_indexed_output(field_Ptr field_hdl)
330  {
331     CTimer::get("XIOS").resume();
332     bool isDefined = field_hdl->indexed_output.hasInheritedValue();
333     CTimer::get("XIOS").suspend();
334     return isDefined;
335  }
336
337
338  void cxios_set_field_level(field_Ptr field_hdl, int level)
339  {
340    CTimer::get("XIOS").resume();
341    field_hdl->level.setValue(level);
342    CTimer::get("XIOS").suspend();
343  }
344
345  void cxios_get_field_level(field_Ptr field_hdl, int* level)
346  {
347    CTimer::get("XIOS").resume();
348    *level = field_hdl->level.getInheritedValue();
349    CTimer::get("XIOS").suspend();
350  }
351
352  bool cxios_is_defined_field_level(field_Ptr field_hdl)
353  {
354     CTimer::get("XIOS").resume();
355     bool isDefined = field_hdl->level.hasInheritedValue();
356     CTimer::get("XIOS").suspend();
357     return isDefined;
358  }
359
360
361  void cxios_set_field_long_name(field_Ptr field_hdl, const char * long_name, int long_name_size)
362  {
363    std::string long_name_str;
364    if (!cstr2string(long_name, long_name_size, long_name_str)) return;
365    CTimer::get("XIOS").resume();
366    field_hdl->long_name.setValue(long_name_str);
367    CTimer::get("XIOS").suspend();
368  }
369
370  void cxios_get_field_long_name(field_Ptr field_hdl, char * long_name, int long_name_size)
371  {
372    CTimer::get("XIOS").resume();
373    if (!string_copy(field_hdl->long_name.getInheritedValue(), long_name, long_name_size))
374      ERROR("void cxios_get_field_long_name(field_Ptr field_hdl, char * long_name, int long_name_size)", << "Input string is too short");
375    CTimer::get("XIOS").suspend();
376  }
377
378  bool cxios_is_defined_field_long_name(field_Ptr field_hdl)
379  {
380     CTimer::get("XIOS").resume();
381     bool isDefined = field_hdl->long_name.hasInheritedValue();
382     CTimer::get("XIOS").suspend();
383     return isDefined;
384  }
385
386
387  void cxios_set_field_name(field_Ptr field_hdl, const char * name, int name_size)
388  {
389    std::string name_str;
390    if (!cstr2string(name, name_size, name_str)) return;
391    CTimer::get("XIOS").resume();
392    field_hdl->name.setValue(name_str);
393    CTimer::get("XIOS").suspend();
394  }
395
396  void cxios_get_field_name(field_Ptr field_hdl, char * name, int name_size)
397  {
398    CTimer::get("XIOS").resume();
399    if (!string_copy(field_hdl->name.getInheritedValue(), name, name_size))
400      ERROR("void cxios_get_field_name(field_Ptr field_hdl, char * name, int name_size)", << "Input string is too short");
401    CTimer::get("XIOS").suspend();
402  }
403
404  bool cxios_is_defined_field_name(field_Ptr field_hdl)
405  {
406     CTimer::get("XIOS").resume();
407     bool isDefined = field_hdl->name.hasInheritedValue();
408     CTimer::get("XIOS").suspend();
409     return isDefined;
410  }
411
412
413  void cxios_set_field_operation(field_Ptr field_hdl, const char * operation, int operation_size)
414  {
415    std::string operation_str;
416    if (!cstr2string(operation, operation_size, operation_str)) return;
417    CTimer::get("XIOS").resume();
418    field_hdl->operation.setValue(operation_str);
419    CTimer::get("XIOS").suspend();
420  }
421
422  void cxios_get_field_operation(field_Ptr field_hdl, char * operation, int operation_size)
423  {
424    CTimer::get("XIOS").resume();
425    if (!string_copy(field_hdl->operation.getInheritedValue(), operation, operation_size))
426      ERROR("void cxios_get_field_operation(field_Ptr field_hdl, char * operation, int operation_size)", << "Input string is too short");
427    CTimer::get("XIOS").suspend();
428  }
429
430  bool cxios_is_defined_field_operation(field_Ptr field_hdl)
431  {
432     CTimer::get("XIOS").resume();
433     bool isDefined = field_hdl->operation.hasInheritedValue();
434     CTimer::get("XIOS").suspend();
435     return isDefined;
436  }
437
438
439  void cxios_set_field_prec(field_Ptr field_hdl, int prec)
440  {
441    CTimer::get("XIOS").resume();
442    field_hdl->prec.setValue(prec);
443    CTimer::get("XIOS").suspend();
444  }
445
446  void cxios_get_field_prec(field_Ptr field_hdl, int* prec)
447  {
448    CTimer::get("XIOS").resume();
449    *prec = field_hdl->prec.getInheritedValue();
450    CTimer::get("XIOS").suspend();
451  }
452
453  bool cxios_is_defined_field_prec(field_Ptr field_hdl)
454  {
455     CTimer::get("XIOS").resume();
456     bool isDefined = field_hdl->prec.hasInheritedValue();
457     CTimer::get("XIOS").suspend();
458     return isDefined;
459  }
460
461
462  void cxios_set_field_read_access(field_Ptr field_hdl, bool read_access)
463  {
464    CTimer::get("XIOS").resume();
465    field_hdl->read_access.setValue(read_access);
466    CTimer::get("XIOS").suspend();
467  }
468
469  void cxios_get_field_read_access(field_Ptr field_hdl, bool* read_access)
470  {
471    CTimer::get("XIOS").resume();
472    *read_access = field_hdl->read_access.getInheritedValue();
473    CTimer::get("XIOS").suspend();
474  }
475
476  bool cxios_is_defined_field_read_access(field_Ptr field_hdl)
477  {
478     CTimer::get("XIOS").resume();
479     bool isDefined = field_hdl->read_access.hasInheritedValue();
480     CTimer::get("XIOS").suspend();
481     return isDefined;
482  }
483
484
485  void cxios_set_field_scale_factor(field_Ptr field_hdl, double scale_factor)
486  {
487    CTimer::get("XIOS").resume();
488    field_hdl->scale_factor.setValue(scale_factor);
489    CTimer::get("XIOS").suspend();
490  }
491
492  void cxios_get_field_scale_factor(field_Ptr field_hdl, double* scale_factor)
493  {
494    CTimer::get("XIOS").resume();
495    *scale_factor = field_hdl->scale_factor.getInheritedValue();
496    CTimer::get("XIOS").suspend();
497  }
498
499  bool cxios_is_defined_field_scale_factor(field_Ptr field_hdl)
500  {
501     CTimer::get("XIOS").resume();
502     bool isDefined = field_hdl->scale_factor.hasInheritedValue();
503     CTimer::get("XIOS").suspend();
504     return isDefined;
505  }
506
507
508  void cxios_set_field_standard_name(field_Ptr field_hdl, const char * standard_name, int standard_name_size)
509  {
510    std::string standard_name_str;
511    if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;
512    CTimer::get("XIOS").resume();
513    field_hdl->standard_name.setValue(standard_name_str);
514    CTimer::get("XIOS").suspend();
515  }
516
517  void cxios_get_field_standard_name(field_Ptr field_hdl, char * standard_name, int standard_name_size)
518  {
519    CTimer::get("XIOS").resume();
520    if (!string_copy(field_hdl->standard_name.getInheritedValue(), standard_name, standard_name_size))
521      ERROR("void cxios_get_field_standard_name(field_Ptr field_hdl, char * standard_name, int standard_name_size)", << "Input string is too short");
522    CTimer::get("XIOS").suspend();
523  }
524
525  bool cxios_is_defined_field_standard_name(field_Ptr field_hdl)
526  {
527     CTimer::get("XIOS").resume();
528     bool isDefined = field_hdl->standard_name.hasInheritedValue();
529     CTimer::get("XIOS").suspend();
530     return isDefined;
531  }
532
533
534  void cxios_set_field_ts_enabled(field_Ptr field_hdl, bool ts_enabled)
535  {
536    CTimer::get("XIOS").resume();
537    field_hdl->ts_enabled.setValue(ts_enabled);
538    CTimer::get("XIOS").suspend();
539  }
540
541  void cxios_get_field_ts_enabled(field_Ptr field_hdl, bool* ts_enabled)
542  {
543    CTimer::get("XIOS").resume();
544    *ts_enabled = field_hdl->ts_enabled.getInheritedValue();
545    CTimer::get("XIOS").suspend();
546  }
547
548  bool cxios_is_defined_field_ts_enabled(field_Ptr field_hdl)
549  {
550     CTimer::get("XIOS").resume();
551     bool isDefined = field_hdl->ts_enabled.hasInheritedValue();
552     CTimer::get("XIOS").suspend();
553     return isDefined;
554  }
555
556
557  void cxios_set_field_ts_split_freq(field_Ptr field_hdl, cxios_duration ts_split_freq_c)
558  {
559    CTimer::get("XIOS").resume();
560    field_hdl->ts_split_freq.allocate();
561    CDuration& ts_split_freq = field_hdl->ts_split_freq.get();
562    ts_split_freq.year = ts_split_freq_c.year;
563    ts_split_freq.month = ts_split_freq_c.month;
564    ts_split_freq.day = ts_split_freq_c.day;
565    ts_split_freq.hour = ts_split_freq_c.hour;
566    ts_split_freq.minute = ts_split_freq_c.minute;
567    ts_split_freq.second = ts_split_freq_c.second;
568    ts_split_freq.timestep = ts_split_freq_c.timestep;
569    CTimer::get("XIOS").suspend();
570  }
571
572  void cxios_get_field_ts_split_freq(field_Ptr field_hdl, cxios_duration* ts_split_freq_c)
573  {
574    CTimer::get("XIOS").resume();
575    CDuration ts_split_freq = field_hdl->ts_split_freq.getInheritedValue();
576    ts_split_freq_c->year = ts_split_freq.year;
577    ts_split_freq_c->month = ts_split_freq.month;
578    ts_split_freq_c->day = ts_split_freq.day;
579    ts_split_freq_c->hour = ts_split_freq.hour;
580    ts_split_freq_c->minute = ts_split_freq.minute;
581    ts_split_freq_c->second = ts_split_freq.second;
582    ts_split_freq_c->timestep = ts_split_freq.timestep;
583    CTimer::get("XIOS").suspend();
584  }
585
586  bool cxios_is_defined_field_ts_split_freq(field_Ptr field_hdl)
587  {
588     CTimer::get("XIOS").resume();
589     bool isDefined = field_hdl->ts_split_freq.hasInheritedValue();
590     CTimer::get("XIOS").suspend();
591     return isDefined;
592  }
593
594
595  void cxios_set_field_unit(field_Ptr field_hdl, const char * unit, int unit_size)
596  {
597    std::string unit_str;
598    if (!cstr2string(unit, unit_size, unit_str)) return;
599    CTimer::get("XIOS").resume();
600    field_hdl->unit.setValue(unit_str);
601    CTimer::get("XIOS").suspend();
602  }
603
604  void cxios_get_field_unit(field_Ptr field_hdl, char * unit, int unit_size)
605  {
606    CTimer::get("XIOS").resume();
607    if (!string_copy(field_hdl->unit.getInheritedValue(), unit, unit_size))
608      ERROR("void cxios_get_field_unit(field_Ptr field_hdl, char * unit, int unit_size)", << "Input string is too short");
609    CTimer::get("XIOS").suspend();
610  }
611
612  bool cxios_is_defined_field_unit(field_Ptr field_hdl)
613  {
614     CTimer::get("XIOS").resume();
615     bool isDefined = field_hdl->unit.hasInheritedValue();
616     CTimer::get("XIOS").suspend();
617     return isDefined;
618  }
619
620
621  void cxios_set_field_valid_max(field_Ptr field_hdl, double valid_max)
622  {
623    CTimer::get("XIOS").resume();
624    field_hdl->valid_max.setValue(valid_max);
625    CTimer::get("XIOS").suspend();
626  }
627
628  void cxios_get_field_valid_max(field_Ptr field_hdl, double* valid_max)
629  {
630    CTimer::get("XIOS").resume();
631    *valid_max = field_hdl->valid_max.getInheritedValue();
632    CTimer::get("XIOS").suspend();
633  }
634
635  bool cxios_is_defined_field_valid_max(field_Ptr field_hdl)
636  {
637     CTimer::get("XIOS").resume();
638     bool isDefined = field_hdl->valid_max.hasInheritedValue();
639     CTimer::get("XIOS").suspend();
640     return isDefined;
641  }
642
643
644  void cxios_set_field_valid_min(field_Ptr field_hdl, double valid_min)
645  {
646    CTimer::get("XIOS").resume();
647    field_hdl->valid_min.setValue(valid_min);
648    CTimer::get("XIOS").suspend();
649  }
650
651  void cxios_get_field_valid_min(field_Ptr field_hdl, double* valid_min)
652  {
653    CTimer::get("XIOS").resume();
654    *valid_min = field_hdl->valid_min.getInheritedValue();
655    CTimer::get("XIOS").suspend();
656  }
657
658  bool cxios_is_defined_field_valid_min(field_Ptr field_hdl)
659  {
660     CTimer::get("XIOS").resume();
661     bool isDefined = field_hdl->valid_min.hasInheritedValue();
662     CTimer::get("XIOS").suspend();
663     return isDefined;
664  }
665}
Note: See TracBrowser for help on using the repository browser.