35 return ( fabs ( val ) < 1.0e7 ) ? 1 : 0;
47 return ( fabs ( val ) < 1.0e8 ) ? 1 : 0;
71 strcpy ( syn->
s3.
j524[4],
"4" );
72 sprintf ( syn->
s3.
FFFF24[4],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
83 if ( tpd == ( 24 * 3600 ) )
87 if ( strcmp (
"07", syn->
s0.
II ) == 0 )
89 if ( strcmp (
"06", syn->
e.
HH ) == 0 )
93 strcpy ( syn->
s3.
j524[4],
"4" );
94 sprintf ( syn->
s3.
FFFF24[4],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
98 strcpy ( syn->
s3.
j524[5],
"5" );
99 sprintf ( syn->
s3.
FFFF24[5],
"%04d", (
int ) ( - ( s->
val ) / 10000.0 + 0.5 ) );
108 strcpy ( syn->
s3.
j524[4],
"4" );
109 sprintf ( syn->
s3.
FFFF24[4],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
113 strcpy ( syn->
s3.
j524[5],
"5" );
114 sprintf ( syn->
s3.
FFFF24[5],
"%04d", (
int ) ( - ( s->
val ) / 10000.0 + 0.5 ) );
119 else if ( tpd == 3600 )
125 strcpy ( syn->
s3.
j5[4],
"4" );
126 sprintf ( syn->
s3.
FFFF[4],
"%04d", (
int ) ( s->
val / 1000.0 + 0.5 ) );
130 strcpy ( syn->
s3.
j5[4],
"5" );
131 sprintf ( syn->
s3.
FFFF[4],
"%04d", (
int ) ( - ( s->
val ) / 1000.0 + 0.5 ) );
145 strcpy ( syn->
s3.
j524[6],
"6" );
146 sprintf ( syn->
s3.
FFFF24[6],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
156 if ( tpd == ( 24 * 3600 ) )
160 if ( strcmp (
"07", syn->
s0.
II ) == 0 )
162 if ( strcmp (
"06", syn->
e.
HH ) == 0 )
164 strcpy ( syn->
s3.
j524[6],
"6" );
165 sprintf ( syn->
s3.
FFFF24[6],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
170 strcpy ( syn->
s3.
j524[6],
"6" );
171 sprintf ( syn->
s3.
FFFF24[6],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
174 else if ( tpd == 3600 )
178 strcpy ( syn->
s3.
j5[6],
"6" );
179 sprintf ( syn->
s3.
FFFF[6],
"%04d", (
int ) ( s->
val / 1000.0 + 0.5 ) );
190 if ( tpd == ( 24 * 3600 ) )
194 if ( strcmp (
"07", syn->
s0.
II ) == 0 )
196 if ( strcmp (
"06", syn->
e.
HH ) == 0 )
198 sprintf ( syn->
s3.
FFFF507,
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
204 sprintf ( syn->
s3.
FFFF507,
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
208 else if ( tpd == 3600 )
212 sprintf ( syn->
s3.
FFFF407,
"%04d", (
int ) ( s->
val / 1000.0 + 0.5 ) );
224 if ( tpd == ( 24 * 3600 ) )
228 if ( strcmp (
"07", syn->
s0.
II ) == 0 )
230 if ( strcmp (
"06", syn->
e.
HH ) == 0 )
234 strcpy ( syn->
s3.
j524[0],
"0" );
235 sprintf ( syn->
s3.
FFFF24[0],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
239 strcpy ( syn->
s3.
j524[1],
"1" );
240 sprintf ( syn->
s3.
FFFF24[1],
"%04d", (
int ) ( - ( s->
val ) / 10000.0 + 0.5 ) );
249 strcpy ( syn->
s3.
j524[0],
"0" );
250 sprintf ( syn->
s3.
FFFF24[0],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
254 strcpy ( syn->
s3.
j524[1],
"1" );
255 sprintf ( syn->
s3.
FFFF24[1],
"%04d", (
int ) ( - ( s->
val ) / 10000.0 + 0.5 ) );
260 else if ( tpd == 3600 )
266 strcpy ( syn->
s3.
j5[0],
"0" );
267 sprintf ( syn->
s3.
FFFF[0],
"%04d", (
int ) ( s->
val / 1000.0 + 0.5 ) );
271 strcpy ( syn->
s3.
j5[1],
"1" );
272 sprintf ( syn->
s3.
FFFF[1],
"%04d", (
int ) ( - ( s->
val ) / 1000.0 + 0.5 ) );
284 if ( tpd == ( 24 * 3600 ) )
288 if ( strcmp (
"07", syn->
s0.
II ) == 0 )
290 if ( strcmp (
"06", syn->
e.
HH ) == 0 )
292 strcpy ( syn->
s3.
j524[2],
"2" );
293 sprintf ( syn->
s3.
FFFF24[2],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
299 strcpy ( syn->
s3.
j524[2],
"2" );
300 sprintf ( syn->
s3.
FFFF24[2],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
304 else if ( tpd == 3600 )
308 strcpy ( syn->
s3.
j5[2],
"2" );
309 sprintf ( syn->
s3.
FFFF[2],
"%04d", (
int ) ( s->
val / 1000.0 + 0.5 ) );
320 if ( tpd == ( 24 * 3600 ) )
324 if ( strcmp (
"07", syn->
s0.
II ) == 0 )
326 if ( strcmp (
"06", syn->
e.
HH ) == 0 )
328 strcpy ( syn->
s3.
j524[3],
"3" );
329 sprintf ( syn->
s3.
FFFF24[3],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
335 strcpy ( syn->
s3.
j524[3],
"3" );
336 sprintf ( syn->
s3.
FFFF24[3],
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
340 else if ( tpd == 3600 )
344 strcpy ( syn->
s3.
j5[3],
"3" );
345 sprintf ( syn->
s3.
FFFF[3],
"%04d", (
int ) ( s->
val / 1000.0 + 0.5 ) );
357 if ( tpd == ( 24 * 3600 ) )
361 if ( strcmp (
"07", syn->
s0.
II ) == 0 )
363 if ( strcmp (
"06", syn->
e.
HH ) == 0 )
365 sprintf ( syn->
s3.
FFFF508,
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
371 sprintf ( syn->
s3.
FFFF508,
"%04d", (
int ) ( s->
val / 10000.0 + 0.5 ) );
375 else if ( tpd == 3600 )
379 sprintf ( syn->
s3.
FFFF408,
"%04d", (
int ) ( s->
val / 1000.0 + 0.5 ) );
390 if ( tpd == ( 24 * 3600 ) )
394 if ( strcmp (
"07", syn->
s0.
II ) == 0 )
396 if ( strcmp (
"06", syn->
e.
HH ) == 0 )
398 sprintf ( syn->
s3.
SSS,
"%03d", (abs(s->
ival) / 6) % 1000 );
404 sprintf ( syn->
s3.
SSS,
"%03d", (abs(s->
ival) / 6) % 1000 );
408 else if ( tpd == 3600 )
412 sprintf ( syn->
s3.
SS,
"%02d", abs(s->
ival / 6) % 100 );
423 if ( tpd == ( 24 * 3600 ) )
427 if ( strcmp (
"07", syn->
s0.
II ) == 0 )
429 if ( strcmp (
"06", syn->
e.
HH ) == 0 )
431 sprintf ( syn->
s3.
SSS,
"%03d", s->
ival * 10 );
437 sprintf ( syn->
s3.
SSS,
"%03d", s->
ival * 10 );
441 else if ( tpd == 3600 )
445 sprintf ( syn->
s3.
SS,
"%02d", s->
ival * 10 );
Include header file for binary bufr2tac.
int bufr2tac_set_error(struct bufr2tac_subset_state *s, int severity, char *origin, char *explanation)
int time_period_duration(struct bufr2tac_subset_state *s)
Get time period duration in seconds.
int buoy_parse_x14(struct buoy_chunks *b, struct bufr2tac_subset_state *s)
Parse a expanded descriptor with X = 14.
int check_kj_m2(double val)
Check if a radiation value can be wrote in Kj/m2 using up to 4 chars.
int syn_parse_x14(struct synop_chunks *syn, struct bufr2tac_subset_state *s)
Parse a expanded descriptor with X = 14.
int check_j_cm2(double val)
Check if a radiation value can be wrote in J/cm2 using up to 4 chars.
int climat_parse_x14(struct climat_chunks *c, struct bufr2tac_subset_state *s)
Parse a expanded descriptor with X = 14.
#define DESCRIPTOR_VALUE_MISSING
Bit mask for a missing value in a struct bufr_atom_data.
#define CLIMAT_SEC2
mask bit meaning section 2 of climat is solicited to or parsed with success
#define CLIMAT_SEC1
mask bit meaning section 1 of climat is solicited to or parsed with success
#define SYNOP_SEC3
mask bit meaning section 3 or synop is solicited to or parsed with success
stores information needed to parse a sequential list of expanded descriptors for a subset
struct bufr_atom_data * a
struct bufr_descriptor desc
contains all possible substrings from a synop report is parsed with success
contains all possible substrings from a synop report is parsed with success
contains all possible substrings from a synop report is parsed with success