Changeset 2409 for XIOS3/trunk/src/node/mesh.cpp
- Timestamp:
- 10/04/22 14:04:11 (21 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS3/trunk/src/node/mesh.cpp
r2284 r2409 430 430 if (nvertex == 1) 431 431 { 432 if (nodesAreWritten) return ; 433 432 434 nbNodes_ = lonvalue.numElements(); 433 435 node_lon.resize(nbNodes_); … … 435 437 node_lon = lonvalue; 436 438 node_lat = latvalue; 439 440 unsigned long nodeCount = nbNodes_; 441 unsigned long nodeStart, nbNodes; 442 MPI_Scan(&nodeCount, &nodeStart, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 443 int nNodes = nodeStart; 444 MPI_Bcast(&nNodes, 1, MPI_UNSIGNED_LONG, mpiSize-1, comm); 445 nbNodesGlo = nNodes; 446 447 nodeStart -= nodeCount; 448 node_start = nodeStart; 449 node_count = nodeCount; 437 450 438 451 // Global node indexes … … 444 457 for (size_t nh = 0; nh < 4; ++nh) 445 458 { 446 nodeHash2IdxGlo[hashValues[nh]].push_back( mpiRank*nbNodes_+ nn);459 nodeHash2IdxGlo[hashValues[nh]].push_back(nodeStart + nn); 447 460 } 448 461 } … … 453 466 else if (nvertex == 2) 454 467 { 468 if (edgesAreWritten) return ; 469 455 470 nbEdges_ = bounds_lon.shape()[1]; 456 471 edge_lon.resize(nbEdges_); … … 463 478 unsigned long nbEdgesOnProc = nbEdges_; 464 479 unsigned long nbEdgesAccum; 480 unsigned long nbEdgesGlo; 465 481 MPI_Scan(&nbEdgesOnProc, &nbEdgesAccum, 1, MPI_UNSIGNED_LONG, MPI_SUM, comm); 482 nbEdgesGlo = nbEdgesAccum ; 483 MPI_Bcast(&nbEdgesGlo, 1, MPI_UNSIGNED_LONG, mpiSize-1, comm); 466 484 nbEdgesAccum -= nbEdges_; 485 edge_start = nbEdgesAccum ; 486 edge_count = nbEdgesOnProc ; 467 487 468 488 CClientClientDHTSizet::Index2VectorInfoTypeMap edgeHash2IdxGlo; … … 674 694 } //nvertex = 2 675 695 676 else 677 { 696 else // nvertex > 2 697 { 698 if (facesAreWritten) return ; 699 678 700 nbFaces_ = bounds_lon.shape()[1]; 679 701 face_lon.resize(nbFaces_);
Note: See TracChangeset
for help on using the changeset viewer.