/*! \brief Algorithm for reordering domain. */ #ifndef __XIOS_DOMAIN_ALGORITHM_REORDER_HPP__ #define __XIOS_DOMAIN_ALGORITHM_REORDER_HPP__ #include "algorithm_transformation_no_data_modification.hpp" #include "transformation.hpp" namespace xios { class CDomain; class CReorderDomain; /*! \class CDomainAlgorithmReorder Reordering data on domain */ class CDomainAlgorithmReorder : public CAlgorithmTransformationNoDataModification { public: CDomainAlgorithmReorder(bool isSource, CDomain* domainDestination, CDomain* domainSource, CReorderDomain* reorderDomain); virtual ~CDomainAlgorithmReorder() {} static bool registerTrans(); public: static CGenericAlgorithmTransformation* create(bool isSource, CGrid* gridDst, CGrid* gridSrc, CTransformation* transformation, int elementPositionInGrid, std::map& elementPositionInGridSrc2ScalarPosition, std::map& elementPositionInGridSrc2AxisPosition, std::map& elementPositionInGridSrc2DomainPosition, std::map& elementPositionInGridDst2ScalarPosition, std::map& elementPositionInGridDst2AxisPosition, std::map& elementPositionInGridDst2DomainPosition); static bool dummyRegistered_; }; } #endif // __XIOS_DOMAIN_ALGORITHM_REORDER_HPP__