Changeset 369 for XIOS/trunk/src/interface/c_attr/icdomaingroup_attr.cpp
- Timestamp:
- 10/16/12 13:04:44 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/trunk/src/interface/c_attr/icdomaingroup_attr.cpp
r352 r369 11 11 #include "icutil.hpp" 12 12 #include "timer.hpp" 13 #include " domain.hpp"13 #include "node_type.hpp" 14 14 15 15 extern "C" … … 33 33 void cxios_set_domaingroup_data_i_index(domaingroup_Ptr domaingroup_hdl, int* data_i_index, int extent1) 34 34 { 35 CTimer::get("XIOS").resume(); 36 ARRAY(int,1) array_tmp(new CArray<int,1>(boost::extents[extent1])); 37 std::copy(data_i_index, &(data_i_index[array_tmp->num_elements()]), array_tmp->data()); 38 domaingroup_hdl->data_i_index.setValue(array_tmp); 35 CTimer::get("XIOS").resume(); 36 CArray<int,1> tmp(data_i_index,shape(extent1),neverDeleteData) ; 37 domaingroup_hdl->data_i_index.reference(tmp.copy()); 39 38 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->data_i_index); 40 39 } … … 42 41 void cxios_get_domaingroup_data_i_index(domaingroup_Ptr domaingroup_hdl, int* data_i_index, int extent1) 43 42 { 44 if (!array_copy(domaingroup_hdl->data_i_index.getValue(), data_i_index, extent1))45 ERROR("void cxios_set_domaingroup_data_i_index(domaingroup_Ptr domaingroup_hdl, int* data_i_index, int extent1)",<<"Output array size is not conform to array size attribute");43 CArray<int,1> tmp(data_i_index,shape(extent1),neverDeleteData) ; 44 tmp=domaingroup_hdl->data_i_index ; 46 45 CTimer::get("XIOS").suspend(); 47 46 } … … 64 63 void cxios_set_domaingroup_data_j_index(domaingroup_Ptr domaingroup_hdl, int* data_j_index, int extent1) 65 64 { 66 CTimer::get("XIOS").resume(); 67 ARRAY(int,1) array_tmp(new CArray<int,1>(boost::extents[extent1])); 68 std::copy(data_j_index, &(data_j_index[array_tmp->num_elements()]), array_tmp->data()); 69 domaingroup_hdl->data_j_index.setValue(array_tmp); 65 CTimer::get("XIOS").resume(); 66 CArray<int,1> tmp(data_j_index,shape(extent1),neverDeleteData) ; 67 domaingroup_hdl->data_j_index.reference(tmp.copy()); 70 68 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->data_j_index); 71 69 } … … 73 71 void cxios_get_domaingroup_data_j_index(domaingroup_Ptr domaingroup_hdl, int* data_j_index, int extent1) 74 72 { 75 if (!array_copy(domaingroup_hdl->data_j_index.getValue(), data_j_index, extent1))76 ERROR("void cxios_set_domaingroup_data_j_index(domaingroup_Ptr domaingroup_hdl, int* data_j_index, int extent1)",<<"Output array size is not conform to array size attribute");73 CArray<int,1> tmp(data_j_index,shape(extent1),neverDeleteData) ; 74 tmp=domaingroup_hdl->data_j_index ; 77 75 CTimer::get("XIOS").suspend(); 78 76 } … … 231 229 void cxios_set_domaingroup_latvalue(domaingroup_Ptr domaingroup_hdl, double* latvalue, int extent1) 232 230 { 233 CTimer::get("XIOS").resume(); 234 ARRAY(double,1) array_tmp(new CArray<double,1>(boost::extents[extent1])); 235 std::copy(latvalue, &(latvalue[array_tmp->num_elements()]), array_tmp->data()); 236 domaingroup_hdl->latvalue.setValue(array_tmp); 231 CTimer::get("XIOS").resume(); 232 CArray<double,1> tmp(latvalue,shape(extent1),neverDeleteData) ; 233 domaingroup_hdl->latvalue.reference(tmp.copy()); 237 234 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->latvalue); 238 235 } … … 240 237 void cxios_get_domaingroup_latvalue(domaingroup_Ptr domaingroup_hdl, double* latvalue, int extent1) 241 238 { 242 if (!array_copy(domaingroup_hdl->latvalue.getValue(), latvalue, extent1))243 ERROR("void cxios_set_domaingroup_latvalue(domaingroup_Ptr domaingroup_hdl, double* latvalue, int extent1)",<<"Output array size is not conform to array size attribute");239 CArray<double,1> tmp(latvalue,shape(extent1),neverDeleteData) ; 240 tmp=domaingroup_hdl->latvalue ; 244 241 CTimer::get("XIOS").suspend(); 245 242 } … … 267 264 void cxios_set_domaingroup_lonvalue(domaingroup_Ptr domaingroup_hdl, double* lonvalue, int extent1) 268 265 { 269 CTimer::get("XIOS").resume(); 270 ARRAY(double,1) array_tmp(new CArray<double,1>(boost::extents[extent1])); 271 std::copy(lonvalue, &(lonvalue[array_tmp->num_elements()]), array_tmp->data()); 272 domaingroup_hdl->lonvalue.setValue(array_tmp); 266 CTimer::get("XIOS").resume(); 267 CArray<double,1> tmp(lonvalue,shape(extent1),neverDeleteData) ; 268 domaingroup_hdl->lonvalue.reference(tmp.copy()); 273 269 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->lonvalue); 274 270 } … … 276 272 void cxios_get_domaingroup_lonvalue(domaingroup_Ptr domaingroup_hdl, double* lonvalue, int extent1) 277 273 { 278 if (!array_copy(domaingroup_hdl->lonvalue.getValue(), lonvalue, extent1))279 ERROR("void cxios_set_domaingroup_lonvalue(domaingroup_Ptr domaingroup_hdl, double* lonvalue, int extent1)",<<"Output array size is not conform to array size attribute");274 CArray<double,1> tmp(lonvalue,shape(extent1),neverDeleteData) ; 275 tmp=domaingroup_hdl->lonvalue ; 280 276 CTimer::get("XIOS").suspend(); 281 277 } … … 284 280 void cxios_set_domaingroup_mask(domaingroup_Ptr domaingroup_hdl, bool* mask, int extent1, int extent2) 285 281 { 286 CTimer::get("XIOS").resume(); 287 ARRAY(bool,2) array_tmp(new CArray<bool,2>(boost::extents[extent1][extent2])); 288 std::copy(mask, &(mask[array_tmp->num_elements()]), array_tmp->data()); 289 domaingroup_hdl->mask.setValue(array_tmp); 282 CTimer::get("XIOS").resume(); 283 CArray<bool,2> tmp(mask,shape(extent1,extent2),neverDeleteData) ; 284 domaingroup_hdl->mask.reference(tmp.copy()); 290 285 domaingroup_hdl->sendAttributToServer(domaingroup_hdl->mask); 291 286 } … … 293 288 void cxios_get_domaingroup_mask(domaingroup_Ptr domaingroup_hdl, bool* mask, int extent1, int extent2) 294 289 { 295 if (!array_copy(domaingroup_hdl->mask.getValue(), mask, extent1, extent2))296 ERROR("void cxios_set_domaingroup_mask(domaingroup_Ptr domaingroup_hdl, bool* mask, int extent1, int extent2)",<<"Output array size is not conform to array size attribute");290 CArray<bool,2> tmp(mask,shape(extent1,extent2),neverDeleteData) ; 291 tmp=domaingroup_hdl->mask ; 297 292 CTimer::get("XIOS").suspend(); 298 293 }
Note: See TracChangeset
for help on using the changeset viewer.