00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef C_FIMEX_H_
00028 #define C_FIMEX_H_
00029
00030 #include <stddef.h>
00031
00036 #ifdef __cplusplus
00037 extern "C" {
00038 #endif
00039
00040 typedef struct mifi_cdm_reader mifi_cdm_reader;
00041
00046 typedef int (*doubleDatasliceCallbackPtr)(mifi_cdm_reader* reader, const char* varName, size_t unLimDimPos, double* scaledData, size_t dataSize);
00047
00052 void mifi_free_cdm_reader(mifi_cdm_reader* reader);
00053
00060 mifi_cdm_reader* mifi_new_felt_reader(const char* filename, const char* configFile);
00061
00068 mifi_cdm_reader* mifi_new_netcdf_reader(const char* filename);
00069
00076 mifi_cdm_reader* mifi_new_grib_reader(const char* filename, const char* configFile);
00077
00078
00084 mifi_cdm_reader* mifi_new_ncml_reader(const char* ncmlFile);
00085
00092 mifi_cdm_reader* mifi_new_ncml_modifier(mifi_cdm_reader* reader, const char* ncmlFile);
00093
00094
00095
00104 int mifi_netcdf_writer(mifi_cdm_reader* reader, const char* filename, const char* configFile, int version);
00105
00114 int mifi_grib_writer(mifi_cdm_reader* reader, const char* filename, const char* configFile, int version);
00115
00116
00122 int mifi_nullcdm_writer(mifi_cdm_reader* reader);
00123
00135 mifi_cdm_reader* mifi_new_cdminterpolator(mifi_cdm_reader* reader, int method, const char* proj_input, const char* out_x_axis, const char* out_y_axis, const char* out_x_axis_unit, const char* out_y_axis_unit);
00136
00142 mifi_cdm_reader* mifi_new_c_reader(mifi_cdm_reader* reader);
00143
00155 int mifi_set_callback_double(mifi_cdm_reader* c_reader, const char* varName, doubleDatasliceCallbackPtr callback);
00156
00157
00163 size_t mifi_get_variable_number(mifi_cdm_reader* reader);
00170 const char* mifi_get_variable_name(mifi_cdm_reader* reader, size_t pos);
00171
00181 int mifi_get_double_dataslize(mifi_cdm_reader* reader, const char* varName, size_t unLimDimPos, double** data, size_t* size);
00182
00191 int mifi_get_double_data(mifi_cdm_reader* reader, const char* varName, double** data, size_t* size);
00192
00193
00194
00195
00196 #ifdef __cplusplus
00197 }
00198 #endif
00199
00200 #endif