Changeset 1456
- Timestamp:
- 03/12/18 18:40:28 (6 years ago)
- Location:
- XIOS/dev/XIOS_DEV_CMIP6/src/io
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/XIOS_DEV_CMIP6/src/io/nc4_data_output.cpp
r1446 r1456 23 23 { 24 24 SuperClass::type = MULTI_FILE; 25 compressionLevel= file->compression_level.isEmpty() ? 0 :file->compression_level ; 25 26 } 26 27 … … 36 37 { 37 38 SuperClass::type = (multifile) ? MULTI_FILE : ONE_FILE; 39 compressionLevel= file->compression_level.isEmpty() ? 0 :file->compression_level ; 38 40 } 39 41 … … 274 276 { 275 277 case CDomain::type_attr::curvilinear : 276 SuperClassWriter::addVariable(latid, typePrec, dim0 );277 SuperClassWriter::addVariable(lonid, typePrec, dim0 );278 SuperClassWriter::addVariable(latid, typePrec, dim0, compressionLevel); 279 SuperClassWriter::addVariable(lonid, typePrec, dim0, compressionLevel); 278 280 break ; 279 281 case CDomain::type_attr::rectilinear : 280 SuperClassWriter::addVariable(latid, typePrec, dim0 );281 SuperClassWriter::addVariable(lonid, typePrec, dim1 );282 SuperClassWriter::addVariable(latid, typePrec, dim0, compressionLevel); 283 SuperClassWriter::addVariable(lonid, typePrec, dim1, compressionLevel); 282 284 break ; 283 285 } … … 295 297 dim0.push_back(dimXid); 296 298 dim0.push_back(dimVertId); 297 SuperClassWriter::addVariable(bounds_lonid, typePrec, dim0 );298 SuperClassWriter::addVariable(bounds_latid, typePrec, dim0 );299 SuperClassWriter::addVariable(bounds_lonid, typePrec, dim0, compressionLevel); 300 SuperClassWriter::addVariable(bounds_latid, typePrec, dim0, compressionLevel); 299 301 } 300 302 } … … 321 323 if (domain->hasArea) 322 324 { 323 SuperClassWriter::addVariable(areaId, typePrec, dim0 );325 SuperClassWriter::addVariable(areaId, typePrec, dim0, compressionLevel); 324 326 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 325 327 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); … … 376 378 lonid = lonName+appendDomid; 377 379 latid = latName+appendDomid; 378 SuperClassWriter::addVariable(latid, typePrec, dim0 );379 SuperClassWriter::addVariable(lonid, typePrec, dim0 );380 SuperClassWriter::addVariable(latid, typePrec, dim0, compressionLevel); 381 SuperClassWriter::addVariable(lonid, typePrec, dim0, compressionLevel); 380 382 break; 381 383 … … 385 387 lonid = lonName+appendDomid; 386 388 latid = latName+appendDomid; 387 SuperClassWriter::addVariable(latid, typePrec, dim0 );388 SuperClassWriter::addVariable(lonid, typePrec, dim1 );389 SuperClassWriter::addVariable(latid, typePrec, dim0, compressionLevel); 390 SuperClassWriter::addVariable(lonid, typePrec, dim1, compressionLevel); 389 391 break; 390 392 } … … 408 410 dim0.push_back(dimXid); 409 411 dim0.push_back(dimVertId); 410 SuperClassWriter::addVariable(bounds_lonid, typePrec, dim0 );411 SuperClassWriter::addVariable(bounds_latid, typePrec, dim0 );412 SuperClassWriter::addVariable(bounds_lonid, typePrec, dim0, compressionLevel); 413 SuperClassWriter::addVariable(bounds_latid, typePrec, dim0, compressionLevel); 412 414 } 413 415 } … … 417 419 dim0.clear(); 418 420 dim0.push_back(dimYid); dim0.push_back(dimXid); 419 SuperClassWriter::addVariable(areaId, typePrec, dim0 );421 SuperClassWriter::addVariable(areaId, typePrec, dim0, compressionLevel); 420 422 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 421 423 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); … … 593 595 { 594 596 dim0.clear(); 595 SuperClassWriter::addVariable(domainName, NC_INT, dim0 );597 SuperClassWriter::addVariable(domainName, NC_INT, dim0, compressionLevel); 596 598 SuperClassWriter::addAttribute("cf_role", StdString("mesh_topology"), &domainName); 597 599 SuperClassWriter::addAttribute("long_name", StdString("Topology data of 2D unstructured mesh"), &domainName); … … 614 616 dim0.clear(); 615 617 dim0.push_back(dimNode); 616 SuperClassWriter::addVariable(node_x, typePrec, dim0 );618 SuperClassWriter::addVariable(node_x, typePrec, dim0, compressionLevel); 617 619 SuperClassWriter::addAttribute("standard_name", StdString("longitude"), &node_x); 618 620 SuperClassWriter::addAttribute("long_name", StdString("Longitude of mesh nodes."), &node_x); 619 621 SuperClassWriter::addAttribute("units", StdString("degrees_east"), &node_x); 620 SuperClassWriter::addVariable(node_y, typePrec, dim0 );622 SuperClassWriter::addVariable(node_y, typePrec, dim0, compressionLevel); 621 623 SuperClassWriter::addAttribute("standard_name", StdString("latitude"), &node_y); 622 624 SuperClassWriter::addAttribute("long_name", StdString("Latitude of mesh nodes."), &node_y); … … 633 635 dim0.clear(); 634 636 dim0.push_back(dimNode); 635 SuperClassWriter::addVariable(node_x, typePrec, dim0 );637 SuperClassWriter::addVariable(node_x, typePrec, dim0, compressionLevel); 636 638 SuperClassWriter::addAttribute("standard_name", StdString("longitude"), &node_x); 637 639 SuperClassWriter::addAttribute("long_name", StdString("Longitude of mesh nodes."), &node_x); 638 640 SuperClassWriter::addAttribute("units", StdString("degrees_east"), &node_x); 639 SuperClassWriter::addVariable(node_y, typePrec, dim0 );641 SuperClassWriter::addVariable(node_y, typePrec, dim0, compressionLevel); 640 642 SuperClassWriter::addAttribute("standard_name", StdString("latitude"), &node_y); 641 643 SuperClassWriter::addAttribute("long_name", StdString("Latitude of mesh nodes."), &node_y); … … 647 649 dim0.clear(); 648 650 dim0.push_back(dimEdge); 649 SuperClassWriter::addVariable(edge_x, typePrec, dim0 );651 SuperClassWriter::addVariable(edge_x, typePrec, dim0, compressionLevel); 650 652 SuperClassWriter::addAttribute("standard_name", StdString("longitude"), &edge_x); 651 653 SuperClassWriter::addAttribute("long_name", StdString("Characteristic longitude of mesh edges."), &edge_x); 652 654 SuperClassWriter::addAttribute("units", StdString("degrees_east"), &edge_x); 653 SuperClassWriter::addVariable(edge_y, typePrec, dim0 );655 SuperClassWriter::addVariable(edge_y, typePrec, dim0, compressionLevel); 654 656 SuperClassWriter::addAttribute("standard_name", StdString("latitude"), &edge_y); 655 657 SuperClassWriter::addAttribute("long_name", StdString("Characteristic latitude of mesh edges."), &edge_y); … … 658 660 dim0.push_back(dimEdge); 659 661 dim0.push_back(dimTwo); 660 SuperClassWriter::addVariable(edge_nodes, NC_INT, dim0 );662 SuperClassWriter::addVariable(edge_nodes, NC_INT, dim0, compressionLevel); 661 663 SuperClassWriter::addAttribute("cf_role", StdString("edge_node_connectivity"), &edge_nodes); 662 664 SuperClassWriter::addAttribute("long_name", StdString("Maps every edge/link to two nodes that it connects."), &edge_nodes); … … 673 675 dim0.clear(); 674 676 dim0.push_back(dimNode); 675 SuperClassWriter::addVariable(node_x, typePrec, dim0 );677 SuperClassWriter::addVariable(node_x, typePrec, dim0, compressionLevel); 676 678 SuperClassWriter::addAttribute("standard_name", StdString("longitude"), &node_x); 677 679 SuperClassWriter::addAttribute("long_name", StdString("Longitude of mesh nodes."), &node_x); 678 680 SuperClassWriter::addAttribute("units", StdString("degrees_east"), &node_x); 679 SuperClassWriter::addVariable(node_y, typePrec, dim0 );681 SuperClassWriter::addVariable(node_y, typePrec, dim0, compressionLevel); 680 682 SuperClassWriter::addAttribute("standard_name", StdString("latitude"), &node_y); 681 683 SuperClassWriter::addAttribute("long_name", StdString("Latitude of mesh nodes."), &node_y); … … 689 691 dim0.clear(); 690 692 dim0.push_back(dimEdge); 691 SuperClassWriter::addVariable(edge_x, typePrec, dim0 );693 SuperClassWriter::addVariable(edge_x, typePrec, dim0, compressionLevel); 692 694 SuperClassWriter::addAttribute("standard_name", StdString("longitude"), &edge_x); 693 695 SuperClassWriter::addAttribute("long_name", StdString("Characteristic longitude of mesh edges."), &edge_x); 694 696 SuperClassWriter::addAttribute("units", StdString("degrees_east"), &edge_x); 695 SuperClassWriter::addVariable(edge_y, typePrec, dim0 );697 SuperClassWriter::addVariable(edge_y, typePrec, dim0, compressionLevel); 696 698 SuperClassWriter::addAttribute("standard_name", StdString("latitude"), &edge_y); 697 699 SuperClassWriter::addAttribute("long_name", StdString("Characteristic latitude of mesh edges."), &edge_y); … … 700 702 dim0.push_back(dimEdge); 701 703 dim0.push_back(dimTwo); 702 SuperClassWriter::addVariable(edge_nodes, NC_INT, dim0 );704 SuperClassWriter::addVariable(edge_nodes, NC_INT, dim0, compressionLevel); 703 705 SuperClassWriter::addAttribute("cf_role", StdString("edge_node_connectivity"), &edge_nodes); 704 706 SuperClassWriter::addAttribute("long_name", StdString("Maps every edge/link to two nodes that it connects."), &edge_nodes); … … 711 713 dim0.clear(); 712 714 dim0.push_back(dimFace); 713 SuperClassWriter::addVariable(face_x, typePrec, dim0 );715 SuperClassWriter::addVariable(face_x, typePrec, dim0, compressionLevel); 714 716 SuperClassWriter::addAttribute("standard_name", StdString("longitude"), &face_x); 715 717 SuperClassWriter::addAttribute("long_name", StdString("Characteristic longitude of mesh faces."), &face_x); 716 718 SuperClassWriter::addAttribute("units", StdString("degrees_east"), &face_x); 717 SuperClassWriter::addVariable(face_y, typePrec, dim0 );719 SuperClassWriter::addVariable(face_y, typePrec, dim0, compressionLevel); 718 720 SuperClassWriter::addAttribute("standard_name", StdString("latitude"), &face_y); 719 721 SuperClassWriter::addAttribute("long_name", StdString("Characteristic latitude of mesh faces."), &face_y); … … 722 724 dim0.push_back(dimFace); 723 725 dim0.push_back(dimVertex); 724 SuperClassWriter::addVariable(face_nodes, NC_INT, dim0 );726 SuperClassWriter::addVariable(face_nodes, NC_INT, dim0, compressionLevel); 725 727 SuperClassWriter::addAttribute("cf_role", StdString("face_node_connectivity"), &face_nodes); 726 728 SuperClassWriter::addAttribute("long_name", StdString("Maps every face to its corner nodes."), &face_nodes); … … 729 731 dim0.push_back(dimFace); 730 732 dim0.push_back(dimVertex); 731 SuperClassWriter::addVariable(face_edges, NC_INT, dim0 );733 SuperClassWriter::addVariable(face_edges, NC_INT, dim0, compressionLevel); 732 734 SuperClassWriter::addAttribute("cf_role", StdString("face_edge_connectivity"), &face_edges); 733 735 SuperClassWriter::addAttribute("long_name", StdString("Maps every face to its edges."), &face_edges); … … 737 739 dim0.push_back(dimEdge); 738 740 dim0.push_back(dimTwo); 739 SuperClassWriter::addVariable(edge_faces, NC_INT, dim0 );741 SuperClassWriter::addVariable(edge_faces, NC_INT, dim0, compressionLevel); 740 742 SuperClassWriter::addAttribute("cf_role", StdString("edge_face connectivity"), &edge_faces); 741 743 SuperClassWriter::addAttribute("long_name", StdString("neighbor faces for edges"), &edge_faces); … … 746 748 dim0.push_back(dimFace); 747 749 dim0.push_back(dimVertex); 748 SuperClassWriter::addVariable(face_faces, NC_INT, dim0 );750 SuperClassWriter::addVariable(face_faces, NC_INT, dim0, compressionLevel); 749 751 SuperClassWriter::addAttribute("cf_role", StdString("face_face connectivity"), &face_faces); 750 752 SuperClassWriter::addAttribute("long_name", StdString("Indicates which other faces neighbor each face"), &face_faces); … … 1073 1075 if (domain->hasLonLat) 1074 1076 { 1075 SuperClassWriter::addVariable(latid, typePrec, dim0 );1076 SuperClassWriter::addVariable(lonid, typePrec, dim0 );1077 SuperClassWriter::addVariable(latid, typePrec, dim0, compressionLevel); 1078 SuperClassWriter::addVariable(lonid, typePrec, dim0, compressionLevel); 1077 1079 this->writeAxisAttributes(lonid, "", "longitude", "Longitude", "degrees_east", domid); 1078 1080 if (domain->hasBounds) SuperClassWriter::addAttribute("bounds",bounds_lonid, &lonid); … … 1086 1088 dim0.push_back(dimXid); 1087 1089 dim0.push_back(dimVertId); 1088 SuperClassWriter::addVariable(bounds_lonid, typePrec, dim0 );1089 SuperClassWriter::addVariable(bounds_latid, typePrec, dim0 );1090 SuperClassWriter::addVariable(bounds_lonid, typePrec, dim0, compressionLevel); 1091 SuperClassWriter::addVariable(bounds_latid, typePrec, dim0, compressionLevel); 1090 1092 } 1091 1093 … … 1094 1096 if (domain->hasArea) 1095 1097 { 1096 SuperClassWriter::addVariable(areaId, typePrec, dim0 );1098 SuperClassWriter::addVariable(areaId, typePrec, dim0, compressionLevel); 1097 1099 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 1098 1100 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); … … 1132 1134 if (domain->hasLonLat) 1133 1135 { 1134 SuperClassWriter::addVariable(latid, typePrec, dim0 );1135 SuperClassWriter::addVariable(lonid, typePrec, dim0 );1136 SuperClassWriter::addVariable(latid, typePrec, dim0, compressionLevel); 1137 SuperClassWriter::addVariable(lonid, typePrec, dim0, compressionLevel); 1136 1138 1137 1139 this->writeAxisAttributes(lonid, "", "longitude", "Longitude", "degrees_east", domid); … … 1147 1149 dim0.push_back(dimXid); 1148 1150 dim0.push_back(dimVertId); 1149 SuperClassWriter::addVariable(bounds_lonid, typePrec, dim0 );1150 SuperClassWriter::addVariable(bounds_latid, typePrec, dim0 );1151 SuperClassWriter::addVariable(bounds_lonid, typePrec, dim0, compressionLevel); 1152 SuperClassWriter::addVariable(bounds_latid, typePrec, dim0, compressionLevel); 1151 1153 } 1152 1154 … … 1155 1157 dim0.clear(); 1156 1158 dim0.push_back(dimXid); 1157 SuperClassWriter::addVariable(areaId, typePrec, dim0 );1159 SuperClassWriter::addVariable(areaId, typePrec, dim0, compressionLevel); 1158 1160 SuperClassWriter::addAttribute("standard_name", StdString("cell_area"), &areaId); 1159 1161 SuperClassWriter::addAttribute("units", StdString("m2"), &areaId); … … 1264 1266 if (!axis->label.isEmpty()) dims.push_back(strId); 1265 1267 1266 SuperClassWriter::addVariable(axisid, typePrec, dims );1268 SuperClassWriter::addVariable(axisid, typePrec, dims, compressionLevel); 1267 1269 1268 1270 if (!axis->name.isEmpty()) … … 1314 1316 { 1315 1317 dims.push_back("axis_nbounds"); 1316 SuperClassWriter::addVariable(axisBoundsId, typePrec, dims );1318 SuperClassWriter::addVariable(axisBoundsId, typePrec, dims, compressionLevel); 1317 1319 SuperClassWriter::addAttribute("bounds", axisBoundsId, &axisid); 1318 1320 -
XIOS/dev/XIOS_DEV_CMIP6/src/io/nc4_data_output.hpp
r1158 r1456 41 41 bool singleDomain ; 42 42 bool isCollective ; 43 int compressionLevel ; 43 44 44 45 CFile* file; -
XIOS/dev/XIOS_DEV_CMIP6/src/io/onetcdf4.cpp
r1201 r1456 308 308 309 309 int CONetCDF4::addVariable(const StdString& name, nc_type type, 310 const std::vector<StdString>& dim )310 const std::vector<StdString>& dim, int compressionLevel) 311 311 { 312 312 int varid = 0; … … 350 350 } 351 351 352 setCompressionLevel(name, compressionLevel) ; 353 352 354 return varid; 353 355 } -
XIOS/dev/XIOS_DEV_CMIP6/src/io/onetcdf4.hpp
r1158 r1456 49 49 int addDimension(const StdString& name, const StdSize size = UNLIMITED_DIM); 50 50 int addVariable(const StdString& name, nc_type type, 51 const std::vector<StdString>& dim );51 const std::vector<StdString>& dim, int compressionLevel=0); 52 52 53 53 //----------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.