source:
issm/oecreview/Archive/12261-12280/ISSM-12264-12265.diff
Last change on this file was 12325, checked in by , 13 years ago | |
---|---|
File size: 5.1 KB |
-
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/objects/IoModel.h
40 40 IoModel(FILE* iomodel_handle); 41 41 42 42 /*Input/Output*/ 43 void Constant(bool *poutput,int constant_enum); 44 void Constant(int *poutput,int constant_enum); 45 void Constant(double *poutput,int constant_enum); 46 void Constant(char **poutput,int constant_enum); 47 Param *CopyConstantObject(int constant_enum); 48 double *Data(int dataenum); 49 void DeleteData(int num,...); 50 void FetchConstants(void); 51 void FetchData(bool* pboolean,int data_enum); 52 void FetchData(int* pinteger,int data_enum); 53 void FetchData(double* pscalar,int data_enum); 54 void FetchData(char** pstring,int data_enum); 55 void FetchData(int** pmatrix,int* pM,int* pN,int data_enum); 56 void FetchData(double** pscalarmatrix,int* pM,int* pN,int data_enum); 57 void FetchData(char*** pstringarray,int* pnumstrings,int data_enum); 58 void FetchData(double*** pmatrixarray,int** pmdims,int** pndims, int* pnumrecords,int data_enum); 59 void FetchData(int num,...); 60 void FetchDataToInput(Elements* elements,int vector_enum,int default_vector_enum=NoneEnum,double default_value=0); 61 FILE* SetFilePointerToData(int* pcode,int* pvector_type, int data_enum); 43 void CheckEnumSync(void); 44 void Constant(bool *poutput,int constant_enum); 45 void Constant(int *poutput,int constant_enum); 46 void Constant(double *poutput,int constant_enum); 47 void Constant(char **poutput,int constant_enum); 48 Param *CopyConstantObject(int constant_enum); 49 double *Data(int dataenum); 50 void DeleteData(int num,...); 51 void FetchConstants(void); 52 void FetchData(bool* pboolean,int data_enum); 53 void FetchData(int* pinteger,int data_enum); 54 void FetchData(double* pscalar,int data_enum); 55 void FetchData(char** pstring,int data_enum); 56 void FetchData(int** pmatrix,int* pM,int* pN,int data_enum); 57 void FetchData(double** pscalarmatrix,int* pM,int* pN,int data_enum); 58 void FetchData(char*** pstringarray,int* pnumstrings,int data_enum); 59 void FetchData(double*** pmatrixarray,int** pmdims,int** pndims, int* pnumrecords,int data_enum); 60 void FetchData(int num,...); 61 void FetchDataToInput(Elements* elements,int vector_enum,int default_vector_enum=NoneEnum,double default_value=0); 62 FILE* SetFilePointerToData(int* pcode,int* pvector_type, int data_enum); 62 63 }; 63 64 64 65 #endif /* _IOMODEL_H */ -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/objects/IoModel.cpp
44 44 /*First, keep track of the file handle: */ 45 45 this->fid=iomodel_handle; 46 46 47 /*Check that Enums are Synchronized*/ 48 this->CheckEnumSync(); 49 47 50 /*Initialize and read constants:*/ 48 51 this->constants=new Parameters(); 49 52 this->FetchConstants(); /*this routine goes through the input file, and fetches bools, ints, doubles and strings only, nothing memory intensive*/ … … 88 91 } 89 92 /*}}}*/ 90 93 94 /*FUNCTION IoModel::CheckEnumSync{{{1*/ 95 void IoModel::CheckEnumSync(void){ 96 97 extern int my_rank; 98 int record_enum = 0; 99 100 101 /*Check that some fields have been allocated*/ 102 _assert_(this->fid || my_rank); 103 104 105 /*Go find in the binary file, the position of the data we want to fetch: */ 106 if(my_rank==0){ //cpu 0 107 108 /*First set FILE* position to the beginning of the file: */ 109 fseek(this->fid,0,SEEK_SET); 110 111 /*Get first Enum*/ 112 if(fread(&record_enum,sizeof(int),1,this->fid)==0){ 113 _error_("Marshalled file is empty"); 114 } 115 else{ 116 if(record_enum!=MaximumNumberOfEnums){ 117 _error_("Enums in marshalled file are not compatible with compiled code, make sure you are using the same version of ISSM"); 118 } 119 } 120 } 121 } 122 /*}}}*/ 91 123 /*FUNCTION IoModel::Constant(bool* poutput,int constant_enum){{{1*/ 92 124 void IoModel::Constant(bool* poutput,int constant_enum){ 93 125 -
proj/ice/larour/issm-uci-clean/trunk-jpl/src/m/model/marshall.m
15 15 error(['marshall error message: could not open ' [md.miscellaneous.name '.bin'],' file for binary writing']); 16 16 end 17 17 18 %First, right MaximumNumberOfEnum to make sure that the Enums are synchronized 19 WriteData(fid,'enum',MaximumNumberOfEnums(),'data',true,'format','Boolean'); 20 18 21 %Go through all model fields: check that it is a class and call checkconsistency 19 22 fields=properties('model'); 20 23 for i=1:length(fields),
Note:
See TracBrowser
for help on using the repository browser.