1 #ifndef DEGRIB1_H
2 #define DEGRIB1_H
3 
4 #include <stdio.h>
5 #include "type.h"
6 #include "meta.h"
7 #include "degrib2.h"
8 #include "inventory.h"
9 
10 typedef struct {
11     const char *name, *comment, *unit;
12     unit_convert convert;
13 } GRIB1ParmTable;
14 
15 typedef struct {
16    const char *name, *comment, *unit;
17    char f_twoPart;
18 } GRIB1SurfTable;
19 
20 extern const GRIB1ParmTable parm_table_ncep_opn[256];
21 extern const GRIB1ParmTable parm_table_ncep_reanal[256];
22 extern const GRIB1ParmTable parm_table_ncep_tdl[256];
23 extern const GRIB1ParmTable parm_table_ncep_mdl[256];
24 extern const GRIB1ParmTable parm_table_omb[256];
25 extern const GRIB1ParmTable parm_table_nceptab_129[256];
26 extern const GRIB1ParmTable parm_table_nceptab_130[256];
27 extern const GRIB1ParmTable parm_table_nceptab_131[256];
28 extern const GRIB1ParmTable parm_table_nceptab_133[256];
29 extern const GRIB1ParmTable parm_table_nceptab_140[256];
30 extern const GRIB1ParmTable parm_table_nceptab_141[256];
31 
32 extern const GRIB1ParmTable parm_table_nohrsc[256];
33 
34 extern const GRIB1ParmTable parm_table_cptec_254[256];
35 
36 extern const GRIB1ParmTable parm_table_afwa_000[256];
37 extern const GRIB1ParmTable parm_table_afwa_001[256];
38 extern const GRIB1ParmTable parm_table_afwa_002[256];
39 extern const GRIB1ParmTable parm_table_afwa_003[256];
40 extern const GRIB1ParmTable parm_table_afwa_010[256];
41 extern const GRIB1ParmTable parm_table_afwa_011[256];
42 
43 extern const GRIB1ParmTable parm_table_dwd_002[256];
44 extern const GRIB1ParmTable parm_table_dwd_201[256];
45 extern const GRIB1ParmTable parm_table_dwd_202[256];
46 extern const GRIB1ParmTable parm_table_dwd_203[256];
47 
48 extern const GRIB1ParmTable parm_table_ecmwf_128[256];
49 extern const GRIB1ParmTable parm_table_ecmwf_129[256];
50 extern const GRIB1ParmTable parm_table_ecmwf_130[256];
51 extern const GRIB1ParmTable parm_table_ecmwf_131[256];
52 extern const GRIB1ParmTable parm_table_ecmwf_140[256];
53 extern const GRIB1ParmTable parm_table_ecmwf_150[256];
54 extern const GRIB1ParmTable parm_table_ecmwf_160[256];
55 extern const GRIB1ParmTable parm_table_ecmwf_170[256];
56 extern const GRIB1ParmTable parm_table_ecmwf_180[256];
57 extern const GRIB1ParmTable parm_table_ecmwf_228[256];
58 
59 extern const GRIB1ParmTable parm_table_athens[256];
60 
61 extern const GRIB1ParmTable parm_table_norway128[256];
62 
63 extern const GRIB1ParmTable parm_table_cmc[256];
64 
65 extern const GRIB1ParmTable parm_table_undefined[256];
66 
67 extern const GRIB1SurfTable GRIB1Surface[256];
68 
69 int GRIB1_Inventory (VSILFILE *fp, uInt4 gribLen, inventoryType * inv);
70 
71 int GRIB1_RefTime (VSILFILE *fp, uInt4 gribLen, double *refTime);
72 
73 int ReadGrib1Record (VSILFILE *fp, sChar f_unit, double **Grib_Data,
74                      uInt4 *grib_DataLen, grib_MetaData * meta,
75                      IS_dataType * IS, sInt4 sect0[SECT0LEN_WORD],
76                      uInt4 gribLen, double majEarth, double minEarth);
77 #endif
78