#ifndef __XIOS_AXIS_ALGORITHM_TRANSFORMATION_HPP__ #define __XIOS_AXIS_ALGORITHM_TRANSFORMATION_HPP__ #include "generic_algorithm_transformation.hpp" #include "axis.hpp" #include "concrete_algo.hpp" namespace xios { class CAxisAlgorithmTransformation : public virtual CGenericAlgorithmTransformation { public: CAxisAlgorithmTransformation(CAxis* axisDestination, CAxis* axisSource, std::vector&); virtual ~CAxisAlgorithmTransformation(); protected: virtual void computeGlobalIndexFromGlobalIndexElement(int axisDestGlobalIndex, const std::vector& axisSrcGlobalIndex, int axisPositionInGrid, const std::vector& gridDestGlobalDim, const CArray& globalIndexGridDestSendToServer, CArray& globalIndexDestGrid, std::vector >& globalIndexSrcGrid); void computeIndexSourceMapping(); protected: std::vector algosOfAnAxis_; }; } #endif // __XIOS_AXIS_ALGORITHM_TRANSFORMATION_HPP__