Changeset 384 for XIOS/trunk/src/output/nc4_data_output.cpp
- Timestamp:
- 10/25/12 10:12:20 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/output/nc4_data_output.cpp
r379 r384 80 80 : latid; 81 81 82 bool isCurvilinear = true ; //for moment82 bool isCurvilinear = domain->isCurvilinear ; 83 83 84 84 switch (SuperClass::type) … … 152 152 153 153 SuperClassWriter::definition_end(); 154 SuperClassWriter::writeData(domain->latvalue_srv, latid, isCollective, 0); 155 SuperClassWriter::writeData(domain->lonvalue_srv, lonid, isCollective, 0); 154 if (isCurvilinear) 155 { 156 157 SuperClassWriter::writeData(domain->latvalue_srv, latid, isCollective, 0); 158 SuperClassWriter::writeData(domain->lonvalue_srv, lonid, isCollective, 0); 156 159 // supress mask if (server->intraCommSize > 1) SuperClassWriter::writeData(mask, maskid); 160 } 161 else 162 { 163 CArray<double,1> lat = domain->latvalue_srv(Range(fromStart,toEnd,domain->zoom_ni_srv)) ; 164 SuperClassWriter::writeData(CArray<double,1>(lat.copy()), latid, isCollective, 0); 165 CArray<double,1> lon=domain->lonvalue_srv(Range(0,domain->zoom_ni_srv-1)) ; 166 SuperClassWriter::writeData(CArray<double,1>(lon.copy()), lonid, isCollective, 0); 167 } 157 168 SuperClassWriter::definition_start(); 158 169 … … 187 198 188 199 SuperClassWriter::definition_end(); 189 std::vector<StdSize> start(2) ; 190 std::vector<StdSize> count(2) ; 191 if (domain->isEmpty()) 192 { 193 start[0]=0 ; start [1]=0 ; 194 count[0]=0 ; count[1]=0 ; 200 if (isCurvilinear) 201 { 202 std::vector<StdSize> start(2) ; 203 std::vector<StdSize> count(2) ; 204 if (domain->isEmpty()) 205 { 206 start[0]=0 ; start [1]=0 ; 207 count[0]=0 ; count[1]=0 ; 208 } 209 else 210 { 211 start[1]=domain->zoom_ibegin_srv-domain->zoom_ibegin.getValue() ; start [0]=domain->zoom_jbegin_srv-domain->zoom_jbegin.getValue() ; 212 count[1]=domain->zoom_ni_srv ; count[0]=domain->zoom_nj_srv ; 213 } 214 215 SuperClassWriter::writeData(domain->latvalue_srv, latid, isCollective, 0,&start,&count); 216 SuperClassWriter::writeData(domain->lonvalue_srv, lonid, isCollective, 0,&start,&count); 195 217 } 196 218 else 197 219 { 198 start[1]=domain->zoom_ibegin_srv-domain->zoom_ibegin.getValue() ; start [0]=domain->zoom_jbegin_srv-domain->zoom_jbegin.getValue() ; 199 count[1]=domain->zoom_ni_srv ; count[0]=domain->zoom_nj_srv ; 200 } 201 202 SuperClassWriter::writeData(domain->latvalue_srv, latid, isCollective, 0,&start,&count); 203 SuperClassWriter::writeData(domain->lonvalue_srv, lonid, isCollective, 0,&start,&count); 220 std::vector<StdSize> start(1) ; 221 std::vector<StdSize> count(1) ; 222 if (domain->isEmpty()) 223 { 224 start[0]=0 ; 225 count[0]=0 ; 226 SuperClassWriter::writeData(domain->latvalue_srv, latid, isCollective, 0,&start,&count); 227 SuperClassWriter::writeData(domain->lonvalue_srv, lonid, isCollective, 0,&start,&count); } 228 else 229 { 230 start[0]=domain->zoom_jbegin_srv-domain->zoom_jbegin.getValue() ; 231 count[0]=domain->zoom_nj_srv ; 232 CArray<double,1> lat = domain->latvalue_srv(Range(fromStart,toEnd,domain->zoom_ni_srv)) ; 233 SuperClassWriter::writeData(CArray<double,1>(lat.copy()), latid, isCollective, 0,&start,&count); 234 235 start[0]=domain->zoom_ibegin_srv-domain->zoom_ibegin.getValue() ; 236 count[0]=domain->zoom_ni_srv ; 237 CArray<double,1> lon=domain->lonvalue_srv(Range(0,domain->zoom_ni_srv-1)) ; 238 SuperClassWriter::writeData(CArray<double,1>(lon.copy()), lonid, isCollective, 0,&start,&count); 239 } 240 } 204 241 SuperClassWriter::definition_start(); 205 206 242 break; 207 243 } … … 301 337 // unsigned int ssize = domain->zoom_ni_loc.getValue() * domain->zoom_nj_loc.getValue(); 302 338 // bool isCurvilinear = (domain->lonvalue.getValue()->size() == ssize); 303 bool isCurvilinear = true ; // for moment339 bool isCurvilinear = domain->isCurvilinear ; 304 340 305 341 nc_type type = (!field->prec.isEmpty() && … … 492 528 CAxis* axis = grid->axis ; 493 529 CArray<double,3> field_data3D(domain->zoom_ni_srv,domain->zoom_nj_srv,axis->zoom_size) ; 530 if (!field->default_value.isEmpty()) field_data3D = field->default_value ; 494 531 field->outputField(field_data3D); 495 532 switch (SuperClass::type) … … 526 563 { 527 564 CArray<double,2> field_data2D(domain->zoom_ni_srv,domain->zoom_nj_srv) ; 565 if (!field->default_value.isEmpty()) field_data2D = field->default_value ; 528 566 field->outputField(field_data2D); 529 567 switch (SuperClass::type)
Note: See TracChangeset
for help on using the changeset viewer.