23 CReduceDomainToAxis* reduceDomain = CReduceDomainToAxisGroup::get(
"reduce_domain_to_axis_definition")->createChild(
id);
24 if (node) reduceDomain->
parse(*node);
43 if (CDomain::type_attr::unstructured == domainSrc->type)
44 ERROR(
"CReduceDomainToAxis::checkValid(CAxis* axisDst, CDomain* domainSrc)",
45 <<
"Domain reduction is only supported for rectilinear or curvillinear grid."
46 <<
"Domain source " <<domainSrc->
getId() << std::endl
47 <<
"Axis destination " << axisDst->
getId());
49 int axis_n_glo = axisDst->n_glo;
50 int domain_ni_glo = domainSrc->ni_glo;
51 int domain_nj_glo = domainSrc->nj_glo;
53 if (this->operation.isEmpty())
54 ERROR(
"CReduceDomainToAxis::checkValid(CAxis* axisDst, CDomain* domainSrc)",
55 <<
"An operation must be defined."
56 <<
"Domain source " <<domainSrc->
getId() << std::endl
57 <<
"Axis destination " << axisDst->
getId());
59 if (this->direction.isEmpty())
60 ERROR(
"CReduceDomainToAxis::checkValid(CAxis* axisDst, CDomain* domainSrc)",
61 <<
"A direction to apply the operation must be defined. It should be: 'iDir' or 'jDir'"
62 <<
"Domain source " <<domainSrc->
getId() << std::endl
63 <<
"Axis destination " << axisDst->
getId());
68 case direction_attr::jDir:
69 if (axis_n_glo != domain_ni_glo)
70 ERROR(
"CReduceDomainToAxis::checkValid(CAxis* axisDst, CDomain* domainSrc)",
71 <<
"Extract domain along j, axis destination should have n_glo equal to ni_glo of domain source"
72 <<
"Domain source " <<domainSrc->
getId() <<
" has nj_glo " << domain_ni_glo << std::endl
73 <<
"Axis destination " << axisDst->
getId() <<
" has n_glo " << axis_n_glo);
76 case direction_attr::iDir:
77 if (axis_n_glo != domain_nj_glo)
78 ERROR(
"CReduceDomainToAxis::checkValid(CAxis* axisDst, CDomain* domainSrc)",
79 <<
"Extract domain along i, axis destination should have n_glo equal to nj_glo of domain source"
80 <<
"Domain source " <<domainSrc->
getId() <<
" has nj_glo " << domain_nj_glo << std::endl
81 <<
"Axis destination " << axisDst->
getId() <<
" has n_glo " << axis_n_glo);
static bool _dummyRegistered
static StdString GetDefName(void)
static bool registerTrans()
static ENodeType GetType(void)
virtual void checkValid(CAxis *axisDst, CDomain *domainSrc)
const StdString & getId(void) const
Accesseurs ///.
CATCH CScalarAlgorithmReduceScalar::CScalarAlgorithmReduceScalar(CScalar *scalarDestination, CScalar *scalarSource, CReduceScalarToScalar *algo ERROR)("CScalarAlgorithmReduceScalar::CScalarAlgorithmReduceScalar(CScalar* scalarDestination, CScalar* scalarSource, CReduceScalarToScalar* algo)",<< "Operation must be defined."<< "Scalar source "<< scalarSource->getId()<< std::endl<< "Scalar destination "<< scalarDestination->getId())
////////////////////// Déclarations ////////////////////// ///
static StdString GetName(void)
Accesseurs statiques ///.
CReduceDomainToAxis(void)
Constructeurs ///.
static CTransformation< CAxis > * create(const StdString &id, xml::CXMLNode *node)
virtual void parse(xml::CXMLNode &node)
virtual ~CReduceDomainToAxis(void)
Destructeur ///.
enum xios::_node_type ENodeType
////////////////////// Définitions ////////////////////// ///