Ignore:
Timestamp:
11/23/21 13:12:46 (3 years ago)
Author:
ymipsl
Message:

Scalar can be now distributed on server side, avoiding incorrect result coming from redondant nature of scalar grid.
YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/io/onetcdf4_impl.hpp

    r1755 r2264  
    1919    std::vector<StdSize> sstart, scount; 
    2020 
    21     if (this->wmpi && collective) 
    22     CNetCdfInterface::varParAccess(grpid, varid, NC_COLLECTIVE); 
    23     if (this->wmpi && !collective) 
    24     CNetCdfInterface::varParAccess(grpid, varid, NC_INDEPENDENT); 
     21    if (this->wmpi && collective) CNetCdfInterface::varParAccess(grpid, varid, NC_COLLECTIVE); 
     22    if (this->wmpi && !collective) CNetCdfInterface::varParAccess(grpid, varid, NC_INDEPENDENT); 
    2523 
    2624    CTimer::get("Files : get data infos").resume(); 
    27     this->getWriteDataInfos 
    28     (name, record, array_size,  sstart, scount, start, count); 
     25    this->getWriteDataInfos(name, record, array_size,  sstart, scount, start, count); 
    2926    CTimer::get("Files : get data infos").suspend(); 
    30  
     27    
    3128    if (data.numElements() != array_size) 
    3229    { 
     
    3633      << " ] Invalid input data !" ); 
    3734    } 
    38  
    39     this->writeData_(grpid, varid, sstart, scount, data.dataFirst()); 
     35     
     36    if (this->wmpi && sstart.size()==0) CNetCdfInterface::varParAccess(grpid, varid, NC_INDEPENDENT); // pure scalar case 
     37    if (data.numElements()==0 && sstart.size()==0) {}// pure scalar case if nothing to write, write nothing (independent access)  
     38    else this->writeData_(grpid, varid, sstart, scount, data.dataFirst()); 
    4039  } 
    4140 
Note: See TracChangeset for help on using the changeset viewer.