ECC-1375: GRIB: Add key to allow alternativeRowScanning to be turned off/on

This commit is contained in:
Shahram Najm 2022-03-29 21:20:23 +01:00
parent 6d6d574dfc
commit 5bc68e1116
10 changed files with 521 additions and 271 deletions

View File

@ -28,6 +28,8 @@ meta swapScanningY change_scanning_direction( values,Ni,Nj,
yFirst,yLast,y) : edition_specific,hidden,no_copy;
alias swapScanningLat = swapScanningY;
transient swapScanningAlternativeRows = 0; # Not available in grib1
if (jPointsAreConsecutive) {
alias numberOfRows=Ni;
alias numberOfColumns=Nj;

View File

@ -36,3 +36,6 @@ meta swapScanningY change_scanning_direction( values,Ni,Nj,
iScansNegatively,jScansPositively,
yFirst,yLast,y) : edition_specific,hidden,no_copy;
alias swapScanningLat = swapScanningY;
meta swapScanningAlternativeRows change_alternative_row_scanning(
values, Ni, Nj, alternativeRowScanning): edition_specific,hidden,no_copy;

View File

@ -85,6 +85,7 @@ list( APPEND grib_api_srcs
grib_accessor_class_validity_time.c
grib_accessor_class_bytes.c
grib_accessor_class.c
grib_accessor_class_change_alternative_row_scanning.c
grib_accessor_class_change_scanning_direction.c
grib_accessor_class_check_internal_version.c
grib_accessor_class_codeflag.c

View File

@ -23,6 +23,7 @@ extern grib_accessor_class* grib_accessor_class_bufr_simple_thinning;
extern grib_accessor_class* grib_accessor_class_bufr_string_values;
extern grib_accessor_class* grib_accessor_class_bufrdc_expanded_descriptors;
extern grib_accessor_class* grib_accessor_class_bytes;
extern grib_accessor_class* grib_accessor_class_change_alternative_row_scanning;
extern grib_accessor_class* grib_accessor_class_change_scanning_direction;
extern grib_accessor_class* grib_accessor_class_check_internal_version;
extern grib_accessor_class* grib_accessor_class_codeflag;

View File

@ -0,0 +1,234 @@
/*
* (C) Copyright 2005- ECMWF.
*
* This software is licensed under the terms of the Apache Licence Version 2.0
* which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
*
* In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
*/
#include "grib_api_internal.h"
/*
This is used by make_class.pl
START_CLASS_DEF
CLASS = accessor
SUPER = grib_accessor_class_gen
IMPLEMENTS = pack_long;
IMPLEMENTS = unpack_long
IMPLEMENTS = init;get_native_type
MEMBERS = const char* values
MEMBERS = const char* Ni
MEMBERS = const char* Nj
MEMBERS = const char* alternativeRowScanning
END_CLASS_DEF
*/
/* START_CLASS_IMP */
/*
Don't edit anything between START_CLASS_IMP and END_CLASS_IMP
Instead edit values between START_CLASS_DEF and END_CLASS_DEF
or edit "accessor.class" and rerun ./make_class.pl
*/
static int get_native_type(grib_accessor*);
static int pack_long(grib_accessor*, const long* val, size_t* len);
static int unpack_long(grib_accessor*, long* val, size_t* len);
static void init(grib_accessor*, const long, grib_arguments*);
static void init_class(grib_accessor_class*);
typedef struct grib_accessor_change_alternative_row_scanning
{
grib_accessor att;
/* Members defined in gen */
/* Members defined in change_alternative_row_scanning */
const char* values;
const char* Ni;
const char* Nj;
const char* alternativeRowScanning;
} grib_accessor_change_alternative_row_scanning;
extern grib_accessor_class* grib_accessor_class_gen;
static grib_accessor_class _grib_accessor_class_change_alternative_row_scanning = {
&grib_accessor_class_gen, /* super */
"change_alternative_row_scanning", /* name */
sizeof(grib_accessor_change_alternative_row_scanning), /* size */
0, /* inited */
&init_class, /* init_class */
&init, /* init */
0, /* post_init */
0, /* free mem */
0, /* describes himself */
0, /* get length of section */
0, /* get length of string */
0, /* get number of values */
0, /* get number of bytes */
0, /* get offset to bytes */
&get_native_type, /* get native type */
0, /* get sub_section */
0, /* grib_pack procedures long */
0, /* grib_pack procedures long */
&pack_long, /* grib_pack procedures long */
&unpack_long, /* grib_unpack procedures long */
0, /* grib_pack procedures double */
0, /* grib_unpack procedures double */
0, /* grib_pack procedures string */
0, /* grib_unpack procedures string */
0, /* grib_pack array procedures string */
0, /* grib_unpack array procedures string */
0, /* grib_pack procedures bytes */
0, /* grib_unpack procedures bytes */
0, /* pack_expression */
0, /* notify_change */
0, /* update_size */
0, /* preferred_size */
0, /* resize */
0, /* nearest_smaller_value */
0, /* next accessor */
0, /* compare vs. another accessor */
0, /* unpack only ith value */
0, /* unpack a subarray */
0, /* clear */
0, /* clone accessor */
};
grib_accessor_class* grib_accessor_class_change_alternative_row_scanning = &_grib_accessor_class_change_alternative_row_scanning;
static void init_class(grib_accessor_class* c)
{
c->dump = (*(c->super))->dump;
c->next_offset = (*(c->super))->next_offset;
c->string_length = (*(c->super))->string_length;
c->value_count = (*(c->super))->value_count;
c->byte_count = (*(c->super))->byte_count;
c->byte_offset = (*(c->super))->byte_offset;
c->sub_section = (*(c->super))->sub_section;
c->pack_missing = (*(c->super))->pack_missing;
c->is_missing = (*(c->super))->is_missing;
c->pack_double = (*(c->super))->pack_double;
c->unpack_double = (*(c->super))->unpack_double;
c->pack_string = (*(c->super))->pack_string;
c->unpack_string = (*(c->super))->unpack_string;
c->pack_string_array = (*(c->super))->pack_string_array;
c->unpack_string_array = (*(c->super))->unpack_string_array;
c->pack_bytes = (*(c->super))->pack_bytes;
c->unpack_bytes = (*(c->super))->unpack_bytes;
c->pack_expression = (*(c->super))->pack_expression;
c->notify_change = (*(c->super))->notify_change;
c->update_size = (*(c->super))->update_size;
c->preferred_size = (*(c->super))->preferred_size;
c->resize = (*(c->super))->resize;
c->nearest_smaller_value = (*(c->super))->nearest_smaller_value;
c->next = (*(c->super))->next;
c->compare = (*(c->super))->compare;
c->unpack_double_element = (*(c->super))->unpack_double_element;
c->unpack_double_subarray = (*(c->super))->unpack_double_subarray;
c->clear = (*(c->super))->clear;
c->make_clone = (*(c->super))->make_clone;
}
/* END_CLASS_IMP */
static void init(grib_accessor* a, const long len, grib_arguments* args)
{
int n = 0;
grib_accessor_change_alternative_row_scanning* self = (grib_accessor_change_alternative_row_scanning*)a;
self->values = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
self->Ni = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
self->Nj = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
self->alternativeRowScanning = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++);
a->flags |= GRIB_ACCESSOR_FLAG_FUNCTION;
a->length = 0;
}
static int pack_long(grib_accessor* a, const long* val, size_t* len)
{
int err = 0;
grib_accessor_change_alternative_row_scanning* self = (grib_accessor_change_alternative_row_scanning*)a;
grib_context* c = a->context;
grib_handle* h = grib_handle_of_accessor(a);
long i, j, jr, theEnd, Ni, Nj, k, kp;
long alternativeRowScanning = 0;
size_t size = 0;
double* values = NULL;
double tmp = 0.0;
if (*val == 0)
return 0;
if ((err = grib_get_long_internal(h, self->Ni, &Ni)) != GRIB_SUCCESS)
return err;
if ((err = grib_get_long_internal(h, self->Nj, &Nj)) != GRIB_SUCCESS)
return err;
if ((err = grib_get_long_internal(h, self->alternativeRowScanning, &alternativeRowScanning)) != GRIB_SUCCESS)
return err;
if ((err = grib_get_size(h, self->values, &size)) != GRIB_SUCCESS)
return err;
if (size > Ni * Nj) {
grib_context_log(c, GRIB_LOG_ERROR, "change_alternative_row_scanning: wrong values size!=Ni*Nj (%ld!=%ld*%ld)", size, Ni, Nj);
return GRIB_WRONG_ARRAY_SIZE;
}
values = (double*)grib_context_malloc(c, size * sizeof(double));
if (!values)
return GRIB_OUT_OF_MEMORY;
if ((err = grib_get_double_array_internal(h, self->values, values, &size)) != GRIB_SUCCESS) {
grib_context_free(c, values);
return err;
}
theEnd = (Ni + 0.5) / 2;
for (j = 0; j < Nj; j++) {
jr = Ni * j;
for (i = 0; i < theEnd; i++) {
if (j % 2 == 1) {
/* Swap first and last value on every odd row */
k = jr + i;
kp = jr + Ni - i - 1;
tmp = values[k];
values[k] = values[kp];
values[kp] = tmp;
}
}
}
alternativeRowScanning = !alternativeRowScanning;
if ((err = grib_set_long_internal(h, self->alternativeRowScanning, alternativeRowScanning)) != GRIB_SUCCESS) {
grib_context_free(c, values);
return err;
}
if ((err = grib_set_double_array_internal(h, self->values, values, size)) != GRIB_SUCCESS) {
grib_context_free(c, values);
return err;
}
grib_context_free(c, values);
return GRIB_SUCCESS;
}
static int get_native_type(grib_accessor* a)
{
return GRIB_TYPE_LONG;
}
static int unpack_long(grib_accessor* a, long* v, size_t* len)
{
/* Decoding this accessor doesn't make sense so we return a dummy value */
*v = -1;
return GRIB_SUCCESS;
}

View File

@ -37,7 +37,7 @@ error "gperf generated tables don't work with this execution character set. Plea
#line 6 "accessor_class_list.gperf"
struct accessor_class_hash { char *name; grib_accessor_class **cclass;};
#define TOTAL_KEYWORDS 218
#define TOTAL_KEYWORDS 219
#define MIN_WORD_LENGTH 1
#define MAX_WORD_LENGTH 44
#define MIN_HASH_VALUE 1
@ -66,9 +66,9 @@ grib_accessor_classes_get_id (const char *str, unsigned int len)
727, 727, 727, 727, 727, 727, 727, 727, 727, 727,
727, 727, 727, 727, 727, 727, 727, 727, 727, 727,
727, 727, 727, 727, 727, 0, 727, 0, 98, 78,
0, 3, 144, 36, 165, 1, 5, 5, 69, 300,
14, 71, 14, 727, 131, 3, 2, 45, 220, 6,
0, 108, 727, 727, 727, 727, 727, 727, 727, 727,
0, 3, 144, 36, 214, 1, 5, 5, 69, 300,
14, 71, 14, 727, 131, 3, 2, 45, 220, 1,
0, 39, 727, 727, 727, 727, 727, 727, 727, 727,
727, 727, 727, 727, 727, 727, 727, 727, 727, 727,
727, 727, 727, 727, 727, 727, 727, 727, 727, 727,
727, 727, 727, 727, 727, 727, 727, 727, 727, 727,
@ -118,167 +118,170 @@ static const struct accessor_class_hash classes[] =
#line 9 "accessor_class_list.gperf"
{" "},
{""}, {""}, {""}, {""}, {""},
#line 202 "accessor_class_list.gperf"
#line 203 "accessor_class_list.gperf"
{"time", &grib_accessor_class_time},
#line 190 "accessor_class_list.gperf"
#line 191 "accessor_class_list.gperf"
{"size", &grib_accessor_class_size},
#line 14 "accessor_class_list.gperf"
{"ascii", &grib_accessor_class_ascii},
{""},
#line 203 "accessor_class_list.gperf"
#line 204 "accessor_class_list.gperf"
{"times", &grib_accessor_class_times},
{""},
#line 187 "accessor_class_list.gperf"
#line 188 "accessor_class_list.gperf"
{"signed", &grib_accessor_class_signed},
{""}, {""},
#line 70 "accessor_class_list.gperf"
{"data_raw_packing", &grib_accessor_class_data_raw_packing},
#line 167 "accessor_class_list.gperf"
{"pad", &grib_accessor_class_pad},
#line 196 "accessor_class_list.gperf"
{"statistics", &grib_accessor_class_statistics},
#line 133 "accessor_class_list.gperf"
{"int8", &grib_accessor_class_int8},
#line 193 "accessor_class_list.gperf"
{"spd", &grib_accessor_class_spd},
#line 188 "accessor_class_list.gperf"
{"signed_bits", &grib_accessor_class_signed_bits},
#line 131 "accessor_class_list.gperf"
{"int64", &grib_accessor_class_int64},
#line 75 "accessor_class_list.gperf"
{"data_simple_packing", &grib_accessor_class_data_simple_packing},
#line 71 "accessor_class_list.gperf"
{"data_secondary_bitmap", &grib_accessor_class_data_secondary_bitmap},
#line 127 "accessor_class_list.gperf"
{"int16", &grib_accessor_class_int16},
#line 77 "accessor_class_list.gperf"
{"dictionary", &grib_accessor_class_dictionary},
{"data_raw_packing", &grib_accessor_class_data_raw_packing},
#line 168 "accessor_class_list.gperf"
{"pad", &grib_accessor_class_pad},
#line 197 "accessor_class_list.gperf"
{"statistics", &grib_accessor_class_statistics},
#line 134 "accessor_class_list.gperf"
{"int8", &grib_accessor_class_int8},
#line 194 "accessor_class_list.gperf"
{"spd", &grib_accessor_class_spd},
#line 189 "accessor_class_list.gperf"
{"signed_bits", &grib_accessor_class_signed_bits},
#line 132 "accessor_class_list.gperf"
{"int64", &grib_accessor_class_int64},
#line 76 "accessor_class_list.gperf"
{"data_simple_packing", &grib_accessor_class_data_simple_packing},
#line 72 "accessor_class_list.gperf"
{"data_secondary_bitmap", &grib_accessor_class_data_secondary_bitmap},
#line 128 "accessor_class_list.gperf"
{"int16", &grib_accessor_class_int16},
#line 78 "accessor_class_list.gperf"
{"dictionary", &grib_accessor_class_dictionary},
#line 198 "accessor_class_list.gperf"
{"statistics_spectral", &grib_accessor_class_statistics_spectral},
#line 181 "accessor_class_list.gperf"
#line 182 "accessor_class_list.gperf"
{"section", &grib_accessor_class_section},
#line 155 "accessor_class_list.gperf"
#line 156 "accessor_class_list.gperf"
{"nearest", &grib_accessor_class_nearest},
#line 69 "accessor_class_list.gperf"
#line 70 "accessor_class_list.gperf"
{"data_png_packing", &grib_accessor_class_data_png_packing},
#line 46 "accessor_class_list.gperf"
#line 47 "accessor_class_list.gperf"
{"data_apply_bitmap", &grib_accessor_class_data_apply_bitmap},
{""},
#line 199 "accessor_class_list.gperf"
#line 200 "accessor_class_list.gperf"
{"step_in_units", &grib_accessor_class_step_in_units},
{""},
#line 68 "accessor_class_list.gperf"
#line 69 "accessor_class_list.gperf"
{"data_jpeg2000_packing", &grib_accessor_class_data_jpeg2000_packing},
#line 183 "accessor_class_list.gperf"
{"section_padding", &grib_accessor_class_section_padding},
#line 184 "accessor_class_list.gperf"
{"section_padding", &grib_accessor_class_section_padding},
#line 185 "accessor_class_list.gperf"
{"section_pointer", &grib_accessor_class_section_pointer},
#line 49 "accessor_class_list.gperf"
#line 50 "accessor_class_list.gperf"
{"data_apply_gdsnotpresent", &grib_accessor_class_data_apply_gdsnotpresent},
{""},
#line 47 "accessor_class_list.gperf"
#line 48 "accessor_class_list.gperf"
{"data_apply_boustrophedonic", &grib_accessor_class_data_apply_boustrophedonic},
{""},
#line 117 "accessor_class_list.gperf"
#line 118 "accessor_class_list.gperf"
{"gen", &grib_accessor_class_gen},
#line 83 "accessor_class_list.gperf"
#line 84 "accessor_class_list.gperf"
{"expanded_descriptors", &grib_accessor_class_expanded_descriptors},
{""}, {""}, {""},
#line 48 "accessor_class_list.gperf"
{""},
#line 79 "accessor_class_list.gperf"
{"dirty", &grib_accessor_class_dirty},
{""},
#line 49 "accessor_class_list.gperf"
{"data_apply_boustrophedonic_bitmap", &grib_accessor_class_data_apply_boustrophedonic_bitmap},
{""},
#line 182 "accessor_class_list.gperf"
#line 183 "accessor_class_list.gperf"
{"section_length", &grib_accessor_class_section_length},
#line 180 "accessor_class_list.gperf"
#line 181 "accessor_class_list.gperf"
{"second_order_bits_per_value", &grib_accessor_class_second_order_bits_per_value},
#line 200 "accessor_class_list.gperf"
#line 201 "accessor_class_list.gperf"
{"sum", &grib_accessor_class_sum},
#line 129 "accessor_class_list.gperf"
#line 130 "accessor_class_list.gperf"
{"int32", &grib_accessor_class_int32},
#line 61 "accessor_class_list.gperf"
#line 62 "accessor_class_list.gperf"
{"data_g22order_packing", &grib_accessor_class_data_g22order_packing},
#line 115 "accessor_class_list.gperf"
#line 116 "accessor_class_list.gperf"
{"gds_is_present", &grib_accessor_class_gds_is_present},
#line 212 "accessor_class_list.gperf"
#line 213 "accessor_class_list.gperf"
{"uint32", &grib_accessor_class_uint32},
#line 65 "accessor_class_list.gperf"
#line 66 "accessor_class_list.gperf"
{"data_g2shsimple_packing", &grib_accessor_class_data_g2shsimple_packing},
#line 214 "accessor_class_list.gperf"
#line 215 "accessor_class_list.gperf"
{"uint64", &grib_accessor_class_uint64},
#line 168 "accessor_class_list.gperf"
#line 169 "accessor_class_list.gperf"
{"padding", &grib_accessor_class_padding},
#line 118 "accessor_class_list.gperf"
#line 119 "accessor_class_list.gperf"
{"getenv", &grib_accessor_class_getenv},
#line 136 "accessor_class_list.gperf"
#line 137 "accessor_class_list.gperf"
{"julian_day", &grib_accessor_class_julian_day},
#line 52 "accessor_class_list.gperf"
#line 53 "accessor_class_list.gperf"
{"data_dummy_field", &grib_accessor_class_data_dummy_field},
#line 216 "accessor_class_list.gperf"
#line 217 "accessor_class_list.gperf"
{"uint8", &grib_accessor_class_uint8},
{""},
#line 135 "accessor_class_list.gperf"
#line 136 "accessor_class_list.gperf"
{"julian_date", &grib_accessor_class_julian_date},
{""}, {""},
#line 66 "accessor_class_list.gperf"
#line 67 "accessor_class_list.gperf"
{"data_g2simple_packing", &grib_accessor_class_data_g2simple_packing},
#line 63 "accessor_class_list.gperf"
#line 64 "accessor_class_list.gperf"
{"data_g2complex_packing", &grib_accessor_class_data_g2complex_packing},
#line 198 "accessor_class_list.gperf"
#line 199 "accessor_class_list.gperf"
{"step_human_readable", &grib_accessor_class_step_human_readable},
{""},
#line 213 "accessor_class_list.gperf"
#line 214 "accessor_class_list.gperf"
{"uint32_little_endian", &grib_accessor_class_uint32_little_endian},
{""},
#line 215 "accessor_class_list.gperf"
#line 216 "accessor_class_list.gperf"
{"uint64_little_endian", &grib_accessor_class_uint64_little_endian},
{""},
#line 109 "accessor_class_list.gperf"
#line 110 "accessor_class_list.gperf"
{"g2grid", &grib_accessor_class_g2grid},
#line 107 "accessor_class_list.gperf"
{"g2date", &grib_accessor_class_g2date},
#line 116 "accessor_class_list.gperf"
{"gds_not_present_bitmap", &grib_accessor_class_gds_not_present_bitmap},
#line 105 "accessor_class_list.gperf"
{"g2bitmap", &grib_accessor_class_g2bitmap},
#line 139 "accessor_class_list.gperf"
{"laplacian", &grib_accessor_class_laplacian},
#line 140 "accessor_class_list.gperf"
{"latitudes", &grib_accessor_class_latitudes},
#line 108 "accessor_class_list.gperf"
{"g2date", &grib_accessor_class_g2date},
#line 117 "accessor_class_list.gperf"
{"gds_not_present_bitmap", &grib_accessor_class_gds_not_present_bitmap},
#line 106 "accessor_class_list.gperf"
{"g2bitmap", &grib_accessor_class_g2bitmap},
#line 140 "accessor_class_list.gperf"
{"laplacian", &grib_accessor_class_laplacian},
#line 141 "accessor_class_list.gperf"
{"latitudes", &grib_accessor_class_latitudes},
#line 109 "accessor_class_list.gperf"
{"g2end_step", &grib_accessor_class_g2end_step},
#line 134 "accessor_class_list.gperf"
#line 135 "accessor_class_list.gperf"
{"iterator", &grib_accessor_class_iterator},
{""},
#line 81 "accessor_class_list.gperf"
#line 82 "accessor_class_list.gperf"
{"element", &grib_accessor_class_element},
#line 206 "accessor_class_list.gperf"
#line 207 "accessor_class_list.gperf"
{"to_string", &grib_accessor_class_to_string},
#line 67 "accessor_class_list.gperf"
#line 68 "accessor_class_list.gperf"
{"data_g2simple_packing_with_preprocessing", &grib_accessor_class_data_g2simple_packing_with_preprocessing},
#line 112 "accessor_class_list.gperf"
#line 113 "accessor_class_list.gperf"
{"g2lon", &grib_accessor_class_g2lon},
#line 103 "accessor_class_list.gperf"
#line 104 "accessor_class_list.gperf"
{"g2_eps", &grib_accessor_class_g2_eps},
#line 178 "accessor_class_list.gperf"
#line 179 "accessor_class_list.gperf"
{"scale", &grib_accessor_class_scale},
#line 169 "accessor_class_list.gperf"
#line 170 "accessor_class_list.gperf"
{"padto", &grib_accessor_class_padto},
{""},
#line 158 "accessor_class_list.gperf"
#line 159 "accessor_class_list.gperf"
{"number_of_points", &grib_accessor_class_number_of_points},
{""},
#line 51 "accessor_class_list.gperf"
#line 52 "accessor_class_list.gperf"
{"data_complex_packing", &grib_accessor_class_data_complex_packing},
{""},
#line 50 "accessor_class_list.gperf"
#line 51 "accessor_class_list.gperf"
{"data_ccsds_packing", &grib_accessor_class_data_ccsds_packing},
{""},
#line 189 "accessor_class_list.gperf"
#line 190 "accessor_class_list.gperf"
{"simple_packing_error", &grib_accessor_class_simple_packing_error},
{""},
#line 205 "accessor_class_list.gperf"
#line 206 "accessor_class_list.gperf"
{"to_integer", &grib_accessor_class_to_integer},
#line 159 "accessor_class_list.gperf"
#line 160 "accessor_class_list.gperf"
{"number_of_points_gaussian", &grib_accessor_class_number_of_points_gaussian},
#line 16 "accessor_class_list.gperf"
{"bit", &grib_accessor_class_bit},
@ -287,87 +290,87 @@ static const struct accessor_class_hash classes[] =
{""},
#line 17 "accessor_class_list.gperf"
{"bitmap", &grib_accessor_class_bitmap},
#line 219 "accessor_class_list.gperf"
#line 220 "accessor_class_list.gperf"
{"unsigned", &grib_accessor_class_unsigned},
{""},
#line 156 "accessor_class_list.gperf"
#line 157 "accessor_class_list.gperf"
{"non_alpha", &grib_accessor_class_non_alpha},
#line 217 "accessor_class_list.gperf"
#line 218 "accessor_class_list.gperf"
{"unexpanded_descriptors", &grib_accessor_class_unexpanded_descriptors},
{""}, {""},
#line 220 "accessor_class_list.gperf"
#line 221 "accessor_class_list.gperf"
{"unsigned_bits", &grib_accessor_class_unsigned_bits},
{""},
#line 78 "accessor_class_list.gperf"
{"dirty", &grib_accessor_class_dirty},
{""},
{""}, {""}, {""},
#line 19 "accessor_class_list.gperf"
{"bits_per_value", &grib_accessor_class_bits_per_value},
{""},
#line 185 "accessor_class_list.gperf"
#line 186 "accessor_class_list.gperf"
{"select_step_template", &grib_accessor_class_select_step_template},
#line 113 "accessor_class_list.gperf"
#line 114 "accessor_class_list.gperf"
{"g2step_range", &grib_accessor_class_g2step_range},
{""}, {""}, {""},
#line 119 "accessor_class_list.gperf"
#line 120 "accessor_class_list.gperf"
{"global_gaussian", &grib_accessor_class_global_gaussian},
{""}, {""},
#line 64 "accessor_class_list.gperf"
#line 65 "accessor_class_list.gperf"
{"data_g2secondary_bitmap", &grib_accessor_class_data_g2secondary_bitmap},
#line 62 "accessor_class_list.gperf"
#line 63 "accessor_class_list.gperf"
{"data_g2bifourier_packing", &grib_accessor_class_data_g2bifourier_packing},
{""}, {""}, {""}, {""}, {""},
#line 186 "accessor_class_list.gperf"
#line 187 "accessor_class_list.gperf"
{"sexagesimal2decimal", &grib_accessor_class_sexagesimal2decimal},
#line 174 "accessor_class_list.gperf"
#line 175 "accessor_class_list.gperf"
{"raw", &grib_accessor_class_raw},
{""}, {""},
#line 209 "accessor_class_list.gperf"
#line 210 "accessor_class_list.gperf"
{"trim", &grib_accessor_class_trim},
{""}, {""},
{""},
#line 12 "accessor_class_list.gperf"
{"apply_operators", &grib_accessor_class_apply_operators},
#line 15 "accessor_class_list.gperf"
{"assert", &grib_accessor_class_assert},
{""}, {""},
#line 138 "accessor_class_list.gperf"
#line 139 "accessor_class_list.gperf"
{"label", &grib_accessor_class_label},
#line 145 "accessor_class_list.gperf"
#line 146 "accessor_class_list.gperf"
{"long", &grib_accessor_class_long},
{""},
#line 80 "accessor_class_list.gperf"
#line 33 "accessor_class_list.gperf"
{"bytes", &grib_accessor_class_bytes},
#line 81 "accessor_class_list.gperf"
{"double", &grib_accessor_class_double},
{""},
#line 207 "accessor_class_list.gperf"
#line 208 "accessor_class_list.gperf"
{"transient", &grib_accessor_class_transient},
#line 110 "accessor_class_list.gperf"
#line 111 "accessor_class_list.gperf"
{"g2latlon", &grib_accessor_class_g2latlon},
{""}, {""},
#line 101 "accessor_class_list.gperf"
#line 102 "accessor_class_list.gperf"
{"g2_aerosol", &grib_accessor_class_g2_aerosol},
#line 22 "accessor_class_list.gperf"
{"budgdate", &grib_accessor_class_budgdate},
{""},
#line 208 "accessor_class_list.gperf"
#line 209 "accessor_class_list.gperf"
{"transient_darray", &grib_accessor_class_transient_darray},
#line 175 "accessor_class_list.gperf"
#line 176 "accessor_class_list.gperf"
{"rdbtime_guess_date", &grib_accessor_class_rdbtime_guess_date},
#line 171 "accessor_class_list.gperf"
#line 172 "accessor_class_list.gperf"
{"padtomultiple", &grib_accessor_class_padtomultiple},
#line 23 "accessor_class_list.gperf"
{"bufr_data_array", &grib_accessor_class_bufr_data_array},
{""}, {""},
#line 40 "accessor_class_list.gperf"
#line 41 "accessor_class_list.gperf"
{"concept", &grib_accessor_class_concept},
#line 157 "accessor_class_list.gperf"
#line 158 "accessor_class_list.gperf"
{"number_of_coded_values", &grib_accessor_class_number_of_coded_values},
#line 24 "accessor_class_list.gperf"
{"bufr_data_element", &grib_accessor_class_bufr_data_element},
{""}, {""},
#line 172 "accessor_class_list.gperf"
#line 173 "accessor_class_list.gperf"
{"position", &grib_accessor_class_position},
#line 30 "accessor_class_list.gperf"
{"bufr_simple_thinning", &grib_accessor_class_bufr_simple_thinning},
{""},
#line 194 "accessor_class_list.gperf"
#line 195 "accessor_class_list.gperf"
{"spectral_truncation", &grib_accessor_class_spectral_truncation},
#line 32 "accessor_class_list.gperf"
{"bufrdc_expanded_descriptors", &grib_accessor_class_bufrdc_expanded_descriptors},
@ -375,310 +378,311 @@ static const struct accessor_class_hash classes[] =
{"blob", &grib_accessor_class_blob},
#line 21 "accessor_class_list.gperf"
{"box", &grib_accessor_class_box},
#line 41 "accessor_class_list.gperf"
#line 42 "accessor_class_list.gperf"
{"constant", &grib_accessor_class_constant},
#line 132 "accessor_class_list.gperf"
#line 133 "accessor_class_list.gperf"
{"int64_little_endian", &grib_accessor_class_int64_little_endian},
#line 226 "accessor_class_list.gperf"
{"when", &grib_accessor_class_when},
#line 124 "accessor_class_list.gperf"
#line 13 "accessor_class_list.gperf"
{"array", &grib_accessor_class_array},
#line 125 "accessor_class_list.gperf"
{"ibmfloat", &grib_accessor_class_ibmfloat},
#line 128 "accessor_class_list.gperf"
#line 129 "accessor_class_list.gperf"
{"int16_little_endian", &grib_accessor_class_int16_little_endian},
{""},
#line 79 "accessor_class_list.gperf"
#line 80 "accessor_class_list.gperf"
{"divdouble", &grib_accessor_class_divdouble},
{""}, {""},
#line 195 "accessor_class_list.gperf"
#line 196 "accessor_class_list.gperf"
{"sprintf", &grib_accessor_class_sprintf},
{""}, {""},
#line 104 "accessor_class_list.gperf"
#line 105 "accessor_class_list.gperf"
{"g2_mars_labeling", &grib_accessor_class_g2_mars_labeling},
#line 120 "accessor_class_list.gperf"
#line 121 "accessor_class_list.gperf"
{"group", &grib_accessor_class_group},
{""},
#line 114 "accessor_class_list.gperf"
#line 115 "accessor_class_list.gperf"
{"gaussian_grid_name", &grib_accessor_class_gaussian_grid_name},
{""},
#line 59 "accessor_class_list.gperf"
#line 60 "accessor_class_list.gperf"
{"data_g1shsimple_packing", &grib_accessor_class_data_g1shsimple_packing},
#line 148 "accessor_class_list.gperf"
#line 149 "accessor_class_list.gperf"
{"lookup", &grib_accessor_class_lookup},
#line 201 "accessor_class_list.gperf"
#line 202 "accessor_class_list.gperf"
{"suppressed", &grib_accessor_class_suppressed},
{""},
#line 173 "accessor_class_list.gperf"
#line 174 "accessor_class_list.gperf"
{"proj_string", &grib_accessor_class_proj_string},
#line 73 "accessor_class_list.gperf"
{"data_sh_unpacked", &grib_accessor_class_data_sh_unpacked},
#line 147 "accessor_class_list.gperf"
{""},
#line 148 "accessor_class_list.gperf"
{"longitudes", &grib_accessor_class_longitudes},
{""}, {""},
#line 31 "accessor_class_list.gperf"
{"bufr_string_values", &grib_accessor_class_bufr_string_values},
#line 74 "accessor_class_list.gperf"
{"data_shsimple_packing", &grib_accessor_class_data_shsimple_packing},
#line 60 "accessor_class_list.gperf"
{""},
#line 61 "accessor_class_list.gperf"
{"data_g1simple_packing", &grib_accessor_class_data_g1simple_packing},
#line 53 "accessor_class_list.gperf"
#line 54 "accessor_class_list.gperf"
{"data_g1complex_packing", &grib_accessor_class_data_g1complex_packing},
{""},
#line 130 "accessor_class_list.gperf"
#line 131 "accessor_class_list.gperf"
{"int32_little_endian", &grib_accessor_class_int32_little_endian},
{""}, {""},
#line 177 "accessor_class_list.gperf"
#line 178 "accessor_class_list.gperf"
{"round", &grib_accessor_class_round},
#line 12 "accessor_class_list.gperf"
{"apply_operators", &grib_accessor_class_apply_operators},
{""},
#line 91 "accessor_class_list.gperf"
{""}, {""},
#line 92 "accessor_class_list.gperf"
{"g1date", &grib_accessor_class_g1date},
#line 89 "accessor_class_list.gperf"
{"g1area", &grib_accessor_class_g1area},
#line 90 "accessor_class_list.gperf"
{"g1area", &grib_accessor_class_g1area},
#line 91 "accessor_class_list.gperf"
{"g1bitmap", &grib_accessor_class_g1bitmap},
#line 121 "accessor_class_list.gperf"
{"gts_header", &grib_accessor_class_gts_header},
#line 33 "accessor_class_list.gperf"
{"bytes", &grib_accessor_class_bytes},
{""}, {""},
#line 106 "accessor_class_list.gperf"
{""}, {""}, {""}, {""},
#line 107 "accessor_class_list.gperf"
{"g2bitmap_present", &grib_accessor_class_g2bitmap_present},
#line 210 "accessor_class_list.gperf"
#line 211 "accessor_class_list.gperf"
{"uint16", &grib_accessor_class_uint16},
{""}, {""},
#line 45 "accessor_class_list.gperf"
#line 227 "accessor_class_list.gperf"
{"when", &grib_accessor_class_when},
{""},
#line 46 "accessor_class_list.gperf"
{"data_2order_packing", &grib_accessor_class_data_2order_packing},
#line 84 "accessor_class_list.gperf"
#line 85 "accessor_class_list.gperf"
{"forward", &grib_accessor_class_forward},
{""}, {""},
#line 87 "accessor_class_list.gperf"
#line 88 "accessor_class_list.gperf"
{"g1_message_length", &grib_accessor_class_g1_message_length},
{""},
#line 88 "accessor_class_list.gperf"
#line 89 "accessor_class_list.gperf"
{"g1_section4_length", &grib_accessor_class_g1_section4_length},
#line 125 "accessor_class_list.gperf"
#line 126 "accessor_class_list.gperf"
{"ieeefloat", &grib_accessor_class_ieeefloat},
#line 223 "accessor_class_list.gperf"
#line 224 "accessor_class_list.gperf"
{"values", &grib_accessor_class_values},
{""}, {""},
#line 164 "accessor_class_list.gperf"
#line 165 "accessor_class_list.gperf"
{"offset_file", &grib_accessor_class_offset_file},
#line 44 "accessor_class_list.gperf"
#line 45 "accessor_class_list.gperf"
{"count_total", &grib_accessor_class_count_total},
#line 211 "accessor_class_list.gperf"
#line 212 "accessor_class_list.gperf"
{"uint16_little_endian", &grib_accessor_class_uint16_little_endian},
#line 221 "accessor_class_list.gperf"
{"validity_date", &grib_accessor_class_validity_date},
#line 222 "accessor_class_list.gperf"
{"validity_date", &grib_accessor_class_validity_date},
#line 223 "accessor_class_list.gperf"
{"validity_time", &grib_accessor_class_validity_time},
{""}, {""},
#line 144 "accessor_class_list.gperf"
#line 145 "accessor_class_list.gperf"
{"local_definition", &grib_accessor_class_local_definition},
{""},
#line 28 "accessor_class_list.gperf"
{"bufr_extract_subsets", &grib_accessor_class_bufr_extract_subsets},
{""}, {""},
#line 13 "accessor_class_list.gperf"
{"array", &grib_accessor_class_array},
#line 74 "accessor_class_list.gperf"
{"data_sh_unpacked", &grib_accessor_class_data_sh_unpacked},
#line 25 "accessor_class_list.gperf"
{"bufr_elements_table", &grib_accessor_class_bufr_elements_table},
#line 26 "accessor_class_list.gperf"
{"bufr_extract_area_subsets", &grib_accessor_class_bufr_extract_area_subsets},
{""}, {""}, {""},
{""}, {""},
#line 75 "accessor_class_list.gperf"
{"data_shsimple_packing", &grib_accessor_class_data_shsimple_packing},
#line 27 "accessor_class_list.gperf"
{"bufr_extract_datetime_subsets", &grib_accessor_class_bufr_extract_datetime_subsets},
#line 204 "accessor_class_list.gperf"
#line 205 "accessor_class_list.gperf"
{"to_double", &grib_accessor_class_to_double},
{""},
#line 99 "accessor_class_list.gperf"
#line 100 "accessor_class_list.gperf"
{"g1step_range", &grib_accessor_class_g1step_range},
{""},
#line 123 "accessor_class_list.gperf"
{"headers_only", &grib_accessor_class_headers_only},
{""},
#line 72 "accessor_class_list.gperf"
{"data_sh_packed", &grib_accessor_class_data_sh_packed},
#line 37 "accessor_class_list.gperf"
#line 144 "accessor_class_list.gperf"
{"library_version", &grib_accessor_class_library_version},
{""}, {""},
#line 38 "accessor_class_list.gperf"
{"codetable", &grib_accessor_class_codetable},
{""},
#line 58 "accessor_class_list.gperf"
#line 59 "accessor_class_list.gperf"
{"data_g1secondary_bitmap", &grib_accessor_class_data_g1secondary_bitmap},
{""}, {""}, {""}, {""}, {""},
#line 38 "accessor_class_list.gperf"
{""},
#line 122 "accessor_class_list.gperf"
{"gts_header", &grib_accessor_class_gts_header},
{""}, {""}, {""},
#line 39 "accessor_class_list.gperf"
{"codetable_title", &grib_accessor_class_codetable_title},
{""}, {""}, {""}, {""}, {""},
#line 56 "accessor_class_list.gperf"
#line 57 "accessor_class_list.gperf"
{"data_g1second_order_general_packing", &grib_accessor_class_data_g1second_order_general_packing},
{""}, {""},
#line 57 "accessor_class_list.gperf"
#line 58 "accessor_class_list.gperf"
{"data_g1second_order_row_by_row_packing", &grib_accessor_class_data_g1second_order_row_by_row_packing},
#line 165 "accessor_class_list.gperf"
#line 166 "accessor_class_list.gperf"
{"offset_values", &grib_accessor_class_offset_values},
{""},
#line 82 "accessor_class_list.gperf"
#line 83 "accessor_class_list.gperf"
{"evaluate", &grib_accessor_class_evaluate},
#line 54 "accessor_class_list.gperf"
#line 55 "accessor_class_list.gperf"
{"data_g1second_order_constant_width_packing", &grib_accessor_class_data_g1second_order_constant_width_packing},
{""},
#line 55 "accessor_class_list.gperf"
#line 56 "accessor_class_list.gperf"
{"data_g1second_order_general_extended_packing", &grib_accessor_class_data_g1second_order_general_extended_packing},
{""}, {""},
#line 29 "accessor_class_list.gperf"
{"bufr_group", &grib_accessor_class_bufr_group},
#line 146 "accessor_class_list.gperf"
#line 147 "accessor_class_list.gperf"
{"long_vector", &grib_accessor_class_long_vector},
#line 218 "accessor_class_list.gperf"
#line 219 "accessor_class_list.gperf"
{"unpack_bufr_values", &grib_accessor_class_unpack_bufr_values},
#line 141 "accessor_class_list.gperf"
#line 142 "accessor_class_list.gperf"
{"latlon_increment", &grib_accessor_class_latlon_increment},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 166 "accessor_class_list.gperf"
#line 167 "accessor_class_list.gperf"
{"pack_bufr_values", &grib_accessor_class_pack_bufr_values},
{""},
#line 224 "accessor_class_list.gperf"
{"variable", &grib_accessor_class_variable},
#line 160 "accessor_class_list.gperf"
{"number_of_values", &grib_accessor_class_number_of_values},
#line 126 "accessor_class_list.gperf"
{"ifs_param", &grib_accessor_class_ifs_param},
#line 225 "accessor_class_list.gperf"
{"variable", &grib_accessor_class_variable},
#line 161 "accessor_class_list.gperf"
{"number_of_values", &grib_accessor_class_number_of_values},
#line 127 "accessor_class_list.gperf"
{"ifs_param", &grib_accessor_class_ifs_param},
#line 226 "accessor_class_list.gperf"
{"vector", &grib_accessor_class_vector},
#line 36 "accessor_class_list.gperf"
#line 37 "accessor_class_list.gperf"
{"codeflag", &grib_accessor_class_codeflag},
{""},
#line 151 "accessor_class_list.gperf"
{"md5", &grib_accessor_class_md5},
{""},
#line 42 "accessor_class_list.gperf"
{"count_file", &grib_accessor_class_count_file},
#line 122 "accessor_class_list.gperf"
{"hash_array", &grib_accessor_class_hash_array},
{""}, {""},
#line 39 "accessor_class_list.gperf"
{"codetable_units", &grib_accessor_class_codetable_units},
#line 149 "accessor_class_list.gperf"
{"mars_param", &grib_accessor_class_mars_param},
#line 150 "accessor_class_list.gperf"
{"mars_step", &grib_accessor_class_mars_step},
#line 93 "accessor_class_list.gperf"
{"g1end_of_interval_monthly", &grib_accessor_class_g1end_of_interval_monthly},
#line 152 "accessor_class_list.gperf"
{"md5", &grib_accessor_class_md5},
#line 124 "accessor_class_list.gperf"
{"headers_only", &grib_accessor_class_headers_only},
#line 43 "accessor_class_list.gperf"
{"count_file", &grib_accessor_class_count_file},
#line 73 "accessor_class_list.gperf"
{"data_sh_packed", &grib_accessor_class_data_sh_packed},
{""}, {""},
#line 40 "accessor_class_list.gperf"
{"codetable_units", &grib_accessor_class_codetable_units},
#line 150 "accessor_class_list.gperf"
{"mars_param", &grib_accessor_class_mars_param},
#line 151 "accessor_class_list.gperf"
{"mars_step", &grib_accessor_class_mars_step},
#line 94 "accessor_class_list.gperf"
{"g1end_of_interval_monthly", &grib_accessor_class_g1end_of_interval_monthly},
#line 153 "accessor_class_list.gperf"
{"message", &grib_accessor_class_message},
#line 170 "accessor_class_list.gperf"
#line 171 "accessor_class_list.gperf"
{"padtoeven", &grib_accessor_class_padtoeven},
#line 161 "accessor_class_list.gperf"
#line 162 "accessor_class_list.gperf"
{"number_of_values_data_raw_packing", &grib_accessor_class_number_of_values_data_raw_packing},
#line 137 "accessor_class_list.gperf"
#line 138 "accessor_class_list.gperf"
{"ksec1expver", &grib_accessor_class_ksec1expver},
{""},
#line 34 "accessor_class_list.gperf"
{"change_scanning_direction", &grib_accessor_class_change_scanning_direction},
#line 179 "accessor_class_list.gperf"
{""}, {""},
#line 180 "accessor_class_list.gperf"
{"scale_values", &grib_accessor_class_scale_values},
{""},
#line 191 "accessor_class_list.gperf"
#line 192 "accessor_class_list.gperf"
{"smart_table", &grib_accessor_class_smart_table},
{""}, {""},
#line 143 "accessor_class_list.gperf"
{"library_version", &grib_accessor_class_library_version},
{""}, {""}, {""},
#line 11 "accessor_class_list.gperf"
{"abstract_vector", &grib_accessor_class_abstract_vector},
{""}, {""},
#line 192 "accessor_class_list.gperf"
#line 193 "accessor_class_list.gperf"
{"smart_table_column", &grib_accessor_class_smart_table_column},
{""}, {""}, {""},
#line 153 "accessor_class_list.gperf"
#line 154 "accessor_class_list.gperf"
{"message_copy", &grib_accessor_class_message_copy},
#line 162 "accessor_class_list.gperf"
{"octahedral_gaussian", &grib_accessor_class_octahedral_gaussian},
{""}, {""}, {""}, {""},
#line 163 "accessor_class_list.gperf"
{""}, {""}, {""}, {""}, {""},
#line 164 "accessor_class_list.gperf"
{"octect_number", &grib_accessor_class_octect_number},
{""}, {""}, {""}, {""}, {""}, {""},
#line 154 "accessor_class_list.gperf"
#line 155 "accessor_class_list.gperf"
{"missing", &grib_accessor_class_missing},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
#line 94 "accessor_class_list.gperf"
#line 123 "accessor_class_list.gperf"
{"hash_array", &grib_accessor_class_hash_array},
{""},
#line 95 "accessor_class_list.gperf"
{"g1fcperiod", &grib_accessor_class_g1fcperiod},
{""}, {""}, {""}, {""}, {""}, {""},
#line 111 "accessor_class_list.gperf"
{"g2level", &grib_accessor_class_g2level},
{""}, {""}, {""}, {""},
#line 86 "accessor_class_list.gperf"
#line 34 "accessor_class_list.gperf"
{"change_alternative_row_scanning", &grib_accessor_class_change_alternative_row_scanning},
{""},
#line 112 "accessor_class_list.gperf"
{"g2level", &grib_accessor_class_g2level},
{""}, {""},
#line 35 "accessor_class_list.gperf"
{"change_scanning_direction", &grib_accessor_class_change_scanning_direction},
{""},
#line 87 "accessor_class_list.gperf"
{"g1_half_byte_codeflag", &grib_accessor_class_g1_half_byte_codeflag},
{""}, {""}, {""}, {""}, {""},
#line 142 "accessor_class_list.gperf"
#line 143 "accessor_class_list.gperf"
{"latlonvalues", &grib_accessor_class_latlonvalues},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 85 "accessor_class_list.gperf"
{""}, {""}, {""}, {""}, {""}, {""},
#line 163 "accessor_class_list.gperf"
{"octahedral_gaussian", &grib_accessor_class_octahedral_gaussian},
#line 86 "accessor_class_list.gperf"
{"from_scale_factor_scaled_value", &grib_accessor_class_from_scale_factor_scaled_value},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 76 "accessor_class_list.gperf"
#line 77 "accessor_class_list.gperf"
{"decimal_precision", &grib_accessor_class_decimal_precision},
{""},
#line 96 "accessor_class_list.gperf"
{"g1monthlydate", &grib_accessor_class_g1monthlydate},
{""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
#line 10 "accessor_class_list.gperf"
{"abstract_long_vector", &grib_accessor_class_abstract_long_vector},
{""}, {""}, {""},
#line 35 "accessor_class_list.gperf"
{"check_internal_version", &grib_accessor_class_check_internal_version},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 43 "accessor_class_list.gperf"
#line 97 "accessor_class_list.gperf"
{"g1monthlydate", &grib_accessor_class_g1monthlydate},
{""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 36 "accessor_class_list.gperf"
{"check_internal_version", &grib_accessor_class_check_internal_version},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
#line 44 "accessor_class_list.gperf"
{"count_missing", &grib_accessor_class_count_missing},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
#line 100 "accessor_class_list.gperf"
#line 101 "accessor_class_list.gperf"
{"g1verificationdate", &grib_accessor_class_g1verificationdate},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""},
#line 176 "accessor_class_list.gperf"
#line 177 "accessor_class_list.gperf"
{"reference_value_error", &grib_accessor_class_reference_value_error},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""},
#line 92 "accessor_class_list.gperf"
#line 93 "accessor_class_list.gperf"
{"g1day_of_the_year_date", &grib_accessor_class_g1day_of_the_year_date},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
#line 102 "accessor_class_list.gperf"
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
#line 103 "accessor_class_list.gperf"
{"g2_chemical", &grib_accessor_class_g2_chemical},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""},
#line 98 "accessor_class_list.gperf"
{""}, {""},
#line 99 "accessor_class_list.gperf"
{"g1number_of_coded_values_sh_simple", &grib_accessor_class_g1number_of_coded_values_sh_simple},
#line 97 "accessor_class_list.gperf"
#line 98 "accessor_class_list.gperf"
{"g1number_of_coded_values_sh_complex", &grib_accessor_class_g1number_of_coded_values_sh_complex},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
{""}, {""}, {""}, {""}, {""},
#line 95 "accessor_class_list.gperf"
#line 96 "accessor_class_list.gperf"
{"g1forecastmonth", &grib_accessor_class_g1forecastmonth}
};

