Changeset 9796d0a for python/lib/gio.h
- Timestamp:
- 09/25/17 19:20:08 (7 years ago)
- Branches:
- master, pympi
- Children:
- 56b997e
- Parents:
- b02d091
- git-author:
- Hal Finkel <hfinkel@…> (09/25/17 19:20:08)
- git-committer:
- Hal Finkel <hfinkel@…> (09/25/17 19:20:08)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
python/lib/gio.h
rbd84570 r9796d0a 46 46 47 47 template <class T> 48 void read_gio(char* file_name, std::string var_name, T*& data ){48 void read_gio(char* file_name, std::string var_name, T*& data, int field_count){ 49 49 gio::GenericIO reader(file_name); 50 50 reader.openAndReadHeader(gio::GenericIO::MismatchAllowed); … … 57 57 max_size = rank_size[i]; 58 58 } 59 T* rank_data = new T[max_size +reader.requestedExtraSpace()/sizeof(T)];59 T* rank_data = new T[max_size*field_count+reader.requestedExtraSpace()/sizeof(T)]; 60 60 int64_t offset =0; 61 reader.addVariable(var_name,rank_data,true); 61 reader.addScalarizedVariable(var_name,rank_data,field_count, 62 gio::GenericIO::VarHasExtraSpace); 62 63 for(int i=0;i<num_ranks;++i){ 63 64 reader.readData(i,false); 64 std::copy(rank_data,rank_data+rank_size[i] ,data+offset);65 offset +=rank_size[i] ;65 std::copy(rank_data,rank_data+rank_size[i]*field_count,data+offset); 66 offset +=rank_size[i]*field_count; 66 67 } 67 68 delete [] rank_data; … … 70 71 extern "C" int64_t get_elem_num(char* file_name); 71 72 72 extern "C" void read_gio_float (char* file_name, char* var_name, float* data );73 extern "C" void read_gio_double(char* file_name, char* var_name, double* data );74 extern "C" void read_gio_int32 (char* file_name, char* var_name, int* data );75 extern "C" void read_gio_int64 (char* file_name, char* var_name, int64_t* data );73 extern "C" void read_gio_float (char* file_name, char* var_name, float* data, int field_count); 74 extern "C" void read_gio_double(char* file_name, char* var_name, double* data, int field_count); 75 extern "C" void read_gio_int32 (char* file_name, char* var_name, int* data, int field_count); 76 extern "C" void read_gio_int64 (char* file_name, char* var_name, int64_t* data, int field_count); 76 77 enum var_type{ 77 78 float_type=0, … … 83 84 }; 84 85 extern "C" var_type get_variable_type(char* file_name,char* var_name); 86 extern "C" int get_variable_field_count(char* file_name,char* var_name); 85 87 extern "C" void inspect_gio(char* file_name);
Note: See TracChangeset
for help on using the changeset viewer.