source: XIOS/dev/XIOS_DEV_CMIP6/src/type/type_util.hpp @ 1301

Last change on this file since 1301 was 1301, checked in by ymipsl, 6 years ago

Add new transformation : reduce axis_to_axis
This a global reduction implying all process whih own the same source axis global point.

YM

  • 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
File size: 3.1 KB
Line 
1#ifndef __TYPE_UTIL_HPP__
2#define __TYPE_UTIL_HPP__
3
4#include <string>
5namespace xios
6{
7    class CDomain;
8    class CDomainGroup;
9    class CField;
10    class CFieldGroup;
11    class CGrid;
12    class CGridGroup;
13    class CAxis;
14    class CAxisGroup;
15    class CFile;
16    class CFileGroup;
17    class CContext;
18    class CContextGroup;
19    class CCalendarWrapper;
20    class CVariable;
21    class CVariableGroup;
22    class CInverseAxis;
23    class CInverseAxisGroup;
24    class CZoomAxis;
25    class CZoomAxisGroup;
26    class CInterpolateAxis;
27    class CInterpolateAxisGroup;
28    class CZoomDomain;
29    class CZoomDomainGroup;
30    class CInterpolateDomain;
31    class CInterpolateDomainGroup;
32    class CGenerateRectilinearDomain;
33    class CGenerateRectilinearDomainGroup;
34    class CScalar;
35    class CScalarGroup;
36    class CReduceAxisToScalar;
37    class CReduceAxisToScalarGroup;
38    class CReduceDomainToAxis;
39    class CReduceDomainToAxisGroup;
40    class CReduceAxisToAxis;
41    class CReduceAxisToAxisGroup;
42    class CExtractDomainToAxis;
43    class CExtractDomainToAxisGroup;
44    class CComputeConnectivityDomain;
45    class CComputeConnectivityDomainGroup;
46    class CExpandDomain;
47    class CExpandDomainGroup;
48    class CExtractAxisToScalar;
49    class CExtractAxisToScalarGroup;
50    class CReduceDomainToScalar;
51    class CReduceDomainToScalarGroup;
52    class CTemporalSplitting;
53    class CTemporalSplittingGroup;
54   
55  template <typename T> inline string getStrType(void);
56
57#define macro(T) template <> inline string getStrType<T>(void) { return std::string(#T); }
58
59  macro(short)
60  macro(unsigned short)
61  macro(int)
62  macro(unsigned int)
63  macro(long)
64  macro(unsigned long)
65  macro(float)
66  macro(double)
67  macro(long double)
68  macro(char)
69  macro(unsigned char)
70  macro(wchar_t)
71  macro(bool)
72#undef macro
73
74#define macro(T) template <> inline string getStrType<T>(void) { return std::string(#T); }
75  macro(CDomain)
76  macro(CDomainGroup)
77  macro(CField)
78  macro(CFieldGroup)
79  macro(CGrid)
80  macro(CGridGroup)
81  macro(CAxis)
82  macro(CAxisGroup)
83  macro(CFile)
84  macro(CFileGroup)
85  macro(CContext)
86  macro(CContextGroup)
87  macro(CCalendarWrapper)
88  macro(CVariable)
89  macro(CVariableGroup)
90  macro(CInverseAxis)
91  macro(CInverseAxisGroup)
92  macro(CZoomAxis)
93  macro(CZoomAxisGroup)
94  macro(CInterpolateAxis)
95  macro(CInterpolateAxisGroup)
96  macro(CZoomDomain)
97  macro(CZoomDomainGroup)
98  macro(CInterpolateDomain)
99  macro(CInterpolateDomainGroup)
100  macro(CGenerateRectilinearDomain)
101  macro(CGenerateRectilinearDomainGroup)
102  macro(CScalar)
103  macro(CScalarGroup)
104  macro(CReduceAxisToScalar)
105  macro(CReduceAxisToScalarGroup)
106  macro(CReduceDomainToAxis)
107  macro(CReduceDomainToAxisGroup)
108  macro(CReduceAxisToAxis)
109  macro(CReduceAxisToAxisGroup)
110  macro(CExtractDomainToAxis)
111  macro(CExtractDomainToAxisGroup)
112  macro(CComputeConnectivityDomain)
113  macro(CComputeConnectivityDomainGroup)
114  macro(CExpandDomain)
115  macro(CExpandDomainGroup)
116  macro(CExtractAxisToScalar)
117  macro(CExtractAxisToScalarGroup)
118  macro(CReduceDomainToScalar)
119  macro(CReduceDomainToScalarGroup)
120  macro(CTemporalSplitting)
121  macro(CTemporalSplittingGroup)
122 
123#undef macro
124}
125
126
127#endif
Note: See TracBrowser for help on using the repository browser.