Changeset 1096 for XIOS


Ignore:
Timestamp:
04/14/17 11:18:27 (7 years ago)
Author:
ymipsl
Message:

Enhancement : Add new functionnalites for file attribute "time_counter" :
(centered/ instant/record/exclusive/centered_exclusive/instant_exclusive/none)
instant_exclusive : time counter will be an instant time axis, time_instant axis will not be output
centered_exclusive : time counter will be an centered time axis, time_centered axis will not be output
exclusive : if only instant field, time_counter axis will be instant, if mixt instant and centered or only centered, time_counter axis will be centered. In any case, i avoid redondancy with time_instant or time_centered axis

YM

Location:
XIOS/trunk/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/config/file_attribute.conf

    r1048 r1096  
    1717DECLARE_ATTRIBUTE(bool,      append) 
    1818DECLARE_ENUM2(mode,          read, write) 
    19 DECLARE_ENUM4(time_counter,  centered, instant, record, none) 
     19DECLARE_ENUM7(time_counter,  centered, instant, record, exclusive, centered_exclusive, instant_exclusive, none) 
    2020DECLARE_ATTRIBUTE(StdString, time_counter_name) 
    2121DECLARE_ENUM2(time_units, seconds, days) 
  • XIOS/trunk/src/data_output.cpp

    r887 r1096  
    8484      //---------------------------------------------------------------- 
    8585 
    86       void CDataOutput::writeField(CField* field) 
     86      void CDataOutput::writeFieldTimeAxis(CField* field) 
    8787      { 
    8888         CContext* context = CContext::getCurrent() ; 
    8989         boost::shared_ptr<CCalendar> calendar = context->getCalendar(); 
    9090 
     91         this->writeTimeAxis_(field, calendar); 
     92      } 
     93       
     94      void CDataOutput::writeField(CField* field) 
     95      { 
    9196         this->writeField_(field); 
    92          this->writeTimeAxis_(field, calendar); 
    9397      } 
    9498 
  • XIOS/trunk/src/data_output.hpp

    r887 r1096  
    2525            void closeFile     (void); 
    2626            void writeField    (CField* field); 
     27            void writeFieldTimeAxis(CField* field) ; 
    2728            void writeFieldGrid(CField* field); 
    2829            void writeTimeDimension(void); 
  • XIOS/trunk/src/io/nc4_data_output.cpp

    r1061 r1096  
    2121            , SuperClassWriter(filename, exist) 
    2222            , filename(filename) 
    23             , file(file) 
     23            , file(file),hasTimeInstant(false),hasTimeCentered(false), timeCounterType(none) 
    2424      { 
    2525        SuperClass::type = MULTI_FILE; 
     
    3434            , filename(filename) 
    3535            , isCollective(isCollective) 
    36             , file(file) 
     36            , file(file),hasTimeInstant(false),hasTimeCentered(false), timeCounterType(none) 
    3737      { 
    3838        SuperClass::type = (multifile) ? MULTI_FILE : ONE_FILE; 
     
    16171617        } 
    16181618 
    1619 /* 
    1620          StdString lonid_loc = (server->intraCommSize > 1) 
    1621                              ? StdString("lon").append(appendDomid).append("_local") 
    1622                              : lonid; 
    1623          StdString latid_loc = (server->intraCommSize > 1) 
    1624                              ? StdString("lat").append(appendDomid).append("_local") 
    1625                              : latid; 
    1626 */ 
    16271619        StdString fieldid = field->getFieldOutputName(); 
    16281620 
     
    16401632        if (wtime) 
    16411633        { 
    1642  
    1643           //StdOStringStream oss; 
    1644           // oss << "time_" << field->operation.getValue() 
    1645           //     << "_" << field->getRelFile()->output_freq.getValue(); 
    1646           //oss 
    1647           if (field->getOperationTimeType() == func::CFunctor::instant) coodinates.push_back(string("time_instant")); 
    1648           else if (field->getOperationTimeType() == func::CFunctor::centered) coodinates.push_back(string("time_centered")); 
     1634          if (field->hasTimeInstant && hasTimeInstant) coodinates.push_back(string("time_instant")); 
     1635          else if (field->hasTimeCentered && hasTimeCentered)  coodinates.push_back(string("time_centered")); 
    16491636          dims.push_back(timeid); 
    16501637        } 
     
    20111998        StdOStringStream oss; 
    20121999        string timeAxisId; 
    2013         if (field->getOperationTimeType() == func::CFunctor::instant) timeAxisId = "time_instant"; 
    2014         else if (field->getOperationTimeType() == func::CFunctor::centered) timeAxisId = "time_centered"; 
     2000        if (field->hasTimeInstant) timeAxisId = "time_instant"; 
     2001        else if (field->hasTimeCentered) timeAxisId = "time_centered"; 
    20152002 
    20162003        StdString timeBoundId = getTimeCounterName() + "_bounds"; 
    20172004 
    20182005        StdString timeAxisBoundId; 
    2019         if (field->getOperationTimeType() == func::CFunctor::instant) timeAxisBoundId = "time_instant_bounds"; 
    2020         else if (field->getOperationTimeType() == func::CFunctor::centered) timeAxisBoundId = "time_centered_bounds"; 
     2006        if (field->hasTimeInstant) timeAxisBoundId = "time_instant_bounds"; 
     2007        else if (field->hasTimeCentered) timeAxisBoundId = "time_centered_bounds"; 
    20212008 
    20222009        if (!field->wasWritten()) 
     
    20422029 
    20432030        bool wtime = (field->getOperationTimeType() != func::CFunctor::once); 
     2031        bool wtimeCounter =false ; 
     2032        bool wtimeData =false ; 
     2033         
    20442034 
    20452035        if (wtime) 
    20462036        { 
    2047            
    2048           if (field->getOperationTimeType() == func::CFunctor::instant) field->hasTimeInstant = true;                    
    2049           if (field->getOperationTimeType() == func::CFunctor::centered) field->hasTimeCentered = true;             
    20502037 
    20512038          Time lastWrite = field->last_Write_srv; 
    20522039          Time lastLastWrite = field->lastlast_Write_srv; 
    20532040 
    2054           if (field->getOperationTimeType() == func::CFunctor::instant) 
    2055             time_data(0) = lastWrite; 
    2056           else if (field->getOperationTimeType() == func::CFunctor::centered) 
     2041           
     2042          if (field->hasTimeInstant) 
     2043          { 
     2044            time_data(0) = time_data_bound(1) = lastWrite; 
     2045            time_data_bound(0) = time_data_bound(1) = lastWrite; 
     2046            if (timeCounterType==instant) 
     2047            { 
     2048              time_counter(0) = time_data(0); 
     2049              time_counter_bound(0) = time_data_bound(0); 
     2050              time_counter_bound(1) = time_data_bound(1); 
     2051              wtimeCounter=true ; 
     2052            } 
     2053            if (hasTimeInstant) wtimeData=true ; 
     2054          } 
     2055          else if (field->hasTimeCentered) 
     2056          { 
    20572057            time_data(0) = (lastWrite + lastLastWrite) / 2; 
    2058  
    2059           if (field->getOperationTimeType() == func::CFunctor::instant) 
    2060             time_data_bound(0) = time_data_bound(1) = lastWrite; 
    2061           else if (field->getOperationTimeType() == func::CFunctor::centered) 
    2062           { 
    20632058            time_data_bound(0) = lastLastWrite; 
    20642059            time_data_bound(1) = lastWrite; 
     2060            if (timeCounterType==centered) 
     2061            { 
     2062              time_counter(0) = time_data(0) ; 
     2063              time_counter_bound(0) = time_data_bound(0) ; 
     2064              time_counter_bound(1) = time_data_bound(1) ; 
     2065              wtimeCounter=true ; 
     2066            } 
     2067            if (hasTimeCentered) wtimeData=true ; 
    20652068          } 
    2066            
    2067           if (field->file->time_counter.isEmpty()) 
    2068             if (field->hasTimeInstant && !field->hasTimeCentered) 
    2069               time_counter(0) = lastWrite; 
    2070             else  
    2071               time_counter(0) = (lastWrite + lastLastWrite) / 2; 
    2072  
    2073           else if (field->file->time_counter == CFile::time_counter_attr::instant) 
    2074             time_counter(0) = lastWrite; 
    2075           else if (field->file->time_counter == CFile::time_counter_attr::centered) 
    2076             time_counter(0) = (lastWrite + lastLastWrite) / 2; 
    2077           else if (field->file->time_counter == CFile::time_counter_attr::record) 
     2069 
     2070          if (timeCounterType==record) 
     2071          { 
    20782072            time_counter(0) = field->getNStep() - 1; 
    2079  
    2080  
    2081           if (field->file->time_counter.isEmpty()) 
    2082             if (field->hasTimeInstant && !field->hasTimeCentered) 
    2083               time_counter_bound(0) = time_counter_bound(1) = lastWrite; 
    2084             else  
    2085             { 
    2086               time_counter_bound(0) = lastLastWrite; 
    2087               time_counter_bound(1) = lastWrite; 
    2088             }           
    2089           else if (field->file->time_counter == CFile::time_counter_attr::instant) 
    2090             time_counter_bound(0) = time_counter_bound(1) = lastWrite; 
    2091           else if (field->file->time_counter == CFile::time_counter_attr::centered) 
    2092           { 
    2093             time_counter_bound(0) = lastLastWrite; 
    2094             time_counter_bound(1) = lastWrite; 
     2073            time_counter_bound(0) = time_counter_bound(1) = field->getNStep() - 1; 
     2074            wtimeCounter=true ; 
    20952075          } 
    2096           else if (field->file->time_counter == CFile::time_counter_attr::record) 
    2097             time_counter_bound(0) = time_counter_bound(1) = field->getNStep() - 1; 
    2098  
    2099  
    21002076 
    21012077          if (!field->file->time_units.isEmpty() && field->file->time_units==CFile::time_units_attr::days) 
     
    21452121                 if (wtime) 
    21462122                 { 
    2147                    SuperClassWriter::writeData(time_data, timeAxisId, isCollective, field->getNStep() - 1); 
    2148                    SuperClassWriter::writeData(time_data_bound, timeAxisBoundId, isCollective, field->getNStep() - 1); 
    2149                    if (field->file->time_counter.isEmpty() ||   
    2150                       (field->file->time_counter != CFile::time_counter_attr::none)) 
     2123                   if ( wtimeData) 
     2124                   { 
     2125                     SuperClassWriter::writeData(time_data, timeAxisId, isCollective, field->getNStep() - 1); 
     2126                     SuperClassWriter::writeData(time_data_bound, timeAxisBoundId, isCollective, field->getNStep() - 1); 
     2127                   } 
     2128                   if (wtimeCounter) 
    21512129                   { 
    21522130                     SuperClassWriter::writeData(time_counter, getTimeCounterName(), isCollective, field->getNStep() - 1); 
    2153                      if (field->file->time_counter.isEmpty() ||  
    2154                         (field->file->time_counter != CFile::time_counter_attr::record)) 
    2155                        SuperClassWriter::writeData(time_counter_bound, timeBoundId, isCollective, field->getNStep() - 1); 
     2131                     if (timeCounterType!=record) SuperClassWriter::writeData(time_counter_bound, timeBoundId, isCollective, field->getNStep() - 1); 
    21562132                   } 
    21572133                 } 
     
    22812257 
    22822258                SuperClassWriter::writeData(fieldData, fieldid, isCollective, field->getNStep() - 1, &start, &count); 
    2283                 if (wtime) 
    2284                 { 
    2285                    SuperClassWriter::writeTimeAxisData(time_data, timeAxisId, isCollective, field->getNStep() - 1, isRoot); 
    2286                    SuperClassWriter::writeTimeAxisData(time_data_bound, timeAxisBoundId, isCollective, field->getNStep() - 1, isRoot); 
    2287                    if (field->file->time_counter.isEmpty() ||  
    2288                       (field->file->time_counter != CFile::time_counter_attr::none)) 
     2259                 if (wtime) 
     2260                 { 
     2261                   if ( wtimeData) 
    22892262                   { 
    2290                      SuperClassWriter::writeTimeAxisData(time_counter, getTimeCounterName(), isCollective, field->getNStep() - 1, isRoot); 
    2291                      if (field->file->time_counter.isEmpty() ||   
    2292                         (field->file->time_counter != CFile::time_counter_attr::record)) 
    2293                        SuperClassWriter::writeTimeAxisData(time_counter_bound, timeBoundId, isCollective, field->getNStep() - 1, isRoot); 
     2263                     SuperClassWriter::writeData(time_data, timeAxisId, isCollective, field->getNStep() - 1); 
     2264                     SuperClassWriter::writeData(time_data_bound, timeAxisBoundId, isCollective, field->getNStep() - 1); 
    22942265                   } 
    2295                 } 
     2266                   if (wtimeCounter) 
     2267                   { 
     2268                     SuperClassWriter::writeData(time_counter, getTimeCounterName(), isCollective, field->getNStep() - 1); 
     2269                     if (timeCounterType!=record) SuperClassWriter::writeData(time_counter_bound, timeBoundId, isCollective, field->getNStep() - 1); 
     2270                   } 
     2271                 } 
    22962272 
    22972273                break; 
     
    23172293      { 
    23182294         StdOStringStream oss; 
    2319  
     2295         bool createInstantAxis=false ; 
     2296         bool createCenteredAxis=false ; 
     2297         bool createTimeCounterAxis=false ; 
     2298          
    23202299         if (field->getOperationTimeType() == func::CFunctor::once) return ; 
    23212300 
    2322 //         oss << "time_" << field->operation.getValue() 
    2323 //             << "_" << field->getRelFile()->output_freq.getValue(); 
    2324  
    2325 //         StdString axisid = oss.str(); 
    2326 //         if (field->getOperationTimeType() == func::CFunctor::centered) axisid="time_centered" ; 
    2327 //         else if (field->getOperationTimeType() == func::CFunctor::instant) axisid="time_instant" ; 
    2328  
    2329          StdString axisid("time_centered") ; 
    2330          StdString axisBoundId("time_centered_bounds"); 
     2301 
     2302         StdString axisId ; 
     2303         StdString axisBoundId; 
    23312304         StdString timeid(getTimeCounterName()); 
    23322305         StdString timeBoundId("axis_nbounds"); 
     
    23362309         else  strTimeUnits="seconds since " ; 
    23372310  
    2338          if (field->getOperationTimeType() == func::CFunctor::instant) 
    2339          { 
    2340             axisid = "time_instant"; 
    2341             axisBoundId = "time_instant_bounds"; 
    2342             field->hasTimeInstant = true;                    
    2343          } 
    2344  
    2345          if (field->getOperationTimeType() == func::CFunctor::centered) 
    2346          { 
    2347             field->hasTimeCentered = true;             
    2348          }           
    2349  
     2311         if (field->getOperationTimeType() == func::CFunctor::instant) field->hasTimeInstant = true; 
     2312         if (field->getOperationTimeType() == func::CFunctor::centered) field->hasTimeCentered = true; 
     2313 
     2314 
     2315         if (field->file->time_counter.isEmpty()) 
     2316         { 
     2317           if (timeCounterType==none) createTimeCounterAxis=true ; 
     2318           if (field->hasTimeCentered) 
     2319           { 
     2320             timeCounterType=centered ; 
     2321             if (!hasTimeCentered) createCenteredAxis=true ; 
     2322           } 
     2323           if (field->hasTimeInstant) 
     2324           { 
     2325             if (timeCounterType==none) timeCounterType=instant ; 
     2326             if (!hasTimeInstant) createInstantAxis=true ; 
     2327           } 
     2328         } 
     2329         else if (field->file->time_counter==CFile::time_counter_attr::instant) 
     2330         { 
     2331           if (field->hasTimeCentered) 
     2332           { 
     2333             if (!hasTimeCentered) createCenteredAxis=true ; 
     2334           } 
     2335           if (field->hasTimeInstant) 
     2336           { 
     2337             if (timeCounterType==none) createTimeCounterAxis=true ; 
     2338             timeCounterType=instant ; 
     2339             if (!hasTimeInstant) createInstantAxis=true ; 
     2340           } 
     2341         } 
     2342         else if (field->file->time_counter==CFile::time_counter_attr::centered) 
     2343         { 
     2344           if (field->hasTimeCentered) 
     2345           { 
     2346             if (timeCounterType==none) createTimeCounterAxis=true ; 
     2347             timeCounterType=centered ; 
     2348             if (!hasTimeCentered) createCenteredAxis=true ; 
     2349           } 
     2350           if (field->hasTimeInstant) 
     2351           { 
     2352             if (!hasTimeInstant) createInstantAxis=true ; 
     2353           } 
     2354         } 
     2355         else if (field->file->time_counter==CFile::time_counter_attr::instant_exclusive) 
     2356         { 
     2357           if (field->hasTimeCentered) 
     2358           { 
     2359             if (!hasTimeCentered) createCenteredAxis=true ; 
     2360           } 
     2361           if (field->hasTimeInstant) 
     2362           { 
     2363             if (timeCounterType==none) createTimeCounterAxis=true ; 
     2364             timeCounterType=instant ; 
     2365           } 
     2366         } 
     2367         else if (field->file->time_counter==CFile::time_counter_attr::centered_exclusive) 
     2368         { 
     2369           if (field->hasTimeCentered) 
     2370           { 
     2371             if (timeCounterType==none) createTimeCounterAxis=true ; 
     2372             timeCounterType=centered ; 
     2373           } 
     2374           if (field->hasTimeInstant) 
     2375           { 
     2376             if (!hasTimeInstant) createInstantAxis=true ; 
     2377           } 
     2378         } 
     2379         else if (field->file->time_counter==CFile::time_counter_attr::exclusive) 
     2380         { 
     2381           if (field->hasTimeCentered) 
     2382           { 
     2383             if (timeCounterType==none) createTimeCounterAxis=true ; 
     2384             if (timeCounterType==instant) createInstantAxis=true ; 
     2385             timeCounterType=centered ; 
     2386           } 
     2387           if (field->hasTimeInstant) 
     2388           { 
     2389             if (timeCounterType==none) 
     2390             { 
     2391               createTimeCounterAxis=true ; 
     2392               timeCounterType=instant ; 
     2393             } 
     2394             if (timeCounterType==centered) 
     2395             { 
     2396               if (!hasTimeInstant) createInstantAxis=true ; 
     2397             } 
     2398           } 
     2399         } 
     2400         else if (field->file->time_counter==CFile::time_counter_attr::none) 
     2401         { 
     2402           if (field->hasTimeCentered) 
     2403           { 
     2404             if (!hasTimeCentered) createCenteredAxis=true ; 
     2405           } 
     2406           if (field->hasTimeInstant) 
     2407           { 
     2408             if (!hasTimeInstant) createInstantAxis=true ; 
     2409           } 
     2410         } 
     2411         else if (field->file->time_counter==CFile::time_counter_attr::record) 
     2412         { 
     2413           if (timeCounterType==none) createTimeCounterAxis=true ; 
     2414           timeCounterType=record ; 
     2415           if (field->hasTimeCentered) 
     2416           { 
     2417             if (!hasTimeCentered) createCenteredAxis=true ; 
     2418           } 
     2419           if (field->hasTimeInstant) 
     2420           { 
     2421             if (!hasTimeInstant) createInstantAxis=true ; 
     2422           } 
     2423         } 
     2424          
     2425         if (createInstantAxis) 
     2426         { 
     2427           axisId="time_instant" ; 
     2428           axisBoundId="time_instant_bounds"; 
     2429           hasTimeInstant=true ; 
     2430         } 
     2431 
     2432         if (createCenteredAxis) 
     2433         { 
     2434           axisId="time_centered" ; 
     2435           axisBoundId="time_centered_bounds"; 
     2436           hasTimeCentered=true ; 
     2437         } 
     2438 
     2439          
    23502440         try 
    23512441         { 
    2352           // Adding time_instant or time_centered 
    2353            std::vector<StdString> dims; 
    2354            dims.push_back(timeid); 
    2355            if (!SuperClassWriter::varExist(axisid)) 
    2356            { 
    2357               SuperClassWriter::addVariable(axisid, NC_DOUBLE, dims); 
    2358  
    2359               CDate timeOrigin=cal->getTimeOrigin() ; 
    2360               StdOStringStream oss2; 
    2361   //            oss2<<initDate.getYear()<<"-"<<initDate.getMonth()<<"-"<<initDate.getDay()<<" " 
    2362   //                <<initDate.getHour()<<"-"<<initDate.getMinute()<<"-"<<initDate.getSecond() ; 
    2363               StdString strInitdate=oss2.str() ; 
    2364               StdString strTimeOrigin=timeOrigin.toString() ; 
    2365               this->writeTimeAxisAttributes 
    2366                  (axisid, cal->getType(),strTimeUnits+strTimeOrigin, 
    2367                   strTimeOrigin, axisBoundId); 
     2442            std::vector<StdString> dims; 
     2443             
     2444            if (createInstantAxis || createCenteredAxis) 
     2445            { 
     2446              // Adding time_instant or time_centered 
     2447              dims.push_back(timeid); 
     2448              if (!SuperClassWriter::varExist(axisId)) 
     2449              { 
     2450                SuperClassWriter::addVariable(axisId, NC_DOUBLE, dims); 
     2451 
     2452                CDate timeOrigin=cal->getTimeOrigin() ; 
     2453                StdOStringStream oss2; 
     2454                StdString strInitdate=oss2.str() ; 
     2455                StdString strTimeOrigin=timeOrigin.toString() ; 
     2456                this->writeTimeAxisAttributes(axisId, cal->getType(),strTimeUnits+strTimeOrigin, 
     2457                                              strTimeOrigin, axisBoundId); 
     2458             } 
     2459 
     2460             // Adding time_instant_bounds or time_centered_bounds variables 
     2461             if (!SuperClassWriter::varExist(axisBoundId)) 
     2462             { 
     2463                dims.clear() ; 
     2464                dims.push_back(timeid); 
     2465                dims.push_back(timeBoundId); 
     2466                SuperClassWriter::addVariable(axisBoundId, NC_DOUBLE, dims); 
     2467             } 
    23682468           } 
    23692469 
    2370            // Adding time_instant_bounds or time_centered_bounds variables 
    2371            if (!SuperClassWriter::varExist(axisBoundId)) 
    2372            { 
    2373               dims.clear() ; 
    2374               dims.push_back(timeid); 
    2375               dims.push_back(timeBoundId); 
    2376               SuperClassWriter::addVariable(axisBoundId, NC_DOUBLE, dims); 
    2377            } 
    2378  
    2379            if (field->file->time_counter.isEmpty() ||   
    2380               (field->file->time_counter != CFile::time_counter_attr::none)) 
     2470           if (createTimeCounterAxis) 
    23812471           { 
    23822472             // Adding time_counter 
    2383              axisid = getTimeCounterName(); 
     2473             axisId = getTimeCounterName(); 
    23842474             axisBoundId = getTimeCounterName() + "_bounds"; 
    23852475             dims.clear(); 
    23862476             dims.push_back(timeid); 
    2387              if (!SuperClassWriter::varExist(axisid)) 
     2477             if (!SuperClassWriter::varExist(axisId)) 
    23882478             { 
    2389                 SuperClassWriter::addVariable(axisid, NC_DOUBLE, dims); 
    2390                 SuperClassWriter::addAttribute("axis", string("T"), &axisid); 
     2479                SuperClassWriter::addVariable(axisId, NC_DOUBLE, dims); 
     2480                SuperClassWriter::addAttribute("axis", string("T"), &axisId); 
    23912481 
    23922482                if (field->file->time_counter.isEmpty() ||  
     
    23962486                  StdString strTimeOrigin = timeOrigin.toString(); 
    23972487 
    2398                   this->writeTimeAxisAttributes(axisid, cal->getType(), 
     2488                  this->writeTimeAxisAttributes(axisId, cal->getType(), 
    23992489                                                strTimeUnits+strTimeOrigin, 
    24002490                                                strTimeOrigin, axisBoundId); 
     
    24032493 
    24042494             // Adding time_counter_bound dimension 
    2405              if (field->file->time_counter.isEmpty() ||   
    2406                 (field->file->time_counter != CFile::time_counter_attr::record)) 
     2495             if (field->file->time_counter.isEmpty() || (field->file->time_counter != CFile::time_counter_attr::record)) 
    24072496             { 
    24082497                if (!SuperClassWriter::varExist(axisBoundId)) 
  • XIOS/trunk/src/io/nc4_data_output.hpp

    r1046 r1096  
    123123            std::set<std::string> writtenAxis, writtenCompressedAxis; 
    124124            std::set<std::string> writtenScalar; 
     125 
     126            enum { none, centered, instant, record} timeCounterType ; 
     127            bool hasTimeInstant ; 
     128            bool hasTimeCentered ; 
    125129      }; // class CNc4DataOutput 
    126130 
  • XIOS/trunk/src/node/file.cpp

    r1092 r1096  
    484484          { 
    485485            CField* field = *it; 
     486            this->data_out->writeFieldTimeAxis(field); 
     487          } 
     488           
     489          for (it = this->enabledFields.begin(); it != end; it++) 
     490          { 
     491            CField* field = *it; 
    486492            this->data_out->writeField(field); 
    487493          } 
Note: See TracChangeset for help on using the changeset viewer.