1 2 /* action.c */ 3 void grib_dump(grib_action* a, FILE* f, int l); 4 void grib_xref(grib_action* a, FILE* f, const char* path); 5 void grib_action_delete(grib_context* context, grib_action* a); 6 int grib_create_accessor(grib_section* p, grib_action* a, grib_loader* h); 7 int grib_action_notify_change(grib_action* a, grib_accessor* observer, grib_accessor* observed); 8 grib_action* grib_action_reparse(grib_action* a, grib_accessor* acc, int* doit); 9 int grib_action_execute(grib_action* a, grib_handle* h); 10 void grib_dump_action_branch(FILE* out, grib_action* a, int decay); 11 void grib_dump_action_tree(grib_context* ctx, FILE* out); 12 void grib_xref_action_branch(FILE* out, grib_action* a, const char* path); 13 14 /* action_class_alias.c */ 15 grib_action* grib_action_create_alias(grib_context* context, const char* name, const char* arg1, const char* name_space, int flags); 16 17 /* action_class_gen.c */ 18 grib_action* grib_action_create_gen(grib_context* context, const char* name, const char* op, const long len, grib_arguments* params, grib_arguments* default_value, int flags, const char* name_space, const char* set); 19 20 /* action_class_if.c */ 21 grib_action* grib_action_create_if(grib_context* context, grib_expression* expression, grib_action* block_true, grib_action* block_false, int transient, int lineno, char* file_being_parsed); 22 23 /* action_class_switch.c */ 24 grib_action* grib_action_create_switch(grib_context* context, grib_arguments* args, grib_case* Case, grib_action* Default); 25 grib_case* grib_case_new(grib_context* c, grib_arguments* values, grib_action* action); 26 27 /* grib_accessor_class_g1fcperiod.c */ 28 29 /* grib_accessor_class_g1end_of_interval_monthly.c */ 30 31 /* grib_accessor_class_mars_param.c */ 32 33 /* action_class_section.c */ 34 35 /* action_class_list.c */ 36 grib_action* grib_action_create_list(grib_context* context, const char* name, grib_expression* expression, grib_action* block); 37 38 /* action_class_while.c */ 39 grib_action* grib_action_create_while(grib_context* context, grib_expression* expression, grib_action* block); 40 41 /* action_class_put.c */ 42 grib_action* grib_action_create_put(grib_context* context, const char* name, grib_arguments* args); 43 44 /* action_class_meta.c */ 45 grib_action* grib_action_create_meta(grib_context* context, const char* name, const char* op, grib_arguments* params, grib_arguments* default_value, unsigned long flags, const char* name_space); 46 47 /* action_class_remove.c */ 48 grib_action* grib_action_create_remove(grib_context* context, grib_arguments* args); 49 50 /* action_class_rename.c */ 51 grib_action* grib_action_create_rename(grib_context* context, char* the_old, char* the_new); 52 53 /* action_class_assert.c */ 54 grib_action* grib_action_create_assert(grib_context* context, grib_expression* expression); 55 56 /* action_class_template.c */ 57 grib_action* grib_action_create_template(grib_context* context, int nofail, const char* name, const char* arg1); 58 grib_action* get_empty_template(grib_context* c, int* err); 59 60 /* action_class_trigger.c */ 61 grib_action* grib_action_create_trigger(grib_context* context, grib_arguments* args, grib_action* block); 62 63 /* action_class_when.c */ 64 grib_action* grib_action_create_when(grib_context* context, grib_expression* expression, grib_action* block_true, grib_action* block_false); 65 66 /* action_class_concept.c */ 67 grib_concept_value* action_concept_get_concept(grib_accessor* a); 68 int action_concept_get_nofail(grib_accessor* a); 69 grib_action* grib_action_create_concept(grib_context* context, const char* name, grib_concept_value* concept, const char* basename, const char* name_space, const char* defaultkey, const char* masterDir, const char* localDir, const char* ecmfDir, int flags, int nofail); 70 int get_concept_condition_string(grib_handle* h, const char* key, const char* value, char* result); 71 72 /* action_class_hash_array.c */ 73 grib_action* grib_action_create_hash_array(grib_context* context, const char* name, grib_hash_array_value* hash_array, const char* basename, const char* name_space, const char* defaultkey, const char* masterDir, const char* localDir, const char* ecmfDir, int flags, int nofail); 74 grib_hash_array_value* get_hash_array(grib_handle* h, grib_action* a); 75 76 /* action_class_set.c */ 77 grib_action* grib_action_create_set(grib_context* context, const char* name, grib_expression* expression, int nofail); 78 79 /* action_class_set_darray.c */ 80 grib_action* grib_action_create_set_darray(grib_context* context, const char* name, grib_darray* darray); 81 82 /* action_class_set_iarray.c */ 83 grib_action* grib_action_create_set_iarray(grib_context* context, const char* name, grib_iarray* iarray); 84 85 /* action_class_set_sarray.c */ 86 grib_action* grib_action_create_set_sarray(grib_context* context, const char* name, grib_sarray* sarray); 87 88 /* action_class_noop.c */ 89 grib_action* grib_action_create_noop(grib_context* context, const char* fname); 90 91 /* action_class_write.c */ 92 grib_action* grib_action_create_write(grib_context* context, const char* name, int append, int padtomultiple); 93 94 /* action_class_print.c */ 95 grib_action* grib_action_create_print(grib_context* context, const char* name, char* outname); 96 97 /* action_class_close.c */ 98 grib_action* grib_action_create_close(grib_context* context, char* filename); 99 100 /* action_class_variable.c */ 101 grib_action* grib_action_create_variable(grib_context* context, const char* name, const char* op, const long len, grib_arguments* params, grib_arguments* default_value, int flags, const char* name_space); 102 103 /* action_class_modify.c */ 104 grib_action* grib_action_create_modify(grib_context* context, const char* name, long flags); 105 106 /* action_class_transient_darray.c */ 107 grib_action* grib_action_create_transient_darray(grib_context* context, const char* name, grib_darray* darray, int flags); 108 109 /* grib_accessor.c */ 110 void grib_accessor_dump(grib_accessor* a, grib_dumper* f); 111 int grib_pack_missing(grib_accessor* a); 112 int grib_pack_zero(grib_accessor* a); 113 int grib_is_missing_internal(grib_accessor* a); 114 int grib_pack_double(grib_accessor* a, const double* v, size_t* len); 115 int grib_pack_expression(grib_accessor* a, grib_expression* e); 116 int grib_pack_string(grib_accessor* a, const char* v, size_t* len); 117 int grib_pack_string_array(grib_accessor* a, const char** v, size_t* len); 118 int grib_pack_long(grib_accessor* a, const long* v, size_t* len); 119 int grib_pack_bytes(grib_accessor* a, const unsigned char* v, size_t* len); 120 int grib_unpack_bytes(grib_accessor* a, unsigned char* v, size_t* len); 121 int grib_unpack_double_subarray(grib_accessor* a, double* v, size_t start, size_t len); 122 int grib_unpack_double(grib_accessor* a, double* v, size_t* len); 123 int grib_unpack_double_element(grib_accessor* a, size_t i, double* v); 124 int grib_unpack_string(grib_accessor* a, char* v, size_t* len); 125 int grib_unpack_string_array(grib_accessor* a, char** v, size_t* len); 126 int grib_accessors_list_unpack_long(grib_accessors_list* al, long* val, size_t* buffer_len); 127 int grib_accessors_list_unpack_double(grib_accessors_list* al, double* val, size_t* buffer_len); 128 int grib_accessors_list_unpack_string(grib_accessors_list* al, char** val, size_t* buffer_len); 129 int grib_unpack_long(grib_accessor* a, long* v, size_t* len); 130 long grib_accessor_get_native_type(grib_accessor* a); 131 long grib_get_next_position_offset(grib_accessor* a); 132 long grib_string_length(grib_accessor* a); 133 long grib_byte_offset(grib_accessor* a); 134 long grib_byte_count(grib_accessor* a); 135 int grib_value_count(grib_accessor* a, long* count); 136 int grib_accessors_list_value_count(grib_accessors_list* al, size_t* count); 137 int grib_accessor_notify_change(grib_accessor* a, grib_accessor* changed); 138 void grib_init_accessor(grib_accessor* a, const long len, grib_arguments* args); 139 void grib_accessor_delete(grib_context* ct, grib_accessor* a); 140 grib_accessor* grib_accessor_clone(grib_accessor* a, grib_section* s, int* err); 141 void grib_update_size(grib_accessor* a, size_t len); 142 int grib_nearest_smaller_value(grib_accessor* a, double val, double* nearest); 143 size_t grib_preferred_size(grib_accessor* a, int from_handle); 144 grib_accessor* grib_next_accessor(grib_accessor* a); 145 void grib_resize(grib_accessor* a, size_t new_size); 146 int grib_compare_accessors(grib_accessor* a1, grib_accessor* a2, int compare_flags); 147 const char* grib_get_type_name(int type); 148 int grib_accessor_add_attribute(grib_accessor* a, grib_accessor* attr, int nest_if_clash); 149 int grib_accessor_replace_attribute(grib_accessor* a, grib_accessor* attr); 150 int grib_accessor_delete_attribute(grib_accessor* a, const char* name); 151 grib_accessor* grib_accessor_get_attribute_by_index(grib_accessor* a, int index); 152 const char* grib_accessor_get_name(grib_accessor* a); 153 grib_accessor* _grib_accessor_get_attribute(grib_accessor* a, const char* name, int* index); 154 int grib_accessor_has_attributes(grib_accessor* a); 155 grib_accessor* grib_accessor_get_attribute(grib_accessor* a, const char* name); 156 grib_accessors_list* grib_accessors_list_create(grib_context* c); 157 void grib_accessors_list_push(grib_accessors_list* al, grib_accessor* a, int rank); 158 grib_accessors_list* grib_accessors_list_last(grib_accessors_list* al); 159 grib_accessors_list* grib_accessors_list_find(grib_accessors_list* al, grib_accessor* a); 160 void grib_accessors_list_delete(grib_context* c, grib_accessors_list* al); 161 162 /* grib_concept.c */ 163 grib_concept_value* grib_concept_value_new(grib_context* c, const char* name, grib_concept_condition* conditions); 164 void grib_concept_value_delete(grib_context* c, grib_concept_value* v); 165 grib_concept_condition* grib_concept_condition_new(grib_context* c, const char* name, grib_expression* expression, grib_iarray* iarray); 166 void grib_concept_condition_delete(grib_context* c, grib_concept_condition* v); 167 168 /* grib_hash_array.c */ 169 grib_hash_array_value* grib_integer_hash_array_value_new(grib_context* c, const char* name, grib_iarray* array); 170 grib_hash_array_value* grib_double_hash_array_value_new(grib_context* c, const char* name, grib_darray* array); 171 void grib_hash_array_value_delete(grib_context* c, grib_hash_array_value* v); 172 173 /* grib_bufr_descriptor.c */ 174 bufr_descriptor* grib_bufr_descriptor_new(grib_accessor* tables_accessor, int code, int* err); 175 bufr_descriptor* grib_bufr_descriptor_clone(bufr_descriptor* d); 176 int grib_bufr_descriptor_set_code(grib_accessor* tables_accessor, int code, bufr_descriptor* v); 177 void grib_bufr_descriptor_set_reference(bufr_descriptor* v, long reference); 178 void grib_bufr_descriptor_set_width(bufr_descriptor* v, long width); 179 void grib_bufr_descriptor_set_scale(bufr_descriptor* v, long scale); 180 int grib_bufr_descriptor_can_be_missing(bufr_descriptor* v); 181 void grib_bufr_descriptor_delete(bufr_descriptor* v); 182 183 /* grib_bufr_descriptors_array.c */ 184 bufr_descriptors_array* grib_bufr_descriptors_array_new(grib_context* c, size_t size, size_t incsize); 185 bufr_descriptor* grib_bufr_descriptors_array_pop(bufr_descriptors_array* a); 186 bufr_descriptor* grib_bufr_descriptors_array_pop_front(bufr_descriptors_array* a); 187 bufr_descriptors_array* grib_bufr_descriptors_array_push(bufr_descriptors_array* v, bufr_descriptor* val); 188 bufr_descriptors_array* grib_bufr_descriptors_array_append(bufr_descriptors_array* v, bufr_descriptors_array* ar); 189 bufr_descriptors_array* grib_bufr_descriptors_array_push_front(bufr_descriptors_array* v, bufr_descriptor* val); 190 bufr_descriptor* grib_bufr_descriptors_array_get(bufr_descriptors_array* a, size_t i); 191 void grib_bufr_descriptors_array_set(bufr_descriptors_array* a, size_t i, bufr_descriptor* v); 192 void grib_bufr_descriptors_array_delete(bufr_descriptors_array* v); 193 void grib_bufr_descriptors_array_delete_array(bufr_descriptors_array* v); 194 bufr_descriptor** grib_bufr_descriptors_array_get_array(bufr_descriptors_array* v); 195 size_t grib_bufr_descriptors_array_used_size(bufr_descriptors_array* v); 196 197 /* grib_darray.c */ 198 void grib_darray_print(const char* title, const grib_darray* darray); 199 grib_darray* grib_darray_new_from_array(grib_context* c, double* a, size_t size); 200 grib_darray* grib_darray_new(grib_context* c, size_t size, size_t incsize); 201 grib_darray* grib_darray_push(grib_context* c, grib_darray* v, double val); 202 void grib_darray_delete(grib_context* c, grib_darray* v); 203 double* grib_darray_get_array(grib_context* c, grib_darray* v); 204 int grib_darray_is_constant(grib_darray* v, double epsilon); 205 size_t grib_darray_used_size(grib_darray* v); 206 207 /* grib_sarray.c */ 208 grib_sarray* grib_sarray_new(grib_context* c, size_t size, size_t incsize); 209 grib_sarray* grib_sarray_push(grib_context* c, grib_sarray* v, char* val); 210 void grib_sarray_delete(grib_context* c, grib_sarray* v); 211 void grib_sarray_delete_content(grib_context* c, grib_sarray* v); 212 char** grib_sarray_get_array(grib_context* c, grib_sarray* v); 213 size_t grib_sarray_used_size(grib_sarray* v); 214 215 /* grib_oarray.c */ 216 grib_oarray* grib_oarray_new(grib_context* c, size_t size, size_t incsize); 217 grib_oarray* grib_oarray_push(grib_context* c, grib_oarray* v, void* val); 218 void grib_oarray_delete(grib_context* c, grib_oarray* v); 219 void grib_oarray_delete_content(grib_context* c, grib_oarray* v); 220 void** grib_oarray_get_array(grib_context* c, grib_oarray* v); 221 void* grib_oarray_get(grib_oarray* v, int i); 222 size_t grib_oarray_used_size(grib_oarray* v); 223 224 /* grib_iarray.c */ 225 void grib_iarray_print(const char* title, const grib_iarray* iarray); 226 grib_iarray* grib_iarray_new_from_array(grib_context* c, long* a, size_t size); 227 grib_iarray* grib_iarray_new(grib_context* c, size_t size, size_t incsize); 228 long grib_iarray_pop(grib_iarray* a); 229 long grib_iarray_pop_front(grib_iarray* a); 230 grib_iarray* grib_iarray_push(grib_iarray* v, long val); 231 grib_iarray* grib_iarray_push_front(grib_iarray* v, long val); 232 grib_iarray* grib_iarray_push_array(grib_iarray* v, long* val, size_t size); 233 void grib_iarray_delete(grib_iarray* v); 234 void grib_iarray_delete_array(grib_iarray* v); 235 long* grib_iarray_get_array(grib_iarray* v); 236 size_t grib_iarray_used_size(grib_iarray* v); 237 238 /* grib_vdarray.c */ 239 void grib_vdarray_print(const char* title, const grib_vdarray* vdarray); 240 grib_vdarray* grib_vdarray_new(grib_context* c, size_t size, size_t incsize); 241 grib_vdarray* grib_vdarray_push(grib_context* c, grib_vdarray* v, grib_darray* val); 242 void grib_vdarray_delete(grib_context* c, grib_vdarray* v); 243 void grib_vdarray_delete_content(grib_context* c, grib_vdarray* v); 244 grib_darray** grib_vdarray_get_array(grib_context* c, grib_vdarray* v); 245 size_t grib_vdarray_used_size(grib_vdarray* v); 246 247 /* grib_vsarray.c */ 248 grib_vsarray* grib_vsarray_new(grib_context* c, size_t size, size_t incsize); 249 grib_vsarray* grib_vsarray_push(grib_context* c, grib_vsarray* v, grib_sarray* val); 250 void grib_vsarray_delete(grib_context* c, grib_vsarray* v); 251 void grib_vsarray_delete_content(grib_context* c, grib_vsarray* v); 252 grib_sarray** grib_vsarray_get_array(grib_context* c, grib_vsarray* v); 253 size_t grib_vsarray_used_size(grib_vsarray* v); 254 255 /* grib_viarray.c */ 256 grib_viarray* grib_viarray_new(grib_context* c, size_t size, size_t incsize); 257 grib_viarray* grib_viarray_push(grib_context* c, grib_viarray* v, grib_iarray* val); 258 void grib_viarray_delete(grib_context* c, grib_viarray* v); 259 void grib_viarray_delete_content(grib_context* c, grib_viarray* v); 260 grib_iarray** grib_viarray_get_array(grib_context* c, grib_viarray* v); 261 size_t grib_viarray_used_size(grib_viarray* v); 262 263 /* grib_accessor_class_array.c */ 264 265 /* grib_accessor_class_assert.c */ 266 267 /* grib_accessor_class_ascii.c */ 268 269 /* grib_accessor_class_bit.c */ 270 271 /* grib_accessor_class_bitmap.c */ 272 273 /* grib_accessor_class_bits.c */ 274 275 /* grib_accessor_class_bits_per_value.c */ 276 277 /* grib_accessor_class_bufr_clear_tables.c */ 278 279 /* grib_accessor_class_bufr_data_array.c */ 280 grib_vsarray* accessor_bufr_data_array_get_stringValues(grib_accessor* a); 281 grib_accessors_list* accessor_bufr_data_array_get_dataAccessors(grib_accessor* a); 282 grib_trie_with_rank* accessor_bufr_data_array_get_dataAccessorsTrie(grib_accessor* a); 283 void accessor_bufr_data_array_set_unpackMode(grib_accessor* a, int unpackMode); 284 285 /* grib_accessor_class_bufr_data_element.c */ 286 void accessor_bufr_data_element_set_index(grib_accessor* a, long index); 287 void accessor_bufr_data_element_set_type(grib_accessor* a, int type); 288 void accessor_bufr_data_element_set_numberOfSubsets(grib_accessor* a, long numberOfSubsets); 289 void accessor_bufr_data_element_set_subsetNumber(grib_accessor* a, long subsetNumber); 290 void accessor_bufr_data_element_set_compressedData(grib_accessor* a, int compressedData); 291 void accessor_bufr_data_element_set_descriptors(grib_accessor* a, bufr_descriptors_array* descriptors); 292 void accessor_bufr_data_element_set_numericValues(grib_accessor* a, grib_vdarray* numericValues); 293 void accessor_bufr_data_element_set_stringValues(grib_accessor* a, grib_vsarray* stringValues); 294 void accessor_bufr_data_element_set_elementsDescriptorsIndex(grib_accessor* a, grib_viarray* elementsDescriptorsIndex); 295 296 /* grib_accessor_class_bufr_elements_table.c */ 297 int bufr_descriptor_is_marker(bufr_descriptor* d); 298 bufr_descriptor* accessor_bufr_elements_table_get_descriptor(grib_accessor* a, int code, int* err); 299 300 /* grib_accessor_class_bufr_group.c */ 301 302 /* grib_accessor_class_bufr_string_values.c */ 303 304 /* grib_accessor_class_pack_bufr_values.c */ 305 306 /* grib_accessor_class_bufr_extract_area_subsets.c */ 307 308 /* grib_accessor_class_bufr_extract_datetime_subsets.c */ 309 310 /* grib_accessor_class_group.c */ 311 312 /* grib_accessor_class_unpack_bufr_values.c */ 313 314 /* grib_accessor_class_bufr_has_delayed_replication.c */ 315 316 /* grib_accessor_class_apply_operators.c */ 317 size_t compute_size_AO(long* descriptors, size_t numberOfDescriptors); 318 319 /* grib_accessor_class_non_alpha.c */ 320 321 /* grib_accessor_class_g1bitmap.c */ 322 323 /* grib_accessor_class_g2bitmap.c */ 324 325 /* grib_accessor_class_concept.c */ 326 327 /* grib_accessor_class_hash_array.c */ 328 329 /* grib_accessor_class_decimal_precision.c */ 330 331 /* grib_accessor_class_divdouble.c */ 332 333 /* grib_accessor_class_budgdate.c */ 334 335 /* grib_accessor_class_validity_date.c */ 336 337 /* grib_accessor_class_validity_time.c */ 338 339 /* grib_accessor_class_bytes.c */ 340 341 /* grib_accessor_class.c */ 342 grib_section* grib_create_root_section(const grib_context* context, grib_handle* h); 343 grib_accessor* grib_accessor_factory(grib_section* p, grib_action* creator, const long len, grib_arguments* params); 344 void grib_push_accessor(grib_accessor* a, grib_block_of_accessors* l); 345 void grib_section_post_init(grib_section* s); 346 int grib_section_adjust_sizes(grib_section* s, int update, int depth); 347 int grib_get_block_length(grib_section* s, size_t* l); 348 grib_accessor* find_paddings(grib_section* s); 349 void grib_update_paddings(grib_section* s); 350 351 /* grib_accessor_class_change_scanning_direction.c */ 352 353 /* grib_accessor_class_check_internal_version.c */ 354 355 /* grib_accessor_class_codeflag.c */ 356 357 /* grib_accessor_class_smart_table.c */ 358 void grib_smart_table_delete(grib_context* c); 359 360 /* grib_accessor_class_smart_table_column.c */ 361 362 /* grib_accessor_class_codetable.c */ 363 void grib_codetable_delete(grib_context* c); 364 365 /* grib_accessor_class_codetable_units.c */ 366 367 /* grib_accessor_class_codetable_title.c */ 368 369 /* grib_accessor_class_count_file.c */ 370 371 /* grib_accessor_class_count_total.c */ 372 373 /* grib_accessor_class_double.c */ 374 375 /* grib_accessor_class_element.c */ 376 377 /* grib_accessor_class_evaluate.c */ 378 379 /* grib_accessor_class_g1area.c */ 380 381 /* grib_accessor_class_g1date.c */ 382 383 /* grib_accessor_class_g1monthlydate.c */ 384 385 /* grib_accessor_class_library_version.c */ 386 387 /* grib_accessor_class_when.c */ 388 389 /* grib_accessor_class_g1verificationdate.c */ 390 391 /* grib_accessor_class_g1day_of_the_year_date.c */ 392 393 /* grib_accessor_class_g1_half_byte_codeflag.c */ 394 395 /* grib_accessor_class_g1forecastmonth.c */ 396 397 /* grib_accessor_class_g1step_range.c */ 398 int grib_g1_step_get_steps(grib_accessor* a, long* start, long* theEnd); 399 int grib_g1_step_apply_units(long* start, long* theEnd, long* step_unit, long* P1, long* P2, long* unit, const int max, const int instant); 400 401 /* grib_accessor_class_g2step_range.c */ 402 403 /* grib_accessor_class_data_g22order_packing.c */ 404 405 /* grib_accessor_class_mars_step.c */ 406 407 /* grib_accessor_class_message_copy.c */ 408 409 /* grib_accessor_class_dictionary.c */ 410 411 /* grib_accessor_class_g1param.c */ 412 413 /* grib_accessor_class_g1p1p2.c */ 414 415 /* grib_accessor_class_g1_increment.c */ 416 417 /* grib_accessor_class_latlon_increment.c */ 418 419 /* grib_accessor_class_g2date.c */ 420 421 /* grib_accessor_class_g2level.c */ 422 423 /* grib_accessor_class_g2step.c */ 424 425 /* grib_accessor_class_g2end_step.c */ 426 427 /* grib_accessor_class_g2latlon.c */ 428 429 /* grib_accessor_class_g2lon.c */ 430 431 /* grib_accessor_class_global_gaussian.c */ 432 433 /* grib_accessor_class_gaussian_grid_name.c */ 434 435 /* grib_accessor_class_gen.c */ 436 437 /* grib_accessor_class_gts_header.c */ 438 439 /* grib_accessor_class_ifs_param.c */ 440 441 /* grib_accessor_class_int16.c */ 442 443 /* grib_accessor_class_int16_little_endian.c */ 444 445 /* grib_accessor_class_int32.c */ 446 447 /* grib_accessor_class_int32_little_endian.c */ 448 449 /* grib_accessor_class_int64.c */ 450 451 /* grib_accessor_class_int64_little_endian.c */ 452 453 /* grib_accessor_class_int8.c */ 454 455 /* grib_accessor_class_uint16.c */ 456 457 /* grib_accessor_class_uint16_little_endian.c */ 458 459 /* grib_accessor_class_uint32.c */ 460 461 /* grib_accessor_class_uint32_little_endian.c */ 462 463 /* grib_accessor_class_uint64.c */ 464 465 /* grib_accessor_class_uint64_little_endian.c */ 466 467 /* grib_accessor_class_uint8.c */ 468 469 /* grib_accessor_class_blob.c */ 470 471 /* grib_accessor_class_julian_day.c */ 472 473 /* grib_accessor_class_julian_date.c */ 474 475 /* grib_accessor_class_latlonvalues.c */ 476 477 /* grib_accessor_class_latitudes.c */ 478 479 /* grib_accessor_class_longitudes.c */ 480 481 /* grib_accessor_class_missing.c */ 482 483 /* grib_accessor_class_octahedral_gaussian.c */ 484 485 /* grib_accessor_class_offset_file.c */ 486 487 /* grib_accessor_class_scale.c */ 488 489 /* grib_accessor_class_rdbtime_guess_date.c */ 490 491 /* grib_accessor_class_from_scale_factor_scaled_value.c */ 492 493 /* grib_accessor_class_times.c */ 494 495 /* grib_accessor_class_forward.c */ 496 497 /* grib_accessor_class_g2bitmap_present.c */ 498 499 /* grib_accessor_class_ibmfloat.c */ 500 501 /* grib_accessor_class_ieeefloat.c */ 502 503 /* grib_accessor_class_constant.c */ 504 void accessor_constant_set_type(grib_accessor* a, int type); 505 void accessor_constant_set_dval(grib_accessor* a, double dval); 506 507 /* grib_accessor_class_iterator.c */ 508 grib_iterator* grib_iterator_new(const grib_handle* h, unsigned long flags, int* error); 509 510 /* grib_accessor_class_message.c */ 511 512 /* grib_accessor_class_nearest.c */ 513 grib_nearest* grib_nearest_new(const grib_handle* h, int* error); 514 515 /* grib_accessor_class_box.c */ 516 grib_box* grib_box_new(grib_handle* h, int* error); 517 518 /* grib_accessor_class_ksec1expver.c */ 519 520 /* grib_accessor_class_laplacian.c */ 521 522 /* grib_accessor_class_label.c */ 523 524 /* grib_accessor_class_long.c */ 525 526 /* grib_accessor_class_lookup.c */ 527 528 /* grib_accessor_class_octect_number.c */ 529 530 /* grib_accessor_class_headers_only.c */ 531 532 /* grib_accessor_class_padding.c */ 533 534 /* grib_accessor_class_pad.c */ 535 536 /* grib_accessor_class_padto.c */ 537 538 /* grib_accessor_class_padtoeven.c */ 539 540 /* grib_accessor_class_padtomultiple.c */ 541 542 /* grib_accessor_class_section_padding.c */ 543 544 /* grib_accessor_class_section_pointer.c */ 545 546 /* grib_accessor_class_position.c */ 547 548 /* grib_accessor_class_signed.c */ 549 550 /* grib_accessor_class_signed_bits.c */ 551 552 /* grib_accessor_class_section.c */ 553 554 /* grib_accessor_class_step_in_units.c */ 555 556 /* grib_accessor_class_section_length.c */ 557 558 /* grib_accessor_class_g1_message_length.c */ 559 int grib_get_g1_message_size(grib_handle* h, grib_accessor* tl, grib_accessor* s4, long* total_length, long* sec4_len); 560 561 /* grib_accessor_class_g1_section4_length.c */ 562 563 /* grib_accessor_class_size.c */ 564 565 /* grib_accessor_class_scale_values.c */ 566 567 /* grib_accessor_class_offset_values.c */ 568 569 /* grib_accessor_class_sprintf.c */ 570 571 /* grib_accessor_class_getenv.c */ 572 573 /* grib_accessor_class_round.c */ 574 575 /* grib_accessor_class_spectral_truncation.c */ 576 577 /* grib_accessor_class_time.c */ 578 579 /* grib_accessor_class_transient.c */ 580 581 /* grib_accessor_class_values.c */ 582 583 /* grib_accessor_class_simple_packing_error.c */ 584 585 /* grib_accessor_class_data_simple_packing.c */ 586 587 /* grib_accessor_class_data_ccsds_packing.c */ 588 589 /* grib_accessor_class_count_missing.c */ 590 591 /* grib_accessor_class_data_sh_packed.c */ 592 593 /* grib_accessor_class_data_sh_unpacked.c */ 594 595 /* grib_accessor_class_number_of_values_data_raw_packing.c */ 596 597 /* grib_accessor_class_data_g1simple_packing.c */ 598 599 /* grib_accessor_class_data_g1shsimple_packing.c */ 600 601 /* grib_accessor_class_data_shsimple_packing.c */ 602 603 /* grib_accessor_class_data_constant_field.c */ 604 605 /* grib_accessor_class_data_dummy_field.c */ 606 607 /* grib_2order_packer_simple.c */ 608 void grib_free_second_order_groups(grib_context* c, second_order_packed* sp); 609 second_order_packed* grib_get_second_order_groups(grib_context* c, const unsigned long* vals, size_t len); 610 611 /* grib_accessor_class_variable.c */ 612 void accessor_variable_set_type(grib_accessor* a, int type); 613 614 /* grib_accessor_class_second_order_bits_per_value.c */ 615 616 /* grib_accessor_class_data_g2simple_packing.c */ 617 618 /* grib_accessor_class_data_g2simple_packing_with_preprocessing.c */ 619 620 /* grib_accessor_class_data_g2shsimple_packing.c */ 621 622 /* grib_accessor_class_data_g2complex_packing.c */ 623 624 /* grib_accessor_class_data_2order_packing.c */ 625 626 /* grib_accessor_class_data_2order_packing_count.c */ 627 628 /* grib_accessor_class_data_g1second_order_row_by_row_packing.c */ 629 630 /* grib_accessor_class_data_g1second_order_constant_width_packing.c */ 631 632 /* grib_accessor_class_data_g1second_order_general_packing.c */ 633 634 /* grib_accessor_class_data_g1second_order_general_extended_packing.c */ 635 636 /* grib_accessor_class_g2grid.c */ 637 638 /* grib_accessor_class_unexpanded_descriptors.c */ 639 640 /* grib_accessor_class_expanded_descriptors.c */ 641 int grib_accessor_class_expanded_descriptors_set_do_expand(grib_accessor* a, long do_expand); 642 bufr_descriptors_array* grib_accessor_class_expanded_descriptors_get_expanded(grib_accessor* a, int* err); 643 644 /* grib_accessor_class_bufrdc_expanded_descriptors.c */ 645 646 /* grib_accessor_class_data_apply_bitmap.c */ 647 648 /* grib_accessor_class_data_apply_boustrophedonic.c */ 649 650 /* grib_accessor_class_data_apply_boustrophedonic_bitmap.c */ 651 652 /* grib_accessor_class_data_secondary_bitmap.c */ 653 654 /* grib_accessor_class_data_g1secondary_bitmap.c */ 655 656 /* grib_accessor_class_data_g2secondary_bitmap.c */ 657 658 /* grib_accessor_class_data_jpeg2000_packing.c */ 659 660 /* grib_accessor_class_data_png_packing.c */ 661 662 /* grib_accessor_class_data_raw_packing.c */ 663 664 /* grib_accessor_class_data_complex_packing.c */ 665 666 /* grib_accessor_class_data_g1complex_packing.c */ 667 668 /* grib_accessor_class_gds_not_present_bitmap.c */ 669 670 /* grib_accessor_class_data_apply_gdsnotpresent.c */ 671 672 /* grib_accessor_class_gds_is_present.c */ 673 674 /* grib_accessor_class_select_step_template.c */ 675 676 /* grib_accessor_class_local_definition.c */ 677 678 /* grib_accessor_class_g2_eps.c */ 679 680 /* grib_accessor_class_g2_aerosol.c */ 681 682 /* grib_accessor_class_g2_chemical.c */ 683 684 /* grib_accessor_class_g2_mars_labeling.c */ 685 686 /* grib_accessor_class_transient_darray.c */ 687 688 /* grib_accessor_class_md5.c */ 689 690 /* grib_jasper_encoding.c */ 691 int grib_jasper_decode(grib_context* c, unsigned char* buf, size_t* buflen, double* values, size_t* no_values); 692 int grib_jasper_encode(grib_context* c, j2k_encode_helper* helper); 693 int grib_jasper_decode(grib_context* c, unsigned char* buf, size_t* buflen, double* val, size_t* n_vals); 694 int grib_jasper_encode(grib_context* c, j2k_encode_helper* helper); 695 696 /* grib_openjpeg_encoding.c */ 697 int grib_openjpeg_encode(grib_context* c, j2k_encode_helper* helper); 698 int grib_openjpeg_decode(grib_context* c, unsigned char* buf, size_t* buflen, double* val, size_t* n_vals); 699 700 /* action_class_set_missing.c */ 701 grib_action* grib_action_create_set_missing(grib_context* context, const char* name); 702 703 /* grib_accessor_class_number_of_points.c */ 704 705 /* grib_accessor_class_suppressed.c */ 706 707 /* grib_index.c */ 708 int grib_index_compress(grib_index* index); 709 int grib_read_uchar(FILE* fh, unsigned char* val); 710 int grib_read_short(FILE* fh, short* val); 711 int grib_read_long(FILE* fh, long* val); 712 int grib_read_unsigned_long(FILE* fh, unsigned long* val); 713 int grib_write_uchar(FILE* fh, unsigned char val); 714 int grib_write_short(FILE* fh, short val); 715 int grib_write_long(FILE* fh, long val); 716 int grib_write_unsigned_long(FILE* fh, unsigned long val); 717 int grib_write_string(FILE* fh, const char* s); 718 int grib_write_identifier(FILE* fh, const char* id); 719 int grib_write_null_marker(FILE* fh); 720 int grib_write_not_null_marker(FILE* fh); 721 char* grib_read_string(grib_context* c, FILE* fh, int* err); 722 grib_field_tree* grib_read_field_tree(grib_context* c, FILE* fh, grib_file** files, int* err); 723 grib_index* grib_index_new(grib_context* c, const char* key, int* err); 724 void grib_index_delete(grib_index* index); 725 int grib_index_write(grib_index* index, const char* filename); 726 grib_index* grib_index_read(grib_context* c, const char* filename, int* err); 727 int grib_index_search_same(grib_index* index, grib_handle* h); 728 int grib_index_add_file(grib_index* index, const char* filename); 729 int _codes_index_add_file(grib_index* index, const char* filename, int message_type); 730 int grib_index_add_file(grib_index* index, const char* filename); 731 grib_index* grib_index_new_from_file(grib_context* c, const char* filename, const char* keys, int* err); 732 int grib_index_get_size(const grib_index* index, const char* key, size_t* size); 733 int grib_index_get_string(const grib_index* index, const char* key, char** values, size_t* size); 734 int grib_index_get_long(const grib_index* index, const char* key, long* values, size_t* size); 735 int grib_index_get_double(const grib_index* index, const char* key, double* values, size_t* size); 736 int grib_index_select_long(grib_index* index, const char* skey, long value); 737 int grib_index_select_double(grib_index* index, const char* skey, double value); 738 int grib_index_select_string(grib_index* index, const char* skey, const char* value); 739 grib_handle* codes_index_get_handle(grib_field* field, int message_type, int* err); 740 int grib_index_dump_file(FILE* fout, const char* filename); 741 void grib_index_dump(FILE* fout, grib_index* index); 742 char* grib_get_field_file(grib_index* index, off_t* offset); 743 grib_handle* grib_handle_new_from_index(grib_index* index, int* err); 744 grib_handle* codes_new_from_index(grib_index* index, int message_type, int* err); 745 void grib_index_rewind(grib_index* index); 746 int codes_index_set_product_kind(grib_index* index, ProductKind product_kind); 747 int codes_index_set_unpack_bufr(grib_index* index, int unpack); 748 int is_index_file(const char* filename); 749 750 /* grib_accessor_class_number_of_points_gaussian.c */ 751 752 /* grib_accessor_class_number_of_values.c */ 753 754 /* grib_accessor_class_number_of_coded_values.c */ 755 756 /* grib_accessor_class_g1number_of_coded_values_sh_complex.c */ 757 758 /* grib_accessor_class_g1number_of_coded_values_sh_simple.c */ 759 760 /* grib_accessor_class_dirty.c */ 761 762 /* grib_accessor_class_statistics.c */ 763 764 /* grib_accessor_class_statistics_spectral.c */ 765 766 /* grib_accessor_class_unsigned.c */ 767 int pack_long_unsigned_helper(grib_accessor* a, const long* val, size_t* len, int check); 768 769 /* grib_accessor_class_unsigned_bits.c */ 770 771 /* grib_accessor_class_raw.c */ 772 void accessor_raw_set_length(grib_accessor* a, size_t len); 773 long accessor_raw_get_offset(grib_accessor* a); 774 775 /* grib_accessor_class_bufr_extract_subsets.c */ 776 777 /* grib_accessor_class_bufr_simple_thinning.c */ 778 779 /* grib_accessor_class_spd.c */ 780 781 /* grib_accessor_class_sum.c */ 782 783 /* grib_accessor_class_to_integer.c */ 784 785 /* grib_accessor_class_to_double.c */ 786 787 /* grib_accessor_class_to_string.c */ 788 789 /* grib_accessor_class_sexagesimal2decimal.c */ 790 791 /* grib_accessor_class_vector.c */ 792 793 /* grib_accessor_class_long_vector.c */ 794 795 /* grib_gaussian_reduced.c */ 796 void grib_get_reduced_row_wrapper(grib_handle* h, long pl, double lon_first, double lon_last, long* npoints, long* ilon_first, long* ilon_last); 797 void grib_get_reduced_row_legacy(long pl, double lon_first, double lon_last, long* npoints, long* ilon_first, long* ilon_last); 798 void grib_get_reduced_row(long pl, double lon_first, double lon_last, long* npoints, long* ilon_first, long* ilon_last); 799 void grib_get_reduced_row_p(long pl, double lon_first, double lon_last, long* npoints, double* olon_first, double* olon_last); 800 801 /* grib_accessor_class_abstract_vector.c */ 802 803 /* grib_accessor_class_abstract_long_vector.c */ 804 805 /* grib_loader_from_handle.c */ 806 int grib_lookup_long_from_handle(grib_context* gc, grib_loader* loader, const char* name, long* value); 807 int grib_init_accessor_from_handle(grib_loader* loader, grib_accessor* ga, grib_arguments* default_value); 808 809 /* grib_bits.c */ 810 unsigned long grib_decode_unsigned_byte_long(const unsigned char* p, long o, int l); 811 long grib_decode_signed_long(const unsigned char* p, long o, int l); 812 int grib_encode_signed_long(unsigned char* p, long val, long o, int l); 813 void grib_set_bits_on(unsigned char* p, long* bitp, long nbits); 814 int grib_get_bit(const unsigned char* p, long bitp); 815 void grib_set_bit(unsigned char* p, long bitp, int val); 816 long grib_decode_signed_longb(const unsigned char* p, long* bitp, long nbits); 817 int grib_encode_signed_longb(unsigned char* p, long val, long* bitp, long nb); 818 819 /* grib_timer.c */ 820 double proc_cpu(void); 821 char* timename(double t); 822 grib_timer* grib_get_timer(grib_context* c, const char* name, const char* statname, int elapsed); 823 int grib_timer_start(grib_timer* t); 824 int grib_timer_stop(grib_timer* t, long total); 825 double grib_timer_value(grib_timer* t); 826 const char* bytename(double bytes); 827 void grib_timer_print(grib_timer* t); 828 void grib_timer_partial_rate(grib_timer* t, double start, long total); 829 void grib_print_all_timers(void); 830 void grib_reset_all_timers(void); 831 grib_timer* grib_get_timer(grib_context* c, const char* name, const char* statname, int elapsed); 832 int grib_timer_start(grib_timer* t); 833 int grib_timer_stop(grib_timer* t, long total); 834 double grib_timer_value(grib_timer* t); 835 void grib_timer_print(grib_timer* t); 836 void grib_timer_partial_rate(grib_timer* t, double start, long total); 837 void grib_print_all_timers(void); 838 void grib_reset_all_timers(void); 839 840 /* grib_ibmfloat.c */ 841 unsigned long grib_ibm_to_long(double x); 842 double grib_ibmfloat_error(double x); 843 double grib_long_to_ibm(unsigned long x); 844 double grib_ibm_table_e(unsigned long e); 845 double grib_ibm_table_v(unsigned long e); 846 unsigned long grib_ibm_nearest_smaller_to_long(double x); 847 int grib_nearest_smaller_ibm_float(double a, double* ret); 848 849 /* grib_ieeefloat.c */ 850 double grib_ieee_table_e(unsigned long e); 851 double grib_ieee_table_v(unsigned long e); 852 unsigned long grib_ieee_to_long(double x); 853 double grib_ieeefloat_error(double x); 854 double grib_long_to_ieee(unsigned long x); 855 unsigned long grib_ieee_nearest_smaller_to_long(double x); 856 int grib_nearest_smaller_ieee_float(double a, double* ret); 857 double grib_ieeefloat_error(double x); 858 double grib_long_to_ieee(unsigned long x); 859 int grib_nearest_smaller_ieee_float(double a, double* x); 860 unsigned long grib_ieee_to_long(double x); 861 unsigned long grib_ieee64_to_long(double x); 862 double grib_long_to_ieee64(unsigned long x); 863 int grib_ieee_decode_array(grib_context* c, unsigned char* buf, size_t nvals, int bytes, double* val); 864 int grib_ieee_decode_array(grib_context* c, unsigned char* buf, size_t nvals, int bytes, double* val); 865 int grib_ieee_encode_array(grib_context* c, double* val, size_t nvals, int bytes, unsigned char* buf); 866 int grib_ieee_encode_array(grib_context* c, double* val, size_t nvals, int bytes, unsigned char* buf); 867 868 /* grib_accessor_class_reference_value_error.c */ 869 870 /* grib_memory.c */ 871 void* grib_transient_malloc(const grib_context* c, size_t s); 872 void* grib_transient_realloc(const grib_context* c, void* p, size_t s); 873 void grib_transient_free(const grib_context* c, void* p); 874 void* grib_permanent_malloc(const grib_context* c, size_t s); 875 void* grib_permanent_realloc(const grib_context* c, void* p, size_t s); 876 void grib_permanent_free(const grib_context* c, void* p); 877 void* grib_buffer_malloc(const grib_context* c, size_t s); 878 void grib_buffer_free(const grib_context* c, void* p); 879 void* grib_buffer_realloc(const grib_context* c, void* p, size_t s); 880 881 /* grib_buffer.c */ 882 void grib_get_buffer_ownership(const grib_context* c, grib_buffer* b); 883 grib_buffer* grib_create_growable_buffer(const grib_context* c); 884 grib_buffer* grib_new_buffer(const grib_context* c, const unsigned char* data, size_t buflen); 885 void grib_buffer_delete(const grib_context* c, grib_buffer* b); 886 void grib_grow_buffer(const grib_context* c, grib_buffer* b, size_t new_size); 887 void grib_buffer_set_ulength_bits(const grib_context* c, grib_buffer* b, size_t length_bits); 888 void grib_buffer_set_ulength(const grib_context* c, grib_buffer* b, size_t length); 889 void grib_recompute_sections_lengths(grib_section* s); 890 void grib_buffer_replace(grib_accessor* a, const unsigned char* data, size_t newsize, int update_lengths, int update_paddings); 891 void grib_update_sections_lengths(grib_handle* h); 892 893 /* grib_dumper.c */ 894 void grib_init_dumper(grib_dumper* d); 895 void grib_dumper_delete(grib_dumper* d); 896 void grib_dump_long(grib_dumper* d, grib_accessor* a, const char* comment); 897 void grib_dump_double(grib_dumper* d, grib_accessor* a, const char* comment); 898 void grib_dump_string(grib_dumper* d, grib_accessor* a, const char* comment); 899 void grib_dump_string_array(grib_dumper* d, grib_accessor* a, const char* comment); 900 void grib_dump_label(grib_dumper* d, grib_accessor* a, const char* comment); 901 void grib_dump_bytes(grib_dumper* d, grib_accessor* a, const char* comment); 902 void grib_dump_bits(grib_dumper* d, grib_accessor* a, const char* comment); 903 void grib_dump_section(grib_dumper* d, grib_accessor* a, grib_block_of_accessors* block); 904 void grib_dump_values(grib_dumper* d, grib_accessor* a); 905 void grib_dump_header(grib_dumper* d, const grib_handle* h); 906 void grib_dump_footer(grib_dumper* d, const grib_handle* h); 907 908 /* grib_dumper_class_serialize.c */ 909 910 /* grib_dumper_class_debug.c */ 911 912 /* grib_dumper_class_default.c */ 913 914 /* grib_dumper_class_keys.c */ 915 916 /* grib_dumper_class_bufr_encode_C.c */ 917 918 /* grib_dumper_class_bufr_encode_filter.c */ 919 920 /* grib_dumper_class_bufr_encode_fortran.c */ 921 922 /* grib_dumper_class_bufr_encode_python.c */ 923 924 /* grib_dumper_class_bufr_decode_C.c */ 925 926 /* grib_dumper_class_bufr_decode_filter.c */ 927 928 /* grib_dumper_class_bufr_decode_fortran.c */ 929 930 /* grib_dumper_class_bufr_decode_python.c */ 931 932 /* grib_dumper_class_bufr_simple.c */ 933 934 /* grib_dumper_class_json.c */ 935 936 /* grib_dumper_class_grib_encode_C.c */ 937 938 /* grib_dumper_class_wmo.c */ 939 940 /* grib_dumper_class.c */ 941 grib_dumper* grib_dumper_factory(const char* op, const grib_handle* h, FILE* out, unsigned long option_flags, void* arg); 942 void grib_dump_accessors_block(grib_dumper* dumper, grib_block_of_accessors* block); 943 void grib_dump_accessors_list(grib_dumper* dumper, grib_accessors_list* al); 944 int grib_print(grib_handle* h, const char* name, grib_dumper* d); 945 void grib_dump_content(const grib_handle* h, FILE* f, const char* mode, unsigned long flags, void* data); 946 void grib_dump_keys(grib_handle* h, FILE* f, const char* mode, unsigned long flags, void* data, const char** keys, size_t num_keys); 947 grib_dumper* grib_dump_content_with_dumper(grib_handle* h, grib_dumper* dumper, FILE* f, const char* mode, unsigned long flags, void* data); 948 void codes_dump_bufr_flat(grib_accessors_list* al, grib_handle* h, FILE* f, const char* mode, unsigned long flags, void* data); 949 950 /* grib_context.c */ 951 size_t grib_context_read(const grib_context* c, void* ptr, size_t size, void* stream); 952 off_t grib_context_tell(const grib_context* c, void* stream); 953 int grib_context_seek(const grib_context* c, off_t offset, int whence, void* stream); 954 int grib_context_eof(const grib_context* c, void* stream); 955 size_t grib_context_write(const grib_context* c, const void* ptr, size_t size, void* stream); 956 void grib_context_set_print_proc(grib_context* c, grib_print_proc p); 957 void grib_context_set_debug(grib_context* c, int mode); 958 void grib_context_set_logging_proc(grib_context* c, grib_log_proc p); 959 long grib_get_api_version(void); 960 void grib_print_api_version(FILE* out); 961 const char* grib_get_package_name(void); 962 grib_context* grib_context_get_default(void); 963 char* codes_resolve_path(grib_context* c, const char* path); 964 char* grib_context_full_defs_path(grib_context* c, const char* basename); 965 char* grib_samples_path(const grib_context* c); 966 char* grib_definition_path(const grib_context* c); 967 void grib_context_free(const grib_context* c, void* p); 968 void grib_context_free_persistent(const grib_context* c, void* p); 969 void grib_context_reset(grib_context* c); 970 void grib_context_delete(grib_context* c); 971 void codes_bufr_multi_element_constant_arrays_on(grib_context* c); 972 void codes_bufr_multi_element_constant_arrays_off(grib_context* c); 973 void grib_context_set_definitions_path(grib_context* c, const char* path); 974 void grib_context_set_samples_path(grib_context* c, const char* path); 975 void* grib_context_malloc_persistent(const grib_context* c, size_t size); 976 char* grib_context_strdup_persistent(const grib_context* c, const char* s); 977 void* grib_context_malloc_clear_persistent(const grib_context* c, size_t size); 978 void* grib_context_malloc(const grib_context* c, size_t size); 979 void* grib_context_realloc(const grib_context* c, void* p, size_t size); 980 char* grib_context_strdup(const grib_context* c, const char* s); 981 void* grib_context_malloc_clear(const grib_context* c, size_t size); 982 void* grib_context_buffer_malloc(const grib_context* c, size_t size); 983 void grib_context_buffer_free(const grib_context* c, void* p); 984 void* grib_context_buffer_realloc(const grib_context* c, void* p, size_t size); 985 void* grib_context_buffer_malloc_clear(const grib_context* c, size_t size); 986 void grib_context_set_memory_proc(grib_context* c, grib_malloc_proc m, grib_free_proc f, grib_realloc_proc r); 987 void grib_context_set_persistent_memory_proc(grib_context* c, grib_malloc_proc m, grib_free_proc f); 988 void grib_context_set_buffer_memory_proc(grib_context* c, grib_malloc_proc m, grib_free_proc f, grib_realloc_proc r); 989 void grib_context_set_data_accessing_proc(grib_context* c, grib_data_read_proc read, grib_data_write_proc write, grib_data_tell_proc tell); 990 void grib_context_log(const grib_context* c, int level, const char* fmt, ...); 991 void grib_context_print(const grib_context* c, void* descriptor, const char* fmt, ...); 992 int grib_context_get_handle_file_count(grib_context* c); 993 int grib_context_get_handle_total_count(grib_context* c); 994 void grib_context_set_handle_file_count(grib_context* c, int new_count); 995 void grib_context_set_handle_total_count(grib_context* c, int new_count); 996 void grib_context_increment_handle_file_count(grib_context* c); 997 void grib_context_increment_handle_total_count(grib_context* c); 998 bufr_descriptors_array* grib_context_expanded_descriptors_list_get(grib_context* c, const char* key, long* u, size_t size); 999 void grib_context_expanded_descriptors_list_push(grib_context* c, const char* key, bufr_descriptors_array* expanded, bufr_descriptors_array* unexpanded); 1000 void codes_set_codes_assertion_failed_proc(codes_assertion_failed_proc proc); 1001 void codes_assertion_failed(const char* message, const char* file, int line); 1002 int grib_get_gribex_mode(grib_context* c); 1003 void grib_gribex_mode_on(grib_context* c); 1004 void grib_gribex_mode_off(grib_context* c); 1005 void grib_gts_header_on(grib_context* c); 1006 void grib_gts_header_off(grib_context* c); 1007 void grib_multi_support_on(grib_context* c); 1008 void grib_multi_support_off(grib_context* c); 1009 1010 /* grib_date.c */ 1011 int grib_julian_to_datetime(double jd, long* year, long* month, long* day, long* hour, long* minute, long* second); 1012 int grib_datetime_to_julian(long year, long month, long day, long hour, long minute, long second, double* jd); 1013 int grib_datetime_to_julian_d(long year, long month, long day, long hour, long minute, double second, double* jd); 1014 long grib_julian_to_date(long jdate); 1015 long grib_date_to_julian(long ddate); 1016 1017 /* grib_fieldset.c */ 1018 int grib_fieldset_new_column(grib_fieldset* set, int id, char* key, int type); 1019 int grib_fieldset_column_copy_from_handle(grib_handle* h, grib_fieldset* set, int i); 1020 grib_fieldset* grib_fieldset_new_from_files(grib_context* c, char* filenames[], int nfiles, char** keys, int nkeys, const char* where_string, const char* order_by_string, int* err); 1021 int grib_fieldset_apply_where(grib_fieldset* set, const char* where_string); 1022 int grib_fieldset_apply_order_by(grib_fieldset* set, const char* order_by_string); 1023 void grib_fieldset_delete_order_by(grib_context* c, grib_order_by* order_by); 1024 void grib_fieldset_delete(grib_fieldset* set); 1025 int grib_fieldset_add(grib_fieldset* set, char* filename); 1026 void grib_fieldset_rewind(grib_fieldset* set); 1027 grib_handle* grib_fieldset_next_handle(grib_fieldset* set, int* err); 1028 int grib_fieldset_count(grib_fieldset* set); 1029 grib_handle* grib_fieldset_retrieve(grib_fieldset* set, int i, int* err); 1030 1031 /* grib_filepool.c */ 1032 void grib_file_pool_clean(void); 1033 grib_file* grib_file_pool_get_files(void); 1034 int grib_file_pool_read(grib_context* c, FILE* fh); 1035 int grib_file_pool_write(FILE* fh); 1036 grib_file* grib_file_open(const char* filename, const char* mode, int* err); 1037 void grib_file_pool_delete_file(grib_file* file); 1038 void grib_file_close(const char* filename, int force, int* err); 1039 void grib_file_close_all(int* err); 1040 grib_file* grib_get_file(const char* filename, int* err); 1041 grib_file* grib_find_file(short id); 1042 grib_file* grib_file_new(grib_context* c, const char* name, int* err); 1043 void grib_file_delete(grib_file* file); 1044 1045 /* grib_geography.c */ 1046 int grib_get_gaussian_latitudes(long trunc, double* lats); 1047 int is_gaussian_global(double lat1, double lat2, double lon1, double lon2, long num_points_equator, const double* latitudes, double angular_precision); 1048 void rotate(const double inlat, const double inlon, const double angleOfRot, const double southPoleLat, const double southPoleLon, double* outlat, double* outlon); 1049 void unrotate(const double inlat, const double inlon, const double angleOfRot, const double southPoleLat, const double southPoleLon, double* outlat, double* outlon); 1050 double geographic_distance_spherical(double radius, double lon1, double lat1, double lon2, double lat2); 1051 double geographic_distance_ellipsoid(double major, double minor, double lon1, double lat1, double lon2, double lat2); 1052 1053 /* grib_handle.c */ 1054 grib_section* grib_section_create(grib_handle* h, grib_accessor* owner); 1055 void grib_swap_sections(grib_section* the_old, grib_section* the_new); 1056 void grib_empty_section(grib_context* c, grib_section* b); 1057 void grib_section_delete(grib_context* c, grib_section* b); 1058 int grib_handle_delete(grib_handle* h); 1059 grib_handle* grib_new_handle(grib_context* c); 1060 grib_handle* grib_handle_new_from_samples(grib_context* c, const char* name); 1061 grib_handle* codes_bufr_handle_new_from_samples(grib_context* c, const char* name); 1062 int grib_write_message(const grib_handle* h, const char* file, const char* mode); 1063 grib_handle* grib_handle_clone(const grib_handle* h); 1064 grib_handle* codes_handle_new_from_file(grib_context* c, FILE* f, ProductKind product, int* error); 1065 grib_handle* codes_grib_handle_new_from_file(grib_context* c, FILE* f, int* error); 1066 grib_handle* codes_bufr_handle_new_from_file(grib_context* c, FILE* f, int* error); 1067 grib_handle* codes_metar_handle_new_from_file(grib_context* c, FILE* f, int* error); 1068 grib_handle* codes_gts_handle_new_from_file(grib_context* c, FILE* f, int* error); 1069 grib_handle* grib_handle_new_from_message_copy(grib_context* c, const void* data, size_t size); 1070 grib_handle* grib_handle_new_from_partial_message_copy(grib_context* c, const void* data, size_t size); 1071 grib_handle* grib_handle_new_from_partial_message(grib_context* c, const void* data, size_t buflen); 1072 grib_handle* grib_handle_new_from_message(grib_context* c, const void* data, size_t buflen); 1073 grib_handle* grib_handle_new_from_multi_message(grib_context* c, void** data, size_t* buflen, int* error); 1074 grib_handle* grib_handle_new_from_file(grib_context* c, FILE* f, int* error); 1075 grib_handle* grib_new_from_file(grib_context* c, FILE* f, int headers_only, int* error); 1076 grib_handle* gts_new_from_file(grib_context* c, FILE* f, int* error); 1077 grib_handle* taf_new_from_file(grib_context* c, FILE* f, int* error); 1078 grib_handle* metar_new_from_file(grib_context* c, FILE* f, int* error); 1079 grib_handle* bufr_new_from_file(grib_context* c, FILE* f, int* error); 1080 grib_handle* any_new_from_file(grib_context* c, FILE* f, int* error); 1081 grib_multi_handle* grib_multi_handle_new(grib_context* c); 1082 int grib_multi_handle_delete(grib_multi_handle* h); 1083 int grib_multi_handle_append(grib_handle* h, int start_section, grib_multi_handle* mh); 1084 int grib_multi_handle_write(grib_multi_handle* h, FILE* f); 1085 int grib_get_partial_message(grib_handle* h, const void** msg, size_t* len, int start_section); 1086 int grib_get_partial_message_copy(grib_handle* h, void* message, size_t* len, int start_section); 1087 int grib_get_message_copy(const grib_handle* h, void* message, size_t* len); 1088 int grib_get_message_offset(const grib_handle* h, off_t* offset); 1089 int codes_get_product_kind(const grib_handle* h, ProductKind* product_kind); 1090 int codes_check_message_header(const void* bytes, size_t length, ProductKind product); 1091 int codes_check_message_footer(const void* bytes, size_t length, ProductKind product); 1092 int grib_get_message_size(const grib_handle* h, size_t* size); 1093 int grib_get_message(const grib_handle* h, const void** msg, size_t* size); 1094 int grib_get_message_headers(grib_handle* h, const void** msg, size_t* size); 1095 grib_handle* grib_handle_new(grib_context* c); 1096 grib_action* grib_action_from_filter(const char* filter); 1097 int grib_handle_apply_action(grib_handle* h, grib_action* a); 1098 int grib_handle_prepare_action(grib_handle* h, grib_action* a); 1099 void grib_multi_support_reset_file(grib_context* c, FILE* f); 1100 void grib_multi_support_reset(grib_context* c); 1101 1102 /* grib_header_compute.c */ 1103 void print_math(grib_math* m); 1104 grib_math* grib_math_clone(grib_context* c, grib_math* m); 1105 void grib_math_delete(grib_context* c, grib_math* m); 1106 grib_math* grib_math_new(grib_context* c, const char* formula, int* err); 1107 1108 /* grib_hash_keys.c */ 1109 const struct grib_keys_hash* grib_keys_hash_get(const char* str, unsigned int len); 1110 grib_itrie* grib_hash_keys_new(grib_context* c, int* count); 1111 void grib_hash_keys_delete(grib_itrie* t); 1112 int grib_hash_keys_get_id(grib_itrie* t, const char* key); 1113 int grib_hash_keys_get_size(grib_itrie* t); 1114 1115 /* grib_io.c */ 1116 off_t stdio_tell(void* data); 1117 int stdio_seek(void* data, off_t len); 1118 int stdio_seek_from_start(void* data, off_t len); 1119 size_t stdio_read(void* data, void* buf, size_t len, int* err); 1120 int wmo_read_any_from_file(FILE* f, void* buffer, size_t* len); 1121 int wmo_read_grib_from_file(FILE* f, void* buffer, size_t* len); 1122 int wmo_read_bufr_from_file(FILE* f, void* buffer, size_t* len); 1123 int wmo_read_gts_from_file(FILE* f, void* buffer, size_t* len); 1124 int wmo_read_taf_from_file(FILE* f, void* buffer, size_t* len); 1125 int wmo_read_metar_from_file(FILE* f, void* buffer, size_t* len); 1126 int wmo_read_any_from_stream(void* stream_data, long (*stream_proc)(void*, void* buffer, long len), void* buffer, size_t* len); 1127 void* wmo_read_any_from_stream_malloc(void* stream_data, long (*stream_proc)(void*, void* buffer, long len), size_t* size, int* err); 1128 void* wmo_read_gts_from_file_malloc(FILE* f, int headers_only, size_t* size, off_t* offset, int* err); 1129 void* wmo_read_taf_from_file_malloc(FILE* f, int headers_only, size_t* size, off_t* offset, int* err); 1130 void* wmo_read_metar_from_file_malloc(FILE* f, int headers_only, size_t* size, off_t* offset, int* err); 1131 void* wmo_read_any_from_file_malloc(FILE* f, int headers_only, size_t* size, off_t* offset, int* err); 1132 void* wmo_read_grib_from_file_malloc(FILE* f, int headers_only, size_t* size, off_t* offset, int* err); 1133 void* wmo_read_bufr_from_file_malloc(FILE* f, int headers_only, size_t* size, off_t* offset, int* err); 1134 int grib_read_any_headers_only_from_file(grib_context* ctx, FILE* f, void* buffer, size_t* len); 1135 int grib_read_any_from_file(grib_context* ctx, FILE* f, void* buffer, size_t* len); 1136 int grib_read_any_from_memory_alloc(grib_context* ctx, unsigned char** data, size_t* data_length, void** buffer, size_t* length); 1137 int grib_read_any_from_memory(grib_context* ctx, unsigned char** data, size_t* data_length, void* buffer, size_t* len); 1138 int grib_count_in_file(grib_context* c, FILE* f, int* n); 1139 int grib_count_in_filename(grib_context* c, const char* filename, int* n); 1140 int codes_extract_offsets_malloc(grib_context* c, const char* filename, ProductKind product, off_t** offsets, int* length, int strict_mode); 1141 1142 1143 /* grib_trie.c */ 1144 grib_trie* grib_trie_new(grib_context* c); 1145 void grib_trie_delete_container(grib_trie* t); 1146 void grib_trie_delete(grib_trie* t); 1147 void grib_trie_clear(grib_trie* t); 1148 void* grib_trie_insert(grib_trie* t, const char* key, void* data); 1149 void* grib_trie_insert_no_replace(grib_trie* t, const char* key, void* data); 1150 void* grib_trie_get(grib_trie* t, const char* key); 1151 1152 /* grib_trie_with_rank.c */ 1153 grib_trie_with_rank* grib_trie_with_rank_new(grib_context* c); 1154 void grib_trie_with_rank_delete_container(grib_trie_with_rank* t); 1155 void grib_trie_with_rank_delete(grib_trie_with_rank* t); 1156 void grib_trie_with_rank_clear(grib_trie_with_rank* t); 1157 int grib_trie_with_rank_insert(grib_trie_with_rank* t, const char* key, void* data); 1158 void* grib_trie_with_rank_get(grib_trie_with_rank* t, const char* key, int rank); 1159 1160 /* grib_itrie.c */ 1161 grib_itrie* grib_itrie_new(grib_context* c, int* count); 1162 void grib_itrie_delete(grib_itrie* t); 1163 int grib_itrie_get_id(grib_itrie* t, const char* key); 1164 int grib_itrie_insert(grib_itrie* t, const char* key); 1165 int grib_itrie_get_size(grib_itrie* t); 1166 1167 /* grib_rules.c */ 1168 grib_rule_entry* grib_new_rule_entry(grib_context* c, const char* name, grib_expression* expression); 1169 grib_rule* grib_new_rule(grib_context* c, grib_expression* condition, grib_rule_entry* entries); 1170 1171 /* grib_keys_iterator.c */ 1172 grib_keys_iterator* grib_keys_iterator_new(grib_handle* h, unsigned long filter_flags, const char* name_space); 1173 int grib_keys_iterator_set_flags(grib_keys_iterator* ki, unsigned long flags); 1174 int grib_keys_iterator_rewind(grib_keys_iterator* ki); 1175 int grib_keys_iterator_next(grib_keys_iterator* kiter); 1176 const char* grib_keys_iterator_get_name(const grib_keys_iterator* kiter); 1177 grib_accessor* grib_keys_iterator_get_accessor(grib_keys_iterator* kiter); 1178 int grib_keys_iterator_delete(grib_keys_iterator* kiter); 1179 int grib_keys_iterator_get_long(const grib_keys_iterator* kiter, long* v, size_t* len); 1180 int grib_keys_iterator_get_double(const grib_keys_iterator* kiter, double* v, size_t* len); 1181 int grib_keys_iterator_get_string(const grib_keys_iterator* kiter, char* v, size_t* len); 1182 int grib_keys_iterator_get_bytes(const grib_keys_iterator* kiter, unsigned char* v, size_t* len); 1183 int grib_keys_iterator_get_native_type(const grib_keys_iterator* kiter); 1184 1185 /* bufr_keys_iterator.c */ 1186 bufr_keys_iterator* codes_bufr_keys_iterator_new(grib_handle* h, unsigned long filter_flags); 1187 bufr_keys_iterator* codes_bufr_data_section_keys_iterator_new(grib_handle* h); 1188 int codes_bufr_keys_iterator_rewind(bufr_keys_iterator* ki); 1189 int codes_bufr_keys_iterator_next(bufr_keys_iterator* kiter); 1190 char* codes_bufr_keys_iterator_get_name(const bufr_keys_iterator* kiter); 1191 grib_accessor* codes_bufr_keys_iterator_get_accessor(bufr_keys_iterator* kiter); 1192 int codes_bufr_keys_iterator_delete(bufr_keys_iterator* kiter); 1193 1194 /* grib_parse_utils.c */ 1195 int grib_recompose_name(grib_handle* h, grib_accessor* observer, const char* uname, char* fname, int fail); 1196 int grib_accessors_list_print(grib_handle* h, grib_accessors_list* al, const char* name, int type, const char* format, const char* separator, int maxcols, int* newline, FILE* out); 1197 int grib_recompose_print(grib_handle* h, grib_accessor* observer, const char* uname, int fail, FILE* out); 1198 grib_action_file* grib_find_action_file(const char* fname, grib_action_file_list* afl); 1199 int grib_yywrap(void); 1200 char* file_being_parsed(void); 1201 int grib_yyerror(const char* msg); 1202 void grib_parser_include(const char* included_fname); 1203 grib_concept_value* grib_parse_concept_file(grib_context* gc, const char* filename); 1204 grib_hash_array_value* grib_parse_hash_array_file(grib_context* gc, const char* filename); 1205 grib_rule* grib_parse_rules_file(grib_context* gc, const char* filename); 1206 grib_action* grib_parse_file(grib_context* gc, const char* filename); 1207 int grib_type_to_int(char id); 1208 1209 /* grib_query.c */ 1210 grib_accessors_list* grib_find_accessors_list(const grib_handle* h, const char* name); 1211 char* grib_split_name_attribute(grib_context* c, const char* name, char* attribute_name); 1212 grib_accessor* grib_find_accessor(const grib_handle* h, const char* name); 1213 grib_accessor* grib_find_attribute(grib_handle* h, const char* name, const char* attr_name, int* err); 1214 grib_accessor* grib_find_accessor_fast(grib_handle* h, const char* name); 1215 1216 /* grib_scaling.c */ 1217 double grib_power(long s, long n); 1218 long grib_get_binary_scale_fact(double max, double min, long bpval, int* ret); 1219 long grib_get_bits_per_value(double max, double min, long binary_scale_factor); 1220 long grib_get_decimal_scale_fact(double max, double min, long bpval, long binary_scale); 1221 1222 /* grib_templates.c */ 1223 /*grib_handle *grib_internal_sample(grib_context *c, const char *name);*/ 1224 grib_handle* grib_external_template(grib_context* c, const char* name); 1225 grib_handle* bufr_external_template(grib_context* c, const char* name); 1226 char* grib_external_template_path(grib_context* c, const char* name); 1227 1228 /* grib_dependency.c */ 1229 grib_handle* grib_handle_of_accessor(const grib_accessor* a); 1230 void grib_dependency_add(grib_accessor* observer, grib_accessor* observed); 1231 void grib_dependency_remove_observed(grib_accessor* observed); 1232 int _grib_dependency_notify_change(grib_handle* h, grib_accessor* observed); 1233 int grib_dependency_notify_change(grib_accessor* observed); 1234 void grib_dependency_remove_observer(grib_accessor* observer); 1235 void grib_dependency_observe_expression(grib_accessor* observer, grib_expression* e); 1236 void grib_dependency_observe_arguments(grib_accessor* observer, grib_arguments* a); 1237 1238 /* grib_value.c */ 1239 int grib_set_expression(grib_handle* h, const char* name, grib_expression* e); 1240 int grib_set_expression_internal(grib_handle* h, const char* name, grib_expression* e); 1241 int grib_set_long_internal(grib_handle* h, const char* name, long val); 1242 int grib_set_long(grib_handle* h, const char* name, long val); 1243 int grib_set_double_internal(grib_handle* h, const char* name, double val); 1244 int grib_copy_namespace(grib_handle* dest, const char* name, grib_handle* src); 1245 int grib_set_double(grib_handle* h, const char* name, double val); 1246 int grib_set_string_internal(grib_handle* h, const char* name, const char* val, size_t* length); 1247 int grib_set_string(grib_handle* h, const char* name, const char* val, size_t* length); 1248 int grib_set_string_array(grib_handle* h, const char* name, const char** val, size_t length); 1249 int grib_set_bytes_internal(grib_handle* h, const char* name, const unsigned char* val, size_t* length); 1250 int grib_set_bytes(grib_handle* h, const char* name, const unsigned char* val, size_t* length); 1251 int grib_clear(grib_handle* h, const char* name); 1252 int grib_set_missing_internal(grib_handle* h, const char* name); 1253 int grib_set_missing(grib_handle* h, const char* name); 1254 int grib_is_missing_long(grib_accessor* a, long x); 1255 int grib_is_missing_double(grib_accessor* a, double x); 1256 int grib_is_missing_string(grib_accessor* a, unsigned char* x, size_t len); 1257 int grib_accessor_is_missing(grib_accessor* a, int* err); 1258 int grib_is_missing(const grib_handle* h, const char* name, int* err); 1259 int grib_is_defined(const grib_handle* h, const char* name); 1260 int grib_set_flag(grib_handle* h, const char* name, unsigned long flag); 1261 int grib_set_double_array_internal(grib_handle* h, const char* name, const double* val, size_t length); 1262 int grib_set_force_double_array(grib_handle* h, const char* name, const double* val, size_t length); 1263 int grib_set_double_array(grib_handle* h, const char* name, const double* val, size_t length); 1264 int grib_set_long_array_internal(grib_handle* h, const char* name, const long* val, size_t length); 1265 int grib_set_long_array(grib_handle* h, const char* name, const long* val, size_t length); 1266 int grib_get_long_internal(grib_handle* h, const char* name, long* val); 1267 int grib_is_in_dump(grib_handle* h, const char* name); 1268 int grib_attributes_count(grib_accessor* a, size_t* size); 1269 int grib_get_long(const grib_handle* h, const char* name, long* val); 1270 int grib_get_double_internal(grib_handle* h, const char* name, double* val); 1271 int grib_get_double(const grib_handle* h, const char* name, double* val); 1272 int grib_get_double_element_internal(grib_handle* h, const char* name, int i, double* val); 1273 int grib_get_double_element(const grib_handle* h, const char* name, int i, double* val); 1274 int grib_points_get_values(grib_handle* h, grib_points* points, double* val); 1275 int grib_get_double_elements(const grib_handle* h, const char* name, int* index_array, long len, double* val_array); 1276 int grib_get_string_internal(grib_handle* h, const char* name, char* val, size_t* length); 1277 int grib_get_string(const grib_handle* h, const char* name, char* val, size_t* length); 1278 int grib_get_bytes_internal(const grib_handle* h, const char* name, unsigned char* val, size_t* length); 1279 int grib_get_bytes(const grib_handle* h, const char* name, unsigned char* val, size_t* length); 1280 int grib_get_native_type(const grib_handle* h, const char* name, int* type); 1281 const char* grib_get_accessor_class_name(grib_handle* h, const char* name); 1282 int _grib_get_double_array_internal(const grib_handle* h, grib_accessor* a, double* val, size_t buffer_len, size_t* decoded_length); 1283 int grib_get_double_array_internal(const grib_handle* h, const char* name, double* val, size_t* length); 1284 int grib_get_double_array(const grib_handle* h, const char* name, double* val, size_t* length); 1285 int _grib_get_string_length(grib_accessor* a, size_t* size); 1286 int grib_get_string_length(const grib_handle* h, const char* name, size_t* size); 1287 int _grib_get_size(const grib_handle* h, grib_accessor* a, size_t* size); 1288 int grib_get_size(const grib_handle* h, const char* name, size_t* size); 1289 int grib_get_length(const grib_handle* h, const char* name, size_t* length); 1290 int grib_get_count(grib_handle* h, const char* name, size_t* size); 1291 int grib_get_offset(const grib_handle* h, const char* key, size_t* val); 1292 int _grib_get_string_array_internal(const grib_handle* h, grib_accessor* a, char** val, size_t buffer_len, size_t* decoded_length); 1293 int grib_get_string_array(const grib_handle* h, const char* name, char** val, size_t* length); 1294 int _grib_get_long_array_internal(const grib_handle* h, grib_accessor* a, long* val, size_t buffer_len, size_t* decoded_length); 1295 int grib_get_long_array_internal(grib_handle* h, const char* name, long* val, size_t* length); 1296 int grib_get_long_array(const grib_handle* h, const char* name, long* val, size_t* length); 1297 grib_key_value_list* grib_key_value_list_clone(grib_context* c, grib_key_value_list* list); 1298 void grib_key_value_list_delete(grib_context* c, grib_key_value_list* kvl); 1299 int grib_get_key_value_list(grib_handle* h, grib_key_value_list* list); 1300 int grib_get_values(grib_handle* h, grib_values* args, size_t count); 1301 int grib_set_values(grib_handle* h, grib_values* args, size_t count); 1302 int grib_get_nearest_smaller_value(grib_handle* h, const char* name, double val, double* nearest); 1303 void grib_print_values(grib_values* values, int count); 1304 int grib_values_check(grib_handle* h, grib_values* values, int count); 1305 int grib_key_equal(grib_handle* h1, grib_handle* h2, const char* key, int type, int* err); 1306 int codes_copy_key(grib_handle* h1, grib_handle* h2, const char* key, int type); 1307 1308 /* grib_errors.c */ 1309 const char* grib_get_error_message(int code); 1310 void grib_check(const char* call, const char* file, int line, int e, const char* msg); 1311 1312 /* grib_expression_class_binop.c */ 1313 grib_expression* new_binop_expression(grib_context* c, grib_binop_long_proc long_func, grib_binop_double_proc double_func, grib_expression* left, grib_expression* right); 1314 1315 /* grib_expression_class_logical_and.c */ 1316 grib_expression* new_logical_and_expression(grib_context* c, grib_expression* left, grib_expression* right); 1317 1318 /* grib_expression_class_logical_or.c */ 1319 grib_expression* new_logical_or_expression(grib_context* c, grib_expression* left, grib_expression* right); 1320 1321 /* grib_expression_class_is_in_dict.c */ 1322 grib_expression* new_is_in_dict_expression(grib_context* c, const char* name, const char* list); 1323 1324 /* grib_expression_class_true.c */ 1325 grib_expression* new_true_expression(grib_context* c); 1326 1327 /* grib_expression_class_string_compare.c */ 1328 grib_expression* new_string_compare_expression(grib_context* c, grib_expression* left, grib_expression* right); 1329 1330 /* grib_expression_class_unop.c */ 1331 grib_expression* new_unop_expression(grib_context* c, grib_unop_long_proc long_func, grib_unop_double_proc double_func, grib_expression* exp); 1332 1333 /* grib_expression_class_functor.c */ 1334 grib_expression* new_func_expression(grib_context* c, const char* name, grib_arguments* args); 1335 1336 /* grib_expression_class_accessor.c */ 1337 grib_expression* new_accessor_expression(grib_context* c, const char* name, long start, size_t length); 1338 1339 /* grib_expression_class_is_in_list.c */ 1340 grib_expression* new_is_in_list_expression(grib_context* c, const char* name, const char* list); 1341 1342 /* grib_expression_class_is_integer.c */ 1343 grib_expression* new_is_integer_expression(grib_context* c, const char* name, int start, int length); 1344 1345 /* grib_expression_class_length.c */ 1346 grib_expression* new_length_expression(grib_context* c, const char* name); 1347 1348 /* grib_expression_class_long.c */ 1349 grib_expression* new_long_expression(grib_context* c, long value); 1350 1351 /* grib_expression_class_double.c */ 1352 grib_expression* new_double_expression(grib_context* c, double value); 1353 1354 /* grib_expression_class_string.c */ 1355 grib_expression* new_string_expression(grib_context* c, const char* value); 1356 1357 /* grib_expression_class_sub_string.c */ 1358 grib_expression* new_sub_string_expression(grib_context* c, const char* value, size_t start, size_t length); 1359 1360 /* grib_box.c */ 1361 grib_points* grib_box_get_points(grib_box* box, double north, double west, double south, double east, int* err); 1362 int grib_box_init(grib_box* box, grib_handle* h, grib_arguments* args); 1363 int grib_box_delete(grib_box* box); 1364 grib_points* grib_points_new(grib_context* c, size_t size); 1365 void grib_points_delete(grib_points* points); 1366 1367 /* grib_box_class.c */ 1368 grib_box* grib_box_factory(grib_handle* h, grib_arguments* args); 1369 1370 /* grib_box_class_gen.c */ 1371 1372 /* grib_box_class_regular_gaussian.c */ 1373 1374 /* grib_box_class_reduced_gaussian.c */ 1375 1376 /* grib_nearest.c */ 1377 int grib_nearest_find(grib_nearest* nearest, const grib_handle* h, double inlat, double inlon, unsigned long flags, double* outlats, double* outlons, double* values, double* distances, int* indexes, size_t* len); 1378 int grib_nearest_init(grib_nearest* i, grib_handle* h, grib_arguments* args); 1379 int grib_nearest_delete(grib_nearest* i); 1380 void grib_binary_search(double xx[], const unsigned long n, double x, int* ju, int* jl); 1381 int grib_nearest_find_multiple(const grib_handle* h, int is_lsm, const double* inlats, const double* inlons, long npoints, double* outlats, double* outlons, double* values, double* distances, int* indexes); 1382 int grib_nearest_find_generic(grib_nearest* nearest, grib_handle* h, double inlat, double inlon, unsigned long flags, 1383 const char* values_keyname, const char* radius_keyname, 1384 const char* Ni_keyname, const char* Nj_keyname, 1385 double** out_lats, 1386 int* out_lats_count, 1387 double** out_lons, 1388 int* out_lons_count, 1389 double** out_distances, 1390 double* outlats, double* outlons, double* values, double* distances, int* indexes, size_t* len); 1391 1392 /* grib_nearest_class.c */ 1393 grib_nearest* grib_nearest_factory(grib_handle* h, grib_arguments* args); 1394 1395 /* grib_nearest_class_gen.c */ 1396 1397 /* grib_nearest_class_regular.c */ 1398 1399 /* grib_nearest_class_reduced.c */ 1400 1401 /* grib_nearest_class_latlon_reduced.c */ 1402 1403 /* grib_nearest_class_sh.c */ 1404 1405 /* grib_nearest_class_lambert_conformal.c */ 1406 1407 /* grib_nearest_class_polar_stereographic.c */ 1408 1409 /* grib_iterator_class_polar_stereographic.c */ 1410 1411 /* grib_iterator_class_lambert_azimuthal_equal_area.c */ 1412 1413 /* grib_iterator_class_lambert_conformal.c */ 1414 1415 /* grib_iterator.c */ 1416 int grib_get_data(const grib_handle* h, double* lats, double* lons, double* values); 1417 int grib_iterator_next(grib_iterator* i, double* lat, double* lon, double* value); 1418 int grib_iterator_has_next(grib_iterator* i); 1419 int grib_iterator_previous(grib_iterator* i, double* lat, double* lon, double* value); 1420 int grib_iterator_reset(grib_iterator* i); 1421 int grib_iterator_init(grib_iterator* i, grib_handle* h, grib_arguments* args); 1422 int grib_iterator_delete(grib_iterator* i); 1423 1424 /* grib_iterator_class.c */ 1425 grib_iterator* grib_iterator_factory(grib_handle* h, grib_arguments* args, unsigned long flags, int* ret); 1426 1427 /* grib_iterator_class_gaussian.c */ 1428 1429 /* grib_iterator_class_gaussian_reduced.c */ 1430 1431 /* grib_iterator_class_latlon_reduced.c */ 1432 1433 /* grib_iterator_class_gen.c */ 1434 int transform_iterator_data(grib_handle* h, double* data, long iScansNegatively, long jScansPositively, long jPointsAreConsecutive, long alternativeRowScanning, size_t numPoints, long nx, long ny); 1435 1436 /* grib_iterator_class_latlon.c */ 1437 1438 /* grib_iterator_class_regular.c */ 1439 1440 /* grib_iterator_class_space_view.c */ 1441 1442 /* grib_expression.c */ 1443 int grib_expression_native_type(grib_handle* h, grib_expression* g); 1444 int grib_expression_evaluate_long(grib_handle* h, grib_expression* g, long* result); 1445 int grib_expression_evaluate_double(grib_handle* h, grib_expression* g, double* result); 1446 const char* grib_expression_evaluate_string(grib_handle* h, grib_expression* g, char* buf, size_t* size, int* err); 1447 const char* grib_expression_get_name(grib_expression* g); 1448 void grib_expression_print(grib_context* ctx, grib_expression* g, grib_handle* f); 1449 void grib_expression_free(grib_context* ctx, grib_expression* g); 1450 void grib_expression_add_dependency(grib_expression* e, grib_accessor* observer); 1451 int grib_expression_set_value(grib_handle* h, grib_expression* g, grib_values* v); 1452 grib_arguments* grib_arguments_new(grib_context* c, grib_expression* g, grib_arguments* n); 1453 void grib_arguments_free(grib_context* c, grib_arguments* g); 1454 void grib_arguments_print(grib_context* c, grib_arguments* g, grib_handle* f); 1455 const char* grib_arguments_get_name(grib_handle* h, grib_arguments* args, int n); 1456 const char* grib_arguments_get_string(grib_handle* h, grib_arguments* args, int n); 1457 long grib_arguments_get_long(grib_handle* h, grib_arguments* args, int n); 1458 double grib_arguments_get_double(grib_handle* h, grib_arguments* args, int n); 1459 grib_expression* grib_arguments_get_expression(grib_handle* h, grib_arguments* args, int n); 1460 1461 /* codes_util.c */ 1462 double normalise_longitude_in_degrees(double lon); 1463 char get_dir_separator_char(void); 1464 int path_is_regular_file(const char* path); 1465 int path_is_directory(const char* filename); 1466 char* codes_getenv(const char* name); 1467 1468 /* grib_util.c */ 1469 grib_handle* grib_util_sections_copy(grib_handle* hfrom, grib_handle* hto, int what, int* err); 1470 grib_string_list* grib_util_get_param_id(const char* mars_param); 1471 grib_string_list* grib_util_get_mars_param(const char* param_id); 1472 grib_handle* grib_util_set_spec(grib_handle* h, const grib_util_grid_spec* spec, const grib_util_packing_spec* packing_spec, int flags, const double* data_values, size_t data_values_count, int* err); 1473 grib_handle* grib_util_set_spec2(grib_handle* h, const grib_util_grid_spec2* spec, const grib_util_packing_spec* packing_spec, int flags, const double* data_values, size_t data_values_count, int* err); 1474 int grib_moments(grib_handle* h, double east, double north, double west, double south, int order, double* moments, long* count); 1475 int parse_keyval_string(const char* grib_tool, char* arg, int values_required, int default_type, grib_values values[], int* count); 1476 int grib2_is_PDTN_EPS(long productDefinitionTemplateNumber); 1477 int grib2_is_PDTN_Chemical(long productDefinitionTemplateNumber); 1478 int grib2_is_PDTN_ChemicalSourceSink(long productDefinitionTemplateNumber); 1479 int grib2_is_PDTN_ChemicalDistFunc(long productDefinitionTemplateNumber); 1480 int grib2_is_PDTN_Aerosol(long productDefinitionTemplateNumber); 1481 int grib2_is_PDTN_AerosolOptical(long productDefinitionTemplateNumber); 1482 int grib2_select_PDTN(int is_eps, int is_instant, int is_chemical, int is_chemical_srcsink, int is_chemical_distfn, int is_aerosol, int is_aerosol_optical); 1483 size_t sum_of_pl_array(const long* pl, size_t plsize); 1484 int grib_is_earth_oblate(grib_handle* h); 1485 int grib_util_grib_data_quality_check(grib_handle* h, double min_val, double max_val); 1486 1487 /* bufr_util.c */ 1488 int compute_bufr_key_rank(grib_handle* h, grib_string_list* keys, const char* key); 1489 char** codes_bufr_copy_data_return_copied_keys(grib_handle* hin, grib_handle* hout, size_t* nkeys, int* err); 1490 int codes_bufr_copy_data(grib_handle* hin, grib_handle* hout); 1491 int codes_bufr_extract_headers_malloc(grib_context* c, const char* filename, codes_bufr_header** result, int* num_messages, int strict_mode); 1492 int codes_bufr_header_get_string(codes_bufr_header* bh, const char* key, char* val, size_t* len); 1493 int codes_bufr_key_is_header(const grib_handle* h, const char* key, int* err); 1494 1495 /* string_util.c */ 1496 int strcmp_nocase(const char* s1, const char* s2); 1497 void rtrim(char* s); 1498 void lrtrim(char** x, int do_left, int do_right); 1499 const char* extract_filename(const char* filepath); 1500 char** string_split(char* inputString, const char* delimiter); 1501 int string_to_long(const char* input, long* output); 1502 int string_ends_with(const char* str1, const char* str2); 1503 int count_char_in_string(const char* str, char c); 1504 1505 /* functions.c */ 1506 long grib_op_eq(long a, long b); 1507 long grib_op_ne(long a, long b); 1508 long grib_op_lt(long a, long b); 1509 long grib_op_gt(long a, long b); 1510 long grib_op_and(long a, long b); 1511 long grib_op_or(long a, long b); 1512 long grib_op_ge(long a, long b); 1513 long grib_op_le(long a, long b); 1514 long grib_op_bit(long a, long b); 1515 long grib_op_bitoff(long a, long b); 1516 long grib_op_not(long a); 1517 long grib_op_neg(long a); 1518 double grib_op_neg_d(double a); 1519 long grib_op_pow(long a, long b); 1520 long grib_op_add(long a, long b); 1521 long grib_op_sub(long a, long b); 1522 long grib_op_div(long a, long b); 1523 long grib_op_mul(long a, long b); 1524 long grib_op_modulo(long a, long b); 1525 double grib_op_mul_d(double a, double b); 1526 double grib_op_div_d(double a, double b); 1527 double grib_op_add_d(double a, double b); 1528 double grib_op_sub_d(double a, double b); 1529 double grib_op_eq_d(double a, double b); 1530 double grib_op_ne_d(double a, double b); 1531 double grib_op_lt_d(double a, double b); 1532 double grib_op_gt_d(double a, double b); 1533 double grib_op_ge_d(double a, double b); 1534 double grib_op_le_d(double a, double b); 1535 const char* grib_binop_long_proc_name(grib_binop_long_proc proc); 1536 const char* grib_binop_double_proc_name(grib_binop_double_proc proc); 1537 const char* grib_unop_long_proc_name(grib_unop_long_proc proc); 1538 const char* grib_unop_double_proc_name(grib_unop_double_proc proc); 1539 1540 /* codes_memfs.c */ 1541 FILE* codes_fopen(const char* name, const char* mode); 1542 int codes_access(const char* name, int mode); 1543 1544 /* grib_accessor_class_data_g2bifourier_packing.c */ 1545 1546 /* grib_optimize_decimal_factor.c */ 1547 int grib_optimize_decimal_factor(grib_accessor* a, const char* reference_value, const double pmax, const double pmin, const int knbit, const int compat_gribex, const int compat_32bit, long* kdec, long* kbin, double* ref); 1548 1549 /* grib_api_version.c */ 1550 const char* grib_get_git_sha1(void); 1551 1552 /* grib_bits_any_endian.c */ 1553 int grib_is_all_bits_one(long val, long nbits); 1554 int grib_encode_string(unsigned char* bitStream, long* bitOffset, size_t numberOfCharacters, const char* string); 1555 char* grib_decode_string(const unsigned char* bitStream, long* bitOffset, size_t numberOfCharacters, char* string); 1556 unsigned long grib_decode_unsigned_long(const unsigned char* p, long* bitp, long nbits); 1557 int grib_encode_unsigned_long(unsigned char* p, unsigned long val, long* bitp, long nbits); 1558 size_t grib_decode_size_t(const unsigned char* p, long* bitp, long nbits); 1559 int grib_encode_unsigned_longb(unsigned char* p, unsigned long val, long* bitp, long nb); 1560 int grib_encode_size_tb(unsigned char* p, size_t val, long* bitp, long nb); 1561 1562 1563 /* grib_bits_any_endian_simple.c */ 1564 int grib_decode_long_array(const unsigned char* p, long* bitp, long bitsPerValue, size_t n_vals, long* val); 1565 int grib_decode_double_array(const unsigned char* p, long* bitp, long bitsPerValue, double reference_value, double s, double d, size_t n_vals, double* val); 1566 int grib_decode_double_array_complex(const unsigned char* p, long* bitp, long nbits, double reference_value, double s, double* d, size_t size, double* val); 1567 int grib_encode_long_array(size_t n_vals, const long* val, long bits_per_value, unsigned char* p, long* off); 1568 int grib_encode_double_array(size_t n_vals, const double* val, long bits_per_value, double reference_value, double d, double divisor, unsigned char* p, long* off); 1569 int grib_encode_double_array_complex(size_t n_vals, double* val, long nbits, double reference_value, double* scal, double d, double divisor, unsigned char* p, long* bitp); 1570