Ignore:
Timestamp:
10/06/22 12:50:04 (21 months ago)
Author:
jderouillat
Message:

Backport commits [1977, 2181, 2200-2202, 2250, 2252] related to UGRID in XIOS3 beta

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS3/branches/xios-3.0-beta/src/io/nc4_data_output.cpp

    r2395 r2417  
    492492      std::vector<StdString> dim0; 
    493493      StdString domainName = domain->name; 
    494       domain->assignMesh(domainName, domain->nvertex); 
    495       domain->mesh->createMeshEpsilon(context->intraComm_, domain->lonvalue, domain->latvalue, domain->bounds_lonvalue, domain->bounds_latvalue); 
    496494 
    497495      StdString node_x = domainName + "_node_x"; 
     
    609607                SuperClassWriter::addAttribute("edge_coordinates", edge_x + " " + edge_y, &domainName); 
    610608                SuperClassWriter::addAttribute("edge_node_connectivity", edge_nodes, &domainName); 
     609                SuperClassWriter::addAttribute("face_edge_connectivity", face_edges, &domainName); 
     610                SuperClassWriter::addAttribute("edge_face_connectivity", edge_faces, &domainName); 
    611611                SuperClassWriter::addDimension(dimEdge, domain->mesh->nbEdgesGlo); 
    612612                dim0.clear(); 
     
    628628                SuperClassWriter::addAttribute("start_index", 0, &edge_nodes); 
    629629              } 
     630              SuperClassWriter::addAttribute("face_face_connectivity", face_faces, &domainName); 
    630631              SuperClassWriter::addAttribute("face_coordinates", face_x + " " + face_y, &domainName); 
    631632              SuperClassWriter::addAttribute("face_node_connectivity", face_nodes, &domainName); 
     
    661662              dim0.push_back(dimTwo); 
    662663              SuperClassWriter::addVariable(edge_faces, NC_INT, dim0, compressionLevel); 
    663               SuperClassWriter::addAttribute("cf_role", StdString("edge_face connectivity"), &edge_faces); 
     664              SuperClassWriter::addAttribute("cf_role", StdString("edge_face_connectivity"), &edge_faces); 
    664665              SuperClassWriter::addAttribute("long_name", StdString("neighbor faces for edges"), &edge_faces); 
    665666              SuperClassWriter::addAttribute("start_index", 0, &edge_faces); 
     
    670671              dim0.push_back(dimVertex); 
    671672              SuperClassWriter::addVariable(face_faces, NC_INT, dim0, compressionLevel); 
    672               SuperClassWriter::addAttribute("cf_role", StdString("face_face connectivity"), &face_faces); 
     673              SuperClassWriter::addAttribute("cf_role", StdString("face_face_connectivity"), &face_faces); 
    673674              SuperClassWriter::addAttribute("long_name", StdString("Indicates which other faces neighbor each face"), &face_faces); 
    674675              SuperClassWriter::addAttribute("start_index", 0, &face_faces); 
     
    729730                 startNodes[0] = domain->mesh->node_start; 
    730731                 countNodes[0] = domain->mesh->node_count; 
     732                 if (countNodes[0]==0) startNodes[0]=0 ; // for netcdf error 
    731733                 startEdgeNodes[0] = domain->ibegin; 
    732734                 startEdgeNodes[1] = 0; 
     
    765767                 startNodes[0] = domain->mesh->node_start; 
    766768                 countNodes[0] = domain->mesh->node_count; 
     769                 if (countNodes[0]==0) startNodes[0]=0; 
     770 
    767771                 startEdges[0] = domain->mesh->edge_start; 
    768772                 countEdges[0] = domain->mesh->edge_count; 
     773                 if (countEdges[0]==0) startEdges[0]=0 ; // for netcdf error 
     774 
    769775                 startEdgeNodes[0] = domain->mesh->edge_start; 
     776                 countEdgeNodes[0] = domain->mesh->edge_count; 
     777                 if (countEdgeNodes[0]==0) startEdgeNodes[0]=0; // for netcdf error 
    770778                 startEdgeNodes[1] = 0; 
    771                  countEdgeNodes[0] = domain->mesh->edge_count; 
    772779                 countEdgeNodes[1]= 2; 
     780                  
    773781                 startEdgeFaces[0] = domain->mesh->edge_start; 
     782                 countEdgeFaces[0] = domain->mesh->edge_count; 
     783                 if (countEdgeFaces[0]==0) startEdgeFaces[0]=0 ; // for netcdf error 
    774784                 startEdgeFaces[1]= 0; 
    775                  countEdgeFaces[0] = domain->mesh->edge_count; 
    776785                 countEdgeFaces[1]= 2; 
     786                  
    777787                 startFaceConctv[0] = domain->ibegin; 
     788                 countFaceConctv[0] = domain->ni; 
    778789                 startFaceConctv[1] = 0; 
    779                  countFaceConctv[0] = domain->ni; 
    780790                 countFaceConctv[1] = domain->nvertex; 
    781791               } 
Note: See TracChangeset for help on using the changeset viewer.