Changeset 1044 for XIOS/trunk/src/io/nc4_data_output.cpp
- Timestamp:
- 02/01/17 22:11:39 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/io/nc4_data_output.cpp
r1012 r1044 1984 1984 field->getOperationTimeType() != func::CFunctor::once) 1985 1985 { 1986 field->resetNStep(getRecordFromTime(field->last_Write_srv) + 1); 1986 double factorUnit; 1987 if (!field->file->time_units.isEmpty() && field->file->time_units==CFile::time_units_attr::days) 1988 factorUnit=context->getCalendar()->getDayLengthInSeconds() ; 1989 else factorUnit=1 ; 1990 field->resetNStep(getRecordFromTime(field->last_Write_srv,factorUnit) + 1); 1987 1991 } 1988 1992 … … 2047 2051 else if (field->file->time_counter == CFile::time_counter_attr::record) 2048 2052 time_counter_bound(0) = time_counter_bound(1) = field->getNStep() - 1; 2053 2054 2055 2056 if (!field->file->time_units.isEmpty() && field->file->time_units==CFile::time_units_attr::days) 2057 { 2058 double secByDay=context->getCalendar()->getDayLengthInSeconds() ; 2059 time_data/=secByDay; 2060 time_data_bound/=secByDay; 2061 time_counter/=secByDay; 2062 time_counter_bound/=secByDay; 2063 } 2049 2064 } 2050 2065 … … 2271 2286 StdString timeid(getTimeCounterName()); 2272 2287 StdString timeBoundId("axis_nbounds"); 2288 2289 StdString strTimeUnits ; 2290 if (!field->file->time_units.isEmpty() && field->file->time_units==CFile::time_units_attr::days) strTimeUnits="days since " ; 2291 else strTimeUnits="seconds since " ; 2273 2292 2274 2293 if (field->getOperationTimeType() == func::CFunctor::instant) … … 2300 2319 StdString strTimeOrigin=timeOrigin.toString() ; 2301 2320 this->writeTimeAxisAttributes 2302 (axisid, cal->getType(), 2303 StdString("seconds since ").append(strTimeOrigin), 2321 (axisid, cal->getType(),strTimeUnits+strTimeOrigin, 2304 2322 strTimeOrigin, axisBoundId); 2305 2323 } … … 2334 2352 2335 2353 this->writeTimeAxisAttributes(axisid, cal->getType(), 2336 StdString("seconds since ").append(strTimeOrigin),2354 strTimeUnits+strTimeOrigin, 2337 2355 strTimeOrigin, axisBoundId); 2338 2356 } … … 2569 2587 ///-------------------------------------------------------------- 2570 2588 2571 StdSize CNc4DataOutput::getRecordFromTime(Time time )2589 StdSize CNc4DataOutput::getRecordFromTime(Time time, double factorUnit) 2572 2590 { 2573 2591 std::map<Time, StdSize>::const_iterator it = timeToRecordCache.find(time); … … 2580 2598 CArray<double,2> timeAxisBounds; 2581 2599 SuperClassWriter::getTimeAxisBounds(timeAxisBounds, timeAxisBoundsId, isCollective); 2582 2600 timeAxisBounds*=factorUnit ; 2601 2583 2602 StdSize record = 0; 2584 2603 double dtime(time);
Note: See TracChangeset
for help on using the changeset viewer.