Changeset 1415


Ignore:
Timestamp:
01/31/18 14:23:58 (3 years ago)
Author:
ymipsl
Message:

2 fixs :

  • for curvilinear grids, associated coordinates are wrong if using default lon_name et lat_name value
  • add domain_id 2 times for boundaries name

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/XIOS_DEV_CMIP6/src/io/nc4_data_output.cpp

    r1392 r1415  
    115115             else latName = domain->lat_name; 
    116116              
    117              dimXid     = lonName.append(appendDomid); 
    118              dimYid     = latName.append(appendDomid); 
     117             dimXid     = lonName+appendDomid; 
     118             dimYid     = latName+appendDomid; 
    119119             break; 
    120120         } 
     
    212212                   case CDomain::type_attr::curvilinear : 
    213213                     dim0.push_back(dimYid); dim0.push_back(dimXid); 
    214                      lonid = lonName.append(appendDomid); 
    215                      latid = latName.append(appendDomid); 
     214                     lonid = lonName+appendDomid; 
     215                     latid = latName+appendDomid; 
    216216                     break ; 
    217217                   case CDomain::type_attr::rectilinear : 
    218                      lonid = lonName.append(appendDomid); 
    219                      latid = latName.append(appendDomid); 
     218                     lonid = lonName+appendDomid; 
     219                     latid = latName+appendDomid; 
    220220                     dim0.push_back(dimYid); 
    221221                     dim1.push_back(dimXid); 
     
    355355                     case CDomain::type_attr::curvilinear : 
    356356                       dim0.push_back(dimYid); dim0.push_back(dimXid); 
    357                        lonid = lonName.append(appendDomid); 
    358                        latid = latName.append(appendDomid); 
     357                       lonid = lonName+appendDomid; 
     358                       latid = latName+appendDomid; 
    359359                       SuperClassWriter::addVariable(latid, typePrec, dim0); 
    360360                       SuperClassWriter::addVariable(lonid, typePrec, dim0); 
     
    364364                       dim0.push_back(dimYid); 
    365365                       dim1.push_back(dimXid); 
    366                        lonid = lonName.append(appendDomid); 
    367                        latid = latName.append(appendDomid); 
     366                       lonid = lonName+appendDomid; 
     367                       latid = latName+appendDomid; 
    368368                       SuperClassWriter::addVariable(latid, typePrec, dim0); 
    369369                       SuperClassWriter::addVariable(lonid, typePrec, dim1); 
     
    10421042                 SuperClassWriter::addDimension(dimXid, domain->zoom_ni); 
    10431043 
    1044                  lonid = lonName.append(appendDomid); 
    1045                  latid = latName.append(appendDomid); 
     1044                 lonid = lonName+appendDomid; 
     1045                 latid = latName+appendDomid; 
    10461046                 bounds_lonid = "bounds_"+lonName+appendDomid; 
    10471047                 bounds_latid = "bounds_"+latName+appendDomid; 
     
    10961096              case (ONE_FILE) : 
    10971097              { 
    1098                  lonid = lonName.append(appendDomid); 
    1099                  latid = latName.append(appendDomid); 
     1098                 lonid = lonName+appendDomid; 
     1099                 latid = latName+appendDomid; 
    11001100                 bounds_lonid = "bounds_"+lonName+appendDomid; 
    11011101                 bounds_latid = "bounds_"+latName+appendDomid; 
     
    17301730            StdString lonName,latName ; 
    17311731 
    1732             if (domain->lon_name.isEmpty()) lonName = "lon"; 
     1732            if (domain->lon_name.isEmpty()) 
     1733            {  
     1734              if (domain->type==CDomain::type_attr::curvilinear) lonName = "nav_lon"; 
     1735              else lonName = "lon"; 
     1736            } 
    17331737            else lonName = domain->lon_name; 
    17341738 
    1735             if (domain->lat_name.isEmpty()) latName = "lat"; 
     1739            if (domain->lat_name.isEmpty()) 
     1740            { 
     1741              if (domain->type==CDomain::type_attr::curvilinear) latName = "nav_lat"; 
     1742              else latName = "lat"; 
     1743            } 
    17361744            else latName = domain->lat_name; 
    17371745         
     
    17521760                  dimIdList.push_back(dimYid); 
    17531761                } 
    1754                 dimCoordList.push_back(lonName.append(appendDomId)); 
    1755                 dimCoordList.push_back(latName.append(appendDomId)); 
     1762                dimCoordList.push_back(lonName+appendDomId); 
     1763                dimCoordList.push_back(latName+appendDomId); 
    17561764              break ; 
    17571765              case CDomain::type_attr::rectilinear: 
    17581766                if (!compressedOutput || !domain->isCompressible()) 
    17591767                { 
    1760                   dimXid     = lonName.append(appendDomId); 
     1768                  dimXid     = lonName+appendDomId; 
    17611769                  dimIdList.push_back(dimXid); 
    1762                   dimYid     = latName.append(appendDomId); 
     1770                  dimYid     = latName+appendDomId; 
    17631771                  dimIdList.push_back(dimYid); 
    17641772                } 
     
    17701778                  dimXid     = StdString("cell").append(appendDomId); 
    17711779                  dimIdList.push_back(dimXid); 
    1772                   dimCoordList.push_back(lonName.append(appendDomId)); 
    1773                   dimCoordList.push_back(latName.append(appendDomId)); 
     1780                  dimCoordList.push_back(lonName+appendDomId); 
     1781                  dimCoordList.push_back(latName+appendDomId); 
    17741782                } 
    17751783                else 
Note: See TracChangeset for help on using the changeset viewer.