Changeset 777 for XIOS/trunk
- Timestamp:
- 11/02/15 11:46:35 (8 years ago)
- Location:
- XIOS/trunk/src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/declare_ref_func.hpp
r775 r777 19 19 C##type* getDirect##type##Reference(void) const; \ 20 20 const StdString& get##type##OutputName(void) const; \ 21 void setAttributesBaseReference(bool apply = true); \ 21 void setAttributesReference(bool apply = true); \ 22 \ 23 private: \ 24 std::vector<C##type*> refObjects; \ 22 25 23 26 // Definitions … … 26 29 void C##type::solveRefInheritance(bool apply) \ 27 30 { \ 28 std::set<C##type*> refObjects;\31 std::set<C##type*> tmpRefObjects; \ 29 32 C##type* refer_ptr = this; \ 33 refObjects.push_back(this); \ 30 34 \ 31 35 while (refer_ptr->hasDirect##type##Reference()) \ 32 36 { \ 33 refObjects.insert(refer_ptr);\37 tmpRefObjects.insert(refer_ptr); \ 34 38 \ 35 39 refer_ptr = refer_ptr->getDirect##type##Reference(); \ 36 40 \ 37 if ( refObjects.end() != refObjects.find(refer_ptr))\41 if (tmpRefObjects.end() != tmpRefObjects.find(refer_ptr)) \ 38 42 { \ 39 43 ERROR("void C" #type "::solveRefInheritance(bool apply)", \ … … 42 46 } \ 43 47 \ 48 refObjects.push_back(refer_ptr); \ 44 49 SuperClassAttribute::setAttributes(refer_ptr, apply); \ 45 50 } \ 46 51 } \ 47 52 \ 48 void C##type::setAttributes BaseReference(bool apply)\53 void C##type::setAttributesReference(bool apply) \ 49 54 { \ 50 baseRefObject->setAttributes(this, apply); \ 55 for (int i = 1; i < refObjects.size(); ++i) \ 56 refObjects[i]->setAttributes(refObjects[0], apply); \ 51 57 } \ 52 58 \ -
XIOS/trunk/src/io/nc4_data_input.cpp
r775 r777 114 114 } 115 115 } 116 116 117 117 SuperClassWriter::getData(fieldData, fieldId, isCollective, field->getNStep() - 1, &start, &count); 118 118 break; … … 133 133 void CNc4DataInput::readFieldAttributes_(CField* field, bool readAttributeValues) 134 134 { 135 StdString fieldId = !field->name.isEmpty() ? field->name.getValue() : field->getBaseFieldReference()->getId();135 StdString fieldId = field->getFieldOutputName(); 136 136 137 137 CGrid* grid = field->grid; -
XIOS/trunk/src/node/grid.cpp
r775 r777 212 212 for (size_t i = 0; i < axisList.size(); ++i) 213 213 { 214 axisList[i]->solveBaseReference(); 215 axisList[i]->setAttributesBaseReference(); 214 axisList[i]->setAttributesReference(); 216 215 } 217 216 … … 220 219 for (size_t i = 0; i < domList.size(); ++i) 221 220 { 222 domList[i]->solveBaseReference(); 223 domList[i]->setAttributesBaseReference(); 221 domList[i]->setAttributesReference(); 224 222 } 225 223 this->hasDomainAxisBaseRef_ = true; -
XIOS/trunk/src/object.cpp
r769 r777 53 53 this->id = id; 54 54 this->idDefined = true; 55 this->idAutoGenerated = false;55 this->idAutoGenerated = idAutoGenerated; 56 56 } 57 57
Note: See TracChangeset
for help on using the changeset viewer.