Changeset 1855


Ignore:
Timestamp:
01/30/20 16:22:52 (2 months ago)
Author:
ymipsl
Message:

Import bug fix correction from trunk at rev 1578 :

Bug fix when reading rectilinear and attemp to call generate_rectilinear_domain filter. Coordinates in file was not taking into account.

and 1582 : Missing file for rev. 1578

YM

Location:
XIOS/branchs/xios-2.5/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • XIOS/branchs/xios-2.5/src/io/nc4_data_input.cpp

    r1563 r1855  
    517517      domain->ni_glo.setValue(itMapNi->second); 
    518518    } 
     519    // determine if coordinates values are present in file 
     520    if ((CDomain::type_attr::rectilinear == domain->type)) 
     521    { 
     522      // Ok, try to read some attributes such as longitude and latitude 
     523      domain->hasLatInReadFile_ = SuperClassWriter::hasVariable(itMapNj->first); 
     524      domain->hasLonInReadFile_  = SuperClassWriter::hasVariable(itMapNi->first); 
     525    } 
     526    else if ((CDomain::type_attr::curvilinear == domain->type) || (CDomain::type_attr::unstructured == domain->type) ) 
     527    { 
     528      StdString latName = this->getLatCoordName(fieldId); 
     529      domain->hasLatInReadFile_ = SuperClassWriter::hasVariable(latName) ; 
     530      StdString lonName = this->getLonCoordName(fieldId);        
     531      domain->hasLonInReadFile_ = SuperClassWriter::hasVariable(lonName) ;  
     532      StdString boundsLatName = this->getBoundsId(latName); 
     533      domain->hasBoundsLatInReadFile_ = SuperClassWriter::hasVariable(boundsLatName) ;  
     534      StdString boundsLonName = this->getBoundsId(lonName); 
     535      domain->hasBoundsLonInReadFile_ = SuperClassWriter::hasVariable(boundsLonName) ; 
     536    } 
    519537  } 
    520538 
  • XIOS/branchs/xios-2.5/src/node/domain.cpp

    r1850 r1855  
    3333      , lonvalue(), latvalue(), bounds_lonvalue(), bounds_latvalue() 
    3434      , globalLocalIndexMap_(), computedWrittenIndex_(false) 
    35       , clients() 
     35      , clients(),hasLatInReadFile_(false), hasBoundsLatInReadFile_(false) 
     36      , hasLonInReadFile_(false), hasBoundsLonInReadFile_(false) 
    3637   { 
    3738   } 
     
    4546      , lonvalue(), latvalue(), bounds_lonvalue(), bounds_latvalue() 
    4647      , globalLocalIndexMap_(), computedWrittenIndex_(false) 
    47       , clients() 
     48      , clients(), hasBoundsLatInReadFile_(false) 
     49      , hasLonInReadFile_(false), hasBoundsLonInReadFile_(false) 
    4850   { 
    4951    } 
     
    460462       lon_end.setValue(lonvalue_rectilinear_read_from_file(ni_glo-1)); 
    461463     } 
    462      else 
     464     else if (!hasLonInReadFile_) 
    463465     { 
    464466       if (!lonvalue_2d.isEmpty()) lonvalue_2d.free(); 
     
    494496       lat_end.setValue(latvalue_rectilinear_read_from_file(nj_glo-1)); 
    495497     } 
    496      else 
     498     else if (!hasLatInReadFile_) 
    497499     { 
    498500       if (!latvalue_2d.isEmpty()) latvalue_1d.free(); 
  • XIOS/branchs/xios-2.5/src/node/domain.hpp

    r1624 r1855  
    151151         bool hasLonLat; 
    152152         bool hasPole ; 
     153         bool hasLatInReadFile_ ; // specify if latitude is defined on read file, so it can be read later when grid distribution will be defined  
     154         bool hasBoundsLatInReadFile_ ; // specify if latitude boundarues are defined on read file, so it can be read later when grid distribution will be defined  
     155         bool hasLonInReadFile_ ; // specify if longitude is defined on read file, so it can be read later when grid distribution will be defined  
     156         bool hasBoundsLonInReadFile_ ; // specify if longitude boundaries are defined on read file, so it can be read later when grid distribution will be defined  
    153157 
    154158         void computeLocalMask(void) ; 
Note: See TracChangeset for help on using the changeset viewer.