Changeset 989 for XIOS/trunk/src/io/nc4_data_output.cpp
- Timestamp:
- 11/16/16 14:53:20 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/io/nc4_data_output.cpp
r973 r989 21 21 , filename(filename) 22 22 { 23 SuperClass::type = MULTI_FILE;23 SuperClass::type = MULTI_FILE; 24 24 } 25 25 … … 33 33 , isCollective(isCollective) 34 34 { 35 SuperClass::type = (multifile) ? MULTI_FILE : ONE_FILE;35 SuperClass::type = (multifile) ? MULTI_FILE : ONE_FILE; 36 36 } 37 37 … … 1760 1760 if (SuperClassWriter::useCFConvention) 1761 1761 this->writeFileAttributes(filename, description, 1762 StdString("CF-1. 5"),1762 StdString("CF-1.6"), 1763 1763 StdString("An IPSL model"), 1764 1764 this->getTimeStamp()); … … 1961 1961 time_data_bound(1) = lastWrite; 1962 1962 } 1963 1964 if (field->file->time_counter == CFile::time_counter_attr::instant) 1963 1964 if (field->file->time_counter.isEmpty()) 1965 if (field->hasTimeInstant && !field->hasTimeCentered) 1966 time_counter(0) = lastWrite; 1967 else 1968 time_counter(0) = (lastWrite + lastLastWrite) / 2; 1969 1970 else if (field->file->time_counter == CFile::time_counter_attr::instant) 1965 1971 time_counter(0) = lastWrite; 1966 1972 else if (field->file->time_counter == CFile::time_counter_attr::centered) … … 1970 1976 1971 1977 1972 if (field->file->time_counter == CFile::time_counter_attr::instant) 1978 if (field->file->time_counter.isEmpty()) 1979 if (field->hasTimeInstant && !field->hasTimeCentered) 1980 time_counter_bound(0) = time_counter_bound(1) = lastWrite; 1981 else 1982 { 1983 time_counter_bound(0) = lastLastWrite; 1984 time_counter_bound(1) = lastWrite; 1985 } 1986 else if (field->file->time_counter == CFile::time_counter_attr::instant) 1973 1987 time_counter_bound(0) = time_counter_bound(1) = lastWrite; 1974 1988 else if (field->file->time_counter == CFile::time_counter_attr::centered) … … 2019 2033 SuperClassWriter::writeData(time_data, timeAxisId, isCollective, field->getNStep() - 1); 2020 2034 SuperClassWriter::writeData(time_data_bound, timeAxisBoundId, isCollective, field->getNStep() - 1); 2021 if (field->file->time_counter != CFile::time_counter_attr::none) 2035 if (field->file->time_counter.isEmpty() || 2036 (field->file->time_counter != CFile::time_counter_attr::none)) 2022 2037 { 2023 2038 SuperClassWriter::writeData(time_counter, getTimeCounterName(), isCollective, field->getNStep() - 1); 2024 if (field->file->time_counter != CFile::time_counter_attr::record) 2039 if (field->file->time_counter.isEmpty() || 2040 (field->file->time_counter != CFile::time_counter_attr::record)) 2025 2041 SuperClassWriter::writeData(time_counter_bound, timeBoundId, isCollective, field->getNStep() - 1); 2026 2042 } … … 2155 2171 SuperClassWriter::writeTimeAxisData(time_data, timeAxisId, isCollective, field->getNStep() - 1, isRoot); 2156 2172 SuperClassWriter::writeTimeAxisData(time_data_bound, timeAxisBoundId, isCollective, field->getNStep() - 1, isRoot); 2157 if (field->file->time_counter != CFile::time_counter_attr::none) 2173 if (field->file->time_counter.isEmpty() || 2174 (field->file->time_counter != CFile::time_counter_attr::none)) 2158 2175 { 2159 2176 SuperClassWriter::writeTimeAxisData(time_counter, getTimeCounterName(), isCollective, field->getNStep() - 1, isRoot); 2160 if (field->file->time_counter != CFile::time_counter_attr::record) 2177 if (field->file->time_counter.isEmpty() || 2178 (field->file->time_counter != CFile::time_counter_attr::record)) 2161 2179 SuperClassWriter::writeTimeAxisData(time_counter_bound, timeBoundId, isCollective, field->getNStep() - 1, isRoot); 2162 2180 } … … 2199 2217 StdString timeid(getTimeCounterName()); 2200 2218 StdString timeBoundId("axis_nbounds"); 2201 2219 2202 2220 if (field->getOperationTimeType() == func::CFunctor::instant) 2203 2221 { 2204 2222 axisid = "time_instant"; 2205 2223 axisBoundId = "time_instant_bounds"; 2206 } 2224 field->hasTimeInstant = true; 2225 } 2226 2227 if (field->getOperationTimeType() == func::CFunctor::centered) 2228 { 2229 field->hasTimeCentered = true; 2230 } 2207 2231 2208 2232 try … … 2236 2260 } 2237 2261 2238 if (field->file->time_counter != CFile::time_counter_attr::none) 2262 if (field->file->time_counter.isEmpty() || 2263 (field->file->time_counter != CFile::time_counter_attr::none)) 2239 2264 { 2240 2265 // Adding time_counter … … 2248 2273 SuperClassWriter::addAttribute("axis", string("T"), &axisid); 2249 2274 2250 if (field->file->time_counter != CFile::time_counter_attr::record) 2275 if (field->file->time_counter.isEmpty() || 2276 (field->file->time_counter != CFile::time_counter_attr::record)) 2251 2277 { 2252 2278 CDate timeOrigin = cal->getTimeOrigin(); … … 2260 2286 2261 2287 // Adding time_counter_bound dimension 2262 if (field->file->time_counter != CFile::time_counter_attr::record) 2288 if (field->file->time_counter.isEmpty() || 2289 (field->file->time_counter != CFile::time_counter_attr::record)) 2263 2290 { 2264 2291 if (!SuperClassWriter::varExist(axisBoundId)) … … 2435 2462 SuperClassWriter::addAttribute("title" , description); 2436 2463 SuperClassWriter::addAttribute("Conventions", conventions); 2437 SuperClassWriter::addAttribute("production" , production);2464 // SuperClassWriter::addAttribute("production" , production); 2438 2465 SuperClassWriter::addAttribute("timeStamp" , timeStamp); 2439 2466 }
Note: See TracChangeset
for help on using the changeset viewer.