74 strcpy ( l->
key,
"000000" );
79 strcpy ( l->
name,
"Main sequence from SEC3" );
96 snprintf ( b->
error, sizeof (b->
error),
"%s(): Reached max number of bufr_sequence. "
97 "Use bigger NMAXSEQ_LAYER \n" , __func__);
101 l = & ( b->
tree->
seq[nl - 1] );
102 strcpy ( l->
key, key );
116 for ( i = 1 ; i < l->
ndesc ; i++)
122 for ( i = 0; i < l->
ndesc ; i++ )
124 d = & ( l->
lseq[i] );
129 for ( j = 0; j < d->
x; j++ )
145 if ( ( d->
y + i ) < l->
ndesc )
155 snprintf ( b->
error, sizeof (b->
error),
"%s(): Range of 'no data present' out of sequence limits\n" , __func__);
163 if ( d->
y == 0 && ( i + 1 ) < l->
ndesc )
175 snprintf ( b->
error, sizeof (b->
error),
"%s(): unexpected or wrong event descriptor\n" , __func__);
183 if ( d->
y == 0 && ( i + 1 ) < l->
ndesc )
195 snprintf ( b->
error, sizeof (b->
error),
"%s(): unexpected or wrong conditioning event event descriptor\n" , __func__);
203 if ( d->
y == 0 && ( i + 1 ) < l->
ndesc )
215 snprintf ( b->
error, sizeof (b->
error),
"%s(): unexpected or wrong categorical forecasts descriptor\n" , __func__);
223 for ( i = 0; i < l->
ndesc ; i++ )
226 if ( l->
lseq[i].
f != 3 )
Include header file for bufrdeco library.
uint32_t buf_t
Type to set offsets and dimension of arrays or counters used in bufrdeco.
#define bufrdeco_assert(__my_expr__)
Check a expression and exit if it fails.
#define NMAXSEQ_DESCRIPTORS
Maximum nuber of unexpanded descriptors in a struct bufr_sequence.
int bufrdeco_tableD_get_descriptors_array(struct bufr_sequence *s, struct bufrdeco *b, const char *key)
get the descriptors array for a descriptor sequence defined in table D with F = 3
int bufrdeco_parse_tree_recursive(struct bufrdeco *b, struct bufr_sequence *father, buf_t father_idesc, const char *key)
Parse the descriptor tree in a recursive way.
int get_unexpanded_descriptor_array_from_sec3(struct bufr_sequence *s, struct bufrdeco *b)
Set to a struct bufr_sequence an unexpanded descriptor array from sec3 in a BUFR report.
struct bufr_descriptor unexpanded[BUFR_LEN_UNEXPANDED_DESCRIPTOR]
Stores an unexpanded sequence of descriptors.
struct bufr_sequence_index_range cond_event
struct bufr_descriptor lseq[NMAXSEQ_DESCRIPTORS]
struct bufr_sequence_index_range no_data_present
struct bufr_sequence * father
struct bufr_sequence_index_range event
uint8_t replicated[NMAXSEQ_DESCRIPTORS]
struct bufr_sequence * sons[NMAXSEQ_DESCRIPTORS]
struct bufr_sequence_index_range cat_forecast
char name[BUFR_EXPLAINED_LENGTH]
Array of structs bufr_sequence from which bufr expanded tree is made.
struct bufr_sequence seq[BUFR_MAX_EXPANDED_SEQUENCES]
This struct contains all needed data to parse and decode a BUFR file.
struct bufrdeco_expanded_tree * tree