Ignore:
Timestamp:
01/23/19 10:31:44 (5 years ago)
Author:
yushan
Message:

dev on ADA. add flag switch _usingEP/_usingMPI

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/branch_openmp/src/interface/c/icdata.cpp

    r1545 r1642  
    99#include <iostream> 
    1010 
    11 #include "mpi_std.hpp" 
     11 
    1212#include "xios.hpp" 
    13 //#include "oasis_cinterface.hpp" 
     13#include "oasis_cinterface.hpp" 
    1414 
    1515#include "attribute_template.hpp" 
     
    2323#include "context.hpp" 
    2424#include "context_client.hpp" 
    25  
     25#include "mpi.hpp" 
    2626#include "timer.hpp" 
    2727#include "array_new.hpp" 
     
    4343   // it is only used from the parse_xml.exe standalone test tool. 
    4444   void cxios_init(void) 
     45   TRY 
    4546   { 
    4647     CXios::initialize(); 
    4748   } 
     49   CATCH_DUMP_STACK 
    4850 
    4951   void cxios_init_server(void) 
     52   TRY 
    5053   { 
    5154     CXios::initServerSide(); 
    5255   } 
     56   CATCH_DUMP_STACK 
    5357 
    5458   void cxios_init_client(const char* client_id , int len_client_id, MPI_Fint* f_local_comm, MPI_Fint* f_return_comm ) 
     59   TRY 
    5560   { 
    5661      std::string str; 
     
    6166 
    6267      int initialized; 
    63       MPI_Initialized(&initialized); 
     68      ep_lib::MPI_Initialized(&initialized); 
    6469      #ifdef _usingMPI 
    6570      if (initialized) local_comm=MPI_Comm_f2c(*f_local_comm); 
    6671      else local_comm=MPI_COMM_NULL; 
    6772      #elif _usingEP 
    68       ep_lib::fc_comm_map.clear(); 
    69       if (initialized) local_comm=ep_lib::EP_Comm_f2c((f_local_comm)); 
    70       else local_comm=MPI_COMM_NULL; 
     73      if (initialized) local_comm=EP_Comm_f2c(f_local_comm); 
     74      else local_comm=EP_COMM_NULL; 
    7175      #endif 
    72        
    73  
    74  
    7576      CXios::initClientSide(str, local_comm, return_comm); 
    7677      #ifdef _usingMPI 
    7778      *f_return_comm=MPI_Comm_c2f(return_comm); 
    7879      #elif _usingEP 
    79       *f_return_comm=*static_cast<MPI_Fint*>(ep_lib::EP_Comm_c2f(return_comm)); 
     80      *f_return_comm=*static_cast<MPI_Fint* >(EP_Comm_c2f(return_comm)); 
    8081      #endif 
    8182      CTimer::get("XIOS init").suspend(); 
    8283      CTimer::get("XIOS").suspend(); 
    8384   } 
     85   CATCH_DUMP_STACK 
    8486 
    8587   void cxios_context_initialize(const char* context_id , int len_context_id, MPI_Fint* f_comm) 
     88   TRY 
    8689   { 
    8790     std::string str; 
     
    9497     comm=MPI_Comm_f2c(*f_comm); 
    9598     #elif _usingEP 
    96      comm = ep_lib::EP_Comm_f2c(f_comm); 
     99     comm=EP_Comm_f2c(f_comm); 
    97100     #endif 
    98101     CClient::registerContext(str, comm); 
     
    100103     CTimer::get("XIOS").suspend(); 
    101104   } 
     105   CATCH_DUMP_STACK 
     106 
     107   void cxios_oasis_enddef() 
     108   TRY 
     109   { 
     110     CTimer::get("XIOS").resume(); 
     111     CClient::callOasisEnddef(); 
     112     CTimer::get("XIOS").suspend(); 
     113   } 
     114   CATCH_DUMP_STACK 
    102115 
    103116   void cxios_context_is_initialized(const char* context_id , int len_context_id, bool* initialized) 
     117   TRY 
    104118   { 
    105119     std::string str; 
     
    111125     CTimer::get("XIOS").suspend(); 
    112126   } 
    113  
    114     void cxios_context_close_definition() 
     127   CATCH_DUMP_STACK 
     128 
     129   void cxios_context_close_definition() 
     130   TRY 
    115131   { 
    116132     CTimer::get("XIOS").resume(); 
     
    121137     CTimer::get("XIOS").suspend(); 
    122138   } 
     139   CATCH_DUMP_STACK 
    123140 
    124141   void cxios_context_finalize() 
     142   TRY 
    125143   { 
    126144     CTimer::get("XIOS").resume(); 
     
    131149     CTimer::get("XIOS").suspend(); 
    132150   } 
     151   CATCH_DUMP_STACK 
    133152 
    134153   void cxios_finalize() 
     154   TRY 
    135155   { 
    136156     CTimer::get("XIOS").resume(); 
     
    138158     CXios::clientFinalize(); 
    139159   } 
     160   CATCH_DUMP_STACK 
    140161 
    141162   void cxios_solve_inheritance() 
     163   TRY 
    142164   { 
    143165     CTimer::get("XIOS").resume(); 
     
    146168     CTimer::get("XIOS").suspend(); 
    147169   } 
     170   CATCH_DUMP_STACK 
    148171 
    149172   /*! \brief This group of functions retrieve variable information from the configuration file (.xml) 
     
    158181   */ 
    159182   void cxios_get_variable_data_k8(const char* varId, int varIdSize, double* data, bool* isVarExisted) 
     183   TRY 
    160184   { 
    161185      std::string varIdStr; 
     
    176200      CTimer::get("XIOS").suspend(); 
    177201   } 
     202   CATCH_DUMP_STACK 
    178203 
    179204   void cxios_get_variable_data_k4(const char* varId, int varIdSize, float* data, bool* isVarExisted) 
     205   TRY 
    180206   { 
    181207      std::string varIdStr; 
     
    196222      CTimer::get("XIOS").suspend(); 
    197223   } 
     224   CATCH_DUMP_STACK 
    198225 
    199226   void cxios_get_variable_data_int(const char* varId, int varIdSize, int* data, bool* isVarExisted) 
     227   TRY 
    200228   { 
    201229      std::string varIdStr; 
     
    216244      CTimer::get("XIOS").suspend(); 
    217245   } 
     246   CATCH_DUMP_STACK 
    218247 
    219248   void cxios_get_variable_data_logic(const char* varId, int varIdSize, bool* data, bool* isVarExisted) 
     249   TRY 
    220250   { 
    221251      std::string varIdStr; 
     
    236266      CTimer::get("XIOS").suspend(); 
    237267   } 
     268   CATCH_DUMP_STACK 
    238269 
    239270   void cxios_get_variable_data_char(const char* varId, int varIdSize, char* data, int dataSizeIn, bool* isVarExisted) 
     271   TRY 
    240272   { 
    241273      std::string varIdStr; 
     
    257289      CTimer::get("XIOS").suspend(); 
    258290   } 
     291   CATCH_DUMP_STACK 
    259292 
    260293   /*! \brief This group of functions write information into existing variable in the configuration file (.xml) 
     
    269302   */ 
    270303   void cxios_set_variable_data_k8(const char* varId, int varIdSize, double data, bool* isVarExisted) 
    271    { 
     304   TRY 
     305  { 
    272306      std::string varIdStr; 
    273307      if (!cstr2string(varId, varIdSize, varIdStr)) return; 
     
    288322      CTimer::get("XIOS").suspend(); 
    289323   } 
     324   CATCH_DUMP_STACK 
    290325 
    291326   void cxios_set_variable_data_k4(const char* varId, int varIdSize, float data, bool* isVarExisted) 
     327   TRY 
    292328   { 
    293329      std::string varIdStr; 
     
    309345      CTimer::get("XIOS").suspend(); 
    310346   } 
     347   CATCH_DUMP_STACK 
    311348 
    312349   void cxios_set_variable_data_int(const char* varId, int varIdSize, int data, bool* isVarExisted) 
     350   TRY 
    313351   { 
    314352      std::string varIdStr; 
     
    331369      CTimer::get("XIOS").suspend(); 
    332370   } 
     371   CATCH_DUMP_STACK 
    333372 
    334373   void cxios_set_variable_data_logic(const char* varId, int varIdSize, bool data, bool* isVarExisted) 
     374   TRY 
    335375   { 
    336376      std::string varIdStr; 
     
    352392      CTimer::get("XIOS").suspend(); 
    353393   } 
     394   CATCH_DUMP_STACK 
    354395 
    355396   void cxios_set_variable_data_char(const char* varId, int varIdSize, const char* data, int dataSizeIn, bool* isVarExisted) 
    356    { 
     397   TRY 
     398  { 
    357399      std::string varIdStr, dataStr; 
    358400      if (!cstr2string(varId, varIdSize, varIdStr)) return; 
     
    378420      CTimer::get("XIOS").suspend(); 
    379421   } 
    380  
     422   CATCH_DUMP_STACK 
    381423 
    382424   // ---------------------- Ecriture des données ------------------------------ 
    383425 
    384426   void cxios_write_data_k80(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize) 
     427   TRY 
    385428   { 
    386429      std::string fieldid_str; 
     
    397440      CTimer::get("XIOS").suspend(); 
    398441   } 
     442   CATCH_DUMP_STACK 
    399443 
    400444   void cxios_write_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize) 
     445   TRY 
    401446   { 
    402447      std::string fieldid_str; 
     
    416461      CTimer::get("XIOS").suspend(); 
    417462   } 
     463   CATCH_DUMP_STACK 
    418464 
    419465   void cxios_write_data_k82(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize) 
     466   TRY 
    420467   { 
    421468      std::string fieldid_str; 
     
    435482      CTimer::get("XIOS").suspend(); 
    436483   } 
     484   CATCH_DUMP_STACK 
    437485 
    438486   void cxios_write_data_k83(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize) 
     487   TRY 
    439488   { 
    440489      std::string fieldid_str; 
     
    454503      CTimer::get("XIOS").suspend(); 
    455504   } 
     505   CATCH_DUMP_STACK 
    456506 
    457507   void cxios_write_data_k84(const char* fieldid, int fieldid_size, double* data_k8, int data_0size, int data_1size, int data_2size, int data_3size) 
     508   TRY 
    458509   { 
    459510      std::string fieldid_str; 
     
    473524      CTimer::get("XIOS").suspend(); 
    474525   } 
     526   CATCH_DUMP_STACK 
    475527 
    476528   void cxios_write_data_k85(const char* fieldid, int fieldid_size, double* data_k8, 
    477529                             int data_0size, int data_1size, int data_2size, 
    478530                             int data_3size, int data_4size) 
     531   TRY 
    479532   { 
    480533      std::string fieldid_str; 
     
    494547      CTimer::get("XIOS").suspend(); 
    495548   } 
     549   CATCH_DUMP_STACK 
    496550 
    497551   void cxios_write_data_k86(const char* fieldid, int fieldid_size, double* data_k8, 
    498552                             int data_0size, int data_1size, int data_2size, 
    499553                             int data_3size, int data_4size, int data_5size) 
     554   TRY 
    500555   { 
    501556      std::string fieldid_str; 
     
    515570      CTimer::get("XIOS").suspend(); 
    516571   } 
     572   CATCH_DUMP_STACK 
    517573 
    518574   void cxios_write_data_k87(const char* fieldid, int fieldid_size, double* data_k8, 
     
    520576                             int data_3size, int data_4size, int data_5size, 
    521577                             int data_6size) 
     578   TRY 
    522579   { 
    523580      std::string fieldid_str; 
     
    537594      CTimer::get("XIOS").suspend(); 
    538595   } 
     596   CATCH_DUMP_STACK 
    539597 
    540598   void cxios_write_data_k40(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
     599   TRY 
    541600   { 
    542601      std::string fieldid_str; 
     
    556615      CTimer::get("XIOS").suspend(); 
    557616   } 
     617   CATCH_DUMP_STACK 
    558618 
    559619   void cxios_write_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
     620   TRY 
    560621   { 
    561622      std::string fieldid_str; 
     
    577638      CTimer::get("XIOS").suspend(); 
    578639   } 
     640   CATCH_DUMP_STACK 
    579641 
    580642   void cxios_write_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize) 
     643   TRY 
    581644   { 
    582645      std::string fieldid_str; 
     
    598661      CTimer::get("XIOS").suspend(); 
    599662   } 
     663   CATCH_DUMP_STACK 
    600664 
    601665   void cxios_write_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize) 
     666   TRY 
    602667   { 
    603668      std::string fieldid_str; 
     
    619684      CTimer::get("XIOS").suspend(); 
    620685    } 
     686   CATCH_DUMP_STACK 
    621687 
    622688   void cxios_write_data_k44(const char* fieldid, int fieldid_size, float* data_k4, 
    623689                             int data_0size, int data_1size, int data_2size, 
    624690                             int data_3size) 
     691   TRY 
    625692   { 
    626693      std::string fieldid_str; 
     
    642709      CTimer::get("XIOS").suspend(); 
    643710    } 
     711   CATCH_DUMP_STACK 
    644712 
    645713   void cxios_write_data_k45(const char* fieldid, int fieldid_size, float* data_k4, 
    646714                             int data_0size, int data_1size, int data_2size, 
    647715                             int data_3size, int data_4size) 
     716   TRY 
    648717   { 
    649718      std::string fieldid_str; 
     
    665734      CTimer::get("XIOS").suspend(); 
    666735    } 
     736   CATCH_DUMP_STACK 
    667737 
    668738   void cxios_write_data_k46(const char* fieldid, int fieldid_size, float* data_k4, 
    669739                             int data_0size, int data_1size, int data_2size, 
    670740                             int data_3size, int data_4size, int data_5size) 
     741   TRY 
    671742   { 
    672743      std::string fieldid_str; 
     
    688759      CTimer::get("XIOS").suspend(); 
    689760    } 
     761   CATCH_DUMP_STACK 
    690762 
    691763   void cxios_write_data_k47(const char* fieldid, int fieldid_size, float* data_k4, 
     
    693765                             int data_3size, int data_4size, int data_5size, 
    694766                             int data_6size) 
     767   TRY 
    695768   { 
    696769      std::string fieldid_str; 
     
    712785      CTimer::get("XIOS").suspend(); 
    713786    } 
     787   CATCH_DUMP_STACK 
    714788 
    715789   // ---------------------- Lecture des données ------------------------------ 
    716790 
    717791   void cxios_read_data_k80(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize) 
     792   TRY 
    718793   { 
    719794      std::string fieldid_str; 
     
    733808      CTimer::get("XIOS").suspend(); 
    734809   } 
     810   CATCH_DUMP_STACK 
    735811 
    736812   void cxios_read_data_k81(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize) 
     813   TRY 
    737814   { 
    738815      std::string fieldid_str; 
     
    752829      CTimer::get("XIOS").suspend(); 
    753830   } 
     831   CATCH_DUMP_STACK 
    754832 
    755833   void cxios_read_data_k82(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize) 
     834   TRY 
    756835   { 
    757836      std::string fieldid_str; 
     
    771850      CTimer::get("XIOS").suspend(); 
    772851   } 
     852   CATCH_DUMP_STACK 
    773853 
    774854   void cxios_read_data_k83(const char* fieldid, int fieldid_size, double* data_k8, int data_Xsize, int data_Ysize, int data_Zsize) 
     855   TRY 
    775856   { 
    776857      std::string fieldid_str; 
     
    790871      CTimer::get("XIOS").suspend(); 
    791872   } 
     873   CATCH_DUMP_STACK 
    792874 
    793875   void cxios_read_data_k84(const char* fieldid, int fieldid_size, double* data_k8, 
    794876                            int data_0size, int data_1size, int data_2size, 
    795877                            int data_3size) 
     878   TRY 
    796879   { 
    797880      std::string fieldid_str; 
     
    811894      CTimer::get("XIOS").suspend(); 
    812895   } 
     896   CATCH_DUMP_STACK 
    813897 
    814898   void cxios_read_data_k85(const char* fieldid, int fieldid_size, double* data_k8, 
    815899                            int data_0size, int data_1size, int data_2size, 
    816900                            int data_3size, int data_4size) 
     901   TRY 
    817902   { 
    818903      std::string fieldid_str; 
     
    832917      CTimer::get("XIOS").suspend(); 
    833918   } 
     919   CATCH_DUMP_STACK 
    834920 
    835921   void cxios_read_data_k86(const char* fieldid, int fieldid_size, double* data_k8, 
    836922                            int data_0size, int data_1size, int data_2size, 
    837923                            int data_3size, int data_4size, int data_5size) 
     924   TRY 
    838925   { 
    839926      std::string fieldid_str; 
     
    853940      CTimer::get("XIOS").suspend(); 
    854941   } 
     942   CATCH_DUMP_STACK 
    855943 
    856944   void cxios_read_data_k87(const char* fieldid, int fieldid_size, double* data_k8, 
     
    858946                            int data_3size, int data_4size, int data_5size, 
    859947                            int data_6size) 
     948   TRY 
    860949   { 
    861950      std::string fieldid_str; 
     
    875964      CTimer::get("XIOS").suspend(); 
    876965   } 
     966   CATCH_DUMP_STACK 
    877967 
    878968   void cxios_read_data_k40(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
     969   TRY 
    879970   { 
    880971      std::string fieldid_str; 
     
    896987      CTimer::get("XIOS").suspend(); 
    897988   } 
     989   CATCH_DUMP_STACK 
    898990 
    899991   void cxios_read_data_k41(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize) 
     992   TRY 
    900993   { 
    901994      std::string fieldid_str; 
     
    9171010      CTimer::get("XIOS").suspend(); 
    9181011   } 
     1012   CATCH_DUMP_STACK 
    9191013 
    9201014   void cxios_read_data_k42(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize) 
     1015   TRY 
    9211016   { 
    9221017      std::string fieldid_str; 
     
    9381033      CTimer::get("XIOS").suspend(); 
    9391034   } 
     1035   CATCH_DUMP_STACK 
    9401036 
    9411037   void cxios_read_data_k43(const char* fieldid, int fieldid_size, float* data_k4, int data_Xsize, int data_Ysize, int data_Zsize) 
     1038   TRY 
    9421039   { 
    9431040      std::string fieldid_str; 
     
    9591056      CTimer::get("XIOS").suspend(); 
    9601057    } 
     1058   CATCH_DUMP_STACK 
    9611059 
    9621060   void cxios_read_data_k44(const char* fieldid, int fieldid_size, float* data_k4, 
    9631061                            int data_0size, int data_1size, int data_2size, 
    9641062                            int data_3size) 
     1063   TRY 
    9651064   { 
    9661065      std::string fieldid_str; 
     
    9821081      CTimer::get("XIOS").suspend(); 
    9831082    } 
     1083   CATCH_DUMP_STACK 
    9841084 
    9851085   void cxios_read_data_k45(const char* fieldid, int fieldid_size, float* data_k4, 
    9861086                            int data_0size, int data_1size, int data_2size, 
    9871087                            int data_3size, int data_4size) 
     1088   TRY 
    9881089   { 
    9891090      std::string fieldid_str; 
     
    10051106      CTimer::get("XIOS").suspend(); 
    10061107    } 
     1108   CATCH_DUMP_STACK 
    10071109 
    10081110   void cxios_read_data_k46(const char* fieldid, int fieldid_size, float* data_k4, 
    10091111                            int data_0size, int data_1size, int data_2size, 
    10101112                            int data_3size, int data_4size, int data_5size) 
     1113   TRY 
    10111114   { 
    10121115      std::string fieldid_str; 
     
    10281131      CTimer::get("XIOS").suspend(); 
    10291132    } 
     1133   CATCH_DUMP_STACK 
    10301134 
    10311135   void cxios_read_data_k47(const char* fieldid, int fieldid_size, float* data_k4, 
     
    10331137                            int data_3size, int data_4size, int data_5size, 
    10341138                            int data_6size) 
     1139   TRY 
    10351140   { 
    10361141      std::string fieldid_str; 
     
    10521157      CTimer::get("XIOS").suspend(); 
    10531158    } 
     1159   CATCH_DUMP_STACK 
    10541160} // extern "C" 
Note: See TracChangeset for help on using the changeset viewer.