Changeset 1067


Ignore:
Timestamp:
03/08/17 16:55:00 (4 years ago)
Author:
yushan
Message:

server mode OK tested with test_complete

Location:
XIOS/dev/branch_yushan
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_yushan/bld.cfg

    r1060 r1067  
    3636#test_remap.exe 
    3737#bld::target test_new_features.exe test_unstruct_complete.exe  
    38 bld::target test_client.exe #test_complete.exe 
     38bld::target test_client.exe test_complete.exe 
    3939bld::exe_dep 
    4040 
  • XIOS/dev/branch_yushan/extern/src_ep_dev/ep_dup.cpp

    r1063 r1067  
    55namespace ep_lib 
    66{ 
    7  
    8  
    9  
    10   int MPI_Comm_dup_dev(MPI_Comm comm, MPI_Comm *newcomm) 
    11   { 
    12     if(!comm.is_ep) 
    13     { 
    14       Debug("Comm_dup MPI\n"); 
    15       newcomm = new MPI_Comm; 
    16       newcomm->is_ep = comm.is_ep; 
    17  
    18       ::MPI_Comm input = static_cast< ::MPI_Comm>(comm.mpi_comm); 
    19       ::MPI_Comm output; 
    20  
    21        
    22       ::MPI_Comm_dup(input, &output); 
    23  
    24       newcomm->mpi_comm = output; 
    25  
    26       return 0; 
    27     } 
    28  
    29     if(!comm.mpi_comm) return 0; 
    30  
    31  
    32     int my_rank = comm.ep_comm_ptr->size_rank_info[1].first; 
    33     int num_ep  = comm.ep_comm_ptr->size_rank_info[1].second; 
    34  
    35  
    36     if(0 == my_rank) 
    37     { 
    38       MPI_Info info; 
    39       ::MPI_Comm mpi_dup; 
    40  
    41       ::MPI_Comm in_comm = static_cast< ::MPI_Comm>(comm.mpi_comm); 
    42  
    43       ::MPI_Comm_dup(in_comm, &mpi_dup); 
    44  
    45       MPI_Comm_create_endpoints(mpi_dup, num_ep, info, newcomm); 
    46       comm.ep_comm_ptr->comm_list->mem_bridge = newcomm; 
    47     } 
    48  
    49     MPI_Barrier_local(comm); 
    50  
    51     newcomm = &(comm.ep_comm_ptr->comm_list->mem_bridge[my_rank]); 
    52  
    53     return MPI_SUCCESS; 
    54   } 
    55  
    56  
    577 
    588  int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm) 
  • XIOS/dev/branch_yushan/extern/src_ep_dev/ep_fortran.cpp

    r1060 r1067  
    1 //#include "ep_lib.hpp" 
     1#include "ep_lib.hpp" 
    22#include "ep_lib_fortran.hpp" 
    33#include <mpi.h> 
    44#include <map> 
    55#include <utility> 
     6#include "ep_declaration.hpp" 
    67 
    78#ifdef _intelmpi 
     
    2627    fint = ::MPI_Comm_c2f(static_cast< ::MPI_Comm>(comm.mpi_comm)); 
    2728    #endif 
    28     std::map<std::pair<int, int>, MPI_Comm  > ::iterator it; 
     29    std::map<std::pair<int, int>, MPI_Comm > ::iterator it; 
    2930     
    3031    it = fc_comm_map.find(std::make_pair(fint, omp_get_thread_num())); 
     
    3233    { 
    3334      fc_comm_map.insert(std::make_pair( std::make_pair( fint, omp_get_thread_num()) , comm)); 
    34       //printf("EP_Comm_c2f : MAP insert: %d, %d, %p\n", fint, omp_get_thread_num(), &comm); 
     35      printf("EP_Comm_c2f : MAP insert: %d, %d, %p\n", fint, omp_get_thread_num(), &comm); 
    3536    } 
    3637     
     
    4546     
    4647     
    47     std::map<std::pair<int, int>, MPI_Comm  > ::iterator it; 
     48    std::map<std::pair<int, int>, MPI_Comm > ::iterator it; 
    4849     
    4950    it = fc_comm_map.find(std::make_pair(comm, omp_get_thread_num())); 
     
    5152    { 
    5253      MPI_Comm comm_ptr; 
    53       comm_ptr =  it->second; 
    54       //printf("EP_Comm_f2c : MAP find: %d, %d, %p\n", it->first.first, it->first.second, &comm_ptr); 
     54      comm_ptr = it->second; 
     55      printf("EP_Comm_f2c : MAP find: %d, %d, %p\n", it->first.first, it->first.second, it->second); 
    5556      return  comm_ptr; 
    5657    } 
     
    5859    {       
    5960      MPI_Comm return_comm; 
    60       return_comm.mpi_comm = ::MPI_Comm_f2c(comm); 
     61      if(omp_get_thread_num() == 0) 
     62      { 
     63        ::MPI_Comm base_comm = ::MPI_Comm_f2c(comm); 
     64        if(base_comm != MPI_COMM_NULL_STD) 
     65        { 
     66          int num_ep = omp_get_num_threads(); 
     67          MPI_Comm *new_comm; 
     68          MPI_Info info; 
     69          MPI_Comm_create_endpoints(base_comm, num_ep, info, new_comm); 
     70          return_comm = new_comm[omp_get_thread_num()]; 
     71        } 
     72        return MPI_COMM_NULL; 
     73      } 
     74       
     75       
    6176      return return_comm; 
    6277    } 
     
    122137    fint = ::MPI_Comm_c2f(static_cast< ::MPI_Comm>(comm.mpi_comm)); 
    123138     
    124     std::map<std::pair<int, int>, MPI_Comm  > ::iterator it; 
     139    std::map<std::pair<int, int>, MPI_Comm > ::iterator it; 
    125140     
    126141    it = fc_comm_map.find(std::make_pair(fint, omp_get_thread_num())); 
     
    140155     
    141156     
    142     std::map<std::pair<int, int>, MPI_Comm  > ::iterator it; 
     157    std::map<std::pair<int, int>, MPI_Comm > ::iterator it; 
    143158     
    144159    it = fc_comm_map.find(std::make_pair(comm, omp_get_thread_num())); 
     
    147162      MPI_Comm comm_ptr; 
    148163      comm_ptr =  it->second; 
    149       printf("MAP find: %d, %d, %p\n", it->first.first, it->first.second, &comm_ptr); 
     164      printf("MAP find: %d, %d, %p\n", it->first.first, it->first.second, comm_ptr); 
    150165      return  comm_ptr; 
    151166    } 
  • XIOS/dev/branch_yushan/extern/src_ep_dev/ep_intercomm_kernel.cpp

    r1053 r1067  
    351351        #pragma omp critical (write_to_tag_list) 
    352352        tag_list.push_back(make_pair( make_pair(tag, min(leader_info[0], leader_info[1])) , ep_intercomm)); 
     353        printf("tag_list size = %lu\n", tag_list.size()); 
    353354      } 
    354355 
     
    419420            *newintercomm =  iter->second[my_position]; 
    420421            found = true; 
     422            tag_list.erase(iter); 
    421423            break; 
    422424          } 
     
    426428 
    427429    MPI_Barrier_local(local_comm); 
     430    // if(is_proc_master) 
     431    // { 
     432    //   for(std::list<std::pair < std::pair<int,int>, MPI_Comm* > >::iterator iter = tag_list.begin(); iter!=tag_list.end(); iter++) 
     433    //   { 
     434    //     if((*iter).first == make_pair(tag, min(leader_info[0], leader_info[1]))) 
     435    //     { 
     436    //       tag_list.erase(iter); 
     437    //       break; 
     438    //     } 
     439    //   } 
     440    // } 
    428441 
    429442    int intercomm_ep_rank, intercomm_ep_rank_loc, intercomm_mpi_rank; 
     
    674687            *newintercomm =  iter->second[my_position]; 
    675688            found = true; 
     689            tag_list.erase(iter); 
    676690            break; 
    677691          } 
     
    679693      } 
    680694    } 
     695 
     696    // if(leader_rank_in_peer[0] < leader_rank_in_peer[1]) 
     697    // { 
     698    //   for(std::list<std::pair < std::pair<int,int>, MPI_Comm* > >::iterator iter = tag_list.begin(); iter!=tag_list.end(); iter++) 
     699    //     { 
     700    //       if((*iter).first == make_pair(tag_label[0], tag_label[1])) 
     701    //       { 
     702    //         tag_list.erase(iter); 
     703    //       } 
     704    //     } 
     705    // } 
    681706 
    682707 
  • XIOS/dev/branch_yushan/extern/src_ep_dev/ep_intercomm_world.cpp

    r1053 r1067  
    417417 
    418418            found = true; 
     419            tag_list.erase(iter); 
    419420            break; 
    420421          } 
     
    424425 
    425426    MPI_Barrier_local(local_comm); 
     427 
     428    // if(is_proc_master) 
     429    // { 
     430    //   for(std::list<std::pair < std::pair<int,int>, MPI_Comm* > >::iterator iter = tag_list.begin(); iter!=tag_list.end(); iter++) 
     431    //   { 
     432    //     if((*iter).first == make_pair(tag, min(leader_info[0], leader_info[1]))) 
     433    //     { 
     434    //       tag_list.erase(iter); 
     435    //     } 
     436    //   } 
     437    // } 
     438 
     439     
    426440 
    427441    int intercomm_ep_rank, intercomm_ep_rank_loc, intercomm_mpi_rank; 
     
    920934 
    921935            found = true; 
     936            tag_list.erase(iter); 
    922937            break; 
    923938          } 
     
    927942 
    928943    MPI_Barrier_local(local_comm); 
     944 
     945    // if(is_proc_master) 
     946    // { 
     947    //   for(std::list<std::pair < std::pair<int,int>, MPI_Comm* > >::iterator iter = tag_list.begin(); iter!=tag_list.end(); iter++) 
     948    //   { 
     949    //     if((*iter).first == make_pair(tag, min(leader_info[0], leader_info[1]))) 
     950    //     { 
     951    //       tag_list.erase(iter); 
     952    //     } 
     953    //   } 
     954    // } 
    929955 
    930956    int intercomm_ep_rank, intercomm_ep_rank_loc, intercomm_mpi_rank; 
  • XIOS/dev/branch_yushan/extern/src_ep_dev/ep_message.cpp

    r1037 r1067  
    2424 
    2525    if(comm.is_intercomm) 
    26           { 
     26    { 
    2727      return  Message_Check_intercomm(comm); 
    2828    } 
  • XIOS/dev/branch_yushan/extern/src_ep_dev/ep_test.cpp

    r1053 r1067  
    6565        status->ep_tag = request->ep_tag; 
    6666        status->ep_datatype = request->ep_datatype; 
    67         int count; 
    68         MPI_Get_count(status, request->ep_datatype, &count); 
     67        //int count; 
     68        //MPI_Get_count(status, request->ep_datatype, &count); 
    6969        //check_sum_recv(request->buf, count, request->ep_datatype, request->ep_src, request->ep_tag, request->comm, 2); 
    7070      } 
  • XIOS/dev/branch_yushan/extern/src_ep_dev/ep_type.hpp

    r1053 r1067  
    282282    MPI_Comm() 
    283283    { 
    284       is_ep = false; 
     284      is_ep = true; 
    285285      is_intercomm = false; 
    286286      my_buffer = NULL; 
     
    338338      bool c = mpi_comm != right.mpi_comm; 
    339339      bool d = is_ep ? ep_comm_ptr != right.ep_comm_ptr : true; 
     340 
    340341      return a||b||c||d; 
    341342    } 
     
    424425  static std::list<std::pair<std::pair<int, int>, MPI_Comm * > > tag_list; 
    425426 
    426   static std::map<std::pair<int, int>, MPI_Comm  >  fc_comm_map; 
     427  static std::map<std::pair<int, int>, MPI_Comm >  fc_comm_map; 
    427428            //    <MPI_Fint,thread_num>   EP_Comm 
    428429 
  • XIOS/dev/branch_yushan/extern/src_ep_dev/ep_wait.cpp

    r1053 r1067  
    6868      status->ep_datatype = request->ep_datatype; 
    6969 
    70       int count; 
    71       MPI_Get_count(status, request->ep_datatype, &count); 
     70      //int count; 
     71      //MPI_Get_count(status, request->ep_datatype, &count); 
    7272      //check_sum_recv(request->buf, count, request->ep_datatype, request->ep_src, request->ep_tag, request->comm, 2); 
    7373    } 
     
    104104            if(array_of_requests[i].type == 3) 
    105105            { 
    106               int check_count; 
    107               MPI_Get_count(&array_of_statuses[i], array_of_requests[i].ep_datatype, &check_count); 
     106              //int check_count; 
     107              //MPI_Get_count(&array_of_statuses[i], array_of_requests[i].ep_datatype, &check_count); 
    108108              //check_sum_recv(array_of_requests[i].buf, count, array_of_requests[i].ep_datatype, array_of_requests[i].ep_src, array_of_requests[i].ep_tag, array_of_requests[i].comm, 2); 
    109109            } 
  • XIOS/dev/branch_yushan/src/client.cpp

    r1063 r1067  
    5151          int myColor ; 
    5252          int i,c ; 
    53           MPI_Comm newComm ; 
     53          //MPI_Comm newComm ; 
    5454 
    5555          MPI_Comm_size(CXios::globalComm,&size) ; 
     
    187187        MPI_Send(buff,buffer.count(),MPI_CHAR,serverLeader,1,CXios::globalComm) ; 
    188188        delete [] buff ; 
    189          
    190         //printf("====== Client: begin context_init \n"); 
    191        
     189               
    192190 
    193191        MPI_Intercomm_create(contextComm,0,CXios::globalComm,serverLeader,10+globalRank,&contextInterComm) ; 
    194192        info(10)<<"Register new Context : "<<id<<endl ; 
    195          
    196         //cout<<"Register new Context : "<<id<<endl ; 
    197                
    198  
    199         // MPI_Comm inter ; 
    200         // MPI_Intercomm_merge(contextInterComm,0,&inter) ; 
    201         // MPI_Barrier(inter) ; 
     193                       
     194 
     195        MPI_Comm inter ; 
     196        MPI_Intercomm_merge(contextInterComm,0,&inter) ; 
     197        MPI_Barrier(inter) ; 
    202198         
    203199         
    204200        context->initClient(contextComm,contextInterComm) ; 
    205201         
    206         //printf("====== Client: context_init OK\n"); 
    207202 
    208203        contextInterComms.push_back(contextInterComm); 
    209         // MPI_Comm_free(&inter); 
     204        MPI_Comm_free(&inter); 
    210205      } 
    211206      else 
  • XIOS/dev/branch_yushan/src/context_server.cpp

    r1063 r1067  
    8080      { 
    8181        traceOff(); 
    82         MPI_Iprobe(rank,20,interComm,&flag,&status); 
     82        ep_lib::MPI_Iprobe(rank,20,interComm,&flag,&status); 
    8383        traceOn(); 
    8484        if (flag==true) 
     
    8989          { 
    9090            StdSize buffSize = 0; 
    91             MPI_Recv(&buffSize, 1, MPI_LONG, rank, 20, interComm, &status); 
     91            ep_lib::MPI_Recv(&buffSize, 1, MPI_LONG, rank, 20, interComm, &status); 
    9292            mapBufferSize_.insert(std::make_pair(rank, buffSize)); 
    9393            it=(buffers.insert(pair<int,CServerBuffer*>(rank,new CServerBuffer(buffSize)))).first; 
     
    9797          { 
    9898             
    99             MPI_Get_count(&status,MPI_CHAR,&count); 
     99            ep_lib::MPI_Get_count(&status,MPI_CHAR,&count); 
    100100            if (it->second->isBufferFree(count)) 
    101101            { 
     
    121121    ep_lib::MPI_Status status; 
    122122 
    123     //printf("enter checkPendingRequest\n"); 
    124123    if(!pendingRequest.empty()) 
    125124    for(it=pendingRequest.begin();it!=pendingRequest.end();++it) 
     
    127126      rank=it->first; 
    128127      traceOff(); 
    129       MPI_Test(& it->second, &flag, &status); 
     128      ep_lib::MPI_Test(& it->second, &flag, &status); 
    130129      traceOn(); 
    131130      if (flag==true) 
    132131      { 
    133132        recvRequest.push_back(rank); 
    134         MPI_Get_count(&status,MPI_CHAR,&count); 
     133        ep_lib::MPI_Get_count(&status,MPI_CHAR,&count); 
    135134        processRequest(rank,bufferRequest[rank],count); 
    136135      } 
     
    149148 
    150149    CBufferIn buffer(buff,count); 
    151     char* startBuffer,endBuffer; 
    152     int size, offset; 
     150    //char* startBuffer,endBuffer; 
     151    int size; 
     152    //int offset; 
    153153    size_t timeLine; 
    154154    map<size_t,CEventServer*>::iterator it; 
  • XIOS/dev/branch_yushan/src/interface/c/icdata.cpp

    r1060 r1067  
    11/* ************************************************************************** * 
    2  *      Copyright © IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
     2 *      Copyright IPSL/LSCE, xios, Avril 2010 - Octobre 2011         * 
    33 * ************************************************************************** */ 
    44 
     
    2929extern "C" 
    3030{ 
    31 // /////////////////////////////// Définitions ////////////////////////////// // 
    32  
    33    // ----------------------- Redéfinition de types ---------------------------- 
     31// /////////////////////////////// Dfinitions ////////////////////////////// // 
     32 
     33   // ----------------------- Redfinition de types ---------------------------- 
    3434 
    3535   typedef enum { NETCDF4 = 0 } XFileType; 
     
    3737   typedef xios::CContext* XContextPtr; 
    3838 
    39    // -------------------- Traitement des données ------------------------------ 
     39   // -------------------- Traitement des donnes ------------------------------ 
    4040 
    4141   // This function is not exported to the public Fortran interface, 
     
    8888     CTimer::get("XIOS init context").resume(); 
    8989     comm = ep_lib::EP_Comm_f2c(static_cast< int >(*f_comm)); 
     90 
     91     //ep_lib::MPI_Comm ctx_comm; 
     92     //ep_lib::MPI_Comm_dup(comm, &ctx_comm); 
    9093     
    91      CClient::registerContext(str, comm); 
     94     CClient::registerContext(str,comm); 
    9295      
    93      //printf("icdata.cpp: client register context OK\n"); 
     96     printf("icdata.cpp: client register context %s : %p\n", context_id, &comm); 
    9497      
    9598     CTimer::get("XIOS init context").suspend(); 
     
    384387 
    385388 
    386    // ---------------------- Ecriture des données ------------------------------ 
     389   // ---------------------- Ecriture des donnes ------------------------------ 
    387390 
    388391   void cxios_write_data_k80(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize) 
     
    719722    } 
    720723 
    721    // ---------------------- Lecture des données ------------------------------ 
     724   // ---------------------- Lecture des donnes ------------------------------ 
    722725 
    723726   void cxios_read_data_k80(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize) 
  • XIOS/dev/branch_yushan/src/node/context.cpp

    r1063 r1067  
    261261       comms.push_back(interCommServer); 
    262262        
    263        printf("comm_dup OK\n"); 
    264263     } 
    265264     server = new CContextServer(this,intraCommServer,interCommServer); 
  • XIOS/dev/branch_yushan/src/server.cpp

    r1063 r1067  
    222222           { 
    223223              MPI_Recv(&msg,1,MPI_INT,0,0,*it,&status) ; 
    224               printf(" CServer : Receive finalize sign from client 0\n"); 
    225224              info(20)<<" CServer : Receive client finalize"<<endl ; 
    226225 
     
    309308           MPI_Get_count(&status,MPI_CHAR,&count) ; 
    310309           recvContextMessage(buffer,count) ; 
    311            printf("listerContext register context OK, interComm size = %lu\n", interComm.size()); 
    312310            
    313311           delete [] buffer ; 
     
    353351         MPI_Waitall(size-1,requests,status) ; 
    354352         registerContext(buff,count,it->second.leaderRank) ; 
    355          printf("recvContextMessage register context OK\n"); 
    356353 
    357354         recvContextId.erase(it) ; 
     
    395392           MPI_Get_count(&status,MPI_CHAR,&count) ; 
    396393           registerContext(buffer,count) ; 
    397            printf("listenRootContext register context OK, interComm size = %lu\n", interComm.size()); 
    398394           delete [] buffer ; 
    399395           recept=false ; 
     
    418414       MPI_Intercomm_create(intraComm,0,CXios::globalComm,leaderRank,10+leaderRank,&contextIntercomm); 
    419415 
    420        // MPI_Comm inter; 
    421        // MPI_Intercomm_merge(contextIntercomm,1,&inter); 
    422        // MPI_Barrier(inter); 
     416       MPI_Comm inter; 
     417       MPI_Intercomm_merge(contextIntercomm,1,&inter); 
     418       MPI_Barrier(inter); 
     419 
     420       info(20) << "CServer : MPI_Intercomm_merge and MPI_Barrier " << contextId << endl; 
    423421        
    424422 
     
    432430        
    433431        
    434        // MPI_Comm_free(&inter); 
    435         
    436        //printf(" ****   server: register context OK\n"); 
     432       MPI_Comm_free(&inter); 
     433        
     434       info(20) << "CServer : Register new Context OKOK " << contextId << endl; 
    437435     } 
    438436 
  • XIOS/dev/branch_yushan/src/test/test_client.f90

    r1057 r1067  
    3636  CALL MPI_INIT(ierr) 
    3737  CALL init_wait 
     38 
     39  CALL MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierr) 
     40  if(rank < 2) then 
    3841   
    3942  CALL xios_initialize(id,return_comm=comm) 
     
    162165  CALL xios_finalize() 
    163166 
     167   else 
     168 
     169   CALL xios_init_server 
     170   
     171   endif 
     172     
     173 
    164174  CALL MPI_FINALIZE(ierr) 
    165175 
  • XIOS/dev/branch_yushan/src/test/test_complete.f90

    r1058 r1067  
    1010 
    1111  CHARACTER(len=*),PARAMETER :: id="client" 
    12   INTEGER :: comm 
     12  INTEGER :: comm, comm2 
    1313  TYPE(xios_duration)  :: dtime 
    1414  TYPE(xios_context) :: ctx_hdl 
     
    4848!########################################################################### 
    4949 
    50 !!! Initialisation des coordonnées globales et locales pour la grille réguliÚre 
     50!!! Initialisation des coordonnes globales et locales pour la grille rgulire 
    5151 
    5252  DO j=1,nj_glo 
     
    8080 
    8181  CALL xios_context_initialize("atmosphere",comm) 
     82  print*, "init context atmosphere comm = ", comm 
     83 
    8284  CALL xios_get_handle("atmosphere",ctx_hdl) 
    8385  CALL xios_set_current_context(ctx_hdl) 
     
    103105  CALL xios_set_fieldgroup_attr("field_definition",enabled=.TRUE.) 
    104106 
    105 !!! Création d un nouveau champ 
     107!!! Cration d un nouveau champ 
    106108 
    107109  CALL xios_get_handle("field_definition",fieldgroup_hdl) 
     
    123125  CALL xios_set_timestep(timestep=dtime) 
    124126 
    125 !!! Recupration des valeurs des longitudes et de taille des domaines locaux (pour test de fonctionnalité) 
     127!!! Recupration des valeurs des longitudes et de taille des domaines locaux (pour test de fonctionnalit) 
    126128 
    127129  ni=0 ; lonvalue(:,:)=0 
     
    162164!########################################################################### 
    163165 
    164 !!! Initialisation des coordonnées globales et locales pour la grille indexee (1 point sur 2) 
     166!!! Initialisation des coordonnes globales et locales pour la grille indexee (1 point sur 2) 
    165167 
    166168    nb_pt=ni*nj/2 
     
    172174 
    173175  CALL xios_context_initialize("surface",comm) 
     176  print*, "init context surface comm = ", comm 
     177 
    174178  CALL xios_get_handle("surface",ctx_hdl) 
    175179  CALL xios_set_current_context(ctx_hdl) 
     
    185189  CALL xios_set_domain_attr("domain_srf",lonvalue_2D=lon,latvalue_2D=lat) 
    186190 
    187 !!! Création d un nouveau champ 
     191!!! Cration d un nouveau champ 
    188192 
    189193  CALL xios_get_handle("field_definition",fieldgroup_hdl) 
     
    205209  CALL xios_set_timestep(timestep=dtime) 
    206210 
    207 !!! Recupration des valeurs des longitudes et de taille des domaines locaux (pour test de fonctionnalité) 
     211!!! Recupration des valeurs des longitudes et de taille des domaines locaux (pour test de fonctionnalit) 
    208212 
    209213  ni=0 ; lonvalue(:,:)=0 
     
    217221  CALL xios_close_context_definition() 
    218222 
    219   print *, "xios_close_context_definition(surface)"  
     223 print *, "xios_close_context_definition(surface)"  
    220224 
    221225 
     
    224228!#################################################################################### 
    225229 
    226     !DO ts=1,24*10 
    227     DO ts=1,24 
     230    DO ts=1,24*10 
     231    !DO ts=1,24 
    228232 
    229233      CALL xios_get_handle("atmosphere",ctx_hdl) 
     
    264268!!! Fin des contextes 
    265269 
    266     print *, "start : xios_context_finalize(surface)" 
     270    !print *, "start : xios_context_finalize(surface)" 
    267271 
    268272    CALL xios_get_handle("surface",ctx_hdl)  
    269     print *, "xios_get_handle OK" 
     273    !print *, "xios_get_handle (surface) OK" 
    270274    CALL xios_set_current_context(ctx_hdl) 
    271     print *, "xios_set_current_context OK" 
     275    !print *, "xios_set_current_context (surface) OK" 
    272276    CALL xios_context_finalize() 
    273277 
    274278    print *, "xios_context_finalize(surface)"  
    275279 
    276     CALL xios_get_handle("atmosphere",ctx_hdl) 
    277     CALL xios_set_current_context(ctx_hdl) 
    278     CALL xios_context_finalize() 
     280     CALL xios_get_handle("atmosphere",ctx_hdl) 
     281!     !print *, "xios_get_handle (atmosphere) OK" 
     282     CALL xios_set_current_context(ctx_hdl) 
     283!     !print *, "xios_set_current_context (atmosphere) OK" 
     284     CALL xios_context_finalize() 
    279285 
    280286    print *, "xios_context_finalize(atmosphere)" 
    281287 
    282288    DEALLOCATE(lon, lat, field_A_atm, lonvalue) 
    283     DEALLOCATE(kindex, field_A_srf) 
     289   ! DEALLOCATE(kindex, field_A_srf) 
    284290 
    285291!!! Fin de XIOS 
Note: See TracChangeset for help on using the changeset viewer.