Changeset 300 for XMLIO_V2/dev/common/src/fortran/icdata.cpp
- Timestamp:
- 02/13/12 19:35:25 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/common/src/fortran/icdata.cpp
r286 r300 19 19 #include "mpi_manager.hpp" 20 20 #include "buffer.hpp" 21 #include "cxios.hpp" 22 #include "client_ym.hpp" 23 #include "field.hpp" 21 24 22 25 extern "C" … … 31 34 32 35 // -------------------- Traitement des données ------------------------------ 36 void cxios_init_server(void) 37 { 38 CXios::initServerSide(); 39 } 40 41 void cxios_init_client(const char * client_id , int len_client_id, MPI_Fint* f_local_comm, MPI_Fint* f_return_comm ) 42 { 43 std::string str; 44 MPI_Comm local_comm ; 45 MPI_Comm return_comm ; 46 47 if (!cstr2string(client_id, len_client_id, str)) return; 48 49 int initialized ; 50 MPI_Initialized(&initialized) ; 51 if (initialized) local_comm=MPI_Comm_f2c(*f_local_comm) ; 52 else local_comm=MPI_COMM_NULL ; 53 CXios::initClientSide(str,local_comm,return_comm); 54 *f_return_comm=MPI_Comm_c2f(return_comm) ; 55 } 56 57 void cxios_context_initialize(const char * context_id , int len_context_id, MPI_Fint* f_comm) 58 { 59 std::string str; 60 MPI_Comm comm ; 61 62 if (!cstr2string(context_id, len_context_id, str)) return; 63 comm=MPI_Comm_f2c(*f_comm) ; 64 ym::CClient::registerContext(context_id,comm) ; 65 } 66 67 void cxios_context_close_definition() 68 { 69 boost::shared_ptr<CContext> context = 70 CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()); 71 context->closeDefinition() ; 72 } 73 74 void cxios_context_finalize() 75 { 76 boost::shared_ptr<CContext> context = 77 CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()); 78 context->finalize() ; 79 } 80 81 void cxios_finalize() 82 { 83 CXios::clientFinalize() ; 84 } 85 33 86 34 87 void cxios_dtreatment_start() … … 60 113 MPI_Request request = 0; 61 114 StdOStringStream ostrs; 62 /* 63 if (CMPIManager::GetCommRank(comm_client_server) == 1) 64 { 65 CTreeManager::ToBinary(ostrs); 66 CLinearBuffer lbuffer(ostrs.str().size()+CBuffer::getDataHeaderSize()); 67 std::cout<<"lbuffer size "<<ostrs.str().size()<<std::endl ; 68 lbuffer.appendString(ostrs.str()); 69 CMPIManager::SendLinearBuffer(comm_client_server, 0, lbuffer, request); 70 CMPIManager::Wait(request); // Pas encore en mode RPC 71 } 72 else 73 { 74 CTreeManager::DomainsToBinary(ostrs); 75 CLinearBuffer lbuffer(ostrs.str().size()+CBuffer::getDataHeaderSize()); 76 std::cout<<"lbuffer size "<<ostrs.str().size()<<std::endl ; 77 lbuffer.appendString(ostrs.str()); 78 CMPIManager::SendLinearBuffer(comm_client_server, 0, lbuffer, request); 79 CMPIManager::Wait(request); // Pas encore en mode RPC 80 } 81 */ 115 82 116 CTreeManager::ToBinary(ostrs); 83 117 CLinearBuffer lbuffer(ostrs.str().size()+CBuffer::getDataHeaderSize()); … … 172 206 ARRAY(double, 1) data(new CArray<double, 1>(boost::extents [data_Xsize])); 173 207 std::copy(data_k8, &(data_k8[data->num_elements()]), data->data()); 174 dtreat->write_data(fieldid_str, data); 208 209 // dtreat->write_data(fieldid_str, data); 210 CField::get(fieldid)->setData(data) ; 175 211 } 176 212 … … 188 224 ARRAY(double, 2) data(new CArray<double, 2>(boost::extents [data_Xsize][data_Ysize])); 189 225 std::copy(data_k8, &(data_k8[data->num_elements()]), data->data()); 190 dtreat->write_data(fieldid_str, data); 226 // dtreat->write_data(fieldid_str, data); 227 CField::get(fieldid)->setData(data) ; 191 228 } 192 229 … … 204 241 ARRAY(double, 3) data(new CArray<double, 3>(boost::extents [data_Xsize][data_Ysize][data_Zsize])); 205 242 std::copy(data_k8, &(data_k8[data->num_elements()]), data->data()); 206 dtreat->write_data(fieldid_str, data); 243 // dtreat->write_data(fieldid_str, data); 244 CField::get(fieldid)->setData(data) ; 245 207 246 } 208 247 … … 218 257 // boost::extents [data_Xsize], 219 258 // boost::fortran_storage_order()); 220 ARRAY(float, 1) data(new CArray<float, 1>(boost::extents [data_Xsize])); 221 std::copy(data_k4, &(data_k4[data->num_elements()]), data->data()); 222 dtreat->write_data(fieldid_str, data); 259 // ARRAY(float, 1) data(new CArray<float, 1>(boost::extents [data_Xsize])); 260 // std::copy(data_k4, &(data_k4[data->num_elements()]), data->data()); 261 // dtreat->write_data(fieldid_str, data); 262 ARRAY(double, 1) data(new CArray<double, 1>(boost::extents [data_Xsize])); 263 double* ptr_data=data->data() ; 264 for(int i=0;i<data->num_elements();i++) ptr_data[i]=data_k4[i]; 265 CField::get(fieldid)->setData(data) ; 223 266 } 224 267 … … 234 277 // boost::extents [data_Xsize][data_Ysize], 235 278 // boost::fortran_storage_order()); 236 ARRAY(float, 2) data(new CArray<float, 2>(boost::extents [data_Xsize][data_Ysize])); 237 std::copy(data_k4, &(data_k4[data->num_elements()]), data->data()); 238 dtreat->write_data(fieldid_str, data); 279 // ARRAY(float, 2) data(new CArray<float, 2>(boost::extents [data_Xsize][data_Ysize])); 280 // std::copy(data_k4, &(data_k4[data->num_elements()]), data->data()); 281 // dtreat->write_data(fieldid_str, data); 282 ARRAY(double, 2) data(new CArray<double, 2>(boost::extents [data_Xsize][data_Ysize])); 283 double* ptr_data=data->data() ; 284 for(int i=0;i<data->num_elements();i++) ptr_data[i]=data_k4[i]; 285 CField::get(fieldid)->setData(data) ; 239 286 } 240 287 … … 250 297 // boost::extents [data_Xsize][data_Ysize][data_Zsize], 251 298 // boost::fortran_storage_order()); 252 ARRAY(float, 3) data(new CArray<float, 3>(boost::extents [data_Xsize][data_Ysize][data_Zsize])); 253 std::copy(data_k4, &(data_k4[data->num_elements()]), data->data()); 254 dtreat->write_data(fieldid_str, data); 255 } 299 // ARRAY(float, 3) data(new CArray<float, 3>(boost::extents [data_Xsize][data_Ysize][data_Zsize])); 300 // std::copy(data_k4, &(data_k4[data->num_elements()]), data->data()); 301 // dtreat->write_data(fieldid_str, data); 302 ARRAY(double, 3) data(new CArray<double, 3>(boost::extents [data_Xsize][data_Ysize][data_Zsize])); 303 double* ptr_data=data->data() ; 304 for(int i=0;i<data->num_elements();i++) ptr_data[i]=data_k4[i]; 305 CField::get(fieldid)->setData(data) ; 306 } 256 307 257 308 } // extern "C"
Note: See TracChangeset
for help on using the changeset viewer.