source: XIOS/dev/dev_rv/src4/xmlio/fortran/icdomain.cpp @ 2357

Last change on this file since 2357 was 269, checked in by hozdoba, 13 years ago
File size: 11.5 KB
Line 
1/* ************************************************************************** *
2 *      Copyright © IPSL/LSCE, XMLIOServer, Avril 2010 - Octobre 2011         *
3 * ************************************************************************** */
4
5#include <boost/multi_array.hpp>
6#include <boost/shared_ptr.hpp>
7
8#include "icutil.hpp"
9
10extern "C"
11{
12// /////////////////////////////// Définitions ////////////////////////////// //
13
14   // ----------------------- Redéfinition de types ----------------------------
15   
16   typedef void * XDomainPtr, * XDomainGroupPtr;
17
18   // ------------------------- Attributs des axes -----------------------------
19   
20   void xios_set_domain_name(XDomainPtr domain_hdl, const char * name, int name_size)
21   {
22      std::string name_str; 
23      if (!cstr2string(name, name_size, name_str)) return; 
24   }
25   
26   void xios_set_domain_standard_name(XDomainPtr domain_hdl, const char * standard_name, int standard_name_size)
27   {
28      std::string standard_name_str; 
29      if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return; 
30   }
31   
32   void xios_set_domain_long_name(XDomainPtr domain_hdl, const char * long_name, int long_name_size)
33   {
34      std::string long_name_str; 
35      if (!cstr2string(long_name, long_name_size, long_name_str)) return; 
36   }
37   
38   void xios_set_domain_domain_group_ref(XDomainPtr domain_hdl, const char * domain_group_ref, int domain_group_ref_size)
39   {
40      std::string domain_group_ref_str; 
41      if (!cstr2string(domain_group_ref, domain_group_ref_size, domain_group_ref_str)) return; 
42   }
43   
44   void xios_set_domain_ni_glo(XDomainPtr domain_hdl, int ni_glo)
45   {
46   
47   }
48   
49   void xios_set_domain_nj_glo(XDomainPtr domain_hdl, int nj_glo)
50   {
51   
52   }
53   
54   void xios_set_domain_ibegin(XDomainPtr domain_hdl, int ibegin)
55   {
56   
57   }
58   
59   void xios_set_domain_iend(XDomainPtr domain_hdl, int iend)
60   {
61   
62   }
63   
64   void xios_set_domain_ni(XDomainPtr domain_hdl, int ni)
65   {
66   
67   }
68   
69   void xios_set_domain_jbegin(XDomainPtr domain_hdl, int jbegin)
70   {
71   
72   }
73   
74   void xios_set_domain_jend(XDomainPtr domain_hdl, int jend)
75   {
76   
77   }
78   
79   void xios_set_domain_nj(XDomainPtr domain_hdl, int nj)
80   {
81   
82   }
83   
84   void xios_set_domain_mask(XDomainPtr domain_hdl, bool * mask, int mask_extent1, int mask_extent2)
85   {
86      boost::shared_ptr<boost::multi_array<bool, 2> > mask_val
87         (new boost::multi_array<bool, 2>(boost::extents [mask_extent1][mask_extent2],
88                                          boost::fortran_storage_order()));
89      std::copy(mask, &(mask[mask_val->num_elements()]), mask_val->data()); 
90   }
91   
92   void xios_set_domain_data_dim(XDomainPtr domain_hdl, int data_dim)
93   {
94   
95   }
96   
97   void xios_set_domain_data_ni(XDomainPtr domain_hdl, int data_ni)
98   {
99   
100   }
101   
102   void xios_set_domain_data_nj(XDomainPtr domain_hdl, int data_nj)
103   {
104   
105   }
106   
107   void xios_set_domain_data_ibegin(XDomainPtr domain_hdl, int data_ibegin)
108   {
109   
110   }
111   
112   void xios_set_domain_data_jbegin(XDomainPtr domain_hdl, int data_jbegin)
113   {
114   
115   }
116   
117   void xios_set_domain_zoom_ni(XDomainPtr domain_hdl, int zoom_ni)
118   {
119   
120   }
121   
122   void xios_set_domain_zoom_nj(XDomainPtr domain_hdl, int zoom_nj)
123   {
124   
125   }
126   
127   void xios_set_domain_zoom_ibegin(XDomainPtr domain_hdl, int zoom_ibegin)
128   {
129   
130   }
131   
132   void xios_set_domain_zoom_jbegin(XDomainPtr domain_hdl, int zoom_jbegin)
133   {
134   
135   }
136   
137   void xios_set_domain_zoom_ni_loc(XDomainPtr domain_hdl, int zoom_ni_loc)
138   {
139   
140   }
141   
142   void xios_set_domain_zoom_nj_loc(XDomainPtr domain_hdl, int zoom_nj_loc)
143   {
144   
145   }
146   
147   void xios_set_domain_zoom_ibegin_loc(XDomainPtr domain_hdl, int zoom_ibegin_loc)
148   {
149   
150   }
151   
152   void xios_set_domain_zoom_jbegin_loc(XDomainPtr domain_hdl, int zoom_jbegin_loc)
153   {
154   
155   }
156   
157   void xios_set_domain_data_n_index(XDomainPtr domain_hdl, int data_n_index)
158   {
159   
160   }
161   
162   void xios_set_domain_data_i_index(XDomainPtr domain_hdl, int * data_i_index, int data_i_index_extent1)
163   {
164      boost::shared_ptr<boost::multi_array<int, 1> > data_i_index_val
165         (new boost::multi_array<int, 1>(boost::extents [data_i_index_extent1],
166                                         boost::fortran_storage_order()));
167      std::copy(data_i_index, &(data_i_index[data_i_index_val->num_elements()]), data_i_index_val->data()); 
168   }
169   
170   void xios_set_domain_data_j_index(XDomainPtr domain_hdl, int * data_j_index, int data_j_index_extent1)
171   {
172      boost::shared_ptr<boost::multi_array<int, 1> > data_j_index_val
173         (new boost::multi_array<int, 1>(boost::extents [data_j_index_extent1],
174                                         boost::fortran_storage_order()));
175      std::copy(data_j_index, &(data_j_index[data_j_index_val->num_elements()]), data_j_index_val->data()); 
176   }
177   
178   void xios_set_domain_lonvalue(XDomainPtr domain_hdl, double * lonvalue, int lonvalue_extent1)
179   {
180      boost::shared_ptr<boost::multi_array<double, 1> > lonvalue_val
181         (new boost::multi_array<double, 1>(boost::extents [lonvalue_extent1],
182                                            boost::fortran_storage_order()));
183      std::copy(lonvalue, &(lonvalue[lonvalue_val->num_elements()]), lonvalue_val->data());
184   }
185   
186   void xios_set_domain_latvalue(XDomainPtr domain_hdl, double * latvalue, int latvalue_extent1)
187   {
188      boost::shared_ptr<boost::multi_array<double, 1> > latvalue_val
189         (new boost::multi_array<double, 1>(boost::extents [latvalue_extent1],
190                                            boost::fortran_storage_order()));
191      std::copy(latvalue, &(latvalue[latvalue_val->num_elements()]), latvalue_val->data());
192   }   
193   
194   // -------------------- Attributs des groupes d'axes ------------------------
195   
196   
197   void xios_set_domaingroup_name(XDomainGroupPtr domaingroup_hdl, const char * name, int name_size)
198   {
199      std::string name_str; 
200      if (!cstr2string(name, name_size, name_str)) return; 
201   }
202   
203   void xios_set_domaingroup_standard_name(XDomainGroupPtr domaingroup_hdl, const char * standard_name, int standard_name_size)
204   {
205      std::string standard_name_str; 
206      if (!cstr2string(standard_name, standard_name_size, standard_name_str)) return;
207   }
208   
209   void xios_set_domaingroup_long_name(XDomainGroupPtr domaingroup_hdl, const char * long_name, int long_name_size)
210   {
211      std::string long_name_str; 
212      if (!cstr2string(long_name, long_name_size, long_name_str)) return; 
213   }
214   
215   void xios_set_domaingroup_domain_group_ref(XDomainGroupPtr domaingroup_hdl, const char * domain_group_ref, int domain_group_ref_size)
216   {
217      std::string domain_group_ref_str; 
218      if (!cstr2string(domain_group_ref, domain_group_ref_size, domain_group_ref_str)) return;
219   }
220   
221   void xios_set_domaingroup_ni_glo(XDomainGroupPtr domaingroup_hdl, int ni_glo)
222   {
223   
224   }
225   
226   void xios_set_domaingroup_nj_glo(XDomainGroupPtr domaingroup_hdl, int nj_glo)
227   {
228   
229   }
230   
231   void xios_set_domaingroup_ibegin(XDomainGroupPtr domaingroup_hdl, int ibegin)
232   {
233   
234   }
235   
236   void xios_set_domaingroup_iend(XDomainGroupPtr domaingroup_hdl, int iend)
237   {
238   
239   }
240   
241   void xios_set_domaingroup_ni(XDomainGroupPtr domaingroup_hdl, int ni)
242   {
243   
244   }
245   
246   void xios_set_domaingroup_jbegin(XDomainGroupPtr domaingroup_hdl, int jbegin)
247   {
248   
249   }
250   
251   void xios_set_domaingroup_jend(XDomainGroupPtr domaingroup_hdl, int jend)
252   {
253   
254   }
255   
256   void xios_set_domaingroup_nj(XDomainGroupPtr domaingroup_hdl, int nj)
257   {
258   
259   }
260   
261   void xios_set_domaingroup_mask(XDomainGroupPtr domaingroup_hdl, bool * mask, int mask_extent1, int mask_extent2)
262   {
263      boost::shared_ptr<boost::multi_array<bool, 2> > mask_val
264         (new boost::multi_array<bool, 2>(boost::extents [mask_extent1][mask_extent2],
265                                          boost::fortran_storage_order()));
266      std::copy(mask, &(mask[mask_val->num_elements()]), mask_val->data()); 
267   }
268   
269   void xios_set_domaingroup_data_dim(XDomainGroupPtr domaingroup_hdl, int data_dim)
270   {
271   
272   }
273   
274   void xios_set_domaingroup_data_ni(XDomainGroupPtr domaingroup_hdl, int data_ni)
275   {
276   
277   }
278   
279   void xios_set_domaingroup_data_nj(XDomainGroupPtr domaingroup_hdl, int data_nj)
280   {
281   
282   }
283   
284   void xios_set_domaingroup_data_ibegin(XDomainGroupPtr domaingroup_hdl, int data_ibegin)
285   {
286   
287   }
288   
289   void xios_set_domaingroup_data_jbegin(XDomainGroupPtr domaingroup_hdl, int data_jbegin)
290   {
291   
292   }
293   
294   void xios_set_domaingroup_zoom_ni(XDomainGroupPtr domaingroup_hdl, int zoom_ni)
295   {
296   
297   }
298   
299   void xios_set_domaingroup_zoom_nj(XDomainGroupPtr domaingroup_hdl, int zoom_nj)
300   {
301   
302   }
303   
304   void xios_set_domaingroup_zoom_ibegin(XDomainGroupPtr domaingroup_hdl, int zoom_ibegin)
305   {
306   
307   }
308   
309   void xios_set_domaingroup_zoom_jbegin(XDomainGroupPtr domaingroup_hdl, int zoom_jbegin)
310   {
311   
312   }
313   
314   void xios_set_domaingroup_zoom_ni_loc(XDomainGroupPtr domaingroup_hdl, int zoom_ni_loc)
315   {
316   
317   }
318   
319   void xios_set_domaingroup_zoom_nj_loc(XDomainGroupPtr domaingroup_hdl, int zoom_nj_loc)
320   {
321   
322   }
323   
324   void xios_set_domaingroup_zoom_ibegin_loc(XDomainGroupPtr domaingroup_hdl, int zoom_ibegin_loc)
325   {
326   
327   }
328   
329   void xios_set_domaingroup_zoom_jbegin_loc(XDomainGroupPtr domaingroup_hdl, int zoom_jbegin_loc)
330   {
331   
332   }
333   
334   void xios_set_domaingroup_data_n_index(XDomainGroupPtr domaingroup_hdl, int data_n_index)
335   {
336   
337   }
338   
339   void xios_set_domaingroup_data_i_index(XDomainGroupPtr domaingroup_hdl, int * data_i_index, int data_i_index_extent1)
340   {
341      boost::shared_ptr<boost::multi_array<int, 1> > data_i_index_val
342         (new boost::multi_array<int, 1>(boost::extents [data_i_index_extent1],
343                                          boost::fortran_storage_order()));
344      std::copy(data_i_index, &(data_i_index[data_i_index_val->num_elements()]), data_i_index_val->data()); 
345   }
346   
347   void xios_set_domaingroup_data_j_index(XDomainGroupPtr domaingroup_hdl, int * data_j_index, int data_j_index_extent1)
348   {
349      boost::shared_ptr<boost::multi_array<int, 1> > data_j_index_val
350         (new boost::multi_array<int, 1>(boost::extents [data_j_index_extent1],
351                                          boost::fortran_storage_order()));
352      std::copy(data_j_index, &(data_j_index[data_j_index_val->num_elements()]), data_j_index_val->data()); 
353   }
354   
355   void xios_set_domaingroup_lonvalue(XDomainGroupPtr domaingroup_hdl, double * lonvalue, int lonvalue_extent1)
356   {
357      boost::shared_ptr<boost::multi_array<double, 1> > lonvalue_val
358         (new boost::multi_array<double, 1>(boost::extents [lonvalue_extent1],
359                                            boost::fortran_storage_order()));
360      std::copy(lonvalue, &(lonvalue[lonvalue_val->num_elements()]), lonvalue_val->data());
361   }
362   
363   void xios_set_domaingroup_latvalue(XDomainGroupPtr domaingroup_hdl, double * latvalue, int latvalue_extent1)
364   {
365      boost::shared_ptr<boost::multi_array<double, 1> > latvalue_val
366         (new boost::multi_array<double, 1>(boost::extents [latvalue_extent1],
367                                            boost::fortran_storage_order()));
368      std::copy(latvalue, &(latvalue[latvalue_val->num_elements()]), latvalue_val->data());
369   } 
370   
371   // ------------------------ Création des handle -----------------------------
372   
373   void xios_domain_handle_create (XDomainPtr * _ret, const char * _id, int _id_len)
374   {
375      std::string id; 
376      if (!cstr2string(_id, _id_len, id)) return;
377   }
378   
379   void xios_domaingroup_handle_create (XDomainGroupPtr * _ret, const char * _id, int _id_len)
380   {
381      std::string id; 
382      if (!cstr2string(_id, _id_len, id)) return;
383   }
384   
385} // extern "C"
Note: See TracBrowser for help on using the repository browser.