Changeset 278 for XMLIO_V2/dev/common/src/xmlio/output/nc4_data_output.cpp
- Timestamp:
- 09/21/11 09:42:30 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/common/src/xmlio/output/nc4_data_output.cpp
r274 r278 8 8 #include "file.hpp" 9 9 #include "calendar.hpp" 10 #include "xios_manager.hpp" 11 #include "context.hpp" 10 12 11 13 namespace xmlioserver … … 75 77 StdString lonid = StdString("lon_").append(domid); 76 78 StdString latid = StdString("lat_").append(domid); 77 StdString lonid_loc = StdString("lon_").append(domid).append("_local"); 78 StdString latid_loc = StdString("lat_").append(domid).append("_local"); 79 StdString lonid_loc = (comm::CMPIManager::GetCommSize(CXIOSManager::Comm_Server) > 1) 80 ? StdString("lon_").append(domid).append("_local") 81 : lonid; 82 StdString latid_loc = (comm::CMPIManager::GetCommSize(CXIOSManager::Comm_Server) > 1) 83 ? StdString("lat_").append(domid).append("_local") 84 : latid; 79 85 StdString maskid = StdString("mask_").append(domid).append("_local"); 80 86 … … 84 90 bool isCurvilinear = (domain->lonvalue.getValue()->size() == ssize); 85 91 86 SuperClassWriter::addDimension(lonid, domain->ni_glo.getValue()); 87 SuperClassWriter::addDimension(latid, domain->nj_glo.getValue()); 92 if (comm::CMPIManager::GetCommSize(CXIOSManager::Comm_Server) > 1) 93 { 94 SuperClassWriter::addDimension(lonid, domain->zoom_ni.getValue()); 95 SuperClassWriter::addDimension(latid, domain->zoom_nj.getValue()); 96 } 88 97 89 98 if (isCurvilinear) … … 104 113 SuperClassWriter::addDimension(lonid_loc, domain->zoom_ni_loc.getValue()); 105 114 SuperClassWriter::addDimension(latid_loc, domain->zoom_nj_loc.getValue()); 106 this->writeLocalAttributes(domain->zoom_ibegin_loc.getValue(), 107 domain->zoom_ni_loc.getValue(), 108 domain->zoom_jbegin_loc.getValue(), 109 domain->zoom_nj_loc.getValue(), 110 domid); 115 if (comm::CMPIManager::GetCommSize(CXIOSManager::Comm_Server) > 1) 116 { 117 this->writeLocalAttributes(domain->zoom_ibegin_loc.getValue(), 118 domain->zoom_ni_loc.getValue(), 119 domain->zoom_jbegin_loc.getValue(), 120 domain->zoom_nj_loc.getValue(), 121 domid); 122 } 123 111 124 if (isCurvilinear) 112 125 { … … 128 141 dim0.push_back(lonid_loc); 129 142 130 SuperClassWriter::addVariable(maskid, NC_INT, dim0); 131 132 this->writeMaskAttributes(maskid, 133 domain->data_dim.getValue()/*, 134 domain->data_ni.getValue(), 135 domain->data_nj.getValue(), 136 domain->data_ibegin.getValue(), 137 domain->data_jbegin.getValue()*/); 143 if (comm::CMPIManager::GetCommSize(CXIOSManager::Comm_Server) > 1) 144 { 145 SuperClassWriter::addVariable(maskid, NC_INT, dim0); 146 147 this->writeMaskAttributes(maskid, 148 domain->data_dim.getValue()/*, 149 domain->data_ni.getValue(), 150 domain->data_nj.getValue(), 151 domain->data_ibegin.getValue(), 152 domain->data_jbegin.getValue()*/); 153 } 138 154 139 155 //SuperClassWriter::setDefaultValue(maskid, &dvm); … … 142 158 SuperClassWriter::writeData(domain->latvalue.getValue(), latid, true, 0); 143 159 SuperClassWriter::writeData(domain->lonvalue.getValue(), lonid, true, 0); 144 SuperClassWriter::writeData(mask, maskid); 160 if (comm::CMPIManager::GetCommSize(CXIOSManager::Comm_Server) > 1) 161 SuperClassWriter::writeData(mask, maskid); 145 162 SuperClassWriter::definition_start(); 146 163 … … 169 186 switch (SuperClass::type) 170 187 { 188 case (ONE_FILE) : 171 189 case (MULTI_FILE) : 172 190 { … … 218 236 StdString lonid = StdString("lon_").append(domid); 219 237 StdString latid = StdString("lat_").append(domid); 220 StdString lonid_loc = StdString("lon_").append(domid).append("_local"); 221 StdString latid_loc = StdString("lat_").append(domid).append("_local"); 238 StdString lonid_loc = (comm::CMPIManager::GetCommSize(CXIOSManager::Comm_Server) > 1) 239 ? StdString("lon_").append(domid).append("_local") 240 : lonid; 241 StdString latid_loc = (comm::CMPIManager::GetCommSize(CXIOSManager::Comm_Server) > 1) 242 ? StdString("lat_").append(domid).append("_local") 243 : latid; 222 244 StdString fieldid = (!field->name.isEmpty()) 223 245 ? field->name.getValue() : field->getBaseFieldReference()->getId(); … … 376 398 ? field->name.getValue() 377 399 : field->getBaseFieldReference()->getId(); 400 boost::shared_ptr<xmlioserver::tree::CContext> context = 401 CObjectFactory::GetObject<xmlioserver::tree::CContext> 402 (CObjectFactory::GetCurrentContextId()); 403 404 StdOStringStream oss; 405 oss << "time_" << field->operation.getValue() 406 << "_" << field->getRelFile()->output_freq.getValue(); 407 378 408 ARRAY(double, 1) field_data = field->getData(); 409 ARRAY_CREATE(time_data, double, 1, [1]); 410 (*time_data)[0] = date::Time(*field->getLastWriteDate()); 379 411 380 412 if (grid->hasAxis()) // 3D … … 383 415 grid->outputField(field_data, field_data3D); 384 416 SuperClassWriter::writeData(field_data3D, fieldid, true, field->getNStep()-1); 417 SuperClassWriter::writeData(time_data, oss.str(), true, field->getNStep()-1); 385 418 386 419 } … … 390 423 grid->outputField(field_data, field_data2D); 391 424 SuperClassWriter::writeData(field_data2D, fieldid, true, field->getNStep()-1); 425 SuperClassWriter::writeData(time_data, oss.str(), true, field->getNStep()-1); 392 426 } 393 427 }
Note: See TracChangeset
for help on using the changeset viewer.