View File

@ -23,6 +23,7 @@
{ "bufr_string_values", &grib_accessor_class_bufr_string_values, },
{ "bufrdc_expanded_descriptors", &grib_accessor_class_bufrdc_expanded_descriptors, },
{ "bytes", &grib_accessor_class_bytes, },
{ "change_alternative_row_scanning", &grib_accessor_class_change_alternative_row_scanning, },
{ "change_scanning_direction", &grib_accessor_class_change_scanning_direction, },
{ "check_internal_version", &grib_accessor_class_check_internal_version, },
{ "codeflag", &grib_accessor_class_codeflag, },

View File

@ -24,6 +24,7 @@ bufr_simple_thinning, &grib_accessor_class_bufr_simple_thinning
bufr_string_values, &grib_accessor_class_bufr_string_values
bufrdc_expanded_descriptors, &grib_accessor_class_bufrdc_expanded_descriptors
bytes, &grib_accessor_class_bytes
change_alternative_row_scanning, &grib_accessor_class_change_alternative_row_scanning
change_scanning_direction, &grib_accessor_class_change_scanning_direction
check_internal_version, &grib_accessor_class_check_internal_version
codeflag, &grib_accessor_class_codeflag

View File

@ -347,6 +347,8 @@ void grib_update_paddings(grib_section* s);
/* grib_accessor_class_change_scanning_direction.c */
/* grib_accessor_class_change_scanning_direction.c */
/* grib_accessor_class_check_internal_version.c */
/* grib_accessor_class_codeflag.c */

View File

@ -224,6 +224,7 @@
<ClCompile Include="..\..\..\src\grib_accessor_class_bufr_simple_thinning.c" />
<ClCompile Include="..\..\..\src\grib_accessor_class_bufr_string_values.c" />
<ClCompile Include="..\..\..\src\grib_accessor_class_bytes.c" />
<ClCompile Include="..\..\..\src\grib_accessor_class_change_alternative_row_scanning.c" />
<ClCompile Include="..\..\..\src\grib_accessor_class_change_scanning_direction.c" />
<ClCompile Include="..\..\..\src\grib_accessor_class_check_internal_version.c" />
<ClCompile Include="..\..\..\src\grib_accessor_class_codeflag.c" />