source: XIOS3/trunk/src/interface/c_attr/icfield_attr.cpp @ 2616

Last change on this file since 2616 was 2616, checked in by jderouillat, 4 months ago

Add XIOS3 fortran interfaces (resources management, chunking, compression)

  • 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: 31.5 KB
RevLine 
[325]1/* ************************************************************************** *
[581]2 *               Interface auto generated - do not modify                     *
[325]3 * ************************************************************************** */
4
5#include <boost/multi_array.hpp>
[591]6#include "xios.hpp"
[352]7#include "attribute_template.hpp"
8#include "object_template.hpp"
9#include "group_template.hpp"
[325]10#include "icutil.hpp"
[532]11#include "icdate.hpp"
[347]12#include "timer.hpp"
[369]13#include "node_type.hpp"
[325]14
15extern "C"
16{
[581]17  typedef xios::CField* field_Ptr;
18
[464]19  void cxios_set_field_add_offset(field_Ptr field_hdl, double add_offset)
20  {
[581]21    CTimer::get("XIOS").resume();
[464]22    field_hdl->add_offset.setValue(add_offset);
[581]23    CTimer::get("XIOS").suspend();
[464]24  }
[581]25
[464]26  void cxios_get_field_add_offset(field_Ptr field_hdl, double* add_offset)
27  {
[581]28    CTimer::get("XIOS").resume();
[464]29    *add_offset = field_hdl->add_offset.getInheritedValue();
[581]30    CTimer::get("XIOS").suspend();
[464]31  }
[581]32
33  bool cxios_is_defined_field_add_offset(field_Ptr field_hdl)
[464]34  {
35     CTimer::get("XIOS").resume();
[581]36     bool isDefined = field_hdl->add_offset.hasInheritedValue();
[464]37     CTimer::get("XIOS").suspend();
[581]38     return isDefined;
[464]39  }
[581]40
41
[325]42  void cxios_set_field_axis_ref(field_Ptr field_hdl, const char * axis_ref, int axis_ref_size)
43  {
44    std::string axis_ref_str;
[581]45    if (!cstr2string(axis_ref, axis_ref_size, axis_ref_str)) return;
46    CTimer::get("XIOS").resume();
[325]47    field_hdl->axis_ref.setValue(axis_ref_str);
[581]48    CTimer::get("XIOS").suspend();
[325]49  }
[581]50
[325]51  void cxios_get_field_axis_ref(field_Ptr field_hdl, char * axis_ref, int axis_ref_size)
52  {
[581]53    CTimer::get("XIOS").resume();
54    if (!string_copy(field_hdl->axis_ref.getInheritedValue(), axis_ref, axis_ref_size))
55      ERROR("void cxios_get_field_axis_ref(field_Ptr field_hdl, char * axis_ref, int axis_ref_size)", << "Input string is too short");
56    CTimer::get("XIOS").suspend();
[325]57  }
[581]58
59  bool cxios_is_defined_field_axis_ref(field_Ptr field_hdl)
[432]60  {
61     CTimer::get("XIOS").resume();
[581]62     bool isDefined = field_hdl->axis_ref.hasInheritedValue();
[432]63     CTimer::get("XIOS").suspend();
[581]64     return isDefined;
[432]65  }
[581]66
67
[2338]68  void cxios_set_field_build_workflow_graph(field_Ptr field_hdl, bool build_workflow_graph)
69  {
70    CTimer::get("XIOS").resume();
71    field_hdl->build_workflow_graph.setValue(build_workflow_graph);
72    CTimer::get("XIOS").suspend();
73  }
74
75  void cxios_get_field_build_workflow_graph(field_Ptr field_hdl, bool* build_workflow_graph)
76  {
77    CTimer::get("XIOS").resume();
78    *build_workflow_graph = field_hdl->build_workflow_graph.getInheritedValue();
79    CTimer::get("XIOS").suspend();
80  }
81
82  bool cxios_is_defined_field_build_workflow_graph(field_Ptr field_hdl)
83  {
84     CTimer::get("XIOS").resume();
85     bool isDefined = field_hdl->build_workflow_graph.hasInheritedValue();
86     CTimer::get("XIOS").suspend();
87     return isDefined;
88  }
89
90
[1021]91  void cxios_set_field_cell_methods(field_Ptr field_hdl, const char * cell_methods, int cell_methods_size)
92  {
93    std::string cell_methods_str;
94    if (!cstr2string(cell_methods, cell_methods_size, cell_methods_str)) return;
95    CTimer::get("XIOS").resume();
96    field_hdl->cell_methods.setValue(cell_methods_str);
97    CTimer::get("XIOS").suspend();
98  }
99
100  void cxios_get_field_cell_methods(field_Ptr field_hdl, char * cell_methods, int cell_methods_size)
101  {
102    CTimer::get("XIOS").resume();
103    if (!string_copy(field_hdl->cell_methods.getInheritedValue(), cell_methods, cell_methods_size))
104      ERROR("void cxios_get_field_cell_methods(field_Ptr field_hdl, char * cell_methods, int cell_methods_size)", << "Input string is too short");
105    CTimer::get("XIOS").suspend();
106  }
107
108  bool cxios_is_defined_field_cell_methods(field_Ptr field_hdl)
109  {
110     CTimer::get("XIOS").resume();
111     bool isDefined = field_hdl->cell_methods.hasInheritedValue();
112     CTimer::get("XIOS").suspend();
113     return isDefined;
114  }
115
116
117  void cxios_set_field_cell_methods_mode(field_Ptr field_hdl, const char * cell_methods_mode, int cell_methods_mode_size)
118  {
119    std::string cell_methods_mode_str;
120    if (!cstr2string(cell_methods_mode, cell_methods_mode_size, cell_methods_mode_str)) return;
121    CTimer::get("XIOS").resume();
122    field_hdl->cell_methods_mode.fromString(cell_methods_mode_str);
123    CTimer::get("XIOS").suspend();
124  }
125
126  void cxios_get_field_cell_methods_mode(field_Ptr field_hdl, char * cell_methods_mode, int cell_methods_mode_size)
127  {
128    CTimer::get("XIOS").resume();
129    if (!string_copy(field_hdl->cell_methods_mode.getInheritedStringValue(), cell_methods_mode, cell_methods_mode_size))
130      ERROR("void cxios_get_field_cell_methods_mode(field_Ptr field_hdl, char * cell_methods_mode, int cell_methods_mode_size)", << "Input string is too short");
131    CTimer::get("XIOS").suspend();
132  }
133
134  bool cxios_is_defined_field_cell_methods_mode(field_Ptr field_hdl)
135  {
136     CTimer::get("XIOS").resume();
137     bool isDefined = field_hdl->cell_methods_mode.hasInheritedValue();
138     CTimer::get("XIOS").suspend();
139     return isDefined;
140  }
141
142
[1201]143  void cxios_set_field_check_if_active(field_Ptr field_hdl, bool check_if_active)
144  {
145    CTimer::get("XIOS").resume();
146    field_hdl->check_if_active.setValue(check_if_active);
147    CTimer::get("XIOS").suspend();
148  }
149
150  void cxios_get_field_check_if_active(field_Ptr field_hdl, bool* check_if_active)
151  {
152    CTimer::get("XIOS").resume();
153    *check_if_active = field_hdl->check_if_active.getInheritedValue();
154    CTimer::get("XIOS").suspend();
155  }
156
157  bool cxios_is_defined_field_check_if_active(field_Ptr field_hdl)
158  {
159     CTimer::get("XIOS").resume();
160     bool isDefined = field_hdl->check_if_active.hasInheritedValue();
161     CTimer::get("XIOS").suspend();
162     return isDefined;
163  }
164
165
[2616]166  void cxios_set_field_chunking_blocksize_target(field_Ptr field_hdl, double chunking_blocksize_target)
167  {
168    CTimer::get("XIOS").resume();
169    field_hdl->chunking_blocksize_target.setValue(chunking_blocksize_target);
170    CTimer::get("XIOS").suspend();
171  }
172
173  void cxios_get_field_chunking_blocksize_target(field_Ptr field_hdl, double* chunking_blocksize_target)
174  {
175    CTimer::get("XIOS").resume();
176    *chunking_blocksize_target = field_hdl->chunking_blocksize_target.getInheritedValue();
177    CTimer::get("XIOS").suspend();
178  }
179
180  bool cxios_is_defined_field_chunking_blocksize_target(field_Ptr field_hdl)
181  {
182     CTimer::get("XIOS").resume();
183     bool isDefined = field_hdl->chunking_blocksize_target.hasInheritedValue();
184     CTimer::get("XIOS").suspend();
185     return isDefined;
186  }
187
188
[1492]189  void cxios_set_field_comment(field_Ptr field_hdl, const char * comment, int comment_size)
190  {
191    std::string comment_str;
192    if (!cstr2string(comment, comment_size, comment_str)) return;
193    CTimer::get("XIOS").resume();
194    field_hdl->comment.setValue(comment_str);
195    CTimer::get("XIOS").suspend();
196  }
197
198  void cxios_get_field_comment(field_Ptr field_hdl, char * comment, int comment_size)
199  {
200    CTimer::get("XIOS").resume();
201    if (!string_copy(field_hdl->comment.getInheritedValue(), comment, comment_size))
202      ERROR("void cxios_get_field_comment(field_Ptr field_hdl, char * comment, int comment_size)", << "Input string is too short");
203    CTimer::get("XIOS").suspend();
204  }
205
206  bool cxios_is_defined_field_comment(field_Ptr field_hdl)
207  {
208     CTimer::get("XIOS").resume();
209     bool isDefined = field_hdl->comment.hasInheritedValue();
210     CTimer::get("XIOS").suspend();
211     return isDefined;
212  }
213
214
[608]215  void cxios_set_field_compression_level(field_Ptr field_hdl, int compression_level)
216  {
217    CTimer::get("XIOS").resume();
218    field_hdl->compression_level.setValue(compression_level);
219    CTimer::get("XIOS").suspend();
220  }
221
222  void cxios_get_field_compression_level(field_Ptr field_hdl, int* compression_level)
223  {
224    CTimer::get("XIOS").resume();
225    *compression_level = field_hdl->compression_level.getInheritedValue();
226    CTimer::get("XIOS").suspend();
227  }
228
229  bool cxios_is_defined_field_compression_level(field_Ptr field_hdl)
230  {
231     CTimer::get("XIOS").resume();
232     bool isDefined = field_hdl->compression_level.hasInheritedValue();
233     CTimer::get("XIOS").suspend();
234     return isDefined;
235  }
236
237
[2616]238  void cxios_set_field_compression_params(field_Ptr field_hdl, double* compression_params, int* extent)
239  {
240    CTimer::get("XIOS").resume();
241    CArray<double,1> tmp(compression_params, shape(extent[0]), neverDeleteData);
242    field_hdl->compression_params.reference(tmp.copy());
243     CTimer::get("XIOS").suspend();
244  }
245
246  void cxios_get_field_compression_params(field_Ptr field_hdl, double* compression_params, int* extent)
247  {
248    CTimer::get("XIOS").resume();
249    CArray<double,1> tmp(compression_params, shape(extent[0]), neverDeleteData);
250    tmp=field_hdl->compression_params.getInheritedValue();
251     CTimer::get("XIOS").suspend();
252  }
253
254  bool cxios_is_defined_field_compression_params(field_Ptr field_hdl)
255  {
256     CTimer::get("XIOS").resume();
257     bool isDefined = field_hdl->compression_params.hasInheritedValue();
258     CTimer::get("XIOS").suspend();
259     return isDefined;
260  }
261
262
263  void cxios_set_field_compression_type(field_Ptr field_hdl, const char * compression_type, int compression_type_size)
264  {
265    std::string compression_type_str;
266    if (!cstr2string(compression_type, compression_type_size, compression_type_str)) return;
267    CTimer::get("XIOS").resume();
268    field_hdl->compression_type.setValue(compression_type_str);
269    CTimer::get("XIOS").suspend();
270  }
271
272  void cxios_get_field_compression_type(field_Ptr field_hdl, char * compression_type, int compression_type_size)
273  {
274    CTimer::get("XIOS").resume();
275    if (!string_copy(field_hdl->compression_type.getInheritedValue(), compression_type, compression_type_size))
276      ERROR("void cxios_get_field_compression_type(field_Ptr field_hdl, char * compression_type, int compression_type_size)", << "Input string is too short");
277    CTimer::get("XIOS").suspend();
278  }
279
280  bool cxios_is_defined_field_compression_type(field_Ptr field_hdl)
281  {
282     CTimer::get("XIOS").resume();
283     bool isDefined = field_hdl->compression_type.hasInheritedValue();
284     CTimer::get("XIOS").suspend();
285     return isDefined;
286  }
287
288
289  void cxios_set_field_conversion_by_NetCDF(field_Ptr field_hdl, bool conversion_by_NetCDF)
290  {
291    CTimer::get("XIOS").resume();
292    field_hdl->conversion_by_NetCDF.setValue(conversion_by_NetCDF);
293    CTimer::get("XIOS").suspend();
294  }
295
296  void cxios_get_field_conversion_by_NetCDF(field_Ptr field_hdl, bool* conversion_by_NetCDF)
297  {
298    CTimer::get("XIOS").resume();
299    *conversion_by_NetCDF = field_hdl->conversion_by_NetCDF.getInheritedValue();
300    CTimer::get("XIOS").suspend();
301  }
302
303  bool cxios_is_defined_field_conversion_by_NetCDF(field_Ptr field_hdl)
304  {
305     CTimer::get("XIOS").resume();
306     bool isDefined = field_hdl->conversion_by_NetCDF.hasInheritedValue();
307     CTimer::get("XIOS").suspend();
308     return isDefined;
309  }
310
311
[325]312  void cxios_set_field_default_value(field_Ptr field_hdl, double default_value)
313  {
[581]314    CTimer::get("XIOS").resume();
[325]315    field_hdl->default_value.setValue(default_value);
[581]316    CTimer::get("XIOS").suspend();
[325]317  }
[581]318
[325]319  void cxios_get_field_default_value(field_Ptr field_hdl, double* default_value)
320  {
[581]321    CTimer::get("XIOS").resume();
[445]322    *default_value = field_hdl->default_value.getInheritedValue();
[581]323    CTimer::get("XIOS").suspend();
[325]324  }
[581]325
326  bool cxios_is_defined_field_default_value(field_Ptr field_hdl)
[432]327  {
328     CTimer::get("XIOS").resume();
[581]329     bool isDefined = field_hdl->default_value.hasInheritedValue();
[432]330     CTimer::get("XIOS").suspend();
[581]331     return isDefined;
[432]332  }
[581]333
334
[472]335  void cxios_set_field_detect_missing_value(field_Ptr field_hdl, bool detect_missing_value)
336  {
[581]337    CTimer::get("XIOS").resume();
[472]338    field_hdl->detect_missing_value.setValue(detect_missing_value);
[581]339    CTimer::get("XIOS").suspend();
[472]340  }
[581]341
[472]342  void cxios_get_field_detect_missing_value(field_Ptr field_hdl, bool* detect_missing_value)
343  {
[581]344    CTimer::get("XIOS").resume();
[472]345    *detect_missing_value = field_hdl->detect_missing_value.getInheritedValue();
[581]346    CTimer::get("XIOS").suspend();
[472]347  }
[581]348
349  bool cxios_is_defined_field_detect_missing_value(field_Ptr field_hdl)
[472]350  {
351     CTimer::get("XIOS").resume();
[581]352     bool isDefined = field_hdl->detect_missing_value.hasInheritedValue();
[472]353     CTimer::get("XIOS").suspend();
[581]354     return isDefined;
[472]355  }
[581]356
357
[325]358  void cxios_set_field_domain_ref(field_Ptr field_hdl, const char * domain_ref, int domain_ref_size)
359  {
360    std::string domain_ref_str;
[581]361    if (!cstr2string(domain_ref, domain_ref_size, domain_ref_str)) return;
362    CTimer::get("XIOS").resume();
[325]363    field_hdl->domain_ref.setValue(domain_ref_str);
[581]364    CTimer::get("XIOS").suspend();
[325]365  }
[581]366
[325]367  void cxios_get_field_domain_ref(field_Ptr field_hdl, char * domain_ref, int domain_ref_size)
368  {
[581]369    CTimer::get("XIOS").resume();
370    if (!string_copy(field_hdl->domain_ref.getInheritedValue(), domain_ref, domain_ref_size))
371      ERROR("void cxios_get_field_domain_ref(field_Ptr field_hdl, char * domain_ref, int domain_ref_size)", << "Input string is too short");
372    CTimer::get("XIOS").suspend();
[325]373  }
[581]374
375  bool cxios_is_defined_field_domain_ref(field_Ptr field_hdl)
[432]376  {
377     CTimer::get("XIOS").resume();
[581]378     bool isDefined = field_hdl->domain_ref.hasInheritedValue();
[432]379     CTimer::get("XIOS").suspend();
[581]380     return isDefined;
[432]381  }
[581]382
383
[325]384  void cxios_set_field_enabled(field_Ptr field_hdl, bool enabled)
385  {
[581]386    CTimer::get("XIOS").resume();
[325]387    field_hdl->enabled.setValue(enabled);
[581]388    CTimer::get("XIOS").suspend();
[325]389  }
[581]390
[325]391  void cxios_get_field_enabled(field_Ptr field_hdl, bool* enabled)
392  {
[581]393    CTimer::get("XIOS").resume();
[445]394    *enabled = field_hdl->enabled.getInheritedValue();
[581]395    CTimer::get("XIOS").suspend();
[325]396  }
[581]397
398  bool cxios_is_defined_field_enabled(field_Ptr field_hdl)
[432]399  {
400     CTimer::get("XIOS").resume();
[581]401     bool isDefined = field_hdl->enabled.hasInheritedValue();
[432]402     CTimer::get("XIOS").suspend();
[581]403     return isDefined;
[432]404  }
[581]405
406
[1021]407  void cxios_set_field_expr(field_Ptr field_hdl, const char * expr, int expr_size)
408  {
409    std::string expr_str;
410    if (!cstr2string(expr, expr_size, expr_str)) return;
411    CTimer::get("XIOS").resume();
412    field_hdl->expr.setValue(expr_str);
413    CTimer::get("XIOS").suspend();
414  }
415
416  void cxios_get_field_expr(field_Ptr field_hdl, char * expr, int expr_size)
417  {
418    CTimer::get("XIOS").resume();
419    if (!string_copy(field_hdl->expr.getInheritedValue(), expr, expr_size))
420      ERROR("void cxios_get_field_expr(field_Ptr field_hdl, char * expr, int expr_size)", << "Input string is too short");
421    CTimer::get("XIOS").suspend();
422  }
423
424  bool cxios_is_defined_field_expr(field_Ptr field_hdl)
425  {
426     CTimer::get("XIOS").resume();
427     bool isDefined = field_hdl->expr.hasInheritedValue();
428     CTimer::get("XIOS").suspend();
429     return isDefined;
430  }
431
432
[325]433  void cxios_set_field_field_ref(field_Ptr field_hdl, const char * field_ref, int field_ref_size)
434  {
435    std::string field_ref_str;
[581]436    if (!cstr2string(field_ref, field_ref_size, field_ref_str)) return;
437    CTimer::get("XIOS").resume();
[325]438    field_hdl->field_ref.setValue(field_ref_str);
[581]439    CTimer::get("XIOS").suspend();
[325]440  }
[581]441
[325]442  void cxios_get_field_field_ref(field_Ptr field_hdl, char * field_ref, int field_ref_size)
443  {
[581]444    CTimer::get("XIOS").resume();
445    if (!string_copy(field_hdl->field_ref.getInheritedValue(), field_ref, field_ref_size))
446      ERROR("void cxios_get_field_field_ref(field_Ptr field_hdl, char * field_ref, int field_ref_size)", << "Input string is too short");
447    CTimer::get("XIOS").suspend();
[325]448  }
[581]449
450  bool cxios_is_defined_field_field_ref(field_Ptr field_hdl)
[432]451  {
452     CTimer::get("XIOS").resume();
[581]453     bool isDefined = field_hdl->field_ref.hasInheritedValue();
[432]454     CTimer::get("XIOS").suspend();
[581]455     return isDefined;
[432]456  }
[581]457
458
[538]459  void cxios_set_field_freq_offset(field_Ptr field_hdl, cxios_duration freq_offset_c)
[325]460  {
[538]461    CTimer::get("XIOS").resume();
462    field_hdl->freq_offset.allocate();
463    CDuration& freq_offset = field_hdl->freq_offset.get();
464    freq_offset.year = freq_offset_c.year;
465    freq_offset.month = freq_offset_c.month;
466    freq_offset.day = freq_offset_c.day;
467    freq_offset.hour = freq_offset_c.hour;
468    freq_offset.minute = freq_offset_c.minute;
469    freq_offset.second = freq_offset_c.second;
470    freq_offset.timestep = freq_offset_c.timestep;
471    CTimer::get("XIOS").suspend();
[325]472  }
[581]473
[538]474  void cxios_get_field_freq_offset(field_Ptr field_hdl, cxios_duration* freq_offset_c)
[325]475  {
[538]476    CTimer::get("XIOS").resume();
477    CDuration freq_offset = field_hdl->freq_offset.getInheritedValue();
478    freq_offset_c->year = freq_offset.year;
479    freq_offset_c->month = freq_offset.month;
480    freq_offset_c->day = freq_offset.day;
481    freq_offset_c->hour = freq_offset.hour;
482    freq_offset_c->minute = freq_offset.minute;
483    freq_offset_c->second = freq_offset.second;
484    freq_offset_c->timestep = freq_offset.timestep;
485    CTimer::get("XIOS").suspend();
[325]486  }
[581]487
488  bool cxios_is_defined_field_freq_offset(field_Ptr field_hdl)
[432]489  {
490     CTimer::get("XIOS").resume();
[581]491     bool isDefined = field_hdl->freq_offset.hasInheritedValue();
[432]492     CTimer::get("XIOS").suspend();
[581]493     return isDefined;
[432]494  }
[581]495
496
[538]497  void cxios_set_field_freq_op(field_Ptr field_hdl, cxios_duration freq_op_c)
[325]498  {
[538]499    CTimer::get("XIOS").resume();
500    field_hdl->freq_op.allocate();
501    CDuration& freq_op = field_hdl->freq_op.get();
502    freq_op.year = freq_op_c.year;
503    freq_op.month = freq_op_c.month;
504    freq_op.day = freq_op_c.day;
505    freq_op.hour = freq_op_c.hour;
506    freq_op.minute = freq_op_c.minute;
507    freq_op.second = freq_op_c.second;
508    freq_op.timestep = freq_op_c.timestep;
509    CTimer::get("XIOS").suspend();
[325]510  }
[581]511
[538]512  void cxios_get_field_freq_op(field_Ptr field_hdl, cxios_duration* freq_op_c)
[325]513  {
[538]514    CTimer::get("XIOS").resume();
515    CDuration freq_op = field_hdl->freq_op.getInheritedValue();
516    freq_op_c->year = freq_op.year;
517    freq_op_c->month = freq_op.month;
518    freq_op_c->day = freq_op.day;
519    freq_op_c->hour = freq_op.hour;
520    freq_op_c->minute = freq_op.minute;
521    freq_op_c->second = freq_op.second;
522    freq_op_c->timestep = freq_op.timestep;
523    CTimer::get("XIOS").suspend();
[325]524  }
[581]525
526  bool cxios_is_defined_field_freq_op(field_Ptr field_hdl)
[432]527  {
528     CTimer::get("XIOS").resume();
[581]529     bool isDefined = field_hdl->freq_op.hasInheritedValue();
[432]530     CTimer::get("XIOS").suspend();
[581]531     return isDefined;
[432]532  }
[581]533
534
[790]535  void cxios_set_field_grid_path(field_Ptr field_hdl, const char * grid_path, int grid_path_size)
536  {
537    std::string grid_path_str;
538    if (!cstr2string(grid_path, grid_path_size, grid_path_str)) return;
539    CTimer::get("XIOS").resume();
540    field_hdl->grid_path.setValue(grid_path_str);
541    CTimer::get("XIOS").suspend();
542  }
543
544  void cxios_get_field_grid_path(field_Ptr field_hdl, char * grid_path, int grid_path_size)
545  {
546    CTimer::get("XIOS").resume();
547    if (!string_copy(field_hdl->grid_path.getInheritedValue(), grid_path, grid_path_size))
548      ERROR("void cxios_get_field_grid_path(field_Ptr field_hdl, char * grid_path, int grid_path_size)", << "Input string is too short");
549    CTimer::get("XIOS").suspend();
550  }
551
552  bool cxios_is_defined_field_grid_path(field_Ptr field_hdl)
553  {
554     CTimer::get("XIOS").resume();
555     bool isDefined = field_hdl->grid_path.hasInheritedValue();
556     CTimer::get("XIOS").suspend();
557     return isDefined;
558  }
559
560
[325]561  void cxios_set_field_grid_ref(field_Ptr field_hdl, const char * grid_ref, int grid_ref_size)
562  {
563    std::string grid_ref_str;
[581]564    if (!cstr2string(grid_ref, grid_ref_size, grid_ref_str)) return;
565    CTimer::get("XIOS").resume();
[325]566    field_hdl->grid_ref.setValue(grid_ref_str);
[581]567    CTimer::get("XIOS").suspend();
[325]568  }
[581]569
[325]570  void cxios_get_field_grid_ref(field_Ptr field_hdl, char * grid_ref, int grid_ref_size)
571  {
[581]572    CTimer::get("XIOS").resume();
573    if (!string_copy(field_hdl->grid_ref.getInheritedValue(), grid_ref, grid_ref_size))
574      ERROR("void cxios_get_field_grid_ref(field_Ptr field_hdl, char * grid_ref, int grid_ref_size)", << "Input string is too short");
575    CTimer::get("XIOS").suspend();
[325]576  }
[581]577
578  bool cxios_is_defined_field_grid_ref(field_Ptr field_hdl)
[432]579  {
580     CTimer::get("XIOS").resume();
[581]581     bool isDefined = field_hdl->grid_ref.hasInheritedValue();
[432]582     CTimer::get("XIOS").suspend();
[581]583     return isDefined;
[432]584  }
[581]585
586
[676]587  void cxios_set_field_indexed_output(field_Ptr field_hdl, bool indexed_output)
588  {
589    CTimer::get("XIOS").resume();
590    field_hdl->indexed_output.setValue(indexed_output);
591    CTimer::get("XIOS").suspend();
592  }
593
594  void cxios_get_field_indexed_output(field_Ptr field_hdl, bool* indexed_output)
595  {
596    CTimer::get("XIOS").resume();
597    *indexed_output = field_hdl->indexed_output.getInheritedValue();
598    CTimer::get("XIOS").suspend();
599  }
600
601  bool cxios_is_defined_field_indexed_output(field_Ptr field_hdl)
602  {
603     CTimer::get("XIOS").resume();
604     bool isDefined = field_hdl->indexed_output.hasInheritedValue();
605     CTimer::get("XIOS").suspend();
606     return isDefined;
607  }
608
609
[325]610  void cxios_set_field_level(field_Ptr field_hdl, int level)
611  {
[581]612    CTimer::get("XIOS").resume();
[325]613    field_hdl->level.setValue(level);
[581]614    CTimer::get("XIOS").suspend();
[325]615  }
[581]616
[325]617  void cxios_get_field_level(field_Ptr field_hdl, int* level)
618  {
[581]619    CTimer::get("XIOS").resume();
[445]620    *level = field_hdl->level.getInheritedValue();
[581]621    CTimer::get("XIOS").suspend();
[325]622  }
[581]623
624  bool cxios_is_defined_field_level(field_Ptr field_hdl)
[432]625  {
626     CTimer::get("XIOS").resume();
[581]627     bool isDefined = field_hdl->level.hasInheritedValue();
[432]628     CTimer::get("XIOS").suspend();
[581]629     return isDefined;
[432]630  }
[581]631
632
[325]633  void cxios_set_field_long_name(field_Ptr field_hdl, const char * long_name, int long_name_size)
634  {
635    std::string long_name_str;
[581]636    if (!cstr2string(long_name, long_name_size, long_name_str)) return;
637    CTimer::get("XIOS").resume();
[325]638    field_hdl->long_name.setValue(long_name_str);
[581]639    CTimer::get("XIOS").suspend();
[325]640  }
[581]641
[325]642  void cxios_get_field_long_name(field_Ptr field_hdl, char * long_name, int long_name_size)
643  {
[581]644    CTimer::get("XIOS").resume();
645    if (!string_copy(field_hdl->long_name.getInheritedValue(), long_name, long_name_size))
646      ERROR("void cxios_get_field_long_name(field_Ptr field_hdl, char * long_name, int long_name_size)", << "Input string is too short");
647    CTimer::get("XIOS").suspend();
[325]648  }
[581]649
650  bool cxios_is_defined_field_long_name(field_Ptr field_hdl)
[432]651  {
652     CTimer::get("XIOS").resume();
[581]653     bool isDefined = field_hdl->long_name.hasInheritedValue();
[432]654     CTimer::get("XIOS").suspend();
[581]655     return isDefined;
[432]656  }
[581]657
658
[325]659  void cxios_set_field_name(field_Ptr field_hdl, const char * name, int name_size)
660  {
661    std::string name_str;
[581]662    if (!cstr2string(name, name_size, name_str)) return;
663    CTimer::get("XIOS").resume();
[325]664    field_hdl->name.setValue(name_str);
[581]665    CTimer::get("XIOS").suspend();
[325]666  }
[581]667
[325]668  void cxios_get_field_name(field_Ptr field_hdl, char * name, int name_size)
669  {
[581]670    CTimer::get("XIOS").resume();
671    if (!string_copy(field_hdl->name.getInheritedValue(), name, name_size))
672      ERROR("void cxios_get_field_name(field_Ptr field_hdl, char * name, int name_size)", << "Input string is too short");
673    CTimer::get("XIOS").suspend();
[325]674  }
[581]675
676  bool cxios_is_defined_field_name(field_Ptr field_hdl)
[432]677  {
678     CTimer::get("XIOS").resume();
[581]679     bool isDefined = field_hdl->name.hasInheritedValue();
[432]680     CTimer::get("XIOS").suspend();
[581]681     return isDefined;
[432]682  }
[581]683
684
[325]685  void cxios_set_field_operation(field_Ptr field_hdl, const char * operation, int operation_size)
686  {
687    std::string operation_str;
[581]688    if (!cstr2string(operation, operation_size, operation_str)) return;
689    CTimer::get("XIOS").resume();
[325]690    field_hdl->operation.setValue(operation_str);
[581]691    CTimer::get("XIOS").suspend();
[325]692  }
[581]693
[325]694  void cxios_get_field_operation(field_Ptr field_hdl, char * operation, int operation_size)
695  {
[581]696    CTimer::get("XIOS").resume();
697    if (!string_copy(field_hdl->operation.getInheritedValue(), operation, operation_size))
698      ERROR("void cxios_get_field_operation(field_Ptr field_hdl, char * operation, int operation_size)", << "Input string is too short");
699    CTimer::get("XIOS").suspend();
[325]700  }
[581]701
702  bool cxios_is_defined_field_operation(field_Ptr field_hdl)
[432]703  {
704     CTimer::get("XIOS").resume();
[581]705     bool isDefined = field_hdl->operation.hasInheritedValue();
[432]706     CTimer::get("XIOS").suspend();
[581]707     return isDefined;
[432]708  }
[581]709
710
[325]711  void cxios_set_field_prec(field_Ptr field_hdl, int prec)
712  {
[581]713    CTimer::get("XIOS").resume();
[325]714    field_hdl->prec.setValue(prec);
[581]715    CTimer::get("XIOS").suspend();
[325]716  }
[581]717
[325]718  void cxios_get_field_prec(field_Ptr field_hdl, int* prec)
719  {
[581]720    CTimer::get("XIOS").resume();
[445]721    *prec = field_hdl->prec.getInheritedValue();
[581]722    CTimer::get("XIOS").suspend();
[325]723  }
[581]724
725  bool cxios_is_defined_field_prec(field_Ptr field_hdl)
[432]726  {
727     CTimer::get("XIOS").resume();
[581]728     bool isDefined = field_hdl->prec.hasInheritedValue();
[432]729     CTimer::get("XIOS").suspend();
[581]730     return isDefined;
[432]731  }
[581]732
733
[593]734  void cxios_set_field_read_access(field_Ptr field_hdl, bool read_access)
735  {
736    CTimer::get("XIOS").resume();
737    field_hdl->read_access.setValue(read_access);
738    CTimer::get("XIOS").suspend();
739  }
740
741  void cxios_get_field_read_access(field_Ptr field_hdl, bool* read_access)
742  {
743    CTimer::get("XIOS").resume();
744    *read_access = field_hdl->read_access.getInheritedValue();
745    CTimer::get("XIOS").suspend();
746  }
747
748  bool cxios_is_defined_field_read_access(field_Ptr field_hdl)
749  {
750     CTimer::get("XIOS").resume();
751     bool isDefined = field_hdl->read_access.hasInheritedValue();
752     CTimer::get("XIOS").suspend();
753     return isDefined;
754  }
755
756
[891]757  void cxios_set_field_scalar_ref(field_Ptr field_hdl, const char * scalar_ref, int scalar_ref_size)
758  {
759    std::string scalar_ref_str;
760    if (!cstr2string(scalar_ref, scalar_ref_size, scalar_ref_str)) return;
761    CTimer::get("XIOS").resume();
762    field_hdl->scalar_ref.setValue(scalar_ref_str);
763    CTimer::get("XIOS").suspend();
764  }
765
766  void cxios_get_field_scalar_ref(field_Ptr field_hdl, char * scalar_ref, int scalar_ref_size)
767  {
768    CTimer::get("XIOS").resume();
769    if (!string_copy(field_hdl->scalar_ref.getInheritedValue(), scalar_ref, scalar_ref_size))
770      ERROR("void cxios_get_field_scalar_ref(field_Ptr field_hdl, char * scalar_ref, int scalar_ref_size)", << "Input string is too short");
771    CTimer::get("XIOS").suspend();
772  }
773
774  bool cxios_is_defined_field_scalar_ref(field_Ptr field_hdl)
775  {
776     CTimer::get("XIOS").resume();
777     bool isDefined = field_hdl->scalar_ref.hasInheritedValue();
778     CTimer::get("XIOS").suspend();
779     return isDefined;
780  }
781
782
[464]783  void cxios_set_field_scale_factor(field_Ptr field_hdl, double scale_factor)
784  {
[581]785    CTimer::get("XIOS").resume();
[464]786    field_hdl->scale_factor.setValue(scale_factor);
[581]787    CTimer::get("XIOS").suspend();
[464]788  }
[581]789
[464]790  void cxios_get_field_scale_factor(field_Ptr field_hdl, double* scale_factor)
791  {
[581]792    CTimer::get("XIOS").resume();
[464]793    *scale_factor = field_hdl->scale_factor.getInheritedValue();
[581]794    CTimer::get("XIOS").suspend();
[464]795  }
[581]796
797  bool cxios_is_defined_field_scale_factor(field_Ptr field_hdl)
[464]798  {
799     CTimer::get("XIOS").resume();
[581]800     bool isDefined = field_hdl->scale_factor.hasInheritedValue();
[464]801     CTimer::get("XIOS").suspend();
[581]802     return isDefined;
[464]803  }
[581]804
805
[325]806  void cxios_set_field_standard_name(field_Ptr field_hdl, const char * standard_name, int standard_name_size)
807  {
808    std::string standard_name_str;
[581]809    if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;
810    CTimer::get("XIOS").resume();
[325]811    field_hdl->standard_name.setValue(standard_name_str);
[581]812    CTimer::get("XIOS").suspend();
[325]813  }
[581]814
[325]815  void cxios_get_field_standard_name(field_Ptr field_hdl, char * standard_name, int standard_name_size)
816  {
[581]817    CTimer::get("XIOS").resume();
818    if (!string_copy(field_hdl->standard_name.getInheritedValue(), standard_name, standard_name_size))
819      ERROR("void cxios_get_field_standard_name(field_Ptr field_hdl, char * standard_name, int standard_name_size)", << "Input string is too short");
820    CTimer::get("XIOS").suspend();
[325]821  }
[581]822
823  bool cxios_is_defined_field_standard_name(field_Ptr field_hdl)
[432]824  {
825     CTimer::get("XIOS").resume();
[581]826     bool isDefined = field_hdl->standard_name.hasInheritedValue();
[432]827     CTimer::get("XIOS").suspend();
[581]828     return isDefined;
[432]829  }
[581]830
831
[711]832  void cxios_set_field_ts_enabled(field_Ptr field_hdl, bool ts_enabled)
833  {
834    CTimer::get("XIOS").resume();
835    field_hdl->ts_enabled.setValue(ts_enabled);
836    CTimer::get("XIOS").suspend();
837  }
838
839  void cxios_get_field_ts_enabled(field_Ptr field_hdl, bool* ts_enabled)
840  {
841    CTimer::get("XIOS").resume();
842    *ts_enabled = field_hdl->ts_enabled.getInheritedValue();
843    CTimer::get("XIOS").suspend();
844  }
845
846  bool cxios_is_defined_field_ts_enabled(field_Ptr field_hdl)
847  {
848     CTimer::get("XIOS").resume();
849     bool isDefined = field_hdl->ts_enabled.hasInheritedValue();
850     CTimer::get("XIOS").suspend();
851     return isDefined;
852  }
853
854
855  void cxios_set_field_ts_split_freq(field_Ptr field_hdl, cxios_duration ts_split_freq_c)
856  {
857    CTimer::get("XIOS").resume();
858    field_hdl->ts_split_freq.allocate();
859    CDuration& ts_split_freq = field_hdl->ts_split_freq.get();
860    ts_split_freq.year = ts_split_freq_c.year;
861    ts_split_freq.month = ts_split_freq_c.month;
862    ts_split_freq.day = ts_split_freq_c.day;
863    ts_split_freq.hour = ts_split_freq_c.hour;
864    ts_split_freq.minute = ts_split_freq_c.minute;
865    ts_split_freq.second = ts_split_freq_c.second;
866    ts_split_freq.timestep = ts_split_freq_c.timestep;
867    CTimer::get("XIOS").suspend();
868  }
869
870  void cxios_get_field_ts_split_freq(field_Ptr field_hdl, cxios_duration* ts_split_freq_c)
871  {
872    CTimer::get("XIOS").resume();
873    CDuration ts_split_freq = field_hdl->ts_split_freq.getInheritedValue();
874    ts_split_freq_c->year = ts_split_freq.year;
875    ts_split_freq_c->month = ts_split_freq.month;
876    ts_split_freq_c->day = ts_split_freq.day;
877    ts_split_freq_c->hour = ts_split_freq.hour;
878    ts_split_freq_c->minute = ts_split_freq.minute;
879    ts_split_freq_c->second = ts_split_freq.second;
880    ts_split_freq_c->timestep = ts_split_freq.timestep;
881    CTimer::get("XIOS").suspend();
882  }
883
884  bool cxios_is_defined_field_ts_split_freq(field_Ptr field_hdl)
885  {
886     CTimer::get("XIOS").resume();
887     bool isDefined = field_hdl->ts_split_freq.hasInheritedValue();
888     CTimer::get("XIOS").suspend();
889     return isDefined;
890  }
891
892
[325]893  void cxios_set_field_unit(field_Ptr field_hdl, const char * unit, int unit_size)
894  {
895    std::string unit_str;
[581]896    if (!cstr2string(unit, unit_size, unit_str)) return;
897    CTimer::get("XIOS").resume();
[325]898    field_hdl->unit.setValue(unit_str);
[581]899    CTimer::get("XIOS").suspend();
[325]900  }
[581]901
[325]902  void cxios_get_field_unit(field_Ptr field_hdl, char * unit, int unit_size)
903  {
[581]904    CTimer::get("XIOS").resume();
905    if (!string_copy(field_hdl->unit.getInheritedValue(), unit, unit_size))
906      ERROR("void cxios_get_field_unit(field_Ptr field_hdl, char * unit, int unit_size)", << "Input string is too short");
907    CTimer::get("XIOS").suspend();
[325]908  }
[581]909
910  bool cxios_is_defined_field_unit(field_Ptr field_hdl)
[432]911  {
912     CTimer::get("XIOS").resume();
[581]913     bool isDefined = field_hdl->unit.hasInheritedValue();
[432]914     CTimer::get("XIOS").suspend();
[581]915     return isDefined;
[432]916  }
[581]917
918
[463]919  void cxios_set_field_valid_max(field_Ptr field_hdl, double valid_max)
920  {
[581]921    CTimer::get("XIOS").resume();
[463]922    field_hdl->valid_max.setValue(valid_max);
[581]923    CTimer::get("XIOS").suspend();
[463]924  }
[581]925
[463]926  void cxios_get_field_valid_max(field_Ptr field_hdl, double* valid_max)
927  {
[581]928    CTimer::get("XIOS").resume();
[463]929    *valid_max = field_hdl->valid_max.getInheritedValue();
[581]930    CTimer::get("XIOS").suspend();
[463]931  }
[581]932
933  bool cxios_is_defined_field_valid_max(field_Ptr field_hdl)
[463]934  {
935     CTimer::get("XIOS").resume();
[581]936     bool isDefined = field_hdl->valid_max.hasInheritedValue();
[463]937     CTimer::get("XIOS").suspend();
[581]938     return isDefined;
[463]939  }
[581]940
941
[463]942  void cxios_set_field_valid_min(field_Ptr field_hdl, double valid_min)
943  {
[581]944    CTimer::get("XIOS").resume();
[463]945    field_hdl->valid_min.setValue(valid_min);
[581]946    CTimer::get("XIOS").suspend();
[463]947  }
[581]948
[463]949  void cxios_get_field_valid_min(field_Ptr field_hdl, double* valid_min)
950  {
[581]951    CTimer::get("XIOS").resume();
[463]952    *valid_min = field_hdl->valid_min.getInheritedValue();
[581]953    CTimer::get("XIOS").suspend();
[463]954  }
[581]955
956  bool cxios_is_defined_field_valid_min(field_Ptr field_hdl)
[463]957  {
958     CTimer::get("XIOS").resume();
[581]959     bool isDefined = field_hdl->valid_min.hasInheritedValue();
[463]960     CTimer::get("XIOS").suspend();
[581]961     return isDefined;
[463]962  }
[325]963}
Note: See TracBrowser for help on using the repository browser.