Changeset 1261
- Timestamp:
- 09/12/17 09:45:29 (7 years ago)
- Location:
- XIOS/trunk/src
- Files:
-
- 24 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/filter/spatial_transform_filter.cpp
r1076 r1261 196 196 std::vector<bool> localInitFlag(dataCurrentDest.numElements(), true); 197 197 currentBuff = 0; 198 bool firstPass=true; 198 199 for (itRecv = itbRecv; itRecv != iteRecv; ++itRecv) 199 200 { … … 204 205 dataCurrentDest, 205 206 localInitFlag, 206 ignoreMissingValue );207 ignoreMissingValue,firstPass); 207 208 208 209 currentBuff += countSize; 210 firstPass=false ; 209 211 } 210 212 -
XIOS/trunk/src/transformation/Functions/average_reduction.cpp
r1154 r1261 31 31 CArray<double,1>& dataOut, 32 32 std::vector<bool>& flagInitial, 33 bool ignoreMissingValue )33 bool ignoreMissingValue, bool firstPass) 34 34 { 35 35 if (resetWeight_) { weights_.resize(flagInitial.size()); weights_ = 1.0; resetWeight_ = false; } … … 39 39 int nbLocalIndex = localIndex.size(); 40 40 int currentlocalIndex = 0; 41 double currentWeight = 0.0; 41 double currentWeight = 0.0; 42 43 if (firstPass) dataOut=std::numeric_limits<double>::quiet_NaN(); 42 44 43 45 for (int idx = 0; idx < nbLocalIndex; ++idx) … … 57 59 weights_(currentlocalIndex) += 1.0; 58 60 } 59 }60 else61 {62 if (flagInitial[currentlocalIndex])63 dataOut(currentlocalIndex) = std::numeric_limits<double>::quiet_NaN();64 61 } 65 62 } -
XIOS/trunk/src/transformation/Functions/average_reduction.hpp
r1076 r1261 27 27 CArray<double,1>& dataOut, 28 28 std::vector<bool>& flagInitial, 29 bool ignoreMissingValue );29 bool ignoreMissingValue, bool firstPass); 30 30 31 31 virtual void updateData(CArray<double,1>& dataOut); -
XIOS/trunk/src/transformation/Functions/extract.cpp
r1076 r1261 30 30 CArray<double,1>& dataOut, 31 31 std::vector<bool>& flagInitial, 32 bool ignoreMissingValue )32 bool ignoreMissingValue, bool firstPass) 33 33 { 34 34 int nbLocalIndex = localIndex.size(); -
XIOS/trunk/src/transformation/Functions/extract.hpp
r1076 r1261 27 27 CArray<double,1>& dataOut, 28 28 std::vector<bool>& flagInitial, 29 bool ignoreMissingValue );29 bool ignoreMissingValue, bool firstPass); 30 30 31 31 virtual ~CExtractReductionAlgorithm() {} -
XIOS/trunk/src/transformation/Functions/max_reduction.cpp
r1154 r1261 31 31 CArray<double,1>& dataOut, 32 32 std::vector<bool>& flagInitial, 33 bool ignoreMissingValue )33 bool ignoreMissingValue, bool firstPass) 34 34 { 35 35 if (ignoreMissingValue) 36 36 { 37 37 int nbLocalIndex = localIndex.size(); 38 int currentlocalIndex = 0; 38 int currentlocalIndex = 0; 39 if (firstPass) dataOut=std::numeric_limits<double>::quiet_NaN(); 39 40 for (int idx = 0; idx < nbLocalIndex; ++idx) 40 41 { … … 51 52 dataOut(currentlocalIndex) = std::max(*(dataInput + idx), dataOut(currentlocalIndex)); 52 53 } 53 }54 else55 {56 if (flagInitial[currentlocalIndex])57 dataOut(currentlocalIndex) = std::numeric_limits<double>::quiet_NaN();58 54 } 59 55 } -
XIOS/trunk/src/transformation/Functions/max_reduction.hpp
r1076 r1261 27 27 CArray<double,1>& dataOut, 28 28 std::vector<bool>& flagInitial, 29 bool ignoreMissingValue );29 bool ignoreMissingValue, bool firstPass); 30 30 31 31 virtual ~CMaxReductionAlgorithm() {} -
XIOS/trunk/src/transformation/Functions/min_reduction.cpp
r1154 r1261 31 31 CArray<double,1>& dataOut, 32 32 std::vector<bool>& flagInitial, 33 bool ignoreMissingValue )33 bool ignoreMissingValue, bool firstPass) 34 34 { 35 35 if (ignoreMissingValue) 36 36 { 37 37 int nbLocalIndex = localIndex.size(); 38 int currentlocalIndex = 0; 38 int currentlocalIndex = 0; 39 if (firstPass) dataOut=std::numeric_limits<double>::quiet_NaN(); 39 40 for (int idx = 0; idx < nbLocalIndex; ++idx) 40 41 { … … 51 52 dataOut(currentlocalIndex) = std::min(*(dataInput + idx), dataOut(currentlocalIndex)); 52 53 } 53 }54 else55 {56 if (flagInitial[currentlocalIndex])57 dataOut(currentlocalIndex) = std::numeric_limits<double>::quiet_NaN();58 54 } 59 55 } -
XIOS/trunk/src/transformation/Functions/min_reduction.hpp
r1076 r1261 27 27 CArray<double,1>& dataOut, 28 28 std::vector<bool>& flagInitial, 29 bool ignoreMissingValue );29 bool ignoreMissingValue, bool firstPass); 30 30 31 31 virtual ~CMinReductionAlgorithm() {} -
XIOS/trunk/src/transformation/Functions/reduction.hpp
r1076 r1261 41 41 \param [in/out] dataOut Array contains local data 42 42 \param [in/out] flagInitial vector of boolean to mark the local index already initialized. True means there is a need for initialization 43 \param [in] firstPass indicate if it is the first time the apply funtion is called for a same transformation, in order to make a clean initialization 43 44 */ 44 45 virtual void apply(const std::vector<std::pair<int,double> >& localIndex, … … 46 47 CArray<double,1>& dataOut, 47 48 std::vector<bool>& flagInitial, 48 bool ignoreMissingValue ) = 0;49 bool ignoreMissingValue, bool firstPass) = 0; 49 50 /*! 50 51 Update local data -
XIOS/trunk/src/transformation/Functions/sum_reduction.cpp
r1154 r1261 31 31 CArray<double,1>& dataOut, 32 32 std::vector<bool>& flagInitial, 33 bool ignoreMissingValue )33 bool ignoreMissingValue, bool firstPass) 34 34 { 35 35 if (ignoreMissingValue) 36 36 { 37 37 int nbLocalIndex = localIndex.size(); 38 int currentlocalIndex = 0; 38 int currentlocalIndex = 0; 39 40 if (firstPass) dataOut=std::numeric_limits<double>::quiet_NaN(); 39 41 40 42 for (int idx = 0; idx < nbLocalIndex; ++idx) … … 52 54 dataOut(currentlocalIndex) += *(dataInput + idx); 53 55 } 54 }55 else56 {57 if (flagInitial[currentlocalIndex])58 dataOut(currentlocalIndex) = std::numeric_limits<double>::quiet_NaN();59 56 } 60 57 } -
XIOS/trunk/src/transformation/Functions/sum_reduction.hpp
r1076 r1261 27 27 CArray<double,1>& dataOut, 28 28 std::vector<bool>& flagInitial, 29 bool ignoreMissingValue );29 bool ignoreMissingValue, bool firstPass); 30 30 31 31 virtual ~CSumReductionAlgorithm() {} -
XIOS/trunk/src/transformation/axis_algorithm_extract_domain.cpp
r1076 r1261 69 69 CArray<double,1>& dataOut, 70 70 std::vector<bool>& flagInitial, 71 bool ignoreMissingValue )71 bool ignoreMissingValue, bool firstPass) 72 72 { 73 reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue );73 reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 74 74 } 75 75 -
XIOS/trunk/src/transformation/axis_algorithm_extract_domain.hpp
r1076 r1261 34 34 CArray<double,1>& dataOut, 35 35 std::vector<bool>& flagInitial, 36 bool ignoreMissingValue );36 bool ignoreMissingValue, bool firstPass); 37 37 38 38 virtual ~CAxisAlgorithmExtractDomain(); -
XIOS/trunk/src/transformation/axis_algorithm_reduce_domain.cpp
r1076 r1261 77 77 CArray<double,1>& dataOut, 78 78 std::vector<bool>& flagInitial, 79 bool ignoreMissingValue )79 bool ignoreMissingValue, bool firstPass) 80 80 { 81 reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue );81 reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 82 82 } 83 83 … … 102 102 CArray<int,1>& axisDstIndex = axisDest_->index; 103 103 int ni_glo = domainSrc_->ni_glo, nj_glo = domainSrc_->nj_glo; 104 if ( jDir == dir_)104 if (iDir == dir_) 105 105 { 106 106 int nbAxisIdx = axisDstIndex.numElements(); … … 117 117 } 118 118 } 119 else if ( iDir == dir_)119 else if (jDir == dir_) 120 120 { 121 121 int nbAxisIdx = axisDstIndex.numElements(); -
XIOS/trunk/src/transformation/axis_algorithm_reduce_domain.hpp
r1076 r1261 33 33 CArray<double,1>& dataOut, 34 34 std::vector<bool>& flagInitial, 35 bool ignoreMissingValue );35 bool ignoreMissingValue, bool firstPass); 36 36 37 37 virtual void updateData(CArray<double,1>& dataOut); -
XIOS/trunk/src/transformation/generic_algorithm_transformation.cpp
r1154 r1261 30 30 CArray<double,1>& dataOut, 31 31 std::vector<bool>& flagInitial, 32 bool ignoreMissingValue )32 bool ignoreMissingValue, bool firstPass ) 33 33 { 34 34 int nbLocalIndex = localIndex.size(); -
XIOS/trunk/src/transformation/generic_algorithm_transformation.hpp
r1076 r1261 64 64 \param [in/out] flagInitial vector of boolean to mark the local index already initialized. True means there is a need for initalization 65 65 \param [in] ignoreMissingValue don't count missing value in operation if this flag is true 66 \param [in] firstPass indicate if it is the first time the apply funtion is called for a same transformation, in order to make a clean initialization 66 67 */ 67 68 virtual void apply(const std::vector<std::pair<int,double> >& localIndex, … … 69 70 CArray<double,1>& dataOut, 70 71 std::vector<bool>& flagInitial, 71 bool ignoreMissingValue );72 bool ignoreMissingValue, bool firstPass); 72 73 73 74 /*! -
XIOS/trunk/src/transformation/scalar_algorithm_extract_axis.cpp
r1076 r1261 56 56 CArray<double,1>& dataOut, 57 57 std::vector<bool>& flagInitial, 58 bool ignoreMissingValue )58 bool ignoreMissingValue, bool firstPass) 59 59 { 60 reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue );60 reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 61 61 } 62 62 -
XIOS/trunk/src/transformation/scalar_algorithm_extract_axis.hpp
r1076 r1261 33 33 CArray<double,1>& dataOut, 34 34 std::vector<bool>& flagInitial, 35 bool ignoreMissingValue );35 bool ignoreMissingValue, bool firstPass); 36 36 37 37 virtual ~CScalarAlgorithmExtractAxis(); -
XIOS/trunk/src/transformation/scalar_algorithm_reduce_axis.cpp
r1082 r1261 84 84 } 85 85 86 void CScalarAlgorithmReduceAxis::apply(const std::vector<std::pair<int,double> >& localIndex, 87 const double* dataInput, 88 CArray<double,1>& dataOut, 89 std::vector<bool>& flagInitial, 90 bool ignoreMissingValue) 86 void CScalarAlgorithmReduceAxis::apply(const std::vector<std::pair<int,double> >& localIndex, const double* dataInput, CArray<double,1>& dataOut, 87 std::vector<bool>& flagInitial, bool ignoreMissingValue, bool firstPass) 91 88 { 92 reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue );89 reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 93 90 } 94 91 -
XIOS/trunk/src/transformation/scalar_algorithm_reduce_axis.hpp
r1082 r1261 33 33 CArray<double,1>& dataOut, 34 34 std::vector<bool>& flagInitial, 35 bool ignoreMissingValue );35 bool ignoreMissingValue, bool firstPass); 36 36 37 37 virtual void updateData(CArray<double,1>& dataOut); -
XIOS/trunk/src/transformation/scalar_algorithm_reduce_domain.cpp
r1076 r1261 82 82 CArray<double,1>& dataOut, 83 83 std::vector<bool>& flagInitial, 84 bool ignoreMissingValue )84 bool ignoreMissingValue, bool firstPass) 85 85 { 86 reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue );86 reduction_->apply(localIndex, dataInput, dataOut, flagInitial, ignoreMissingValue, firstPass); 87 87 } 88 88 -
XIOS/trunk/src/transformation/scalar_algorithm_reduce_domain.hpp
r1076 r1261 33 33 CArray<double,1>& dataOut, 34 34 std::vector<bool>& flagInitial, 35 bool ignoreMissingValue );35 bool ignoreMissingValue, bool firstPass); 36 36 37 37 virtual void updateData(CArray<double,1>& dataOut);
Note: See TracChangeset
for help on using the changeset viewer.