1 #include <stdlib.h>
2 #include  "grib2.h"
3 
g2_free(gribfield * gfld)4 void g2_free(gribfield *gfld)
5 //$$$  SUBPROGRAM DOCUMENTATION BLOCK
6 //                .      .    .                                       .
7 // SUBPROGRAM:    g2_free
8 //   PRGMMR: Gilbert         ORG: W/NP11    DATE: 2002-10-28
9 //
10 // ABSTRACT: This routine frees up memory that was allocated for
11 //   struct gribfield.
12 //
13 // PROGRAM HISTORY LOG:
14 // 2002-10-28  Gilbert
15 //
16 // USAGE:    g2_free(gribfield *gfld)
17 //   ARGUMENT:
18 //     gfld - pointer to gribfield structure (defined in include file grib2.h)
19 //            returned from routine g2_getfld.
20 //
21 // REMARKS:  This routine must be called to free up memory used by
22 //           the decode routine, g2_getfld, when user no longer needs to
23 //           reference this data.
24 //
25 // ATTRIBUTES:
26 //   LANGUAGE: C
27 //   MACHINE:
28 //
29 //$$$
30 {
31 
32       if (gfld->idsect != 0 ) free(gfld->idsect);
33       if (gfld->local != 0 ) free(gfld->local);
34       if (gfld->list_opt != 0 ) free(gfld->list_opt);
35       if (gfld->igdtmpl != 0 ) free(gfld->igdtmpl);
36       if (gfld->ipdtmpl != 0 ) free(gfld->ipdtmpl);
37       if (gfld->coord_list != 0 ) free(gfld->coord_list);
38       if (gfld->idrtmpl != 0 ) free(gfld->idrtmpl);
39       if (gfld->bmap != 0 ) free(gfld->bmap);
40       if (gfld->fld != 0 ) free(gfld->fld);
41       free(gfld);
42 
43       return;
44 }
45