source: XIOS/trunk/src/generate_fortran_interface.cpp @ 1622

Last change on this file since 1622 was 1558, checked in by oabramkina, 6 years ago

Adding transformation "extract" for axis.

  • 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: 14.3 KB
RevLine 
[591]1#include "xios.hpp"
[352]2#include "generate_interface.hpp"
[313]3#include "indent.hpp"
[352]4#include "attribute_template.hpp"
5#include "object_template.hpp"
6#include "group_template.hpp"
[786]7#include "node_type.hpp"
[313]8
9int main (int argc, char ** argv, char ** UNUSED (env))
10{
[549]11//  string path="./src/attr_interface/";
12  string path="./interface/";
13
14  CContext* context=CContext::create("interface");
15  CCalendarWrapper calendarWrapper;
[891]16  CScalar scalar;
17  CScalarGroup scalargroup;
[549]18  CAxis axis;
19  CAxisGroup axisgroup;
[313]20  CField field;
[549]21  CFieldGroup fieldgroup;
[472]22  CVariable variable;
[549]23  CVariableGroup variablegroup;
24  CDomain domain;
25  CDomainGroup domaingroup;
26  CGrid grid;
27  CGridGroup gridgroup;
28
[313]29  CFile afile;
30  CFileGroup filegroup;
[549]31
[891]32  CInterpolateDomain interpolateDomain;
[784]33  CZoomDomain zoomDomain;
[891]34  CGenerateRectilinearDomain genDomain;
[934]35  CComputeConnectivityDomain compConDomain;
[981]36  CExpandDomain expandDomain;
[1457]37  CReorderDomain reorderDomain;
[1549]38  CExtractDomain extractDomain;
[784]39
[786]40  CInterpolateAxis interpolateAxis;
[891]41  CZoomAxis zoomAxis;
[786]42  CInverseAxis inverseAxis;
[1558]43  CExtractAxis extractAxis;
44
[981]45  CReduceDomainToAxis reduceDomainToAxis;
[1301]46  CReduceAxisToAxis reduceAxisToAxis;
[981]47  CExtractDomainToAxis extractDomainToAxis;
[1275]48  CTemporalSplitting temporalSplitting;
[786]49
[891]50  CReduceAxisToScalar reduceAxisToScalar;
[981]51  CExtractAxisToScalar extractAxisToScalar;
52  CReduceDomainToScalar reduceDomainToScalar;
[1314]53  CDuplicateScalarToAxis duplicateScalarToAxis;
54  CReduceScalarToScalar reduceScalarToScalar;
[1275]55 
[549]56  ostringstream oss;
[313]57  ofstream file;
[549]58
[891]59  file.open((path+"scalar_interface_attr.F90").c_str());
60  scalar.generateFortran2003Interface(file);
61  file.close();
62
63  file.open((path+"icscalar_attr.cpp").c_str());
64  scalar.generateCInterface(file);
65  file.close();
66
67  file.open((path+"iscalar_attr.F90").c_str());
68  scalar.generateFortranInterface(file);
69  file.close();
70
71  file.open((path+"scalargroup_interface_attr.F90").c_str());
72  scalargroup.generateFortran2003Interface(file);
73  file.close();
74
75  file.open((path+"icscalargroup_attr.cpp").c_str());
76  scalargroup.generateCInterface(file);
77  file.close();
78
79  file.open((path+"iscalargroup_attr.F90").c_str());
80  scalargroup.generateFortranInterface(file);
81  file.close();
82
[549]83  file.open((path+"axis_interface_attr.F90").c_str());
84  axis.generateFortran2003Interface(file);
[313]85  file.close();
[549]86
87  file.open((path+"icaxis_attr.cpp").c_str());
88  axis.generateCInterface(file);
[313]89  file.close();
[549]90
91  file.open((path+"iaxis_attr.F90").c_str());
92  axis.generateFortranInterface(file);
[313]93  file.close();
[549]94
95  file.open((path+"axisgroup_interface_attr.F90").c_str());
96  axisgroup.generateFortran2003Interface(file);
[313]97  file.close();
[549]98
99  file.open((path+"icaxisgroup_attr.cpp").c_str());
100  axisgroup.generateCInterface(file);
[313]101  file.close();
[549]102
103  file.open((path+"iaxisgroup_attr.F90").c_str());
104  axisgroup.generateFortranInterface(file);
[313]105  file.close();
[549]106
107  file.open((path+"domain_interface_attr.F90").c_str());
108  domain.generateFortran2003Interface(file);
[313]109  file.close();
[549]110
111  file.open((path+"icdomain_attr.cpp").c_str());
112  domain.generateCInterface(file);
[313]113  file.close();
[549]114
115  file.open((path+"idomain_attr.F90").c_str());
116  domain.generateFortranInterface(file);
[313]117  file.close();
[549]118
119  file.open((path+"domaingroup_interface_attr.F90").c_str());
120  domaingroup.generateFortran2003Interface(file);
[313]121  file.close();
[549]122
123  file.open((path+"icdomaingroup_attr.cpp").c_str());
124  domaingroup.generateCInterface(file);
[313]125  file.close();
[549]126
127  file.open((path+"idomaingroup_attr.F90").c_str());
128  domaingroup.generateFortranInterface(file);
[313]129  file.close();
[549]130
131
132  file.open((path+"grid_interface_attr.F90").c_str());
133  grid.generateFortran2003Interface(file);
[313]134  file.close();
[549]135
136  file.open((path+"icgrid_attr.cpp").c_str());
137  grid.generateCInterface(file);
[313]138  file.close();
[549]139
140  file.open((path+"igrid_attr.F90").c_str());
141  grid.generateFortranInterface(file);
[313]142  file.close();
[549]143
144  file.open((path+"gridgroup_interface_attr.F90").c_str());
145  gridgroup.generateFortran2003Interface(file);
[313]146  file.close();
[549]147
148  file.open((path+"icgridgroup_attr.cpp").c_str());
149  gridgroup.generateCInterface(file);
[313]150  file.close();
[549]151
152  file.open((path+"igridgroup_attr.F90").c_str());
153  gridgroup.generateFortranInterface(file);
[313]154  file.close();
[549]155
156
157  file.open((path+"field_interface_attr.F90").c_str());
158  field.generateFortran2003Interface(file);
[313]159  file.close();
[549]160
161  file.open((path+"icfield_attr.cpp").c_str());
162  field.generateCInterface(file);
[313]163  file.close();
[549]164
165  file.open((path+"ifield_attr.F90").c_str());
166  field.generateFortranInterface(file);
[313]167  file.close();
[549]168
169  file.open((path+"fieldgroup_interface_attr.F90").c_str());
170  fieldgroup.generateFortran2003Interface(file);
[313]171  file.close();
[549]172
173  file.open((path+"icfieldgroup_attr.cpp").c_str());
174  fieldgroup.generateCInterface(file);
[313]175  file.close();
[549]176
177  file.open((path+"ifieldgroup_attr.F90").c_str());
178  fieldgroup.generateFortranInterface(file);
[313]179  file.close();
180
181
[549]182
183  file.open((path+"variable_interface_attr.F90").c_str());
184  variable.generateFortran2003Interface(file);
[472]185  file.close();
[549]186
187  file.open((path+"icvariable_attr.cpp").c_str());
188  variable.generateCInterface(file);
[472]189  file.close();
[549]190
191  file.open((path+"ivariable_attr.F90").c_str());
192  variable.generateFortranInterface(file);
[472]193  file.close();
[549]194
195  file.open((path+"variablegroup_interface_attr.F90").c_str());
196  variablegroup.generateFortran2003Interface(file);
[472]197  file.close();
[549]198
199  file.open((path+"icvariablegroup_attr.cpp").c_str());
200  variablegroup.generateCInterface(file);
[472]201  file.close();
[549]202
203  file.open((path+"ivariablegroup_attr.F90").c_str());
204  variablegroup.generateFortranInterface(file);
[472]205  file.close();
206
207
208
[549]209  file.open((path+"file_interface_attr.F90").c_str());
210  afile.generateFortran2003Interface(file);
[313]211  file.close();
[549]212
213  file.open((path+"icfile_attr.cpp").c_str());
214  afile.generateCInterface(file);
[313]215  file.close();
[549]216
217  file.open((path+"ifile_attr.F90").c_str());
218  afile.generateFortranInterface(file);
[313]219  file.close();
[549]220
221  file.open((path+"filegroup_interface_attr.F90").c_str());
222  filegroup.generateFortran2003Interface(file);
[313]223  file.close();
[549]224
225  file.open((path+"icfilegroup_attr.cpp").c_str());
226  filegroup.generateCInterface(file);
[313]227  file.close();
[549]228
229  file.open((path+"ifilegroup_attr.F90").c_str());
230  filegroup.generateFortranInterface(file);
[313]231  file.close();
[549]232
233
234  file.open((path+"calendar_wrapper_interface_attr.F90").c_str());
235  calendarWrapper.generateFortran2003Interface(file);
[313]236  file.close();
[549]237
238  file.open((path+"iccalendar_wrapper_attr.cpp").c_str());
239  calendarWrapper.generateCInterface(file);
[313]240  file.close();
[549]241
242  file.open((path+"icalendar_wrapper_attr.F90").c_str());
243  calendarWrapper.generateFortranInterface(file);
[313]244  file.close();
[549]245
[981]246  /*!
247    Domain transformations
248  */
[784]249  file.open((path+"zoom_domain_interface_attr.F90").c_str());
250  zoomDomain.generateFortran2003Interface(file);
251  file.close();
[549]252
[784]253  file.open((path+"iczoom_domain_attr.cpp").c_str());
254  zoomDomain.generateCInterface(file);
255  file.close();
256
257  file.open((path+"izoom_domain_attr.F90").c_str());
258  zoomDomain.generateFortranInterface(file);
259  file.close();
260
[786]261  file.open((path+"interpolate_domain_interface_attr.F90").c_str());
262  interpolateDomain.generateFortran2003Interface(file);
263  file.close();
264
265  file.open((path+"icinterpolate_domain_attr.cpp").c_str());
266  interpolateDomain.generateCInterface(file);
267  file.close();
268
269  file.open((path+"iinterpolate_domain_attr.F90").c_str());
270  interpolateDomain.generateFortranInterface(file);
271  file.close();
272
273  file.open((path+"generate_rectilinear_domain_interface_attr.F90").c_str());
274  genDomain.generateFortran2003Interface(file);
275  file.close();
276
277  file.open((path+"icgenerate_rectilinear_domain_attr.cpp").c_str());
278  genDomain.generateCInterface(file);
279  file.close();
280
281  file.open((path+"igenerate_rectilinear_domain_attr.F90").c_str());
282  genDomain.generateFortranInterface(file);
283  file.close();
284
[934]285  file.open((path+"compute_connectivity_domain_interface_attr.F90").c_str());
286  compConDomain.generateFortran2003Interface(file);
287  file.close();
288
289  file.open((path+"iccompute_connectivity_domain_attr.cpp").c_str());
290  compConDomain.generateCInterface(file);
291  file.close();
292
293  file.open((path+"icompute_connectivity_domain_attr.F90").c_str());
294  compConDomain.generateFortranInterface(file);
295  file.close();
296
[981]297  file.open((path+"expand_domain_interface_attr.F90").c_str());
298  expandDomain.generateFortran2003Interface(file);
299  file.close();
[934]300
[981]301  file.open((path+"icexpand_domain_attr.cpp").c_str());
302  expandDomain.generateCInterface(file);
303  file.close();
[934]304
[981]305  file.open((path+"iexpand_domain_attr.F90").c_str());
306  expandDomain.generateFortranInterface(file);
[1492]307  file.close();
[1457]308
309  file.open((path+"reorder_domain_interface_attr.F90").c_str());
310  reorderDomain.generateFortran2003Interface(file);
[981]311  file.close();
[1457]312
313  file.open((path+"icreorder_domain_attr.cpp").c_str());
314  reorderDomain.generateCInterface(file);
315  file.close();
316
317  file.open((path+"ireorder_domain_attr.F90").c_str());
318  reorderDomain.generateFortranInterface(file);
319
[1549]320  file.open((path+"extract_domain_interface_attr.F90").c_str());
321  extractDomain.generateFortran2003Interface(file);
[1457]322  file.close();
[1549]323
324  file.open((path+"icextract_domain_attr.cpp").c_str());
325  extractDomain.generateCInterface(file);
326  file.close();
327
328  file.open((path+"iextract_domain_attr.F90").c_str());
329  extractDomain.generateFortranInterface(file);
330
331  file.close();
[981]332 
333  /*!
334    Axis transformations
335  */
336  file.open((path+"zoom_axis_interface_attr.F90").c_str());
337  zoomAxis.generateFortran2003Interface(file);
338  file.close();
[934]339
[981]340  file.open((path+"iczoom_axis_attr.cpp").c_str());
341  zoomAxis.generateCInterface(file);
342  file.close();
343
344  file.open((path+"izoom_axis_attr.F90").c_str());
345  zoomAxis.generateFortranInterface(file);
346  file.close();
347
348  file.open((path+"interpolate_axis_interface_attr.F90").c_str());
349  interpolateAxis.generateFortran2003Interface(file);
350  file.close();
351
352  file.open((path+"icinterpolate_axis_attr.cpp").c_str());
353  interpolateAxis.generateCInterface(file);
354  file.close();
355
356  file.open((path+"iinterpolate_axis_attr.F90").c_str());
357  interpolateAxis.generateFortranInterface(file);
358  file.close();
359
[786]360  file.open((path+"inverse_axis_interface_attr.F90").c_str());
361  inverseAxis.generateFortran2003Interface(file);
362  file.close();
363
[1558]364  file.open((path+"extract_axis_interface_attr.F90").c_str());
365  extractAxis.generateFortran2003Interface(file);
366  file.close();
367
[786]368  file.open((path+"icinverse_axis_attr.cpp").c_str());
369  inverseAxis.generateCInterface(file);
370  file.close();
371
372  file.open((path+"iinverse_axis_attr.F90").c_str());
373  inverseAxis.generateFortranInterface(file);
374  file.close();
375
[981]376  file.open((path+"reduce_domain_to_axis_interface_attr.F90").c_str());
377  reduceDomainToAxis.generateFortran2003Interface(file);
378  file.close();
[1301]379 
[981]380  file.open((path+"icreduce_domain_to_axis_attr.cpp").c_str());
381  reduceDomainToAxis.generateCInterface(file);
382  file.close();
383
384  file.open((path+"ireduce_domain_to_axis_attr.F90").c_str());
385  reduceDomainToAxis.generateFortranInterface(file);
386  file.close();
[1301]387
388  file.open((path+"reduce_axis_to_axis_interface_attr.F90").c_str());
389  reduceAxisToAxis.generateFortran2003Interface(file);
390  file.close();
391 
392  file.open((path+"icreduce_axis_to_axis_attr.cpp").c_str());
393  reduceAxisToAxis.generateCInterface(file);
394  file.close();
395
396  file.open((path+"ireduce_axis_to_axis_attr.F90").c_str());
397  reduceAxisToAxis.generateFortranInterface(file);
398  file.close();
[981]399 
400  file.open((path+"extract_domain_to_axis_interface_attr.F90").c_str());
401  extractDomainToAxis.generateFortran2003Interface(file);
402  file.close();
403
[1314]404  file.open((path+"icextract_domain_to_axis_attr.cpp").c_str());
405  extractDomainToAxis.generateCInterface(file);
406  file.close();
407
408  file.open((path+"iextract_domain_to_axis_attr.F90").c_str());
409  extractDomainToAxis.generateFortranInterface(file);
410  file.close();
411
412
[1275]413  file.open((path+"temporal_splitting_interface_attr.F90").c_str());
414  temporalSplitting.generateFortran2003Interface(file);
415  file.close();
416
417  file.open((path+"ictemporal_splitting_attr.cpp").c_str());
418  temporalSplitting.generateCInterface(file);
419  file.close();
420
421  file.open((path+"itemporal_splitting_attr.F90").c_str());
422  temporalSplitting.generateFortranInterface(file);
423  file.close();
[981]424
[1275]425
[1314]426  file.open((path+"duplicate_scalar_to_axis_interface_attr.F90").c_str());
427  duplicateScalarToAxis.generateFortran2003Interface(file);
428  file.close();
429 
430  file.open((path+"icduplicate_scalar_to_axis_attr.cpp").c_str());
431  duplicateScalarToAxis.generateCInterface(file);
432  file.close();
433 
434  file.open((path+"iduplicate_scalar_to_axis_attr.F90").c_str());
435  duplicateScalarToAxis.generateFortranInterface(file);
436  file.close();
[981]437  /*!
438    Scalar transformations
439  */
[891]440  file.open((path+"reduce_axis_to_scalar_interface_attr.F90").c_str());
441  reduceAxisToScalar.generateFortran2003Interface(file);
442  file.close();
443
444  file.open((path+"icreduce_axis_to_scalar_attr.cpp").c_str());
445  reduceAxisToScalar.generateCInterface(file);
446  file.close();
447
448  file.open((path+"ireduce_axis_to_scalar_attr.F90").c_str());
449  reduceAxisToScalar.generateFortranInterface(file);
450  file.close();
451
[981]452  file.open((path+"extract_axis_to_scalar_interface_attr.F90").c_str());
453  extractAxisToScalar.generateFortran2003Interface(file);
454  file.close();
455
456  file.open((path+"icextract_axis_to_scalar_attr.cpp").c_str());
457  extractAxisToScalar.generateCInterface(file);
458  file.close();
459
460  file.open((path+"iextract_axis_to_scalar_attr.F90").c_str());
461  extractAxisToScalar.generateFortranInterface(file);
462  file.close();
463
[1314]464
[981]465  file.open((path+"reduce_domain_to_scalar_interface_attr.F90").c_str());
466  reduceDomainToScalar.generateFortran2003Interface(file);
467  file.close();
468
469  file.open((path+"icreduce_domain_to_scalar_attr.cpp").c_str());
470  reduceDomainToScalar.generateCInterface(file);
471  file.close();
472
473  file.open((path+"ireduce_domain_to_scalar_attr.F90").c_str());
474  reduceDomainToScalar.generateFortranInterface(file);
475  file.close();
476
[1314]477
478  file.open((path+"reduce_scalar_to_scalar_interface_attr.F90").c_str());
479  reduceScalarToScalar.generateFortran2003Interface(file);
480  file.close();
481
482  file.open((path+"icreduce_scalar_to_scalar_attr.cpp").c_str());
483  reduceScalarToScalar.generateCInterface(file);
484  file.close();
485
486  file.open((path+"ireduce_scalar_to_scalar_attr.F90").c_str());
487  reduceScalarToScalar.generateFortranInterface(file);
488  file.close();
489
490
491
492
493
[549]494  file.open((path+"context_interface_attr.F90").c_str());
495  context->generateFortran2003Interface(file);
496  file.close();
497
498  file.open((path+"iccontext_attr.cpp").c_str());
499  context->generateCInterface(file);
500  file.close();
501
502  file.open((path+"icontext_attr.F90").c_str());
503  context->generateFortranInterface(file);
504  file.close();
[313]505}
Note: See TracBrowser for help on using the repository browser.