- Timestamp:
- 04/08/16 15:00:29 (8 years ago)
- Location:
- XIOS/trunk/src
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/client_client_dht_template.hpp
r833 r835 39 39 public: 40 40 CClientClientDHTTemplate(const Index2InfoTypeMap& indexInfoInitMap, 41 const MPI_Comm& clientIntraComm, 42 int hierarLvl = 2); 41 const MPI_Comm& clientIntraComm); 43 42 44 43 void computeIndexInfoMapping(const CArray<size_t,1>& indices); -
XIOS/trunk/src/client_client_dht_template_impl.hpp
r833 r835 23 23 template<typename T, typename H> 24 24 CClientClientDHTTemplate<T,H>::CClientClientDHTTemplate(const boost::unordered_map<size_t,T>& indexInfoMap, 25 const MPI_Comm& clientIntraComm, 26 int hierarLvl) 25 const MPI_Comm& clientIntraComm) 27 26 : H(clientIntraComm), index2InfoMapping_(), indexToInfoMappingLevel_() 28 27 { -
XIOS/trunk/src/client_server_mapping_distributed.cpp
r829 r835 22 22 { 23 23 ccDHT_ = new CClientClientDHTInt(globalIndexOfServer, 24 clientIntraComm, 25 isDataDistributed); 24 clientIntraComm); 26 25 } 27 26 … … 39 38 ccDHT_->computeIndexInfoMapping(globalIndexOnClient); 40 39 const boost::unordered_map<size_t,int>& infoIndexMap = (ccDHT_->getInfoIndexMap()); 41 // indexGlobalOnServer_ = (ccDHT_->getInfoIndexMap());42 40 boost::unordered_map<size_t,int>::const_iterator it = infoIndexMap.begin(), ite = infoIndexMap.end(); 43 41 for (; it != ite; ++it) -
XIOS/trunk/src/client_server_mapping_distributed.hpp
r829 r835 35 35 /** Default constructor */ 36 36 CClientServerMappingDistributed(const boost::unordered_map<size_t,int>& globalIndexOfServer, 37 const MPI_Comm& clientIntraComm, bool isDataDistributed = true); 37 const MPI_Comm& clientIntraComm, 38 bool isDataDistributed = true); 38 39 39 40 virtual void computeServerIndexMapping(const CArray<size_t,1>& globalIndexOnClientSendToServer); -
XIOS/trunk/src/interface/c/icxml_tree.cpp
r591 r835 310 310 } 311 311 312 void cxios_xml_tree_add_axistogrid 313 (XGridPtr parent_, XAxisPtr * child_, const char * child_id, int child_id_size) 314 { 315 std::string child_id_str; 316 CTimer::get("XIOS").resume() ; 317 if (cstr2string(child_id, child_id_size, child_id_str)) 318 { 319 *child_ = parent_->addAxis(child_id_str); 320 } 321 else 322 { 323 *child_ = parent_->addAxis(); 324 } 325 CTimer::get("XIOS").suspend() ; 326 } 327 328 void cxios_xml_tree_add_domaintogrid 329 (XGridPtr parent_, XDomainPtr * child_, const char * child_id, int child_id_size) 330 { 331 std::string child_id_str; 332 CTimer::get("XIOS").resume() ; 333 if (cstr2string(child_id, child_id_size, child_id_str)) 334 { 335 *child_ = parent_->addDomain(child_id_str); 336 } 337 else 338 { 339 *child_ = parent_->addDomain(); 340 } 341 CTimer::get("XIOS").suspend() ; 342 } 312 343 313 344 // ----------------------- Affichage de l'arborescence ---------------------- -
XIOS/trunk/src/interface/fortran/ixios_interfaces.F90
r786 r835 83 83 xios(add_axisgroup), xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), & 84 84 xios(add_domaingroup), xios(add_fieldgrouptofile), xios(add_variablegrouptofile), & 85 xios(add_variablegrouptofield) 85 xios(add_variablegrouptofield), xios(add_axistogrid), xios(add_domaintogrid) 86 86 87 87 PRIVATE … … 135 135 xios(add_fieldtofile), xios(add_variabletofile), xios(add_variabletofield), xios(add_axisgroup), & 136 136 xios(add_filegroup), xios(add_gridgroup), xios(add_fieldgroup), xios(add_domaingroup), & 137 xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield) 137 xios(add_fieldgrouptofile), xios(add_variablegrouptofile),xios(add_variablegrouptofield), & 138 xios(add_axistogrid), xios(add_domaintogrid) 138 139 END INTERFACE xios(add_child) 139 140 -
XIOS/trunk/src/interface/fortran/ixml_tree.F90
r501 r835 9 9 USE IDOMAIN 10 10 USE IVARIABLE 11 11 12 12 INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99 13 13 14 14 SUBROUTINE cxios_xml_tree_add_field(parent_, child_, child_id, child_id_size) BIND(C) 15 15 USE ISO_C_BINDING … … 19 19 INTEGER (kind = C_INT) , VALUE :: child_id_size 20 20 END SUBROUTINE cxios_xml_tree_add_field 21 21 22 22 SUBROUTINE cxios_xml_tree_add_grid(parent_, child_, child_id, child_id_size) BIND(C) 23 23 USE ISO_C_BINDING … … 27 27 INTEGER (kind = C_INT) , VALUE :: child_id_size 28 28 END SUBROUTINE cxios_xml_tree_add_grid 29 29 30 30 SUBROUTINE cxios_xml_tree_add_file(parent_, child_, child_id, child_id_size) BIND(C) 31 31 USE ISO_C_BINDING … … 35 35 INTEGER (kind = C_INT) , VALUE :: child_id_size 36 36 END SUBROUTINE cxios_xml_tree_add_file 37 37 38 38 SUBROUTINE cxios_xml_tree_add_axis(parent_, child_, child_id, child_id_size) BIND(C) 39 39 USE ISO_C_BINDING … … 43 43 INTEGER (kind = C_INT) , VALUE :: child_id_size 44 44 END SUBROUTINE cxios_xml_tree_add_axis 45 45 46 46 SUBROUTINE cxios_xml_tree_add_domain(parent_, child_, child_id, child_id_size) BIND(C) 47 47 USE ISO_C_BINDING … … 51 51 INTEGER (kind = C_INT) , VALUE :: child_id_size 52 52 END SUBROUTINE cxios_xml_tree_add_domain 53 53 54 54 SUBROUTINE cxios_xml_tree_add_fieldtofile(parent_, child_, child_id, child_id_size) BIND(C) 55 55 USE ISO_C_BINDING … … 117 117 INTEGER (kind = C_INT) , VALUE :: child_id_size 118 118 END SUBROUTINE cxios_xml_tree_add_domaingroup 119 119 120 120 SUBROUTINE cxios_xml_tree_add_fieldgrouptofile(parent_, child_, child_id, child_id_size) BIND(C) 121 121 USE ISO_C_BINDING … … 124 124 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id 125 125 INTEGER (kind = C_INT) , VALUE :: child_id_size 126 END SUBROUTINE cxios_xml_tree_add_fieldgrouptofile 126 END SUBROUTINE cxios_xml_tree_add_fieldgrouptofile 127 127 128 128 SUBROUTINE cxios_xml_tree_add_variablegrouptofile(parent_, child_, child_id, child_id_size) BIND(C) … … 132 132 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id 133 133 INTEGER (kind = C_INT) , VALUE :: child_id_size 134 END SUBROUTINE cxios_xml_tree_add_variablegrouptofile 134 END SUBROUTINE cxios_xml_tree_add_variablegrouptofile 135 135 136 136 SUBROUTINE cxios_xml_tree_add_variablegrouptofield(parent_, child_, child_id, child_id_size) BIND(C) … … 140 140 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id 141 141 INTEGER (kind = C_INT) , VALUE :: child_id_size 142 END SUBROUTINE cxios_xml_tree_add_variablegrouptofield 142 END SUBROUTINE cxios_xml_tree_add_variablegrouptofield 143 144 SUBROUTINE cxios_xml_tree_add_axistogrid(parent_, child_, child_id, child_id_size) BIND(C) 145 USE ISO_C_BINDING 146 INTEGER (kind = C_INTPTR_T), VALUE :: parent_ 147 INTEGER (kind = C_INTPTR_T) :: child_ 148 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id 149 INTEGER (kind = C_INT) , VALUE :: child_id_size 150 END SUBROUTINE cxios_xml_tree_add_axistogrid 151 152 SUBROUTINE cxios_xml_tree_add_domaintogrid(parent_, child_, child_id, child_id_size) BIND(C) 153 USE ISO_C_BINDING 154 INTEGER (kind = C_INTPTR_T), VALUE :: parent_ 155 INTEGER (kind = C_INTPTR_T) :: child_ 156 CHARACTER(kind = C_CHAR) , DIMENSION(*) :: child_id 157 INTEGER (kind = C_INT) , VALUE :: child_id_size 158 END SUBROUTINE cxios_xml_tree_add_domaintogrid 143 159 144 160 SUBROUTINE cxios_xml_tree_show(filename, filename_size) BIND(C) … … 159 175 INTEGER (kind = C_INT) , VALUE :: xmlcontent_size 160 176 END SUBROUTINE cxios_xml_parse_string 161 177 162 178 END INTERFACE 163 179 164 180 165 181 CONTAINS ! Fonctions disponibles pour les utilisateurs. 166 182 … … 178 194 179 195 END SUBROUTINE xios(add_axis) 180 196 181 197 SUBROUTINE xios(add_file)(parent_hdl, child_hdl, child_id) 182 198 TYPE(txios(filegroup)) , INTENT(IN) :: parent_hdl … … 191 207 192 208 END SUBROUTINE xios(add_file) 193 209 194 210 SUBROUTINE xios(add_grid)(parent_hdl, child_hdl, child_id) 195 211 TYPE(txios(gridgroup)) , INTENT(IN) :: parent_hdl … … 203 219 204 220 END SUBROUTINE xios(add_grid) 205 206 221 222 207 223 SUBROUTINE xios(add_field)(parent_hdl, child_hdl, child_id) 208 224 TYPE(txios(fieldgroup)) , INTENT(IN) :: parent_hdl … … 217 233 218 234 END SUBROUTINE xios(add_field) 219 220 235 236 221 237 SUBROUTINE xios(add_domain)(parent_hdl, child_hdl, child_id) 222 238 TYPE(txios(domaingroup)) , INTENT(IN) :: parent_hdl … … 231 247 232 248 END SUBROUTINE xios(add_domain) 233 249 234 250 SUBROUTINE xios(add_fieldtofile)(parent_hdl, child_hdl, child_id) 235 251 TYPE(txios(file)) , INTENT(IN) :: parent_hdl … … 309 325 CALL cxios_xml_tree_add_gridgroup(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 310 326 END IF 311 327 312 328 END SUBROUTINE xios(add_gridgroup) 313 329 … … 374 390 END IF 375 391 376 END SUBROUTINE xios(add_variablegrouptofield) 377 392 END SUBROUTINE xios(add_variablegrouptofield) 393 394 SUBROUTINE xios(add_axistogrid)(parent_hdl, child_hdl, child_id) 395 TYPE(txios(grid)) , INTENT(IN) :: parent_hdl 396 TYPE(txios(axis)) , INTENT(OUT):: child_hdl 397 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id 398 399 IF (PRESENT(child_id)) THEN 400 CALL cxios_xml_tree_add_axistogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 401 ELSE 402 CALL cxios_xml_tree_add_axistogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 403 END IF 404 405 END SUBROUTINE xios(add_axistogrid) 406 407 SUBROUTINE xios(add_domaintogrid)(parent_hdl, child_hdl, child_id) 408 TYPE(txios(grid)) , INTENT(IN) :: parent_hdl 409 TYPE(txios(domain)) , INTENT(OUT):: child_hdl 410 CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id 411 412 IF (PRESENT(child_id)) THEN 413 CALL cxios_xml_tree_add_domaintogrid(parent_hdl%daddr, child_hdl%daddr, child_id, len(child_id)) 414 ELSE 415 CALL cxios_xml_tree_add_domaintogrid(parent_hdl%daddr, child_hdl%daddr, "NONE", -1) 416 END IF 417 418 END SUBROUTINE xios(add_domaintogrid) 378 419 END MODULE IXML_TREE -
XIOS/trunk/src/node/grid.cpp
r834 r835 32 32 , transformations_(0), isTransformed_(false) 33 33 , axisPositionInGrid_(), positionDimensionDistributed_(1), hasDomainAxisBaseRef_(false) 34 , gridSrc_(), hasTransform_(false) 34 , gridSrc_(), hasTransform_(false), order_() 35 35 { 36 36 setVirtualDomainGroup(); … … 47 47 , transformations_(0), isTransformed_(false) 48 48 , axisPositionInGrid_(), positionDimensionDistributed_(1), hasDomainAxisBaseRef_(false) 49 , gridSrc_(), hasTransform_(false) 49 , gridSrc_(), hasTransform_(false), order_() 50 50 { 51 51 setVirtualDomainGroup(); … … 1145 1145 CDomain* CGrid::addDomain(const std::string& id) 1146 1146 { 1147 order_.push_back(true); 1148 axis_domain_order.resize(order_.size()); 1149 for (int idx = 0; idx < order_.size(); ++idx) axis_domain_order(idx)=order_[idx]; 1147 1150 return vDomainGroup_->createChild(id); 1148 1151 } … … 1150 1153 CAxis* CGrid::addAxis(const std::string& id) 1151 1154 { 1155 order_.push_back(false); 1156 axis_domain_order.resize(order_.size()); 1157 for (int idx = 0; idx < order_.size(); ++idx) axis_domain_order(idx)=order_[idx]; 1152 1158 return vAxisGroup_->createChild(id); 1153 1159 } … … 1539 1545 SuperClass::parse(node); 1540 1546 1541 // List order of axis and domain in a grid, if there is a domain, it will take value 1 (true), axis 0 (false)1542 std::vector<bool> order;1543 1544 1547 if (node.goToChildElement()) 1545 1548 { … … 1549 1552 { 1550 1553 if (node.getElementName() == domainName) { 1551 order .push_back(true);1554 order_.push_back(true); 1552 1555 this->getVirtualDomainGroup()->parseChild(node); 1553 1556 } 1554 1557 if (node.getElementName() == axisName) { 1555 order .push_back(false);1558 order_.push_back(false); 1556 1559 this->getVirtualAxisGroup()->parseChild(node); 1557 1560 } … … 1560 1563 } 1561 1564 1562 if (!order .empty())1563 { 1564 int sizeOrd = order .size();1565 if (!order_.empty()) 1566 { 1567 int sizeOrd = order_.size(); 1565 1568 axis_domain_order.resize(sizeOrd); 1566 1569 for (int i = 0; i < sizeOrd; ++i) 1567 1570 { 1568 axis_domain_order(i) = order [i];1571 axis_domain_order(i) = order_[i]; 1569 1572 } 1570 1573 } -
XIOS/trunk/src/node/grid.hpp
r834 r835 148 148 void solveDomainAxisBaseRef(); 149 149 150 CDomain* addDomain(const std::string& id=StdString()); 151 CAxis* addAxis(const std::string& id=StdString()); 150 152 void sendAddDomain(const std::string& id=""); 151 153 void sendAddAxis(const std::string& id=""); … … 236 238 void setDomainList(const std::vector<CDomain*> domains = std::vector<CDomain*>()); 237 239 238 CDomain* addDomain(const std::string& id);239 CAxis* addAxis(const std::string& id);240 241 240 CAxisGroup* getVirtualAxisGroup() const; 242 241 CDomainGroup* getVirtualDomainGroup() const; … … 275 274 std::map<CGrid*, std::pair<bool,StdString> > gridSrc_; 276 275 bool hasTransform_; 276 // List order of axis and domain in a grid, if there is a domain, it will take value 1 (true), axis 0 (false) 277 std::vector<bool> order_; 277 278 }; // class CGrid 278 279
Note: See TracChangeset
for help on using the changeset viewer.