00001
00007 #ifndef _NCCF_STRUCTURED_DATA_H
00008 #define _NCCF_STRUCTURED_DATA_H
00009
00010 #include <libcf_src.h>
00011 #include <cflistitem.h>
00012 #include <nccf_varObj.h>
00013 #include <nccf_handle_error.h>
00014 #include <nccf_constants.h>
00015
00016 extern struct CFLISTITEM *CFLIST_STRUCTURED_DATA;
00017
00018 struct nccf_struct_data_type {
00019
00020
00021 int gridid;
00022
00023
00024 nc_type dataType;
00025
00026
00027 char *name;
00028
00029
00030 int ndims;
00031
00032
00033 struct nccf_var_obj *dataVar;
00034
00035
00036 int save;
00037
00038
00039 int numRecords;
00040
00041
00042 void *data;
00043 };
00044
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048
00058 #ifdef __cplusplus
00059 extern "C" {
00060 #endif
00061
00075 int nccf_def_struct_data(int gridid,
00076 const char *name, const char *standard_name,
00077 const char *units, const char *time_dimname,
00078 int *dataid);
00079
00092 int nccf_def_struct_data_from_file(const char *filename,
00093 int gridid,
00094 const char *varname,
00095 int read_data, int *dataid);
00096
00105 int nccf_free_struct_data(int dataid);
00106
00115 int nccf_get_struct_data_gridid(int dataid, int *gridid);
00116
00127 int nccf_set_struct_data_double(int dataid, const double *data, int save);
00128
00139 int nccf_set_struct_data_float(int dataid, const float *data, int save);
00140
00151 int nccf_set_struct_data_int(int dataid, const int *data, int save);
00152
00162 int nccf_put_struct_data(int ncid, int dataid);
00163
00174 int nccf_add_struct_data_att(int dataid,
00175 const char *name, const char *value);
00176
00186 int nccf_get_struct_data_type(int dataid, nc_type *dataType);
00187
00197 int nccf_get_struct_data_pointer(int dataid, void **dataPtr);
00198
00208 int nccf_get_struct_data_ndims(int dataid, int *nDataDims);
00209
00219 int nccf_get_struct_data_dims(int dataid, int *dataDims);
00220
00223 #ifdef __cplusplus
00224 }
00225 #endif
00226
00227 #endif // _NCCF_STRUCTURED_DATA_H
00228