Ignore:
Timestamp:
01/31/19 12:12:52 (5 years ago)
Author:
yushan
Message:

branch merged with trunk @1645. arch file (ep&mpi) added for ADA

Location:
XIOS/dev/dev_trunk_omp/src/transformation
Files:
29 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_trunk_omp/src/transformation/axis_algorithm_duplicate_scalar.cpp

    r1314 r1646  
    2121                                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2222                                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     23TRY 
    2324{ 
    2425  std::vector<CAxis*> axisListDestP = gridDst->getAxis(); 
     
    3132  return (new CAxisAlgorithmDuplicateScalar(axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], duplicateScalar)); 
    3233} 
     34CATCH 
    3335 
    3436bool CAxisAlgorithmDuplicateScalar::registerTrans() 
     37TRY 
    3538{ 
    3639  CGridTransformationFactory<CAxis>::registerTransformation(TRANS_DUPLICATE_SCALAR_TO_AXIS, create); 
    3740} 
     41CATCH 
    3842 
    3943 
     
    5054 
    5155void CAxisAlgorithmDuplicateScalar::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     56TRY 
    5257{ 
    5358  this->transformationMapping_.resize(1); 
     
    6974  } 
    7075} 
    71  
     76CATCH 
    7277} 
  • XIOS/dev/dev_trunk_omp/src/transformation/axis_algorithm_extract.cpp

    r1558 r1646  
    1919                                                           std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2020                                                           std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     21TRY 
    2122{ 
    2223  std::vector<CAxis*> axisListDestP = gridDst->getAxis(); 
     
    2930  return (new CAxisAlgorithmExtract(axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], extractAxis)); 
    3031} 
     32CATCH 
     33 
    3134bool CAxisAlgorithmExtract::registerTrans() 
     35TRY 
    3236{ 
    3337  CGridTransformationFactory<CAxis>::registerTransformation(TRANS_EXTRACT_AXIS, create); 
    3438} 
     39CATCH 
    3540 
    3641CAxisAlgorithmExtract::CAxisAlgorithmExtract(CAxis* axisDestination, CAxis* axisSource, CExtractAxis* extractAxis) 
    3742: CAxisAlgorithmTransformation(axisDestination, axisSource) 
     43TRY 
    3844{ 
    3945  extractAxis->checkValid(axisSource); 
     
    104110  } 
    105111} 
     112CATCH 
    106113 
    107114/*! 
  • XIOS/dev/dev_trunk_omp/src/transformation/axis_algorithm_extract_domain.cpp

    r1601 r1646  
    2424                                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2525                                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     26TRY 
    2627{ 
    2728  std::vector<CAxis*> axisListDestP = gridDst->getAxis(); 
     
    3435  return (new CAxisAlgorithmExtractDomain(axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], extractDomain)); 
    3536} 
     37CATCH 
    3638 
    3739//bool CAxisAlgorithmExtractDomain::_dummyRegistered = CAxisAlgorithmExtractDomain::registerTrans(); 
    3840bool CAxisAlgorithmExtractDomain::registerTrans() 
     41TRY 
    3942{ 
    4043  CGridTransformationFactory<CAxis>::registerTransformation(TRANS_EXTRACT_DOMAIN_TO_AXIS, create); 
    4144} 
     45CATCH 
    4246 
    4347 
    4448CAxisAlgorithmExtractDomain::CAxisAlgorithmExtractDomain(CAxis* axisDestination, CDomain* domainSource, CExtractDomainToAxis* algo) 
    4549 : CAxisAlgorithmTransformation(axisDestination, domainSource), pos_(-1), reduction_(0) 
     50TRY 
    4651{ 
    4752  algo->checkValid(axisDestination, domainSource); 
     
    6772  reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 
    6873} 
     74CATCH 
    6975 
    7076void CAxisAlgorithmExtractDomain::apply(const std::vector<std::pair<int,double> >& localIndex, 
     
    7379                                        std::vector<bool>& flagInitial,                      
    7480                                        bool ignoreMissingValue, bool firstPass) 
     81TRY 
    7582{ 
    7683  reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 
    7784} 
     85CATCH 
    7886 
    7987CAxisAlgorithmExtractDomain::~CAxisAlgorithmExtractDomain() 
     88TRY 
    8089{ 
    8190  if (0 != reduction_) delete reduction_; 
    8291} 
     92CATCH 
    8393 
    8494void CAxisAlgorithmExtractDomain::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     95TRY 
    8596{ 
    8697  this->transformationMapping_.resize(1); 
     
    120131  {} 
    121132} 
    122  
     133CATCH 
    123134} 
  • XIOS/dev/dev_trunk_omp/src/transformation/axis_algorithm_interpolate.cpp

    r1412 r1646  
    2929                                                                   std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    3030                                                                   std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     31TRY 
    3132{ 
    3233  std::vector<CAxis*> axisListDestP = gridDst->getAxis(); 
     
    3940  return (new CAxisAlgorithmInterpolate(axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], interpolateAxis)); 
    4041} 
     42CATCH 
    4143 
    4244bool CAxisAlgorithmInterpolate::registerTrans() 
     45TRY 
    4346{ 
    4447  CGridTransformationFactory<CAxis>::registerTransformation(TRANS_INTERPOLATE_AXIS, create); 
    4548} 
    46  
     49CATCH 
    4750 
    4851CAxisAlgorithmInterpolate::CAxisAlgorithmInterpolate(CAxis* axisDestination, CAxis* axisSource, CInterpolateAxis* interpAxis) 
    4952: CAxisAlgorithmTransformation(axisDestination, axisSource), coordinate_(), transPosition_() 
     53TRY 
    5054{ 
    5155  interpAxis->checkValid(axisSource); 
     
    5862  } 
    5963} 
     64CATCH 
    6065 
    6166/*! 
     
    6368*/ 
    6469void CAxisAlgorithmInterpolate::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     70TRY 
    6571{ 
    6672  CTimer::get("CAxisAlgorithmInterpolate::computeIndexSourceMapping_").resume() ; 
     
    8894  CTimer::get("CAxisAlgorithmInterpolate::computeIndexSourceMapping_").suspend() ; 
    8995} 
     96CATCH 
    9097 
    9198/*! 
     
    98105                                                        const std::vector<int>& indexVec, 
    99106                                                        int transPos) 
     107TRY 
    100108{ 
    101109  std::vector<double>::const_iterator itb = axisValue.begin(), ite = axisValue.end(); 
     
    162170  computeWeightedValueAndMapping(interpolatingIndexValues, transPos); 
    163171} 
     172CATCH 
    164173 
    165174/*! 
     
    168177*/ 
    169178void CAxisAlgorithmInterpolate::computeWeightedValueAndMapping(const std::map<int, std::vector<std::pair<int,double> > >& interpolatingIndexValues, int transPos) 
     179TRY 
    170180{ 
    171181  TransformationIndexMap& transMap = this->transformationMapping_[transPos]; 
     
    205215 
    206216} 
     217CATCH 
    207218 
    208219/*! 
     
    213224void CAxisAlgorithmInterpolate::retrieveAllAxisValue(const CArray<double,1>& axisValue, const CArray<bool,1>& axisMask, 
    214225                                                     std::vector<double>& recvBuff, std::vector<int>& indexVec) 
     226TRY 
    215227{ 
    216228  CContext* context = CContext::getCurrent(); 
     
    282294  } 
    283295} 
     296CATCH 
    284297 
    285298/*! 
     
    289302void CAxisAlgorithmInterpolate::fillInAxisValue(std::vector<CArray<double,1> >& vecAxisValue, 
    290303                                                const std::vector<CArray<double,1>* >& dataAuxInputs) 
     304TRY 
    291305{ 
    292306  if (coordinate_.empty()) 
     
    377391  } 
    378392} 
    379  
    380 } 
     393CATCH 
     394 
     395} 
  • XIOS/dev/dev_trunk_omp/src/transformation/axis_algorithm_inverse.cpp

    r1601 r1646  
    1515#include "inverse_axis.hpp" 
    1616#include "client_client_dht_template.hpp" 
     17#ifdef _usingEP 
    1718using namespace ep_lib; 
     19#endif 
    1820 
    1921namespace xios { 
     
    2830                                                               std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2931                                                               std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     32TRY 
    3033{ 
    3134  std::vector<CAxis*> axisListDestP = gridDst->getAxis(); 
     
    3841  return (new CAxisAlgorithmInverse(axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], inverseAxis)); 
    3942} 
     43CATCH 
    4044 
    4145bool CAxisAlgorithmInverse::registerTrans() 
     46TRY 
    4247{ 
    4348  CGridTransformationFactory<CAxis>::registerTransformation(TRANS_INVERSE_AXIS, create); 
    4449} 
    45  
     50CATCH 
    4651 
    4752CAxisAlgorithmInverse::CAxisAlgorithmInverse(CAxis* axisDestination, CAxis* axisSource, CInverseAxis* inverseAxis) 
    4853 : CAxisAlgorithmTransformation(axisDestination, axisSource) 
     54TRY 
    4955{ 
    5056  if (axisDestination->n_glo.getValue() != axisSource->n_glo.getValue()) 
     
    5662  } 
    5763} 
     64CATCH 
    5865 
    5966void CAxisAlgorithmInverse::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     67TRY 
    6068{ 
    6169  this->transformationMapping_.resize(1); 
     
    8391  } 
    8492} 
     93CATCH 
    8594 
    8695/*! 
     
    8998*/ 
    9099void CAxisAlgorithmInverse::updateAxisValue() 
     100TRY 
    91101{ 
    92102  CContext* context = CContext::getCurrent(); 
     
    283293    delete [] itLong->second; 
    284294} 
    285  
    286 } 
     295CATCH 
     296 
     297} 
  • XIOS/dev/dev_trunk_omp/src/transformation/axis_algorithm_reduce_axis.cpp

    r1601 r1646  
    2323                                                                   std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2424                                                                   std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     25TRY 
    2526{ 
    2627  std::vector<CAxis*> axisListDestP = gridDst->getAxis(); 
     
    3334  return (new CAxisAlgorithmReduceAxis(axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], reduceAxis)); 
    3435} 
     36CATCH 
    3537 
    3638bool CAxisAlgorithmReduceAxis::registerTrans() 
     39TRY 
    3740{ 
    3841  CGridTransformationFactory<CAxis>::registerTransformation(TRANS_REDUCE_AXIS_TO_AXIS, create); 
    3942} 
     43CATCH 
    4044 
    4145 
    4246CAxisAlgorithmReduceAxis::CAxisAlgorithmReduceAxis(CAxis* axisDestination, CAxis* axisSource, CReduceAxisToAxis* algo) 
    4347 : CAxisAlgorithmTransformation(axisDestination, axisSource), reduction_(0) 
     48TRY 
    4449{ 
    4550  eliminateRedondantSrc_= false ; 
     
    7479  reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 
    7580} 
     81CATCH 
    7682 
    7783void CAxisAlgorithmReduceAxis::apply(const std::vector<std::pair<int,double> >& localIndex, 
     
    8086                                       std::vector<bool>& flagInitial,                      
    8187                                       bool ignoreMissingValue, bool firstPass) 
     88TRY 
    8289{ 
    8390  reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 
    8491} 
     92CATCH 
    8593 
    8694void CAxisAlgorithmReduceAxis::updateData(CArray<double,1>& dataOut) 
     95TRY 
    8796{ 
    8897  reduction_->updateData(dataOut); 
    8998} 
     99CATCH 
    90100 
    91101CAxisAlgorithmReduceAxis::~CAxisAlgorithmReduceAxis() 
     102TRY 
    92103{ 
    93104  if (0 != reduction_) delete reduction_; 
    94105} 
     106CATCH 
    95107 
    96108void CAxisAlgorithmReduceAxis::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     109TRY 
    97110{ 
    98111  this->transformationMapping_.resize(1); 
     
    112125  } 
    113126} 
     127CATCH 
    114128 
    115129} 
  • XIOS/dev/dev_trunk_omp/src/transformation/axis_algorithm_reduce_domain.cpp

    r1601 r1646  
    2525                                                                   std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2626                                                                   std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     27TRY 
    2728{ 
    2829  std::vector<CAxis*> axisListDestP = gridDst->getAxis(); 
     
    3536  return (new CAxisAlgorithmReduceDomain(axisListDestP[axisDstIndex], domainListSrcP[domainSrcIndex], reduceDomain)); 
    3637} 
     38CATCH 
    3739 
    3840bool CAxisAlgorithmReduceDomain::registerTrans() 
     41TRY 
    3942{ 
    4043  CGridTransformationFactory<CAxis>::registerTransformation(TRANS_REDUCE_DOMAIN_TO_AXIS, create); 
    4144} 
     45CATCH 
    4246 
    4347 
    4448CAxisAlgorithmReduceDomain::CAxisAlgorithmReduceDomain(CAxis* axisDestination, CDomain* domainSource, CReduceDomainToAxis* algo) 
    4549 : CAxisAlgorithmTransformation(axisDestination, domainSource), reduction_(0) 
     50TRY 
    4651{ 
    4752  algo->checkValid(axisDestination, domainSource); 
     
    7782  local = algo->local ; 
    7883} 
     84CATCH 
    7985 
    8086void CAxisAlgorithmReduceDomain::apply(const std::vector<std::pair<int,double> >& localIndex, 
     
    8389                                       std::vector<bool>& flagInitial,                      
    8490                                       bool ignoreMissingValue, bool firstPass) 
     91TRY 
    8592{ 
    8693  reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 
    8794} 
     95CATCH 
    8896 
    8997void CAxisAlgorithmReduceDomain::updateData(CArray<double,1>& dataOut) 
     98TRY 
    9099{ 
    91100  reduction_->updateData(dataOut); 
    92101} 
     102CATCH 
    93103 
    94104CAxisAlgorithmReduceDomain::~CAxisAlgorithmReduceDomain() 
     105TRY 
    95106{ 
    96107  if (0 != reduction_) delete reduction_; 
    97108} 
     109CATCH 
    98110 
    99111void CAxisAlgorithmReduceDomain::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     112TRY 
    100113{ 
    101114  this->transformationMapping_.resize(1); 
     
    178191  {} 
    179192} 
     193CATCH 
    180194 
    181195} 
  • XIOS/dev/dev_trunk_omp/src/transformation/axis_algorithm_temporal_splitting.cpp

    r1275 r1646  
    2121                                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2222                                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     23TRY 
    2324{ 
    2425  std::vector<CAxis*> axisListDestP = gridDst->getAxis(); 
     
    3132  return (new CAxisAlgorithmTemporalSplitting(axisListDestP[axisDstIndex], scalarListSrcP[scalarSrcIndex], temporalSplitting)); 
    3233} 
     34CATCH 
    3335 
    3436bool CAxisAlgorithmTemporalSplitting::registerTrans() 
     37TRY 
    3538{ 
    3639  CGridTransformationFactory<CAxis>::registerTransformation(TRANS_TEMPORAL_SPLITTING, create); 
    3740} 
    38  
     41CATCH 
    3942 
    4043CAxisAlgorithmTemporalSplitting::CAxisAlgorithmTemporalSplitting(CAxis* axisDestination, CScalar* scalarSource, CTemporalSplitting* algo) 
     
    5053 
    5154void CAxisAlgorithmTemporalSplitting::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     55TRY 
    5256{ 
    5357  this->transformationMapping_.resize(1); 
     
    7276  } 
    7377} 
     78CATCH 
    7479 
    7580} 
  • XIOS/dev/dev_trunk_omp/src/transformation/axis_algorithm_transformation.cpp

    r1403 r1646  
    2020CAxisAlgorithmTransformation::CAxisAlgorithmTransformation(CAxis* axisDestination, CAxis* axisSource) 
    2121 : CGenericAlgorithmTransformation(), axisDest_(axisDestination), axisSrc_(axisSource), domainSrc_(0),scalarSrc_(0) 
     22TRY 
    2223{ 
    2324  axisDestGlobalSize_ = axisDestination->n_glo.getValue(); 
     
    2829    if ((axisDestination->mask)(idx)) axisDestGlobalIndex_.push_back(ibeginDest+idx); 
    2930} 
     31CATCH 
    3032 
    3133CAxisAlgorithmTransformation::CAxisAlgorithmTransformation(CAxis* axisDestination, CDomain* domainSource) 
    3234 : CGenericAlgorithmTransformation(), axisDest_(axisDestination), axisSrc_(0), domainSrc_(domainSource),scalarSrc_(0) 
     35TRY 
    3336{ 
    3437  axisDestGlobalSize_ = axisDestination->n_glo.getValue(); 
     
    3942    if ((axisDestination->mask)(idx)) axisDestGlobalIndex_.push_back(ibeginDest+idx); 
    4043} 
     44CATCH 
    4145 
    4246CAxisAlgorithmTransformation::CAxisAlgorithmTransformation(CAxis* axisDestination, CScalar* scalarSource) 
    4347 : CGenericAlgorithmTransformation(), axisDest_(axisDestination), axisSrc_(0), domainSrc_(0), scalarSrc_(scalarSource) 
     48TRY 
    4449{ 
    4550  axisDestGlobalSize_ = axisDestination->n_glo.getValue(); 
     
    5055    if ((axisDestination->mask)(idx)) axisDestGlobalIndex_.push_back(ibeginDest+idx); 
    5156} 
     57CATCH 
     58 
    5259CAxisAlgorithmTransformation::~CAxisAlgorithmTransformation() 
    5360{ 
     
    6673                                                              int elementType, 
    6774                                                              CClientClientDHTInt::Index2VectorInfoTypeMap& globalAxisIndexOnProc) 
     75TRY 
    6876{ 
    6977  CContext* context = CContext::getCurrent(); 
     
    124132  globalAxisIndexOnProc = dhtIndexProcRank.getInfoIndexMap(); 
    125133} 
     134CATCH 
    126135 
    127136} 
  • XIOS/dev/dev_trunk_omp/src/transformation/axis_algorithm_zoom.cpp

    r1559 r1646  
    1919                                                           std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2020                                                           std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     21TRY 
    2122{ 
    2223  std::vector<CAxis*> axisListDestP = gridDst->getAxis(); 
     
    2930  return (new CAxisAlgorithmZoom(axisListDestP[axisDstIndex], axisListSrcP[axisSrcIndex], zoomAxis)); 
    3031} 
     32CATCH 
     33 
    3134bool CAxisAlgorithmZoom::registerTrans() 
     35TRY 
    3236{ 
    3337  CGridTransformationFactory<CAxis>::registerTransformation(TRANS_ZOOM_AXIS, create); 
    3438} 
     39CATCH 
    3540 
    3641CAxisAlgorithmZoom::CAxisAlgorithmZoom(CAxis* axisDestination, CAxis* axisSource, CZoomAxis* zoomAxis) 
    3742: CAxisAlgorithmTransformation(axisDestination, axisSource) 
     43TRY 
    3844{ 
    3945  zoomAxis->checkValid(axisSource); 
     
    104110  } 
    105111} 
     112CATCH 
    106113 
    107114/*! 
  • XIOS/dev/dev_trunk_omp/src/transformation/domain_algorithm_compute_connectivity.cpp

    r978 r1646  
    2424                                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2525                                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     26TRY 
    2627{ 
    2728  std::vector<CDomain*> domainListDestP = gridDst->getDomains(); 
     
    3435  return (new CDomainAlgorithmComputeConnectivity(domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], compute_connectivityDomain)); 
    3536} 
     37CATCH 
    3638 
    3739bool CDomainAlgorithmComputeConnectivity::registerTrans() 
     40TRY 
    3841{ 
    3942  CGridTransformationFactory<CDomain>::registerTransformation(TRANS_COMPUTE_CONNECTIVITY_DOMAIN, create); 
    4043} 
     44CATCH 
    4145 
    4246CDomainAlgorithmComputeConnectivity::CDomainAlgorithmComputeConnectivity(CDomain* domainDestination, CDomain* domainSource, 
    4347                                                                         CComputeConnectivityDomain* compute_connectivityDomain) 
    4448: CDomainAlgorithmTransformation(domainDestination, domainSource) 
     49TRY 
    4550{ 
    4651  this->type_ = (ELEMENT_NO_MODIFICATION_WITHOUT_DATA); 
     
    6469  computeLocalConnectivity(type, domainDestination, nbNeighborMax, nbNeighbor, localNeighbors); 
    6570} 
     71CATCH 
    6672 
    6773/*! 
     
    7884                                                                  CArray<int,1>& nbConnectivity, 
    7985                                                                  CArray<int,2>& localConnectivity) 
     86TRY 
    8087{ 
    8188 
     
    93100    if (nbConnectivityMax < nbConnectivity(idx)) nbConnectivityMax = nbConnectivity(idx); 
    94101} 
    95  
    96  
     102CATCH 
    97103 
    98104/*! 
  • XIOS/dev/dev_trunk_omp/src/transformation/domain_algorithm_expand.cpp

    r1601 r1646  
    2626                                                               std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2727                                                               std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     28TRY 
    2829{ 
    2930  std::vector<CDomain*> domainListDestP = gridDst->getDomains(); 
     
    3637  return (new CDomainAlgorithmExpand(domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], expandDomain)); 
    3738} 
     39CATCH 
    3840 
    3941bool CDomainAlgorithmExpand::registerTrans() 
     42TRY 
    4043{ 
    4144  CGridTransformationFactory<CDomain>::registerTransformation(TRANS_EXPAND_DOMAIN, create); 
    4245} 
     46CATCH 
    4347 
    4448CDomainAlgorithmExpand::CDomainAlgorithmExpand(CDomain* domainDestination, 
     
    4751: CDomainAlgorithmTransformation(domainDestination, domainSource), 
    4852  isXPeriodic_(false), isYPeriodic_(false) 
     53TRY 
    4954{ 
    5055  if (domainDestination == domainSource) 
     
    7782  } 
    7883} 
     84CATCH 
    7985 
    8086/*! 
     
    8591void CDomainAlgorithmExpand::expandDomainEdgeConnectivity(CDomain* domainDestination, 
    8692                                                          CDomain* domainSource) 
     93TRY 
    8794{ 
    8895  CContext* context = CContext::getCurrent(); 
     
    104111  }   
    105112} 
     113CATCH 
    106114 
    107115/*! 
     
    112120void CDomainAlgorithmExpand::expandDomainNodeConnectivity(CDomain* domainDestination, 
    113121                                                          CDomain* domainSource) 
     122TRY 
    114123{ 
    115124  CContext* context = CContext::getCurrent(); 
     
    131140  }   
    132141} 
     142CATCH 
    133143 
    134144/*! 
     
    142152                                                               CDomain* domainSource, 
    143153                                                               CArray<int,2>& neighborsDomainSrc) 
     154TRY 
    144155{ 
    145156  int index, globalIndex, idx; 
     
    161172  else domainDestination->domain_ref.setValue(domainDstRef); 
    162173 
     174   
    163175  // Here are attributes of source need tranfering 
    164176  int niGloSrc = domainSource->ni_glo; 
     
    454466   domainDestination->computeLocalMask() ; 
    455467} 
     468CATCH 
    456469 
    457470/*! 
     
    465478                                                                CDomain* domainSource, 
    466479                                                                CArray<int,2>& neighborsDomainSrc) 
     480TRY 
    467481{ 
    468482 
     
    668682  domainDestination->computeLocalMask() ; 
    669683} 
    670  
     684CATCH 
    671685 
    672686/*! 
  • XIOS/dev/dev_trunk_omp/src/transformation/domain_algorithm_extract.cpp

    r1553 r1646  
    1616                                                             std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    1717                                                             std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     18TRY 
    1819{ 
    1920  std::vector<CDomain*> domainListDestP = gridDst->getDomains(); 
     
    2627  return (new CDomainAlgorithmExtract(domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], extractDomain)); 
    2728} 
     29CATCH 
    2830 
    2931bool CDomainAlgorithmExtract::registerTrans() 
     32TRY 
    3033{ 
    3134  CGridTransformationFactory<CDomain>::registerTransformation(TRANS_EXTRACT_DOMAIN, create); 
    3235} 
     36CATCH 
    3337 
    3438CDomainAlgorithmExtract::CDomainAlgorithmExtract(CDomain* domainDestination, CDomain* domainSource, CExtractDomain* extractDomain) 
    3539: CDomainAlgorithmTransformation(domainDestination, domainSource) 
     40TRY 
    3641{ 
    3742  extractDomain->checkValid(domainSource); 
     
    220225 
    221226} 
     227CATCH 
    222228 
    223229/*! 
  • XIOS/dev/dev_trunk_omp/src/transformation/domain_algorithm_generate_rectilinear.cpp

    r1158 r1646  
    2020                                                                         CGenerateRectilinearDomain* genRectDomain) 
    2121: CDomainAlgorithmTransformation(domainDestination, domainSource), nbDomainDistributedPart_(0) 
     22TRY 
    2223{ 
    2324  type_ = ELEMENT_GENERATION; 
     
    3031  fillInAttributesDomainDestination(); 
    3132} 
     33CATCH 
    3234 
    3335/*! 
     
    4345*/ 
    4446void CDomainAlgorithmGenerateRectilinear::computeDistributionGridSource(CGrid* gridSrc) 
     47TRY 
    4548{ 
    4649  CContext* context = CContext::getCurrent(); 
     
    9497  } 
    9598} 
     99CATCH 
    96100 
    97101/*! 
     
    99103*/ 
    100104void CDomainAlgorithmGenerateRectilinear::computeDistributionGridDestination(CGrid* gridDest) 
     105TRY 
    101106{ 
    102107  // For now, just suppose that the grid contains only one domain 
     
    121126 
    122127} 
     128CATCH 
    123129 
    124130/*! 
     
    126132*/ 
    127133void CDomainAlgorithmGenerateRectilinear::fillInAttributesDomainDestination() 
     134TRY 
    128135{ 
    129136  if (!domainDest_->distributionAttributesHaveValue()) 
     
    131138  domainDest_->fillInLonLat(); 
    132139} 
    133  
     140CATCH 
    134141} 
  • XIOS/dev/dev_trunk_omp/src/transformation/domain_algorithm_interpolate.cpp

    r1630 r1646  
    2020#include "interpolate_domain.hpp" 
    2121#include "grid.hpp" 
     22#ifdef _usingEP 
    2223using namespace ep_lib; 
     24#endif 
    2325 
    2426namespace xios { 
     
    3234                                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    3335                                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     36TRY 
    3437{ 
    3538  std::vector<CDomain*> domainListDestP = gridDst->getDomains(); 
     
    4245  return (new CDomainAlgorithmInterpolate(domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], interpolateDomain)); 
    4346} 
     47CATCH 
    4448 
    4549bool CDomainAlgorithmInterpolate::registerTrans() 
     50TRY 
    4651{ 
    4752  CGridTransformationFactory<CDomain>::registerTransformation(TRANS_INTERPOLATE_DOMAIN, create); 
    4853} 
     54CATCH 
    4955 
    5056CDomainAlgorithmInterpolate::CDomainAlgorithmInterpolate(CDomain* domainDestination, CDomain* domainSource, CInterpolateDomain* interpDomain) 
    5157: CDomainAlgorithmTransformation(domainDestination, domainSource), interpDomain_(interpDomain), writeToFile_(false), readFromFile_(false) 
     58TRY 
    5259{ 
    5360  CContext* context = CContext::getCurrent(); 
     
    94101     
    95102} 
     103CATCH 
    96104 
    97105/*! 
     
    99107*/ 
    100108void CDomainAlgorithmInterpolate::computeRemap() 
     109TRY 
    101110{ 
    102111  using namespace sphereRemap; 
     
    305314  CArray<double,2> boundsLonSrcUnmasked(nVertexSrc,nSrcLocalUnmasked); 
    306315  CArray<double,2> boundsLatSrcUnmasked(nVertexSrc,nSrcLocalUnmasked); 
     316  CArray<double,1> areaSrcUnmasked(nSrcLocalUnmasked); 
     317   
    307318  long int * globalSrcUnmasked = new long int [nSrcLocalUnmasked]; 
    308319 
    309320  nSrcLocalUnmasked=0 ; 
     321  bool hasSrcArea=domainSrc_->hasArea && !domainSrc_->radius.isEmpty() && !interpDomain_->use_area.isEmpty() && interpDomain_->use_area==true  ; 
     322  double srcAreaFactor ; 
     323  if (hasSrcArea) srcAreaFactor=1./(domainSrc_->radius*domainSrc_->radius) ; 
     324   
    310325  for (int idx=0 ; idx < nSrcLocal; idx++) 
    311326  { 
     
    317332        boundsLatSrcUnmasked(n,nSrcLocalUnmasked) = boundsLatSrc(n,idx) ; 
    318333      } 
     334      if (hasSrcArea) areaSrcUnmasked(nSrcLocalUnmasked) = domainSrc_->areavalue(idx)*srcAreaFactor ; 
    319335      globalSrcUnmasked[nSrcLocalUnmasked]=globalSrc[idx] ; 
    320336      ++nSrcLocalUnmasked ; 
    321337    } 
    322338  } 
    323  
     339  
    324340 
    325341  int nDstLocalUnmasked = 0 ; 
     
    328344  CArray<double,2> boundsLonDestUnmasked(nVertexDest,nDstLocalUnmasked); 
    329345  CArray<double,2> boundsLatDestUnmasked(nVertexDest,nDstLocalUnmasked); 
     346  CArray<double,1>   areaDstUnmasked(nDstLocalUnmasked); 
     347 
    330348  long int * globalDstUnmasked = new long int [nDstLocalUnmasked]; 
    331349 
    332350  nDstLocalUnmasked=0 ; 
     351  bool hasDstArea=domainDest_->hasArea && !domainDest_->radius.isEmpty() && !interpDomain_->use_area.isEmpty() && interpDomain_->use_area==true ; 
     352  double dstAreaFactor ; 
     353  if (hasDstArea) dstAreaFactor=1./(domainDest_->radius*domainDest_->radius) ; 
    333354  for (int idx=0 ; idx < nDstLocal; idx++) 
    334355  { 
     
    340361        boundsLatDestUnmasked(n,nDstLocalUnmasked) = boundsLatDest(n,idx) ; 
    341362      } 
     363      if (hasDstArea) areaDstUnmasked(nDstLocalUnmasked) = domainDest_->areavalue(idx)*dstAreaFactor ; 
    342364      globalDstUnmasked[nDstLocalUnmasked]=globalDst[idx] ; 
    343365      ++nDstLocalUnmasked ; 
     
    345367  } 
    346368 
    347   mapper.setSourceMesh(boundsLonSrcUnmasked.dataFirst(), boundsLatSrcUnmasked.dataFirst(), nVertexSrc, nSrcLocalUnmasked, &srcPole[0], globalSrcUnmasked); 
    348   mapper.setTargetMesh(boundsLonDestUnmasked.dataFirst(), boundsLatDestUnmasked.dataFirst(), nVertexDest, nDstLocalUnmasked, &dstPole[0], globalDstUnmasked); 
     369  double* ptAreaSrcUnmasked = NULL ; 
     370  if (hasSrcArea) ptAreaSrcUnmasked=areaSrcUnmasked.dataFirst() ; 
     371 
     372  double* ptAreaDstUnmasked = NULL ; 
     373  if (hasDstArea) ptAreaDstUnmasked=areaDstUnmasked.dataFirst() ; 
     374 
     375  mapper.setSourceMesh(boundsLonSrcUnmasked.dataFirst(), boundsLatSrcUnmasked.dataFirst(), ptAreaSrcUnmasked, nVertexSrc, nSrcLocalUnmasked, &srcPole[0], globalSrcUnmasked); 
     376  mapper.setTargetMesh(boundsLonDestUnmasked.dataFirst(), boundsLatDestUnmasked.dataFirst(), ptAreaDstUnmasked, nVertexDest, nDstLocalUnmasked, &dstPole[0], globalDstUnmasked); 
    349377 
    350378  std::vector<double> timings = mapper.computeWeights(orderInterp,renormalize,quantity); 
     
    400428 
    401429} 
     430CATCH 
    402431 
    403432void CDomainAlgorithmInterpolate::processPole(std::map<int,std::vector<std::pair<int,double> > >& interMapValuePole, 
    404433                                              int nbGlobalPointOnPole) 
     434TRY 
    405435{ 
    406436  CContext* context = CContext::getCurrent(); 
     
    468498 
    469499} 
     500CATCH 
    470501 
    471502/*! 
     
    473504*/ 
    474505void CDomainAlgorithmInterpolate::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     506TRY 
    475507{ 
    476508  if (readFromFile_)   
     
    481513  } 
    482514} 
     515CATCH 
    483516 
    484517void CDomainAlgorithmInterpolate::writeRemapInfo(std::map<int,std::vector<std::pair<int,double> > >& interpMapValue) 
     518TRY 
    485519 
    486520  writeInterpolationInfo(fileToReadWrite_, interpMapValue); 
    487521} 
     522CATCH 
    488523 
    489524void CDomainAlgorithmInterpolate::readRemapInfo() 
     525TRY 
    490526 
    491527  std::map<int,std::vector<std::pair<int,double> > > interpMapValue; 
     
    494530  exchangeRemapInfo(interpMapValue); 
    495531} 
     532CATCH 
    496533 
    497534void CDomainAlgorithmInterpolate::convertRemapInfo(std::map<int,std::vector<std::pair<int,double> > >& interpMapValue) 
     535TRY 
    498536{ 
    499537  CContext* context = CContext::getCurrent(); 
     
    520558  }       
    521559} 
     560CATCH 
    522561 
    523562/*! 
     
    525564*/ 
    526565void CDomainAlgorithmInterpolate::exchangeRemapInfo(std::map<int,std::vector<std::pair<int,double> > >& interpMapValue) 
     566TRY 
    527567{ 
    528568  CContext* context = CContext::getCurrent(); 
     
    706746  delete [] recvBuff; 
    707747} 
     748CATCH 
    708749  
    709750/*! Redefined some functions of CONetCDF4 to make use of them */ 
     
    716757int CDomainAlgorithmInterpolate::WriteNetCdf::addDimensionWrite(const StdString& name,  
    717758                                                                const StdSize size) 
     759TRY 
    718760{ 
    719761  return CONetCDF4::addDimension(name, size);   
    720762} 
     763CATCH 
    721764 
    722765int CDomainAlgorithmInterpolate::WriteNetCdf::addVariableWrite(const StdString& name, nc_type type, 
    723766                                                               const std::vector<StdString>& dim) 
     767TRY 
    724768{ 
    725769  return CONetCDF4::addVariable(name, type, dim); 
    726770} 
     771CATCH 
    727772 
    728773void CDomainAlgorithmInterpolate::WriteNetCdf::endDefinition() 
     774TRY 
    729775{ 
    730776  CONetCDF4::definition_end(); 
    731777} 
     778CATCH 
    732779 
    733780void CDomainAlgorithmInterpolate::WriteNetCdf::writeDataIndex(const CArray<int,1>& data, const StdString& name, 
     
    735782                                                              const std::vector<StdSize>* start, 
    736783                                                              const std::vector<StdSize>* count) 
     784TRY 
    737785{ 
    738786  CONetCDF4::writeData<int,1>(data, name, collective, record, start, count); 
    739787} 
     788CATCH 
    740789 
    741790void CDomainAlgorithmInterpolate::WriteNetCdf::writeDataIndex(const CArray<double,1>& data, const StdString& name, 
     
    743792                                                              const std::vector<StdSize>* start, 
    744793                                                              const std::vector<StdSize>* count) 
     794TRY 
    745795{ 
    746796  CONetCDF4::writeData<double,1>(data, name, collective, record, start, count); 
    747797} 
     798CATCH 
    748799 
    749800/* 
     
    754805void CDomainAlgorithmInterpolate::writeInterpolationInfo(std::string& filename, 
    755806                                                         std::map<int,std::vector<std::pair<int,double> > >& interpMapValue) 
     807TRY 
    756808{ 
    757809  CContext* context = CContext::getCurrent(); 
     
    806858  std::vector<StdSize> count(1, localNbWeight); 
    807859   
     860  int my_rank; 
     861  MPI_Comm_rank(client->intraComm, &my_rank); 
     862 
     863  #ifdef _usingEP 
    808864  int my_rank_loc = client->intraComm->ep_comm_ptr->size_rank_info[1].first; 
    809   int my_rank = client->intraComm->ep_comm_ptr->size_rank_info[0].first; 
    810    
     865  #elif _usingMPI 
     866  int my_rank_loc = 0; 
     867  #endif 
    811868   
    812869  
    813870  WriteNetCdf *netCdfWriter; 
    814871 
     872  #ifdef _usingEP 
    815873  MPI_Barrier_local(client->intraComm); 
    816    
     874  #endif 
     875 
    817876  if(my_rank_loc==0) 
    818877  { 
    819     info(100)<<"rank "<< my_rank <<" create weight info file"<< std::endl; 
     878    #pragma omp critical (_output) 
     879    { 
     880      info(100)<<"rank "<< my_rank <<" create weight info file"<< std::endl; 
     881    } 
    820882     
    821883    WriteNetCdf my_writer(filename, client->intraComm);   
    822     info(100)<<"rank "<< my_rank <<" file created"<< std::endl; 
     884    #pragma omp critical (_output) 
     885    { 
     886      info(100)<<"rank "<< my_rank <<" file created"<< std::endl; 
     887    } 
    823888    netCdfWriter = &my_writer;  
    824889   
     
    827892    netCdfWriter->addDimensionWrite("n_dst", n_dst); 
    828893    netCdfWriter->addDimensionWrite("n_weight", globalNbWeight); 
    829     info(100)<<"rank "<< my_rank <<" addDimensionWrite : n_src, n_dst, n_weight"<< std::endl; 
     894    #pragma omp critical (_output) 
     895    { 
     896      info(100)<<"rank "<< my_rank <<" addDimensionWrite : n_src, n_dst, n_weight"<< std::endl; 
     897    } 
    830898   
    831899    std::vector<StdString> dims(1,"n_weight"); 
     
    836904    netCdfWriter->addVariableWrite("weight", NC_DOUBLE, dims); 
    837905     
    838     info(100)<<"rank "<< my_rank <<" addVariableWrite : src_idx, dst_idx, weight"<< std::endl; 
     906    #pragma omp critical (_output) 
     907    { 
     908      info(100)<<"rank "<< my_rank <<" addVariableWrite : src_idx, dst_idx, weight"<< std::endl; 
     909    } 
    839910 
    840911    // End of definition 
    841912    netCdfWriter->endDefinition(); 
    842     info(100)<<"rank "<< my_rank <<" endDefinition"<< std::endl; 
     913    #pragma omp critical (_output) 
     914    { 
     915      info(100)<<"rank "<< my_rank <<" endDefinition"<< std::endl; 
     916    } 
    843917   
    844918    netCdfWriter->closeFile(); 
    845     info(100)<<"rank "<< my_rank <<" file closed"<< std::endl; 
    846   } 
    847    
     919    #pragma omp critical (_output) 
     920    { 
     921      info(100)<<"rank "<< my_rank <<" file closed"<< std::endl; 
     922    } 
     923  } 
     924   
     925  #ifdef _usingEP 
    848926  MPI_Barrier_local(client->intraComm); 
     927  #endif 
    849928   
    850929  #pragma omp critical (write_weight_data) 
    851930  { 
    852931    // open file 
    853     info(100)<<"rank "<< my_rank <<" writing in weight info file"<< std::endl; 
     932    #pragma omp critical (_output) 
     933    { 
     934      info(100)<<"rank "<< my_rank <<" writing in weight info file"<< std::endl; 
     935    } 
    854936     
    855937    WriteNetCdf my_writer(filename, true, client->intraComm);   
    856     info(100)<<"rank "<< my_rank <<" file opened"<< std::endl; 
     938    #pragma omp critical (_output) 
     939    { 
     940      info(100)<<"rank "<< my_rank <<" file opened"<< std::endl; 
     941    } 
    857942    netCdfWriter = &my_writer;  
    858943     
     
    864949      netCdfWriter->writeDataIndex(weights, "weight", false, 0, &start, &count); 
    865950       
    866       info(100)<<"rank "<< my_rank <<" WriteDataIndex : src_idx, dst_idx, weight"<< std::endl; 
     951      #pragma omp critical (_output) 
     952      { 
     953        info(100)<<"rank "<< my_rank <<" WriteDataIndex : src_idx, dst_idx, weight"<< std::endl; 
     954      } 
    867955    } 
    868956     
    869957    netCdfWriter->closeFile(); 
    870     info(100)<<"rank "<< my_rank <<" file closed"<< std::endl; 
     958    #pragma omp critical (_output) 
     959    { 
     960      info(100)<<"rank "<< my_rank <<" file closed"<< std::endl; 
     961    } 
    871962     
    872963  } 
    873964   
     965  #ifdef _usingEP 
    874966  MPI_Barrier_local(client->intraComm); 
    875    
    876  
    877 } 
     967  #endif 
     968   
     969 
     970} 
     971CATCH 
    878972 
    879973/*! 
     
    885979void CDomainAlgorithmInterpolate::readInterpolationInfo(std::string& filename, 
    886980                                                        std::map<int,std::vector<std::pair<int,double> > >& interpMapValue) 
     981TRY 
    887982{ 
    888983  int ncid ; 
     
    9461041  } 
    9471042} 
     1043CATCH 
    9481044 
    9491045void CDomainAlgorithmInterpolate::apply(const std::vector<std::pair<int,double> >& localIndex, 
     
    9521048                                            std::vector<bool>& flagInitial, 
    9531049                                            bool ignoreMissingValue, bool firstPass  ) 
     1050TRY 
    9541051{ 
    9551052  int nbLocalIndex = localIndex.size();    
     
    9931090  } 
    9941091} 
     1092CATCH 
    9951093 
    9961094void CDomainAlgorithmInterpolate::updateData(CArray<double,1>& dataOut) 
     1095TRY 
    9971096{ 
    9981097  if (detectMissingValue) 
     
    10011100    size_t nbIndex=dataOut.numElements() ;  
    10021101 
    1003     for (int idx = 0; idx < nbIndex; ++idx) 
    1004     { 
    1005       if (allMissing(idx)) dataOut(idx) = defaultValue; // If all data source are nan then data destination must be nan 
     1102    if (allMissing.numElements()>0) 
     1103    { 
     1104      for (int idx = 0; idx < nbIndex; ++idx) 
     1105      { 
     1106        if (allMissing(idx)) dataOut(idx) = defaultValue; // If all data source are nan then data destination must be nan 
     1107      } 
    10061108    } 
    10071109     
     
    10131115  } 
    10141116} 
    1015  
    1016 } 
     1117CATCH 
     1118 
     1119} 
  • XIOS/dev/dev_trunk_omp/src/transformation/domain_algorithm_reorder.cpp

    r1457 r1646  
    1919                                                             std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2020                                                             std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     21TRY 
    2122{ 
    2223  std::vector<CDomain*> domainListDestP = gridDst->getDomains(); 
     
    2930  return (new CDomainAlgorithmReorder(domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], reorderDomain)); 
    3031} 
     32CATCH 
    3133 
    3234bool CDomainAlgorithmReorder::registerTrans() 
     35TRY 
    3336{ 
    3437  CGridTransformationFactory<CDomain>::registerTransformation(TRANS_REORDER_DOMAIN, create); 
    3538} 
     39CATCH 
    3640 
    3741CDomainAlgorithmReorder::CDomainAlgorithmReorder(CDomain* domainDestination, CDomain* domainSource, CReorderDomain* reorderDomain) 
    3842: CDomainAlgorithmTransformation(domainDestination, domainSource) 
     43TRY 
    3944{ 
    4045  reorderDomain->checkValid(domainSource); 
     
    109114    } 
    110115  } 
    111      
    112    
    113116} 
     117CATCH 
    114118 
    115119/*! 
  • XIOS/dev/dev_trunk_omp/src/transformation/domain_algorithm_transformation.cpp

    r1403 r1646  
    3636                                                                int elementType, 
    3737                                                                CClientClientDHTInt::Index2VectorInfoTypeMap& globalDomainIndexOnProc) 
     38TRY 
    3839{ 
    3940  CContext* context = CContext::getCurrent(); 
     
    6566  globalDomainIndexOnProc = dhtIndexProcRank.getInfoIndexMap(); 
    6667} 
     68CATCH 
    6769 
    6870} 
  • XIOS/dev/dev_trunk_omp/src/transformation/domain_algorithm_zoom.cpp

    r1630 r1646  
    1616                                                             std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    1717                                                             std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     18TRY 
    1819{ 
    1920  std::vector<CDomain*> domainListDestP = gridDst->getDomains(); 
     
    2627  return (new CDomainAlgorithmZoom(domainListDestP[domainDstIndex], domainListSrcP[domainSrcIndex], zoomDomain)); 
    2728} 
     29CATCH 
    2830 
    2931bool CDomainAlgorithmZoom::registerTrans() 
     32TRY 
    3033{ 
    3134  CGridTransformationFactory<CDomain>::registerTransformation(TRANS_ZOOM_DOMAIN, create); 
    3235} 
     36CATCH 
    3337 
    3438CDomainAlgorithmZoom::CDomainAlgorithmZoom(CDomain* domainDestination, CDomain* domainSource, CZoomDomain* zoomDomain) 
    3539: CDomainAlgorithmTransformation(domainDestination, domainSource) 
     40TRY 
    3641{ 
    3742  zoomDomain->checkValid(domainSource); 
     
    9398  domainDest_->ni.setValue(niDest); 
    9499  domainDest_->nj.setValue(njDest); 
    95   domainDest_->ibegin.setValue(ibeginDest); 
    96   domainDest_->jbegin.setValue(jbeginDest); 
     100  if ( (niDest==0) || (njDest==0)) 
     101  { 
     102    domainDest_->ibegin.setValue(0); 
     103    domainDest_->jbegin.setValue(0); 
     104  } 
     105  else 
     106  { 
     107    domainDest_->ibegin.setValue(ibeginDest); 
     108    domainDest_->jbegin.setValue(jbeginDest); 
     109  } 
    97110  domainDest_->i_index.resize(niDest*njDest); 
    98111  domainDest_->j_index.resize(niDest*njDest); 
     
    100113  domainDest_->data_ni.setValue(niDest); 
    101114  domainDest_->data_nj.setValue(njDest); 
    102   domainDest_->data_ibegin.setValue(0);  // local position 
    103   domainDest_->data_jbegin.setValue(0);  // local position 
    104   domainDest_->data_i_index.resize(niDest*njDest); // local position 
    105   domainDest_->data_j_index.resize(niDest*njDest); // local position 
     115  domainDest_->data_ibegin.setValue(0); 
     116  domainDest_->data_jbegin.setValue(0); 
     117  domainDest_->data_i_index.resize(niDest*njDest); 
     118  domainDest_->data_j_index.resize(niDest*njDest); 
    106119 
    107120  domainDest_->domainMask.resize(niDest*njDest); 
     
    259272    } 
    260273  } 
    261  
    262 } 
     274  domainDest_->computeLocalMask(); 
     275} 
     276CATCH 
    263277 
    264278/*! 
  • XIOS/dev/dev_trunk_omp/src/transformation/generic_algorithm_transformation.cpp

    r1601 r1646  
    3434                                            std::vector<bool>& flagInitial, 
    3535                                            bool ignoreMissingValue, bool firstPass  ) 
     36TRY 
    3637{ 
    3738  int nbLocalIndex = localIndex.size();    
     
    6162  } 
    6263} 
     64CATCH 
    6365 
    6466void CGenericAlgorithmTransformation::computePositionElements(CGrid* dst, CGrid* src) 
     67TRY 
    6568{ 
    6669  int idxScalar = 0, idxAxis = 0, idxDomain = 0; 
     
    108111  } 
    109112} 
     113CATCH 
    110114 
    111115bool CGenericAlgorithmTransformation::isDistributedTransformation(int elementPositionInGrid, CGrid* gridSrc, CGrid* gridDst) 
     116TRY 
    112117{ 
    113118 
     
    147152  } 
    148153  return isDistributed_ ; 
    149  
     154} 
     155CATCH 
     156 
    150157/*! 
    151158  This function computes the global indexes of grid source, which the grid destination is in demand. 
     
    160167                                                               CGrid* gridDst, 
    161168                                                               SourceDestinationIndexMap& globaIndexWeightFromSrcToDst) 
     169TRY 
    162170 { 
    163171  CContext* context = CContext::getCurrent(); 
     
    443451  }   
    444452 } 
     453CATCH 
    445454 
    446455/*! 
     
    461470                                                                   std::vector<std::unordered_map<int,std::vector<size_t> > >& globalElementIndexOnProc, 
    462471                                                                   SourceDestinationIndexMap& globaIndexWeightFromSrcToDst) 
     472TRY 
    463473{ 
    464474  SourceDestinationIndexMap globaIndexWeightFromSrcToDst_tmp ; 
     
    640650       } 
    641651     } 
    642  
    643 } 
     652} 
     653CATCH 
    644654 
    645655/*! 
     
    654664                                                                 CArray<size_t,1>& destGlobalIndexPositionInGrid, 
    655665                                                                 std::unordered_map<int,std::vector<size_t> >& globalScalarIndexOnProc) 
     666TRY 
    656667{ 
    657668  CContext* context = CContext::getCurrent(); 
     
    666677  } 
    667678} 
     679CATCH 
    668680 
    669681/*! 
     
    678690                                                               CArray<size_t,1>& destGlobalIndexPositionInGrid, 
    679691                                                               std::unordered_map<int,std::vector<size_t> >& globalAxisIndexOnProc) 
     692TRY 
    680693{ 
    681694  CContext* context = CContext::getCurrent(); 
     
    735748  } 
    736749} 
     750CATCH 
    737751 
    738752/*! 
     
    747761                                                                 CArray<size_t,1>& destGlobalIndexPositionInGrid, 
    748762                                                                 std::unordered_map<int,std::vector<size_t> >& globalDomainIndexOnProc) 
     763TRY 
    749764{ 
    750765  CContext* context = CContext::getCurrent(); 
     
    838853  } 
    839854} 
    840  
    841  
    842  
    843  
    844  
     855CATCH 
    845856 
    846857void CGenericAlgorithmTransformation::computeTransformationMappingNonDistributed(int elementPositionInGrid, CGrid* gridSrc, CGrid* gridDst, 
    847                                                                                  vector<int>& localSrc, vector<int>& localDst, vector<double>& weight, vector<bool>& localMaskOnGridDest) 
     858                                                                                 vector<int>& localSrc, vector<int>& localDst, vector<double>& weight, 
     859                                                                                 int& nlocalIndexDest) 
     860TRY 
    848861{ 
    849862 
     
    871884     
    872885  int nlocalIndexSrc=1 ; 
    873   int nlocalIndexDest=1 ; 
     886//  int nlocalIndexDest=1 ; 
     887  nlocalIndexDest=1 ; 
    874888  CArray<bool,1> maskScalar(1) ; 
    875889  maskScalar  = true ; 
     
    933947    nlocalIndexDest=nlocalIndexDest*nIndexDst[i] ; 
    934948  } 
    935  
    936  
    937  
    938  
    939  
    940949 
    941950  vector<int> dstLocalInd ; 
     
    985994  } 
    986995 
    987 // just get the local src mask 
    988   CArray<bool,1> localMaskOnSrcGrid; 
    989   gridSrc->getLocalMask(localMaskOnSrcGrid) ; 
    990 // intermediate grid, mask is not initialized => set up mask to true 
    991   if (localMaskOnSrcGrid.isEmpty()) 
    992   { 
    993     localMaskOnSrcGrid.resize(nlocalIndexSrc) ; 
    994     localMaskOnSrcGrid=true ; 
    995   } 
    996    
    997  
    998   localMaskOnGridDest.resize(nlocalIndexDest,false) ; 
    999  
    1000996  vector<vector<vector<pair<int,double> > > > dstIndWeight(transformationMapping_.size()) ; 
    1001997    
     
    10241020   
    10251021  nonDistributedrecursiveFunct(nElement-1,true,elementPositionInGrid,maskSrc,maskDst, srcInd, srcIndCompressed, nIndexSrc, t, dstIndWeight,   
    1026                                currentInd,localSrc,localDst,weight, localMaskOnSrcGrid, localMaskOnGridDest ); 
     1022                               currentInd,localSrc,localDst,weight); 
    10271023                
    10281024} 
    1029  
    1030  
    1031 void CGenericAlgorithmTransformation::nonDistributedrecursiveFunct(int currentPos, bool masked, int elementPositionInGrid, vector< CArray<bool,1>* >& maskSrc, vector< CArray<bool,1>* >& maskDst, int& srcInd, int& srcIndCompressed, vector<int>& nIndexSrc, int& t, vector<vector<vector<pair<int,double> > > >& dstIndWeight, int currentInd, 
    1032                     vector<int>& localSrc, vector<int>& localDst, vector<double>& weight,  CArray<bool,1>& localMaskOnGridSrc, vector<bool>& localMaskOnGridDest ) 
     1025CATCH 
     1026 
     1027 
     1028void CGenericAlgorithmTransformation::nonDistributedrecursiveFunct(int currentPos, bool masked, int elementPositionInGrid, 
     1029                                                                   vector< CArray<bool,1>* >& maskSrc, vector< CArray<bool,1>* >& maskDst, 
     1030                                                                   int& srcInd, int& srcIndCompressed, vector<int>& nIndexSrc, 
     1031                                                                   int& t, vector<vector<vector<pair<int,double> > > >& dstIndWeight, int currentInd, 
     1032                                                                   vector<int>& localSrc, vector<int>& localDst, vector<double>& weight) 
     1033TRY 
    10331034{ 
    10341035  int masked_ ; 
     
    10431044        masked_=masked ; 
    10441045        if (!mask(i)) masked_=false ; 
    1045         nonDistributedrecursiveFunct(currentPos-1, masked_, elementPositionInGrid, maskSrc, maskDst, srcInd, srcIndCompressed, nIndexSrc, t, dstIndWeight, currentInd, localSrc, localDst, weight, localMaskOnGridSrc, localMaskOnGridDest) ; 
     1046        nonDistributedrecursiveFunct(currentPos-1, masked_, elementPositionInGrid, maskSrc, maskDst, srcInd, srcIndCompressed, nIndexSrc, t, 
     1047                                     dstIndWeight, currentInd, localSrc, localDst, weight); 
    10461048      } 
    10471049    } 
     
    10571059            for(vector<pair<int,double> >::iterator it = dstIndWeight[t][currentInd].begin(); it!=dstIndWeight[t][currentInd].end(); ++it) 
    10581060            { 
    1059               if (localMaskOnGridSrc(srcInd)) 
    1060               { 
    1061                 localSrc.push_back(srcIndCompressed) ; 
    1062                 localDst.push_back(it->first) ; 
    1063                 weight.push_back(it->second) ; 
    1064                 localMaskOnGridDest[it->first]=true ; 
    1065               } 
     1061              localSrc.push_back(srcIndCompressed) ; 
     1062              localDst.push_back(it->first) ; 
     1063              weight.push_back(it->second) ; 
    10661064              (it->first)++ ; 
    10671065            } 
    10681066          } 
    10691067          if (t < dstIndWeight.size()-1) t++ ; 
    1070           if (localMaskOnGridSrc(srcInd)) srcIndCompressed ++ ; 
     1068            srcIndCompressed ++ ; 
    10711069        } 
    10721070        srcInd++ ; 
     
    10861084        masked_=masked ; 
    10871085        if (!mask(i)) masked_=false ;  
    1088         nonDistributedrecursiveFunct(currentPos-1, masked_, elementPositionInGrid, maskSrc, maskDst, srcInd, srcIndCompressed, nIndexSrc, t, dstIndWeight , i,  localSrc, localDst, weight, localMaskOnGridSrc, localMaskOnGridDest) ; 
     1086        nonDistributedrecursiveFunct(currentPos-1, masked_, elementPositionInGrid, maskSrc, maskDst, srcInd, 
     1087                                     srcIndCompressed, nIndexSrc, t, dstIndWeight , i,  localSrc, localDst, weight); 
    10891088      } 
    10901089    } 
     
    11001099            for(vector<pair<int,double> >::iterator it = dstIndWeight[t][i].begin(); it!=dstIndWeight[t][i].end(); ++it) 
    11011100            { 
    1102               if (localMaskOnGridSrc(srcInd)) 
    1103               { 
    1104                 localSrc.push_back(srcIndCompressed) ; 
    1105                 localDst.push_back(it->first) ; 
    1106                 weight.push_back(it->second) ; 
    1107                 localMaskOnGridDest[it->first]=true ; 
    1108               } 
     1101              localSrc.push_back(srcIndCompressed) ; 
     1102              localDst.push_back(it->first) ; 
     1103              weight.push_back(it->second) ; 
    11091104              (it->first)++ ; 
    11101105            } 
    11111106           } 
    11121107          if (t < dstIndWeight.size()-1) t++ ; 
    1113           if (localMaskOnGridSrc(srcInd)) srcIndCompressed ++ ; 
     1108          srcIndCompressed ++ ; 
    11141109        } 
    11151110        srcInd++ ; 
     
    11191114 
    11201115} 
    1121  
    1122  
    1123  
    1124  
    1125  
    1126  
    1127  
    1128  
    1129  
    1130  
     1116CATCH 
    11311117 
    11321118/*! 
     
    11361122*/ 
    11371123void CGenericAlgorithmTransformation::computeIndexSourceMapping(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     1124TRY 
    11381125{ 
    11391126  computeIndexSourceMapping_(dataAuxInputs); 
    11401127} 
     1128CATCH 
    11411129 
    11421130std::vector<StdString> CGenericAlgorithmTransformation::getIdAuxInputs() 
     1131TRY 
    11431132{ 
    11441133  return idAuxInputs_; 
    11451134} 
     1135CATCH 
    11461136 
    11471137CGenericAlgorithmTransformation::AlgoTransType CGenericAlgorithmTransformation::type() 
     1138TRY 
    11481139{ 
    11491140  return type_; 
    11501141} 
    1151  
    1152 } 
     1142CATCH 
     1143 
     1144} 
  • XIOS/dev/dev_trunk_omp/src/transformation/generic_algorithm_transformation.hpp

    r1542 r1646  
    8888  void computeIndexSourceMapping(const std::vector<CArray<double,1>* >& dataAuxInputs = std::vector<CArray<double,1>* >()); 
    8989  void computeTransformationMappingNonDistributed(int elementPositionInGrid, CGrid* gridSrc, CGrid* gridDst, 
    90                                                   vector<int>& localSrc, vector<int>& localDst, vector<double>& weight, vector<bool>& localMaskOnGridDest); 
    91   void nonDistributedrecursiveFunct(int currentPos, bool masked, int elementPositionInGrid,  vector< CArray<bool,1>* >& maskSrc, vector< CArray<bool,1>* >& maskDst, int& srcInd, int& srcIndCompressed, vector<int>& nIndexSrc, int& t, vector<vector<vector<pair<int,double> > > >& dstIndWeight, int currentInd, 
    92                                      vector<int>& localSrc, vector<int>& localDst, vector<double>& weight, CArray<bool,1>& localMaskOnGridSrc, vector<bool>& localMaskOnGridDest) ; 
     90                                                  vector<int>& localSrc, vector<int>& localDst, vector<double>& weight, int& nbLocalIndexOnGridDest); 
     91  void nonDistributedrecursiveFunct(int currentPos, bool masked, int elementPositionInGrid,  vector< CArray<bool,1>* >& maskSrc, vector< CArray<bool,1>* >& maskDst, 
     92                                    int& srcInd, int& srcIndCompressed, vector<int>& nIndexSrc, 
     93                                    int& t, vector<vector<vector<pair<int,double> > > >& dstIndWeight, int currentInd, 
     94                                    vector<int>& localSrc, vector<int>& localDst, vector<double>& weight) ; 
    9395 
    9496protected: 
  • XIOS/dev/dev_trunk_omp/src/transformation/grid_generate.cpp

    r978 r1646  
    3030*/ 
    3131void CGridGenerate::selectScalarAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder) 
     32TRY 
    3233{ 
    3334  CGenericAlgorithmTransformation* algo = 0; 
    3435  algoTransformation_.push_back(algo); 
    3536} 
     37CATCH 
    3638 
    3739/*! 
     
    4345*/ 
    4446void CGridGenerate::selectAxisAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder) 
     47TRY 
    4548{ 
    4649  CGenericAlgorithmTransformation* algo = 0; 
    4750  algoTransformation_.push_back(algo); 
    4851} 
     52CATCH 
    4953 
    5054/*! 
     
    5660*/ 
    5761void CGridGenerate::selectDomainAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder) 
     62TRY 
    5863{ 
    5964  std::vector<CDomain*> domainListDestP = gridDestination_->getDomains(); 
     
    8994  algoTransformation_.push_back(algo); 
    9095} 
     96CATCH 
    9197 
    9298/*! 
     
    94100*/ 
    95101void CGridGenerate::completeGrid() 
     102TRY 
    96103{ 
    97104  ListAlgoType::const_iterator itb = listAlgos_.begin(), 
     
    110117  } 
    111118} 
     119CATCH 
    112120 
    113121} 
  • XIOS/dev/dev_trunk_omp/src/transformation/grid_transformation.cpp

    r1601 r1646  
    3838*/ 
    3939void CGridTransformation::selectScalarAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder) 
     40TRY 
    4041{ 
    4142  std::vector<CScalar*> scaListDestP = gridDestination_->getScalars(); 
     
    5960  algoTransformation_.push_back(algo); 
    6061} 
     62CATCH 
    6163 
    6264/*! 
     
    6769*/ 
    6870void CGridTransformation::selectAxisAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder) 
     71TRY 
    6972{ 
    7073  std::vector<CAxis*> axisListDestP = gridDestination_->getAxis(); 
     
    8891  algoTransformation_.push_back(algo); 
    8992} 
     93CATCH 
    9094 
    9195/*! 
     
    96100*/ 
    97101void CGridTransformation::selectDomainAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder) 
     102TRY 
    98103{ 
    99104  std::vector<CDomain*> domainListDestP = gridDestination_->getDomains(); 
     
    117122  algoTransformation_.push_back(algo); 
    118123} 
     124CATCH 
    119125 
    120126/*! 
     
    123129*/ 
    124130std::map<int,std::pair<int,int> > CGridTransformation::getElementPosition(CGrid* grid) 
     131TRY 
    125132{ 
    126133  std::vector<CScalar*> scalarListP = grid->getScalars();  
     
    155162  return elementPosition;   
    156163} 
     164CATCH 
    157165 
    158166/*! 
     
    163171*/ 
    164172void CGridTransformation::setUpGridDestination(int elementPositionInGrid, ETranformationType transType) 
     173TRY 
    165174{ 
    166175  if (isSpecialTransformation(transType)) return; 
     
    240249  tempGridDests_.push_back(tmpGridDestination_); 
    241250} 
     251CATCH 
    242252 
    243253/*! 
     
    249259*/ 
    250260void CGridTransformation::setUpGridSource(int elementPositionInGrid) 
     261TRY 
    251262{ 
    252263  if (!tempGridSrcs_.empty() && (getNbAlgo()-1) == tempGridSrcs_.size()) 
     
    326337  tempGridSrcs_.push_back(gridSource_); 
    327338} 
     339CATCH 
    328340 
    329341/*! 
     
    336348*/ 
    337349void CGridTransformation::computeAll(const std::vector<CArray<double,1>* >& dataAuxInputs, Time timeStamp) 
     350TRY 
    338351{ 
    339352  if (nbNormalAlgos_ < 1) return; 
     
    346359      std::list<RecvIndexGridDestinationMap>().swap(localIndexToReceiveOnGridDest_); 
    347360      std::list<size_t>().swap(nbLocalIndexOnGridDest_); 
    348       std::list<std::vector<bool> >().swap(localMaskOnGridDest_); 
    349361    } 
    350362    else 
     
    399411        vector<int> localDst ; 
    400412        vector<double> weight ; 
    401         localMaskOnGridDest_.push_back(vector<bool>()) ; 
     413        int nbLocalIndexOnGridDest; 
    402414        CTimer::get("computeTransformationMappingNonDistributed").resume();   
    403415        algo->computeTransformationMappingNonDistributed(elementPosition, gridSource_, tmpGridDestination_,  
    404                                                          localSrc, localDst, weight, localMaskOnGridDest_.back()) ; 
     416                                                         localSrc, localDst, weight, nbLocalIndexOnGridDest) ; 
    405417        CTimer::get("computeTransformationMappingNonDistributed").suspend();   
    406418 
    407419        CTimer::get("computeTransformationMappingConvert").resume();   
    408         nbLocalIndexOnGridDest_.push_back(localMaskOnGridDest_.back().size()) ; 
     420        nbLocalIndexOnGridDest_.push_back(nbLocalIndexOnGridDest) ; 
    409421        int clientRank=client->clientRank ; 
    410422        { 
     
    453465  } 
    454466} 
     467CATCH 
    455468 
    456469/*! 
     
    459472*/ 
    460473void CGridTransformation::computeTransformationMapping(const SourceDestinationIndexMap& globaIndexWeightFromSrcToDst) 
     474TRY 
    461475{ 
    462476  CContext* context = CContext::getCurrent(); 
     
    472486  size_t nbLocalIndex = globalLocalIndexGridDestSendToServer.size(); 
    473487  nbLocalIndexOnGridDest_.push_back(nbLocalIndex); 
    474   localMaskOnGridDest_.push_back(std::vector<bool>()); 
    475   std::vector<bool>& tmpMask = localMaskOnGridDest_.back(); 
    476   tmpMask.resize(nbLocalIndex,false); 
     488//  localMaskOnGridDest_.push_back(std::vector<bool>()); 
     489//  std::vector<bool>& tmpMask = localMaskOnGridDest_.back(); 
     490//  tmpMask.resize(nbLocalIndex,false); 
    477491 
    478492  // Find out number of index sent from grid source and number of index received on grid destination 
     
    653667        recvTmp[recvRank][realRecvSize].first = globalLocalIndexGridDestSendToServer[recvIndexDst(idx)]; 
    654668        recvTmp[recvRank][realRecvSize].second = recvWeightDst(idx); 
    655         tmpMask[globalLocalIndexGridDestSendToServer[recvIndexDst(idx)]] = true; 
    656669         ++realRecvSize; 
    657670      } 
     
    678691 
    679692} 
     693CATCH 
    680694 
    681695/*! 
     
    684698*/ 
    685699const std::list<CGridTransformation::SendingIndexGridSourceMap>& CGridTransformation::getLocalIndexToSendFromGridSource() const 
     700TRY 
    686701{ 
    687702  return localIndexToSendFromGridSource_; 
    688703} 
     704CATCH 
    689705 
    690706/*! 
     
    693709*/ 
    694710const std::list<CGridTransformation::RecvIndexGridDestinationMap>& CGridTransformation::getLocalIndexToReceiveOnGridDest() const 
     711TRY 
    695712{ 
    696713  return localIndexToReceiveOnGridDest_; 
    697714} 
     715CATCH 
    698716 
    699717/*! 
     
    702720*/ 
    703721const std::list<size_t>& CGridTransformation::getNbLocalIndexToReceiveOnGridDest() const 
     722TRY 
    704723{ 
    705724  return nbLocalIndexOnGridDest_; 
    706725} 
    707  
    708 /*! 
    709   Local mask of data which will be received on the grid destination 
    710   \return local mask of data 
    711 */ 
    712 const std::list<std::vector<bool> >& CGridTransformation::getLocalMaskIndexOnGridDest() const 
    713 { 
    714   return localMaskOnGridDest_; 
    715 } 
    716  
    717 } 
     726CATCH 
     727 
     728} 
  • XIOS/dev/dev_trunk_omp/src/transformation/grid_transformation.hpp

    r1601 r1646  
    5050  const std::list<RecvIndexGridDestinationMap>& getLocalIndexToReceiveOnGridDest() const; 
    5151  const std::list<size_t>& getNbLocalIndexToReceiveOnGridDest() const; 
    52   const std::list<std::vector<bool> >& getLocalMaskIndexOnGridDest() const; 
    5352 
    5453  CGrid* getGridSource() { return originalGridSource_; } 
     
    8584  //! Number of local index of data to receive on grid destination 
    8685  std::list<size_t> nbLocalIndexOnGridDest_; 
    87   std::list<std::vector<bool> > localMaskOnGridDest_; 
    8886 
    8987  bool dynamicalTransformation_; 
  • XIOS/dev/dev_trunk_omp/src/transformation/grid_transformation_selector.cpp

    r1601 r1646  
    1010#include "grid.hpp" 
    1111#include "algo_types.hpp" 
     12#ifdef _usingEP 
    1213using namespace ep_lib; 
     14#endif 
    1315 
    1416namespace xios { 
     
    4850 : gridSource_(source), gridDestination_(destination), isSameGrid_(false), 
    4951  listAlgos_(), algoTypes_(), nbNormalAlgos_(0), nbSpecialAlgos_(0), auxInputs_() 
     52TRY 
    5053{ 
    5154  if (0 == source) 
     
    6366  initializeTransformations(type); 
    6467} 
     68CATCH 
    6569 
    6670/*! 
     
    7175*/ 
    7276void CGridTransformationSelector::initializeTransformations(TransformationType type) 
     77TRY 
    7378{ 
    7479  // Initialize algorithms 
     
    101106  } 
    102107} 
     108CATCH 
    103109 
    104110CGridTransformationSelector::~CGridTransformationSelector() 
     111TRY 
    105112{ 
    106113  std::vector<CGenericAlgorithmTransformation*>::const_iterator itb = algoTransformation_.begin(), it, 
     
    108115  for (it = itb; it != ite; ++it) delete (*it); 
    109116} 
     117CATCH 
    110118 
    111119/*! 
     
    113121*/ 
    114122void CGridTransformationSelector::updateElementPosition() 
     123TRY 
    115124{ 
    116125  int idxScalar = 0, idxAxis = 0, idxDomain = 0; 
     
    164173  } 
    165174} 
     175CATCH 
    166176 
    167177/*! 
     
    169179*/ 
    170180void CGridTransformationSelector::initializeAlgorithms() 
     181TRY 
    171182{ 
    172183  updateElementPosition(); 
     
    189200  } 
    190201} 
     202CATCH 
    191203 
    192204/*! 
     
    198210*/ 
    199211void CGridTransformationSelector::initializeScalarAlgorithms(int scalarPositionInGrid) 
     212TRY 
    200213{ 
    201214  std::vector<CScalar*> scalarListDestP = gridDestination_->getScalars(); 
     
    230243  } 
    231244} 
     245CATCH 
    232246 
    233247/*! 
     
    239253*/ 
    240254void CGridTransformationSelector::initializeAxisAlgorithms(int axisPositionInGrid) 
     255TRY 
    241256{ 
    242257  std::vector<CAxis*> axisListDestP = gridDestination_->getAxis(); 
     
    271286  } 
    272287} 
     288CATCH 
    273289 
    274290/*! 
     
    279295*/ 
    280296void CGridTransformationSelector::initializeDomainAlgorithms(int domPositionInGrid) 
     297TRY 
    281298{ 
    282299  std::vector<CDomain*> domListDestP = gridDestination_->getDomains(); 
     
    310327    } 
    311328  } 
    312  
    313 } 
     329} 
     330CATCH 
    314331 
    315332/*! 
     
    322339*/ 
    323340void CGridTransformationSelector::selectAlgo(int elementPositionInGrid, ETranformationType transType, int transformationOrder, int algoType) 
     341TRY 
    324342{ 
    325343  updateElementPosition(); 
     
    339357  } 
    340358} 
     359CATCH 
    341360 
    342361bool CGridTransformationSelector::isSpecialTransformation(ETranformationType transType) 
     362TRY 
    343363{ 
    344364  bool res = false; 
     
    354374  return res; 
    355375} 
    356  
    357 } 
     376CATCH 
     377 
     378} 
  • XIOS/dev/dev_trunk_omp/src/transformation/scalar_algorithm_extract_axis.cpp

    r1601 r1646  
    2626                                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2727                                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     28TRY 
    2829{ 
    2930  std::vector<CScalar*> scalarListDestP = gridDst->getScalars(); 
     
    3637  return (new CScalarAlgorithmExtractAxis(scalarListDestP[scalarDstIndex], axisListSrcP[axisSrcIndex], extractAxis)); 
    3738} 
     39CATCH 
    3840 
    3941bool CScalarAlgorithmExtractAxis::registerTrans() 
     42TRY 
    4043{ 
    4144  CGridTransformationFactory<CScalar>::registerTransformation(TRANS_EXTRACT_AXIS_TO_SCALAR, create); 
    4245} 
     46CATCH 
    4347 
    4448CScalarAlgorithmExtractAxis::CScalarAlgorithmExtractAxis(CScalar* scalarDestination, CAxis* axisSource, CExtractAxisToScalar* algo) 
    4549 : CScalarAlgorithmTransformation(scalarDestination, axisSource), 
    4650   reduction_(0) 
     51TRY 
    4752{ 
    4853  algo->checkValid(scalarDestination, axisSource); 
     
    5560  reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 
    5661} 
     62CATCH 
    5763 
    5864void CScalarAlgorithmExtractAxis::apply(const std::vector<std::pair<int,double> >& localIndex, 
     
    6167                                         std::vector<bool>& flagInitial,                      
    6268                                         bool ignoreMissingValue, bool firstPass) 
     69TRY 
    6370{ 
    6471  reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 
    6572} 
     73CATCH 
    6674 
    6775CScalarAlgorithmExtractAxis::~CScalarAlgorithmExtractAxis() 
     76TRY 
    6877{ 
    6978  if (0 != reduction_) delete reduction_; 
    7079} 
     80CATCH 
    7181 
    7282void CScalarAlgorithmExtractAxis::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     83TRY 
    7384{ 
    7485  this->transformationMapping_.resize(1); 
     
    8192  transWeight[0].push_back(1.0); 
    8293} 
     94CATCH 
    8395 
    8496} 
  • XIOS/dev/dev_trunk_omp/src/transformation/scalar_algorithm_reduce_axis.cpp

    r1601 r1646  
    2626                                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2727                                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     28TRY 
    2829{ 
    2930  std::vector<CScalar*> scalarListDestP = gridDst->getScalars(); 
     
    3637  return (new CScalarAlgorithmReduceAxis(scalarListDestP[scalarDstIndex], axisListSrcP[axisSrcIndex], reduceAxis)); 
    3738} 
     39CATCH 
    3840 
    3941bool CScalarAlgorithmReduceAxis::registerTrans() 
     42TRY 
    4043{ 
    4144  CGridTransformationFactory<CScalar>::registerTransformation(TRANS_REDUCE_AXIS_TO_SCALAR, create); 
    4245} 
     46CATCH 
    4347 
    4448CScalarAlgorithmReduceAxis::CScalarAlgorithmReduceAxis(CScalar* scalarDestination, CAxis* axisSource, CReduceAxisToScalar* algo) 
    4549 : CScalarAlgorithmTransformation(scalarDestination, axisSource), 
    4650   reduction_(0) 
     51TRY 
    4752{ 
    4853  if (algo->operation.isEmpty()) 
     
    8792  reduction_ = CReductionAlgorithm::createOperation((*CReductionAlgorithm::ReductionOperations_ptr)[op]); 
    8893} 
     94CATCH 
    8995 
    9096void CScalarAlgorithmReduceAxis::apply(const std::vector<std::pair<int,double> >& localIndex, const double* dataInput, CArray<double,1>& dataOut, 
    9197                                         std::vector<bool>& flagInitial, bool ignoreMissingValue, bool firstPass) 
     98TRY 
    9299{ 
    93100  reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 
    94101} 
     102CATCH 
    95103 
    96104void CScalarAlgorithmReduceAxis::updateData(CArray<double,1>& dataOut) 
     105TRY 
    97106{ 
    98107  reduction_->updateData(dataOut); 
    99108} 
     109CATCH 
    100110 
    101111CScalarAlgorithmReduceAxis::~CScalarAlgorithmReduceAxis() 
     112TRY 
    102113{ 
    103114  if (0 != reduction_) delete reduction_; 
    104115} 
     116CATCH 
    105117 
    106118void CScalarAlgorithmReduceAxis::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     119TRY 
    107120{ 
    108121  this->transformationMapping_.resize(1); 
     
    120133  } 
    121134} 
     135CATCH 
    122136 
    123137} 
  • XIOS/dev/dev_trunk_omp/src/transformation/scalar_algorithm_reduce_domain.cpp

    r1601 r1646  
    2525                                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2626                                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     27TRY 
    2728{ 
    2829  std::vector<CScalar*> scalarListDestP = gridDst->getScalars(); 
     
    3536  return (new CScalarAlgorithmReduceDomain(scalarListDestP[scalarDstIndex], domainListSrcP[domainSrcIndex], reduceDomain)); 
    3637} 
     38CATCH 
    3739 
    3840bool CScalarAlgorithmReduceDomain::registerTrans() 
     41TRY 
    3942{ 
    4043  CGridTransformationFactory<CScalar>::registerTransformation(TRANS_REDUCE_DOMAIN_TO_SCALAR, create); 
    4144} 
     45CATCH 
    4246 
    4347CScalarAlgorithmReduceDomain::CScalarAlgorithmReduceDomain(CScalar* scalarDestination, CDomain* domainSource, CReduceDomainToScalar* algo) 
    4448 : CScalarAlgorithmTransformation(scalarDestination, domainSource), 
    4549   reduction_(0) 
     50TRY 
    4651{ 
    4752  algo->checkValid(scalarDestination, domainSource); 
     
    8388  local = algo->local ; 
    8489} 
     90CATCH 
    8591 
    8692void CScalarAlgorithmReduceDomain::apply(const std::vector<std::pair<int,double> >& localIndex, 
     
    8995                                         std::vector<bool>& flagInitial,                      
    9096                                         bool ignoreMissingValue, bool firstPass) 
     97TRY 
    9198{ 
    9299  reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 
    93100} 
     101CATCH 
    94102 
    95103void CScalarAlgorithmReduceDomain::updateData(CArray<double,1>& dataOut) 
     104TRY 
    96105{ 
    97106  reduction_->updateData(dataOut); 
    98107} 
     108CATCH 
    99109 
    100110CScalarAlgorithmReduceDomain::~CScalarAlgorithmReduceDomain() 
     111TRY 
    101112{ 
    102113  if (0 != reduction_) delete reduction_; 
    103114} 
     115CATCH 
    104116 
    105117void CScalarAlgorithmReduceDomain::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     118TRY 
    106119{ 
    107120  this->transformationMapping_.resize(1); 
     
    140153   
    141154} 
     155CATCH 
    142156 
    143157} 
  • XIOS/dev/dev_trunk_omp/src/transformation/scalar_algorithm_reduce_scalar.cpp

    r1601 r1646  
    2222                                                                     std::map<int, int>& elementPositionInGridDst2AxisPosition, 
    2323                                                                     std::map<int, int>& elementPositionInGridDst2DomainPosition) 
     24TRY 
    2425{ 
    2526  std::vector<CScalar*> scalarListDestP = gridDst->getScalars(); 
     
    3233  return (new CScalarAlgorithmReduceScalar(scalarListDestP[scalarDstIndex], scalarListSrcP[scalarSrcIndex], reduceScalar)); 
    3334} 
     35CATCH 
    3436 
    3537bool CScalarAlgorithmReduceScalar::registerTrans() 
     38TRY 
    3639{ 
    3740  CGridTransformationFactory<CScalar>::registerTransformation(TRANS_REDUCE_SCALAR_TO_SCALAR, create); 
    3841} 
     42CATCH 
    3943 
    4044CScalarAlgorithmReduceScalar::CScalarAlgorithmReduceScalar(CScalar* scalarDestination, CScalar* scalarSource, CReduceScalarToScalar* algo) 
    4145 : CScalarAlgorithmTransformation(scalarDestination, scalarSource), 
    4246   reduction_(0) 
     47TRY 
    4348{ 
    4449  eliminateRedondantSrc_= false ; 
     
    8489  reduction_ = CReductionAlgorithm::createOperation(CReductionAlgorithm::ReductionOperations_ptr->at(op)); 
    8590} 
     91CATCH 
    8692 
    8793void CScalarAlgorithmReduceScalar::apply(const std::vector<std::pair<int,double> >& localIndex, const double* dataInput, CArray<double,1>& dataOut, 
    8894                                         std::vector<bool>& flagInitial, bool ignoreMissingValue, bool firstPass) 
     95TRY 
    8996{ 
    9097  reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 
    9198} 
     99CATCH 
    92100 
    93101void CScalarAlgorithmReduceScalar::updateData(CArray<double,1>& dataOut) 
     102TRY 
    94103{ 
    95104  reduction_->updateData(dataOut); 
    96105} 
     106CATCH 
    97107 
    98108CScalarAlgorithmReduceScalar::~CScalarAlgorithmReduceScalar() 
     109TRY 
    99110{ 
    100111  if (0 != reduction_) delete reduction_; 
    101112} 
     113CATCH 
    102114 
    103115void CScalarAlgorithmReduceScalar::computeIndexSourceMapping_(const std::vector<CArray<double,1>* >& dataAuxInputs) 
     116TRY 
    104117{ 
    105118  this->transformationMapping_.resize(1); 
     
    113126 
    114127} 
     128CATCH 
    115129 
    116130} 
  • XIOS/dev/dev_trunk_omp/src/transformation/scalar_algorithm_transformation.cpp

    r1403 r1646  
    5757                                                                int elementSourceType, 
    5858                                                                CClientClientDHTInt::Index2VectorInfoTypeMap& globalIndexElementSourceOnProc) 
     59TRY 
    5960{ 
    6061  CContext* context = CContext::getCurrent(); 
     
    121122  } 
    122123} 
    123  
     124CATCH 
    124125} 
Note: See TracChangeset for help on using the changeset viewer.