Ignore:
Timestamp:
09/10/20 13:51:02 (4 years ago)
Author:
ymipsl
Message:

Big update on on going work related to data distribution and transfer between clients and servers.
Revisite of the source and store filter using "connectors".

YM

File:
1 edited

Legend:

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

    r1882 r1930  
    5858        StdString lonName,latName ; 
    5959          
    60         domain->computeWrittenIndex(); 
     60        //domain->computeWrittenIndex(); 
    6161        domain->computeWrittenCompressedIndex(comm_file); 
    6262 
     
    319319                   { 
    320320                     case CDomain::type_attr::curvilinear :                        
    321                        SuperClassWriter::writeData(writtenLat, latid, isCollective, 0); 
    322                        SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0); 
     321                       SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0); 
     322                       SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0); 
    323323                       break; 
    324324                     case CDomain::type_attr::rectilinear : 
    325                        CArray<double,1> lat = writtenLat(Range(fromStart,toEnd,domain->ni)) ; 
     325                       CArray<double,1> lat = domain->latvalue(Range(fromStart,toEnd,domain->ni)) ; 
    326326                       SuperClassWriter::writeData(CArray<double,1>(lat.copy()), latid, isCollective, 0); 
    327                        CArray<double,1> lon = writtenLon(Range(0,domain->ni-1)) ; 
     327                       CArray<double,1> lon = domain->lonvalue(Range(0,domain->ni-1)) ; 
    328328                       SuperClassWriter::writeData(CArray<double,1>(lon.copy()), lonid, isCollective, 0); 
    329329                       break; 
     
    332332                   if (domain->hasBounds) 
    333333                   { 
    334                      SuperClassWriter::writeData(writtenBndsLon, bounds_lonid, isCollective, 0); 
    335                      SuperClassWriter::writeData(writtenBndsLat, bounds_latid, isCollective, 0); 
     334                     SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0); 
     335                     SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0); 
    336336                   } 
    337337                 } 
     
    339339                 if (domain->hasArea) 
    340340                 { 
    341                    SuperClassWriter::writeData(writtenArea, areaId, isCollective, 0);                    
     341                   SuperClassWriter::writeData(domain->areavalue, areaId, isCollective, 0);                    
    342342                 } 
    343343 
     
    432432                     if (domain->hasLonLat) 
    433433                     { 
    434                        SuperClassWriter::writeData(writtenLat, latid, isCollective, 0,&start,&count); 
    435                        SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0,&start,&count); 
     434//                       SuperClassWriter::writeData(writtenLat, latid, isCollective, 0,&start,&count); 
     435//                       SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0,&start,&count); 
     436                       SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0,&start,&count); 
     437                       SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0,&start,&count); 
     438 
    436439                     } 
    437440                     break; 
     
    443446                       std::vector<StdSize> start(1) ; 
    444447                       std::vector<StdSize> count(1) ; 
    445                        if (domain->isEmpty()) 
    446                        { 
    447                          start[0]=0 ; 
    448                          count[0]=0 ; 
    449                          SuperClassWriter::writeData(writtenLat, latid, isCollective, 0,&start,&count); 
    450                          SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0,&start,&count); 
    451                        } 
    452                        else 
    453                        {  
    454                          start[0]=domain->jbegin; 
    455                          count[0]=domain->nj; 
    456                          CArray<double,1> lat = writtenLat(Range(fromStart,toEnd,domain->ni)); 
    457                          SuperClassWriter::writeData(CArray<double,1>(lat.copy()), latid, isCollective, 0,&start,&count); 
    458  
    459                          start[0]=domain->ibegin; 
    460                          count[0]=domain->ni; 
    461                          CArray<double,1> lon = writtenLon(Range(0,domain->ni-1)); 
    462                          SuperClassWriter::writeData(CArray<double,1>(lon.copy()), lonid, isCollective, 0,&start,&count); 
    463                        } 
     448                        
     449                       start[0]=domain->jbegin; 
     450                       count[0]=domain->nj; 
     451                       CArray<double,1> lat = domain->latvalue(Range(fromStart,toEnd,domain->ni)); 
     452                       SuperClassWriter::writeData(CArray<double,1>(lat.copy()), latid, isCollective, 0,&start,&count); 
     453 
     454                       start[0]=domain->ibegin; 
     455                       count[0]=domain->ni; 
     456                       CArray<double,1> lon = domain->lonvalue(Range(0,domain->ni-1)); 
     457                       SuperClassWriter::writeData(CArray<double,1>(lon.copy()), lonid, isCollective, 0,&start,&count); 
    464458                     } 
    465459                     break; 
     
    486480                   } 
    487481                  
    488                    SuperClassWriter::writeData(writtenBndsLon, bounds_lonid, isCollective, 0, &start, &count); 
    489                    SuperClassWriter::writeData(writtenBndsLat, bounds_latid, isCollective, 0, &start, &count); 
     482//                   SuperClassWriter::writeData(writtenBndsLon, bounds_lonid, isCollective, 0, &start, &count); 
     483//                   SuperClassWriter::writeData(writtenBndsLat, bounds_latid, isCollective, 0, &start, &count); 
     484                   SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0, &start, &count); // will probably not working for rectilinear 
     485                   SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0, &start, &count); 
    490486                 } 
    491487 
     
    495491                   std::vector<StdSize> count(2); 
    496492 
    497                    if (domain->isEmpty()) 
    498                    { 
    499                      start[0] = 0; start[1] = 0; 
    500                      count[0] = 0; count[1] = 0; 
    501                    } 
    502                    else 
    503                    { 
    504                      start[1] = domain->ibegin; 
    505                      start[0] = domain->jbegin; 
    506                      count[1] = domain->ni; 
    507                      count[0] = domain->nj; 
    508                    } 
     493                   start[1] = domain->ibegin; 
     494                   start[0] = domain->jbegin; 
     495                   count[1] = domain->ni; 
     496                   count[0] = domain->nj; 
    509497                    
    510                    SuperClassWriter::writeData(writtenArea, areaId, isCollective, 0, &start, &count); 
     498                   SuperClassWriter::writeData(domain->areavalue, areaId, isCollective, 0, &start, &count); 
    511499                 } 
    512500 
     
    10441032                 if (domain->hasLonLat) 
    10451033                 { 
    1046                    SuperClassWriter::writeData(writtenLat, latid, isCollective, 0); 
    1047                    SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0); 
     1034//                   SuperClassWriter::writeData(writtenLat, latid, isCollective, 0); 
     1035//                   SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0); 
     1036                   SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0); 
     1037                   SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0); 
    10481038                   if (domain->hasBounds) 
    10491039                   { 
    1050                      SuperClassWriter::writeData(writtenBndsLon, bounds_lonid, isCollective, 0); 
    1051                      SuperClassWriter::writeData(writtenBndsLat, bounds_latid, isCollective, 0); 
     1040//                     SuperClassWriter::writeData(writtenBndsLon, bounds_lonid, isCollective, 0); 
     1041//                     SuperClassWriter::writeData(writtenBndsLat, bounds_latid, isCollective, 0); 
     1042                     SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0); 
     1043                     SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0); 
    10521044                   } 
    10531045                 } 
    10541046 
    10551047                 if (domain->hasArea) 
    1056                    SuperClassWriter::writeData(writtenArea, areaId, isCollective, 0); 
     1048//                   SuperClassWriter::writeData(writtenArea, areaId, isCollective, 0); 
     1049                   SuperClassWriter::writeData(domain->areavalue, areaId, isCollective, 0); 
    10571050 
    10581051                 SuperClassWriter::definition_start(); 
     
    11261119                 if (domain->hasLonLat) 
    11271120                 { 
    1128                    SuperClassWriter::writeData(writtenLat, latid, isCollective, 0,&start,&count); 
    1129                    SuperClassWriter::writeData(writtenLon, lonid, isCollective, 0,&start,&count); 
     1121                   SuperClassWriter::writeData(domain->latvalue, latid, isCollective, 0,&start,&count); 
     1122                   SuperClassWriter::writeData(domain->lonvalue, lonid, isCollective, 0,&start,&count); 
    11301123                   if (domain->hasBounds) 
    11311124                   { 
    1132                      SuperClassWriter::writeData(writtenBndsLon, bounds_lonid, isCollective, 0,&startBounds,&countBounds); 
    1133                      SuperClassWriter::writeData(writtenBndsLat, bounds_latid, isCollective, 0,&startBounds,&countBounds); 
     1125                     SuperClassWriter::writeData(domain->bounds_lonvalue, bounds_lonid, isCollective, 0,&startBounds,&countBounds); 
     1126                     SuperClassWriter::writeData(domain->bounds_latvalue, bounds_latid, isCollective, 0,&startBounds,&countBounds); 
    11341127                   } 
    11351128                 } 
    11361129 
    11371130                 if (domain->hasArea) 
    1138                    SuperClassWriter::writeData(writtenArea, areaId, isCollective, 0, &start, &count); 
     1131                   SuperClassWriter::writeData(domain->areavalue, areaId, isCollective, 0, &start, &count); 
    11391132 
    11401133                 SuperClassWriter::definition_start(); 
     
    11661159        axis->checkAttributes(); 
    11671160 
    1168         axis->computeWrittenIndex(); 
     1161//        axis->computeWrittenIndex(); 
    11691162        axis->computeWrittenCompressedIndex(comm_file); 
    11701163        
     
    13031296              { 
    13041297                if (!axis->value.isEmpty()) 
    1305                   SuperClassWriter::writeData(axis_value, axisid, isCollective, 0); 
     1298                  SuperClassWriter::writeData(axis->value, axisid, isCollective, 0); 
    13061299 
    13071300                if (!axis->bounds.isEmpty()) 
     
    13211314                    } 
    13221315                  } 
    1323                   SuperClassWriter::writeData(axis_bounds, axisBoundsId, isCollective, 0); 
     1316                  SuperClassWriter::writeData(axis->bounds, axisBoundsId, isCollective, 0); 
    13241317                } 
    13251318              } 
     
    13421335              { 
    13431336                if (!axis->value.isEmpty()) 
    1344                   SuperClassWriter::writeData(axis_value, axisid, isCollective, 0, &start, &count); 
     1337                  SuperClassWriter::writeData(axis->value, axisid, isCollective, 0, &start, &count); 
    13451338 
    13461339                if (!axis->bounds.isEmpty()) 
     
    13601353                    } 
    13611354                  } 
    1362                   SuperClassWriter::writeData(axis_bounds, axisBoundsId, isCollective, 0, &startBounds, &countBounds); 
     1355                  SuperClassWriter::writeData(axis->bounds, axisBoundsId, isCollective, 0, &startBounds, &countBounds); 
    13631356                } 
    13641357              } 
     
    24752468             field->outputCompressedField(dataIn, fieldData); 
    24762469           else 
    2477              field->outputField(dataIn, fieldData); 
     2470           { 
     2471             //field->outputField(dataIn, fieldData); 
     2472             if (!field->default_value.isEmpty()) field->getGrid()->getWorkflowToFullConnector()->transfer(dataIn, fieldData, (double)field->default_value ) ; 
     2473             else field->getGrid()->getWorkflowToFullConnector()->transfer(dataIn, fieldData ) ; 
     2474           } 
    24782475 
    24792476           if (!field->prec.isEmpty() && field->prec == 2) fieldData = round(fieldData); 
Note: See TracChangeset for help on using the changeset viewer.