NCEPLIBS-bufr  12.3.0
bufr_interface.h
Go to the documentation of this file.
1 
13 #pragma once
14 
15 void cobfl(const char *bfl, char io);
16 void crbmg(char *bmg, int mxmb, int *nmb, int *iret);
17 void cwbmg(const char *bmg, int nmb, int *iret);
18 void ccbfl(void);
19 
21 #define VERS_STR_LEN 8
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
35 void open_f(int unit, const char *filepath);
36 
44 void close_f(int unit);
45 
58 void openbf_f(int bufr_unit, const char *cio, int table_file_id);
59 
69 void closbf_f(int bufr_unit);
70 
78 void exitbufr_f();
79 
96 int ireadmg_f(int bufr_unit, char *subset, int *iddate, int subset_len);
97 
113 void readmg_f(int bufr_unit, char *subset, int *iddate, int subset_len, int *ires);
114 
128 int ireadsb_f(int bufr_unit);
129 
142 void readsb_f(int bufr_unit, int *ires);
143 
153 void writsb_f(int bufr_unit);
154 
167 void writsa_f(int bufr_unit, int bufr_len, int *bufr, int *nbufr);
168 
183 void ufbint_f(int bufr_unit, void **c_data, int dim_1, int dim_2,
184  int *iret, const char *table_b_mnemonic);
185 
200 void ufbrep_f(int bufr_unit, void **c_data, int dim_1, int dim_2,
201  int *iret, const char *table_b_mnemonic);
202 
217 void ufbstp_f(int bufr_unit, void **c_data, int dim_1, int dim_2,
218  int *iret, const char *table_b_mnemonic);
219 
235 void ufbevn_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int dim_3,
236  int *iret, const char *table_b_mnemonic);
237 
249 void mtinfo_f(const char *path, int file_unit_1, int file_unit_2);
250 
263 void status_f(int file_unit, int *lun, int *il, int *im);
264 
280 void nemdefs_f(int file_unit,
281  const char *mnemonic,
282  char *unit_c,
283  int unit_str_len,
284  char *desc_c,
285  int desc_str_len,
286  int *iret);
287 
304 void nemspecs_f(int file_unit,
305  const char *mnemonic,
306  int mnemonic_idx,
307  int *scale,
308  int *reference,
309  int *bits,
310  int *iret);
311 
325 void nemtab_f(int lun,
326  const char *mnemonic,
327  int *descriptor,
328  char *table_type,
329  int *table_idx);
330 
346  void nemtbb_f(int lun,
347  int table_idx,
348  char *unit_str,
349  int unit_str_len,
350  int *scale,
351  int *reference,
352  int *bits);
353 
362 void get_isc_f(int **isc_ptr, int *isc_size);
363 
372 void get_link_f(int **link_ptr, int *link_size);
373 
382 void get_itp_f(int **itp_ptr, int *itp_size);
383 
393 void get_typ_f(char **typ_ptr, int *typ_len, int *mem_size);
394 
404 void get_tag_f(char **tag_ptr, int *tag_len, int *mem_size);
405 
414 void get_jmpb_f(int **jmpb_ptr, int *jmpb_size);
415 
416 
425 void get_irf_f(int **irf_ptr, int *irf_size);
426 
435 void get_inode_f(int lun, int *start_node);
436 
445 void get_nval_f(int lun, int *num_nodes);
446 
456 void get_val_f(int lun, double **val_ptr, int *val_size);
457 
467 void get_inv_f(int lun, int **inv_ptr, int *inv_size);
468 
480 void readlc_f(int lunit, const char *str_id, char *output_str, int output_str_len);
481 
492 void writlc_f(int lunit, const char *str, const char *chr);
493 
500 
513 int iupbs01_f(int *bufr, const char *mnemonic);
514 
524 int igetprm_f(const char *cprmnm);
525 
536 int isetprm_f(const char *cprmnm, int ipval);
537 
548 void maxout_f(int max0);
549 
559 int igetmxby_f(void);
560 
573 void drfini_f(int bufr_unit, int *mdrf, int ndrf, const char *table_d_mnemonic);
574 
589 void ufbseq_f(int bufr_unit, void **c_data, int dim_1, int dim_2,
590  int *iret, const char *table_d_mnemonic);
591 
608 int ireadns_f(int bufr_unit, char *subset, int *iddate, int subset_len);
609 
626 void readns_f(int bufr_unit, char *subset, int *iddate, int subset_len, int *ires);
627 
639 int ibfms_f(double r8val);
640 
653 void openmb_f(int bufr_unit, const char *c_subset, int iddate);
654 
667 void openmg_f(int bufr_unit, const char *c_subset, int iddate);
668 
678 void closmg_f(int bufr_unit);
679 
690 void bvers_f(char *cverstr, int cverstr_len);
691 
702 void cmpmsg_f(const char *cf);
703 
716 int catch_borts_f(const char *cf);
717 
729 void check_for_bort_f(char *error_str, int error_str_len);
730 
742 void ufbcnt_f(int lunit, int *kmsg, int *ksub);
743 
755 void ufbqcd_f(int lunit, const char *cnemo, int *iqcd);
756 
769 void ufbqcp_f(int lunit, int iqcp, char *cnemo, int cnemo_len);
770 
787 void getcfmng_f(int lunit, const char *cnemoi, int ivali, const char *cnemod, int ivald,
788  char *cmeang_c, int lcmgc, int *iret);
789 
804 void upftbv_f(int lunit, const char *cnemo, double val, int *ibit, int mxib, int *nib);
805 
820 void ufbtab_f(int bufr_unit, void **c_data, int dim_1, int dim_2,
821  int *iret, const char *table_b_mnemonic);
822 
837 void ufbpos_f(int bufr_unit, int irec, int isub, char *subset, int *iddate, int subset_len);
838 
850 void datelen_f(int len);
851 
864 int iupvs01_f(int bufr_unit, const char *c_s01m);
865 
877 int nmsub_f(int bufr_unit);
878 
889 void pkvs01_f(const char *c_s01m, int ival);
890 
905 void datebf_f(int bufr_unit, int *mear, int *mmon, int *mday, int *mour, int *idate);
906 
918 void dumpbf_f(int bufr_unit, int *jdate, int *jdump);
919 
930 void minimg_f(int bufr_unit, int mini);
931 
944 void upds3_f(int *mbay, int lcds3, char (*ccds3)[6], int *nds3);
945 
957 void pkbs1_f(int ival, int *mbay, const char *c_s1m);
958 
973 void strcpt_f(const char *cf, int iyr, int imo, int idy, int ihr, int imi);
974 
990 void rtrcpt_f(int lunit, int *iyr, int *imo, int *idy, int *ihr, int *imi, int *iret);
991 
1003 void atrcpt_f(int *msgin, int lmsgot, int *msgot);
1004 
1015 void dxdump_f(int lunit, int luprt);
1016 
1027 void ufbdmp_f(int lunit, int luprt);
1028 
1039 void ufdump_f(int lunit, int luprt);
1040 
1051 void copybf_f(int lunin, int lunot);
1052 
1063 void copymg_f(int lunin, int lunot);
1064 
1076 void copysb_f(int lunin, int lunot, int *iret);
1077 
1088 void ufbcpy_f(int lunin, int lunot);
1089 
1104 void readerme_f(int *mesg, int bufr_unit, char *subset, int *iddate, int subset_len, int *ires);
1105 
1117 void rdmgsb_f(int lunit, int imsg, int isub);
1118 
1131 void ufbmem_f(int lunit, int inew, int *iret, int *iunit);
1132 
1146 void ufbmex_f(int lunit, int lundx, int inew, int *iret, int *mesg);
1147 
1161 void ufbmms_f(int imsg, int isub, char *subset, int *jdate, int subset_len);
1162 
1175 void ufbmns_f(int irep, char *subset, int *idate, int subset_len);
1176 
1190 void rdmemm_f(int imsg, char *subset, int *jdate, int subset_len, int *iret);
1191 
1202 void rdmems_f(int isub, int *iret);
1203 
1219 void ufbrms_f(int imsg, int isub, void **c_data, int dim_1, int dim_2,
1220  int *iret, const char *table_b_mnemonic);
1221 
1235 void ufbtam_f(void **c_data, int dim_1, int dim_2,
1236  int *iret, const char *table_b_mnemonic);
1237 
1247 void cpymem_f(int lunot);
1248 
1259 void ufbcup_f(int lunin, int lunot);
1260 
1270 void stdmsg_f(const char *cf);
1271 
1284 void stndrd_f(int lunit, int *msgin, int lmsgot, int *msgot);
1285 
1296 void codflg_f(const char *cf);
1297 
1312 void gettagpr_f(int lunit, const char *tagch, int ntagch, char *tagpr, int tagpr_len, int *iret);
1313 
1329 void gettagre_f(int lunit, const char *tagi, int ntagi, char *tagre, int tagre_len, int *ntagre, int *iret);
1330 
1342 void cnved4_f(int *msgin, int lmsgot, int *msgot);
1343 
1356 int lcmgdf_f(int bufr_unit, const char *c_subset);
1357 
1373 void setvalnb_f(int lunit, const char *tagpv, int ntagpv, const char *tagnb, int ntagnb, double r8val, int *iret);
1374 
1390 double getvalnb_f(int lunit, const char *tagpv, int ntagpv, const char *tagnb, int ntagnb);
1391 
1404 void getabdb_f(int lunit, int itab, char (*ctabdb)[128], int *jtab);
1405 
1419 void ufbget_f(int bufr_unit, double *tab, int i1, int *iret, const char *table_b_mnemonic);
1420 
1437 void ufbinx_f(int bufr_unit, int imsg, int isub, void **c_data, int dim_1, int dim_2,
1438  int *iret, const char *table_b_mnemonic);
1439 
1454 void ufbovr_f(int bufr_unit, void **c_data, int dim_1, int dim_2,
1455  int *iret, const char *table_b_mnemonic);
1456 
1468 int ifbget_f(int bufr_unit);
1469 
1481 int igetsc_f(int bufr_unit);
1482 
1493 void wrdxtb_f(int lundx, int lunot);
1494 
1505 void mesgbf_f(int lunit, int *mesgtyp);
1506 
1518 void mesgbc_f(int lunin, int *mesgtyp, int *icomp);
1519 
1530 void invmrg_f(int lubfi, int lubfj);
1531 
1545 int iupm_f(const char *cbay, int nbits, int lcbay);
1546 
1559 void ipkm_f(char *cbay, int nbyt, int ival, int cbay_len);
1560 
1561 #ifdef __cplusplus
1562 }
1563 #endif
int catch_borts_f(const char *cf)
Specify the use of compression when writing BUFR messages.
void closbf_f(int bufr_unit)
Close a previously opened file and disconnect it from the library.
void ufbtab_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read one or more data values from every data subset in a BUFR file.
void gettagre_f(int lunit, const char *tagi, int ntagi, char *tagre, int tagre_len, int *ntagre, int *iret)
Get the parent for a specified occurrence of a Table B or Table D mnemonic.
void get_jmpb_f(int **jmpb_ptr, int *jmpb_size)
Get copy of the moda_tables JMPB array.
void getabdb_f(int lunit, int itab, char(*ctabdb)[128], int *jtab)
Get Table B and Table D information from the internal DX tables.
void rdmgsb_f(int lunit, int imsg, int isub)
Read a specified data subset from a BUFR file.
int iupm_f(const char *cbay, int nbits, int lcbay)
Decode an integer from a character string.
int nmsub_f(int bufr_unit)
Get the total number of data subsets available within a BUFR message.
void ufbrep_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read/write one or more data values from/to a data subset.
void get_nval_f(int lun, int *num_nodes)
Get the number of values in the current subset.
void copysb_f(int lunin, int lunot, int *iret)
Copy a BUFR data subset from one Fortran logical unit to another.
void get_inode_f(int lun, int *start_node)
Get the bufr node idx for the start node of the subset.
void openmg_f(int bufr_unit, const char *c_subset, int iddate)
Open a new message for output in a BUFR file that was previously opened for writing.
int iupbs01_f(int *bufr, const char *mnemonic)
Read a data value from Section 0 or Section 1 of a BUFR message.
void copymg_f(int lunin, int lunot)
Copy a BUFR message from one Fortran logical unit to another.
void cpymem_f(int lunot)
Copy a message from internal arrays to a file.
void ufbevn_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int dim_3, int *iret, const char *table_b_mnemonic)
Read one or more data values from a data subset.
void drfini_f(int bufr_unit, int *mdrf, int ndrf, const char *table_d_mnemonic)
Explicitly initialize delayed replication factors for writing to a data subset.
void dumpbf_f(int bufr_unit, int *jdate, int *jdump)
Get the Section 1 date-time from the first two "dummy" messages of an NCEP dump file.
void ufbmem_f(int lunit, int inew, int *iret, int *iunit)
Read an entire BUFR file into internal arrays.
int igetprm_f(const char *cprmnm)
Get the current value of a parameter.
void ufbmms_f(int imsg, int isub, char *subset, int *jdate, int subset_len)
Read a specified data subset from internal arrays.
void rdmems_f(int isub, int *iret)
Read a specified data subset from internal arrays.
void copybf_f(int lunin, int lunot)
Copy an entire BUFR file from one Fortran logical unit to another.
void writsa_f(int bufr_unit, int bufr_len, int *bufr, int *nbufr)
Write the next data subset to a BUFR message, and return a copy of any completed message.
void rdmemm_f(int imsg, char *subset, int *jdate, int subset_len, int *iret)
Read a specified message from internal arrays.
void ipkm_f(char *cbay, int nbyt, int ival, int cbay_len)
Encode an integer into a character string.
void minimg_f(int bufr_unit, int mini)
Write a minutes value into Section 1 of a BUFR message.
void get_val_f(int lun, double **val_ptr, int *val_size)
Get pointer to the moda_usrint VAL array.
void stndrd_f(int lunit, int *msgin, int lmsgot, int *msgot)
Standardize a copy of a BUFR message.
void ufbovr_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Overwrite one or more data values within a data subset.
void mesgbc_f(int lunin, int *mesgtyp, int *icomp)
Get information from the first data message in a BUFR file.
void ufbmex_f(int lunit, int lundx, int inew, int *iret, int *mesg)
Read an entire BUFR file into internal arrays.
void cobfl(const char *bfl, char io)
Open a new file for reading or writing BUFR messages via a C language interface.
Definition: crwbmg.c:119
void datebf_f(int bufr_unit, int *mear, int *mmon, int *mday, int *mour, int *idate)
Get the Section 1 date-time from the first data message of a BUFR file.
void check_for_bort_f(char *error_str, int error_str_len)
Check whether a bort error was caught during a previous call to a library function or subroutine.
void cnved4_f(int *msgin, int lmsgot, int *msgot)
Convert a BUFR message to edition 4.
void mesgbf_f(int lunit, int *mesgtyp)
Get information from the first data message in a BUFR file.
void cwbmg(const char *bmg, int nmb, int *iret)
Write a BUFR message to the file that was opened via the most recent call to function cobfl() with io...
Definition: crwbmg.c:280
void ufbseq_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_d_mnemonic)
Read/write an entire sequence of data values from/to a data subset.
void ufdump_f(int lunit, int luprt)
Print a verbose listing of the contents of a data subset.
void strcpt_f(const char *cf, int iyr, int imo, int idy, int ihr, int imi)
Specify a tank receipt time to be written into Section 1 of all future BUFR messages.
int igetmxby_f(void)
Get the maximum length of a BUFR message that can be written to an output file.
void maxout_f(int max0)
Define a customized maximum length for output BUFR messages.
void gettagpr_f(int lunit, const char *tagch, int ntagch, char *tagpr, int tagpr_len, int *iret)
Get the parent for a specified occurrence of a Table B or Table D mnemonic.
int ireadsb_f(int bufr_unit)
Read the next data subset from a BUFR message.
void openbf_f(int bufr_unit, const char *cio, int table_file_id)
Connect a new file to the library, or initialize the library, or change verbosity associated with alr...
void readerme_f(int *mesg, int bufr_unit, char *subset, int *iddate, int subset_len, int *ires)
Read a BUFR message from a memory array.
int ifbget_f(int bufr_unit)
Check if there are any more data subsets available within a BUFR message.
void ufbcup_f(int lunin, int lunot)
Copy unique elements of a data subset from one file to another.
void get_tag_f(char **tag_ptr, int *tag_len, int *mem_size)
Get copy of the moda_tables TAG array.
int isetprm_f(const char *cprmnm, int ipval)
Define a customized parameter value for dynamic allocation.
void get_inv_f(int lun, int **inv_ptr, int *inv_size)
Get pointer to the moda_usrint INV array.
void ufbqcd_f(int lunit, const char *cnemo, int *iqcd)
Return a prepbufr program code corresponding to a mnemonic.
void nemspecs_f(int file_unit, const char *mnemonic, int mnemonic_idx, int *scale, int *reference, int *bits, int *iret)
Get the scale factor, reference value and bit width associated with a specified occurrence of a Table...
void status_f(int file_unit, int *lun, int *il, int *im)
Check whether a file is connected to the library.
double getvalnb_f(int lunit, const char *tagpv, int ntagpv, const char *tagnb, int ntagnb)
Read a data value corresponding to a specific occurrence of a mnemonic.
void get_typ_f(char **typ_ptr, int *typ_len, int *mem_size)
Get copy of the moda_tables TYP array.
void get_link_f(int **link_ptr, int *link_size)
Get copy of the moda_tables LINK array.
void setvalnb_f(int lunit, const char *tagpv, int ntagpv, const char *tagnb, int ntagnb, double r8val, int *iret)
Write a data value corresponding to a specific occurrence of a mnemonic.
void codflg_f(const char *cf)
Specify whether to read code and flag table information from master BUFR tables.
void crbmg(char *bmg, int mxmb, int *nmb, int *iret)
Read the next BUFR message from the file that was opened via the most recent call to function cobfl()...
Definition: crwbmg.c:203
int ireadmg_f(int bufr_unit, char *subset, int *iddate, int subset_len)
Read the next message from a BUFR file.
int ibfms_f(double r8val)
Test whether a data value is "missing".
void ufbrms_f(int imsg, int isub, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read one or more data values from internal arrays.
void readsb_f(int bufr_unit, int *ires)
Read the next data subset from a BUFR message.
void stdmsg_f(const char *cf)
Specify whether to standardize future output BUFR messages.
void pkbs1_f(int ival, int *mbay, const char *c_s1m)
Specify a value to be written into Section 1 of a BUFR message.
void get_isc_f(int **isc_ptr, int *isc_size)
Get copy of the moda_tables ISC array.
void mtinfo_f(const char *path, int file_unit_1, int file_unit_2)
Specify location of master BUFR tables on local file system.
void ufbpos_f(int bufr_unit, int irec, int isub, char *subset, int *iddate, int subset_len)
Jump forwards or backwards to a specified data subset within a BUFR file.
void nemdefs_f(int file_unit, const char *mnemonic, char *unit_c, int unit_str_len, char *desc_c, int desc_str_len, int *iret)
Get the element name and units associated with a Table B mnemonic.
void ufbget_f(int bufr_unit, double *tab, int i1, int *iret, const char *table_b_mnemonic)
Read one or more data values from a data subset without advancing the subset pointer.
void ufbinx_f(int bufr_unit, int imsg, int isub, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read one or more data values from a specified data subset.
void readmg_f(int bufr_unit, char *subset, int *iddate, int subset_len, int *ires)
Read the next message from a BUFR file.
void close_f(int unit)
Close a Fortran file from a C program.
int iupvs01_f(int bufr_unit, const char *c_s01m)
Read a specified value from within Section 0 or 1 of a BUFR message.
void upftbv_f(int lunit, const char *cnemo, double val, int *ibit, int mxib, int *nib)
Get the bit settings equivalent to a given numerical value for a flag table mnemonic.
void ccbfl(void)
Close all files that were opened via previous calls to function cobfl().
Definition: crwbmg.c:316
void ufbint_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read/write one or more data values from/to a data subset.
void rtrcpt_f(int lunit, int *iyr, int *imo, int *idy, int *ihr, int *imi, int *iret)
Get the tank receipt time from Section 1 of a BUFR message.
void wrdxtb_f(int lundx, int lunot)
Generate DX BUFR table messages and write them to a output file.
void readlc_f(int lunit, const char *str_id, char *output_str, int output_str_len)
Read a long string from the BUFR file.
void upds3_f(int *mbay, int lcds3, char(*ccds3)[6], int *nds3)
Get the sequence of data descriptors contained within Section 3 of a BUFR message.
int ireadns_f(int bufr_unit, char *subset, int *iddate, int subset_len)
Read the next data subset from a BUFR file.
void exitbufr_f()
Reset the library.
void dxdump_f(int lunit, int luprt)
Print a copy of the DX BUFR table associated with a specified Fortran logical unit.
void ufbdmp_f(int lunit, int luprt)
Print a verbose listing of the contents of a data subset.
void nemtbb_f(int lun, int table_idx, char *unit_str, int unit_str_len, int *scale, int *reference, int *bits)
Get information about a Table B descriptor.
void datelen_f(int len)
Specify the format of Section 1 date-time values that will be output by future calls to message-readi...
void getcfmng_f(int lunit, const char *cnemoi, int ivali, const char *cnemod, int ivald, char *cmeang_c, int lcmgc, int *iret)
Get the meaning of a numerical value from a code or flag table.
void closmg_f(int bufr_unit)
Close a BUFR message.
void open_f(int unit, const char *filepath)
Open a Fortran file from a C program.
void openmb_f(int bufr_unit, const char *c_subset, int iddate)
Open a new message for output in a BUFR file that was previously opened for writing.
void delete_table_data_f()
Deletes the copies of the moda_tables arrays.
void nemtab_f(int lun, const char *mnemonic, int *descriptor, char *table_type, int *table_idx)
Get information about a descriptor.
int igetsc_f(int bufr_unit)
Check for an abnormal status code associated with the processing of a file.
void ufbtam_f(void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read one or more data values from every data subset in internal arrays.
void bvers_f(char *cverstr, int cverstr_len)
Get the version number of the NCEPLIBS-bufr software.
void atrcpt_f(int *msgin, int lmsgot, int *msgot)
Read a BUFR message and output an equivalent message with a tank receipt time added to Section 1.
void ufbcpy_f(int lunin, int lunot)
Copy a BUFR data subset from one Fortran logical unit to another.
void readns_f(int bufr_unit, char *subset, int *iddate, int subset_len, int *ires)
Read the next data subset from a BUFR file.
void get_irf_f(int **irf_ptr, int *irf_size)
Get copy of the moda_tables IRF array.
void ufbmns_f(int irep, char *subset, int *idate, int subset_len)
Read a specified data subset from internal arrays.
void invmrg_f(int lubfi, int lubfj)
Merge parts of data subsets.
void ufbcnt_f(int lunit, int *kmsg, int *ksub)
Get the current location of the file pointer within a BUFR file.
void cmpmsg_f(const char *cf)
Specify the use of compression when writing BUFR messages.
void get_itp_f(int **itp_ptr, int *itp_size)
Get copy of the moda_tables ITP array.
void ufbstp_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read/write one or more data values from/to a data subset.
void writsb_f(int bufr_unit)
Write the next data subset to a BUFR message.
void ufbqcp_f(int lunit, int iqcp, char *cnemo, int cnemo_len)
Return a mnemonic corresponding to a prepbufr program code.
void writlc_f(int lunit, const char *str, const char *chr)
Write a long string to the BUFR file.
int lcmgdf_f(int bufr_unit, const char *c_subset)
Check if a subset definition contains any long character strings.
void pkvs01_f(const char *c_s01m, int ival)
Specify a value to be written into Section 0 or 1 of all future BUFR messages.
integer ibit
Bit pointer within ibay.
integer, dimension(:,:), allocatable mbay
Current BUFR message for each file ID.
integer *8, dimension(:), allocatable ival
BUFR data subset values.
integer, dimension(:), allocatable idate
Section 1 date-time of message.
real *8, dimension(:,:), allocatable, target val
Data values.