Ignore:
Timestamp:
07/31/17 17:59:25 (7 years ago)
Author:
mhnguyen
Message:

Fixing the blocking problem where there are more servers than the number of grid band distribution

+) Correct this problem not only for writing but also for reading
+) Allow "zero-size" domain, axis (i.e: domain, axis with ni = 0, and/or nj=0)

Test
+) On Curie
+) Work in both cases: Read and Write data

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/XIOS_DEV_CMIP6/src/node/file.hpp

    r1158 r1232  
    8989         void checkWriteFile(void); 
    9090         void checkReadFile(void); 
    91          void initFile(void); 
     91         void initWrite(void); 
     92         void initRead(void); 
     93         bool isEmptyZone(); 
    9294 
    9395         /// Mutateurs /// 
     
    9799 
    98100         void createHeader(void); 
    99          void openInReadMode(MPI_Comm* readComm = NULL); 
     101         void openInReadMode(void); 
    100102         void close(void); 
    101103         void readAttributesOfEnabledFieldsInReadMode(); 
     
    122124         void setContextClient(CContextClient* newContextClient); 
    123125         CContextClient* getContextClient(); 
     126 
     127         void setReadContextClient(CContextClient* newContextClient); 
     128         CContextClient* getReadContextClient(); 
    124129 
    125130         // Send info to server          
     
    162167         CDate lastSplit; 
    163168         int nbAxis, nbDomains; 
    164          bool isOpen; 
    165          bool allDomainEmpty; 
     169         bool isOpen;          
    166170         MPI_Comm fileComm; 
    167171 
     172      private: 
     173         void createSubComFile(); 
     174         bool checkRead; 
     175         bool allZoneEmpty; 
     176          
    168177      private : 
    169178         /// Propriétés privées /// 
    170179         CContextClient* client; 
     180         CContextClient* read_client; // Context client for reading (channel between server 1 and client) 
    171181         CFieldGroup* vFieldGroup; 
    172182         CVariableGroup* vVariableGroup; 
     
    175185         std::vector<CField*> enabledFields; 
    176186 
     187 
    177188      public: 
    178189        //         virtual void toBinary  (StdOStream& os) const; 
Note: See TracChangeset for help on using the changeset viewer.