NCEPLIBS-g2  3.5.0
g2getgb2.F90 File Reference

The getgb2 subroutines find and unpack a GRIB2 message in a file. More...

Go to the source code of this file.

Functions/Subroutines

subroutine getgb2 (lugb, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, unpack, k, gfld, iret)
 This is a legacy version of getgb2i2(). More...
 
subroutine getgb2i2 (lugb, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, unpack, idxver, k, gfld, iret)
 Find and unpack a GRIB2 message in a file, using an version 1 or 2 index record which is either found in memory, read from an index file, or generated. More...
 
subroutine getgb2l (lugb, cindex, gfld, iret)
 Read and unpack a local use section from a GRIB2 index record (index format 1) and GRIB2 file. More...
 
subroutine getgb2l2 (lugb, idxver, cindex, gfld, iret)
 Read and unpack a local use section from a GRIB2 index record (index format 1 or 2) and GRIB2 file. More...
 
subroutine getgb2p (lugb, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, extract, k, gribm, leng, iret)
 Legacy subroutine to find and extract a GRIB2 message from a file. More...
 
subroutine getgb2p2 (lugb, lugi, j, jdisc, jids, jpdtn, jpdt, jgdtn, jgdt, extract, idxver, k, gribm, leng8, iret)
 Find and extract a GRIB2 message from a file. More...
 
subroutine getgb2r (lugb, cindex, gfld, iret)
 Read and unpack sections 6 and 7 from a GRIB2 message using a version 1 index record. More...
 
subroutine getgb2r2 (lugb, idxver, cindex, gfld, iret)
 Read and unpack sections 6 and 7 from a GRIB2 message using a version 1 or version 2 index record. More...
 
subroutine getgb2rp (lugb, cindex, extract, gribm, leng, iret)
 Extract a grib message from a file given the index (index format 1) of the requested field. More...
 
subroutine getgb2rp2 (lugb, idxver, cindex, extract, gribm, leng8, iret)
 Extract a grib message from a file given the version 1 or 2 index of the requested field. More...
 

Detailed Description

The getgb2 subroutines find and unpack a GRIB2 message in a file.

Author
Ed Hartnett
Date
Mar 6, 2024

Definition in file g2getgb2.F90.

Function/Subroutine Documentation

◆ getgb2()

subroutine getgb2 ( integer, intent(in)  lugb,
integer, intent(in)  lugi,
integer, intent(in)  j,
integer, intent(in)  jdisc,
integer, dimension(*)  jids,
integer, intent(in)  jpdtn,
integer, dimension(*)  jpdt,
integer, intent(in)  jgdtn,
integer, dimension(*)  jgdt,
logical, intent(in)  unpack,
integer, intent(out)  k,
type(gribfield), intent(out)  gfld,
integer, intent(out)  iret 
)

This is a legacy version of getgb2i2().

It finds and unpacks a GRIB2 message in a file, using an version 1 index record which is either found in memory, read from an index file, or generated.

Users of this routine must:

  1. include a use grib_mod
  2. call gf_free() on the grib_mod::gribfield parameter
  3. free library memory with gf_finalize()

For more details, see getgb2i2().

Parameters
[in]lugbinteger unit of the unblocked grib data file. File must be opened with baopen() or baopenr() before calling this routine.
[in]lugiinteger unit of the unblocked grib index file. If nonzero, file must be opened with baopen() or baopenr() before calling this routine. lugi may be:
  • > 0 read index from index file lugi, if index doesn"t already exist.
  • = 0 to get index buffer from the grib file, if index doesn"t already exist.
  • < 0 force reread of index from index file abs(lugi).
  • = lugb force regeneration of index from GRIB2 file lugb.
[in]jinteger number of fields to skip (0 to search from beginning).
[in]jdiscGRIB2 discipline number of requested field: –1 accept any discipline
  • 0 meteorological products
  • 1 hydrological products
  • 2 land surface products
  • 3 space products
  • 10 oceanographic products
[in]JIDSinteger array of values in the identification section (=-9999 for wildcard).
[in]jpdtninteger product definition template number (n) (if = -1, don't bother matching pdt - accept any)
[in]JPDTinteger array of values defining the product definition template 4.n of the field for which to search (=-9999 for wildcard)
[in]jgdtninteger grid definition template number (m) (if = -1, don't bother matching gdt - accept any )
[in]JGDTinteger array of values defining the grid definition template 3.m of the field for which to search (=-9999 for wildcard)
[in]unpacklogical value indicating whether to unpack bitmap/data
  • .TRUE. unpack bitmap and data values
  • .FALSE. do not unpack bitmap and data values
[out]kinteger field number unpacked
[out]gfldderived type grib_mod::gribfield.
[out]iretinteger return code
  • 0 all ok
  • 96 error reading index
  • 97 error reading grib file
  • 99 request not found
  • other gf_getfld grib2 unpacker return code
Author
Mark Iredell, Ed Hartnett
Date
1994-04-01

Definition at line 62 of file g2getgb2.F90.

References getgb2i2().

◆ getgb2i2()

subroutine getgb2i2 ( integer, intent(in)  lugb,
integer, intent(in)  lugi,
integer, intent(in)  j,
integer, intent(in)  jdisc,
integer, dimension(*)  jids,
integer, intent(in)  jpdtn,
integer, dimension(*)  jpdt,
integer, intent(in)  jgdtn,
integer, dimension(*)  jgdt,
logical, intent(in)  unpack,
integer, intent(in)  idxver,
integer, intent(out)  k,
type(gribfield), intent(out)  gfld,
integer, intent(out)  iret 
)

Find and unpack a GRIB2 message in a file, using an version 1 or 2 index record which is either found in memory, read from an index file, or generated.

This subroutine is similar to getgb2(), but allows the caller to specify the index version of the generated index (if one is generated). Use index version 2 for all new code, as it handles all GRIB2 files, including files > 2 GB. Use index version 1 for backward compatibility, but it does not work past the first 2 GB of the file.

The GRIB field request specifies the number of fields to skip and the unpacked identification section, grid definition template and product defintion section parameters. (A requested parameter of -9999 means to allow any value of this parameter to be found.)

If the requested GRIB field is found, then it is read from the GRIB file and unpacked. Its number is returned along with the associated unpacked parameters. the bitmap (if any); the data values are unpacked only if argument unpack is set to true. If the GRIB field is not found, then the return code will be nonzero.

The decoded information for the selected GRIB field is returned in a derived type variable, gfld, which is of type grib_mod::gribfield. Users of this routine will need to include the line "use grib_mod" in their calling routine.

Derived type grib_mod::gribfield contains pointers to many arrays of data. Users must free this memory by calling gf_free().

This subroutine calls getidx2(), which allocates memory and stores the resulting pointers in an array that is a Fortran "save" variable. The result is that the memory will not be freed by the library and cannot be reached by the caller. To free this memory call gf_finalize() after all library operations are complete.

Note
Specify an index file if feasible to increase speed. Do not engage the same logical unit from more than one processor.
Parameters
[in]lugbinteger unit of the unblocked grib data file. File must be opened with baopen() or baopenr() before calling this routine.
[in]lugiinteger unit of the unblocked grib index file. If nonzero, file must be opened with baopen() or baopenr() before calling this routine. lugi may be:
  • > 0 read index from index file lugi, if index doesn"t already exist.
  • = 0 to get index buffer from the grib file, if index doesn"t already exist.
  • < 0 force reread of index from index file abs(lugi).
  • = lugb force regeneration of index from GRIB2 file lugb.
[in]jinteger number of fields to skip (0 to search from beginning).
[in]jdiscGRIB2 discipline number of requested field: –1 accept any discipline
  • 0 meteorological products
  • 1 hydrological products
  • 2 land surface products
  • 3 space products
  • 10 oceanographic products
[in]JIDSinteger array of values in the identification section (=-9999 for wildcard)
  • JIDS(1) identification of originating centre (see common code table c-1)
  • JIDS(2) identification of originating sub-centre
  • JIDS(3) grib master tables version number (see code table 1.0) 0 experimental;1 initial operational version number.
  • JIDS(4) grib local tables version number (see code table 1.1) 0 local tables not used; 1-254 number of local tables version used.
  • JIDS(5) significance of reference time (code table 1.2) 0 analysis; 1 start of forecast; 2 verifying time of forecast; 3 observation time
  • JIDS(6) year (4 digits)
  • JIDS(7) month
  • JIDS(8) day
  • JIDS(9) hour
  • JIDS(10) minute
  • JIDS(11) second
  • JIDS(12) production status of processed data (see code table 1.3) 0 operational products; 1 operational test products; 2 research products; 3 re-analysis products.
  • JIDS(13) type of processed data (see code table 1.4) 0 analysis products; 1 forecast products; 2 analysis and forecast products; 3 control forecast products; 4 perturbed forecast products; 5 control and perturbed forecast products; 6 processed satellite observations; 7 processed radar observations.
[in]jpdtninteger product definition template number (n) (if = -1, don't bother matching pdt - accept any)
[in]JPDTinteger array of values defining the product definition template 4.n of the field for which to search (=-9999 for wildcard)
[in]jgdtninteger grid definition template number (m) (if = -1, don't bother matching gdt - accept any )
[in]JGDTinteger array of values defining the grid definition template 3.m of the field for which to search (=-9999 for wildcard)
[in]unpacklogical value indicating whether to unpack bitmap/data
  • .TRUE. unpack bitmap and data values
  • .FALSE. do not unpack bitmap and data values
[in]idxverIndex version of the cindex buffer.
[out]kinteger field number unpacked
[out]gfldderived type grib_mod::gribfield.
[out]iretinteger return code
  • 0 all ok
  • 96 error reading index
  • 97 error reading grib file
  • 99 request not found
  • other gf_getfld grib2 unpacker return code
Author
Ed Hartnett, Mark Iredell
Date
2024-03-19

Definition at line 191 of file g2getgb2.F90.

References g2logging::g2_log(), g2logging::g2_log_msg, getgb2l2(), getgb2r2(), getgb2s2(), getidx2(), and gf_free().

Referenced by getgb2().

◆ getgb2l()

subroutine getgb2l ( integer, intent(in)  lugb,
character(len = 1), dimension(*), intent(in)  cindex,
type(gribfield gfld,
integer, intent(out)  iret 
)

Read and unpack a local use section from a GRIB2 index record (index format 1) and GRIB2 file.

This subprogram is intended for private use by getgb2() routine only.

Note that derived type gribfield contains pointers to many arrays of data. Users must free this memory with gf_free().

This subroutine supports only index format 1, which will not work for files > 2 GB. New code should use getgb2l2().

Parameters
[in]lugbinteger unit of the unblocked grib data file.
[in]cindexindex record of the grib field (see ix2gb2() for description of an index record.)
[out]gfldderived type gribfield grib_mod::gribfield.
[out]iretinteger return code
  • 0 all ok
  • 97 error reading grib file
  • other gf_getfld grib2 unpacker return code
Author
Stephen Gilbert
Date
2002-05-07

Definition at line 309 of file g2getgb2.F90.

References getgb2l2().

◆ getgb2l2()

subroutine getgb2l2 ( integer, intent(in)  lugb,
integer, intent(in)  idxver,
character(len = 1), dimension(*), intent(in)  cindex,
type(gribfield gfld,
integer, intent(out)  iret 
)

Read and unpack a local use section from a GRIB2 index record (index format 1 or 2) and GRIB2 file.

This subroutine decodes information for the selected GRIB2 field and returns it in a derived type variable, gfld. gfld is of type grib_mod::gribfield. Users of this routine will need to include the line "use grib_mod" in their calling routine.

This subprogram is intended for private use by getgb2() routine only.

Note that derived type gribfield contains pointers to many arrays of data. Users must free this memory with gf_free().

Parameters
[in]lugbinteger unit of the unblocked grib data file.
[in]idxverIndex version of the cindex buffer.
[in]cindexindex record of the grib field (see ix2gb2() for description of an index record.)
[out]gfldderived type gribfield grib_mod::gribfield.
[out]iretinteger return code
  • 0 all ok
  • 97 error reading grib file
  • other gf_getfld grib2 unpacker return code
Author
Stephen Gilbert
Date
2002-05-07

Definition at line 357 of file g2getgb2.F90.

References g2_gbytec1(), g2_gbytec81(), g2logging::g2_log(), g2logging::g2_log_msg, and gf_unpack2().

Referenced by getgb2i2(), and getgb2l().

◆ getgb2p()

subroutine getgb2p ( integer, intent(in)  lugb,
integer, intent(in)  lugi,
integer, intent(in)  j,
integer, intent(in)  jdisc,
integer, dimension(*)  jids,
integer, intent(in)  jpdtn,
integer, dimension(*)  jpdt,
integer, intent(in)  jgdtn,
integer, dimension(*)  jgdt,
logical, intent(in)  extract,
integer, intent(out)  k,
character(len = 1), dimension(:), pointer  gribm,
integer, intent(out)  leng,
integer, intent(out)  iret 
)

Legacy subroutine to find and extract a GRIB2 message from a file.

Use getgb2p2() for new code.

This subroutine reads a GRIB index file (or optionally the GRIB file itself) to get the index buffer (i.e. table of contents) for the GRIB file. It finds in the index buffer a reference to the GRIB field requested.

The GRIB field request specifies the number of fields to skip and the unpacked identification section, grid definition template and product defintion section parameters. (A requested parameter of -9999 means to allow any value of this parameter to be found.)

If the requested GRIB field is found, then it is read from the GRIB file and unpacked. If the GRIB field is not found, then the return code will be nonzero.

The derived type grib_mod::gribfield contains allocated memory that must be freed by the caller with subroutine gf_free().

Note
Specifing an index file may increase speed. Do not engage the same logical unit from more than one processor.
Parameters
[in]lugbUnit of the unblocked GRIB data file. The file must have been opened with baopen() or baopenr() before calling this routine.
[in]lugiUnit of the unblocked GRIB index file. If nonzero, file must have been opened with baopen() or baopenr() before calling this subroutine. Set to 0 to get index buffer from the GRIB file.
[in]jNumber of fields to skip (set to 0 to search from beginning).
[in]jdiscGRIB2 discipline number of requested field. See GRIB2 - TABLE 0.0 - DISCIPLINE. Use -1 to accept any discipline.
[in]jidsArray of values in the identification section. (Set to -9999 for wildcard.)
[in]jpdtnProduct Definition Template (PDT) number (n) (if = -1, don't bother matching PDT - accept any)
[in]jpdtArray of values defining the Product Definition Template of the field for which to search (=-9999 for wildcard).
[in]jgdtnGrid Definition Template (GDT) number (if = -1, don't bother matching GDT - accept any).
[in]jgdtarray of values defining the Grid Definition Template of the field for which to search (=-9999 for wildcard).
[in]extractvalue indicating whether to return a GRIB2 message with just the requested field, or the entire GRIB2 message containing the requested field.
  • .true. return GRIB2 message containing only the requested field.
  • .false. return entire GRIB2 message containing the requested field.
[out]kfield number unpacked.
[out]gribmreturned GRIB message.
[out]lenglength of returned GRIB message in bytes.
[out]iretinteger return code
  • 0 No error.
  • 96 Error reading index.
  • 97 Error reading GRIB file.
  • 99 Request not found.
Author
Mark Iredell
Date
1994-04-01

Definition at line 520 of file g2getgb2.F90.

References getgb2p2().

◆ getgb2p2()

subroutine getgb2p2 ( integer, intent(in)  lugb,
integer, intent(in)  lugi,
integer, intent(in)  j,
integer, intent(in)  jdisc,
integer, dimension(*)  jids,
integer, intent(in)  jpdtn,
integer, dimension(*)  jpdt,
integer, intent(in)  jgdtn,
integer, dimension(*)  jgdt,
logical, intent(in)  extract,
integer, intent(inout)  idxver,
integer, intent(out)  k,
character(len = 1), dimension(:), pointer  gribm,
integer (kind = 8), intent(out)  leng8,
integer, intent(out)  iret 
)

Find and extract a GRIB2 message from a file.

This subroutine reads a GRIB index file (or optionally the GRIB file itself) to get the index buffer (i.e. table of contents) for the GRIB file. It finds in the index buffer a reference to the GRIB field requested.

The GRIB field request specifies the number of fields to skip and the unpacked identification section, grid definition template and product defintion section parameters. (A requested parameter of -9999 means to allow any value of this parameter to be found.)

If the requested GRIB field is found, then it is read from the GRIB file and unpacked. If the GRIB field is not found, then the return code will be nonzero.

The derived type grib_mod::gribfield contains allocated memory that must be freed by the caller with subroutine gf_free().

Note
Specifing an index file may increase speed. Do not engage the same logical unit from more than one processor.
Parameters
[in]lugbUnit of the unblocked GRIB data file. The file must have been opened with baopen() or baopenr() before calling this routine.
[in]lugiUnit of the unblocked GRIB index file. If nonzero, file must have been opened with baopen() or baopenr() before calling this subroutine. Set to 0 to get index buffer from the GRIB file.
[in]jNumber of fields to skip (set to 0 to search from beginning).
[in]jdiscGRIB2 discipline number of requested field. See GRIB2 - TABLE 0.0 - DISCIPLINE. Use -1 to accept any discipline.
[in]jidsArray of values in the identification section. (Set to -9999 for wildcard.)
[in]jpdtnProduct Definition Template (PDT) number (n) (if = -1, don't bother matching PDT - accept any)
[in]jpdtArray of values defining the Product Definition Template of the field for which to search (=-9999 for wildcard).
[in]jgdtnGrid Definition Template (GDT) number (if = -1, don't bother matching GDT - accept any).
[in]jgdtarray of values defining the Grid Definition Template of the field for which to search (=-9999 for wildcard).
[in]extractvalue indicating whether to return a GRIB2 message with just the requested field, or the entire GRIB2 message containing the requested field.
  • .true. return GRIB2 message containing only the requested field.
  • .false. return entire GRIB2 message containing the requested field.
[in]idxverThe index version, use 2 for new code, 1 for legacy index files.
[out]kfield number unpacked.
[out]gribmreturned GRIB message.
[out]leng8length of returned GRIB message in bytes.
[out]iretinteger return code
  • 0 No error.
  • 96 Error reading index.
  • 97 Error reading GRIB file.
  • 99 Request not found.
Author
Alex Richert, Edward Hartnett
Date
2024-05-21

Definition at line 654 of file g2getgb2.F90.

References getg2i2(), getg2i2r(), getgb2rp2(), getgb2s2(), and gf_free().

Referenced by getgb2p().

◆ getgb2r()

subroutine getgb2r ( integer, intent(in)  lugb,
character(len=1), dimension(*), intent(in)  cindex,
type(gribfield gfld,
integer, intent(out)  iret 
)

Read and unpack sections 6 and 7 from a GRIB2 message using a version 1 index record.

This function is maintained for backward compatibility. New code should use getgb2r2(), which can handle both version 1 and version 2 index records.

Metadata for the field must already exists in derived type grib_mod::gribfield. Specifically, it requires gfld%ibmap, gfld%ngrdpts, gfld%idrtnum, gfld%idrtmpl, and gfld%ndpts.

The field data is returned in derived type variable, gfld, of type grib_mod::gribfield. Users of this routine will need to include the line "use grib_mod" in their calling routine.

This subprogram is intended for private use by getgb2() routines only.

Derived type gribfield contains pointers to many arrays of data. Users must free this memory by calling gf_free().

Parameters
[in]lugbinteger unit of the unblocked grib data file. File must be opened with baopen() or baopenr() before calling this routine.
[in]cindexversion 1 index record of the field (see subroutine ix2gb2() for description of an index record.)
[out]gfldderived type grib_mod::gribfield.
[out]iretReturn code:
  • 0 all ok
  • 97 error reading grib file
  • other gf_getfld grib2 unpacker return code
Author
Stephen Gilbert, Ed Hartnett
Date
2002-01-11

Definition at line 797 of file g2getgb2.F90.

References getgb2r2().

◆ getgb2r2()

subroutine getgb2r2 ( integer, intent(in)  lugb,
integer, intent(in)  idxver,
character(len=1), dimension(*), intent(in)  cindex,
type(gribfield gfld,
integer, intent(out)  iret 
)

Read and unpack sections 6 and 7 from a GRIB2 message using a version 1 or version 2 index record.

Metadata for the field must already exists in derived type grib_mod::gribfield. Specifically, it requires gfld%ibmap, gfld%ngrdpts, gfld%idrtnum, gfld%idrtmpl, and gfld%ndpts.

The field data is returned in derived type variable, gfld, of type grib_mod::gribfield. Users of this routine will need to include the line "use grib_mod" in their calling routine.

This subprogram is intended for private use by getgb2() routines only.

Derived type gribfield contains pointers to many arrays of data. Users must free this memory by calling gf_free().

Note
Do not engage the same logical unit from more than one processor.
Parameters
[in]lugbinteger unit of the unblocked grib data file. File must be opened with baopen() or baopenr() before calling this routine.
[in]idxverIndex version, 1 for legacy, 2 if file may be > 2 GB.
[in]cindexversion 1 or 2 index record of the grib field (see subroutine ixgb2() for description of an index record.)
[out]gfldderived type grib_mod::gribfield.
[out]iretReturn code:
  • 0 all ok
  • 97 error reading grib file
  • other gf_getfld grib2 unpacker return code
Author
Ed Hartnett, Stephen Gilbert
Date
Feb 14, 2024

Definition at line 856 of file g2getgb2.F90.

References g2_gbytec1(), g2_gbytec81(), g2logging::g2_log(), g2logging::g2_log_msg, gf_unpack6(), and gf_unpack7().

Referenced by getgb2i2(), and getgb2r().

◆ getgb2rp()

subroutine getgb2rp ( integer, intent(in)  lugb,
character(len = 1), dimension(*), intent(in)  cindex,
logical, intent(in)  extract,
character(len = 1), dimension(:), pointer  gribm,
integer, intent(out)  leng,
integer, intent(out)  iret 
)

Extract a grib message from a file given the index (index format 1) of the requested field.

This subroutine is maintained for backward compatibility. New code should use getgb2rp2().

The GRIB message returned can contain only the requested field (extract=.true.), or the complete GRIB message originally containing the desired field can be returned (extract=.false.) even if other fields were included in the GRIB message.

If the GRIB field is not found, then the return code will be nonzero.

Note
For files greater than 2 GB, this subroutine will only work if the message is within the first 2 GB of the file.
Parameters
[in]lugbinteger unit of the unblocked grib data file. file must be opened with baopen() or baopenr() before calling this routine.
[in]cindexIndex record of the grib field (see docunentation of subroutine ix2gb2() for description of an index record.)
[in]extractLogical value indicating whether to return a GRIB2 message with just the requested field, or the entire GRIB2 message containing the requested field.
  • .true. = return grib2 message containing only the requested field.
  • .false. = return entire grib2 message containing the requested field.
[out]gribmReturned grib message.
[out]lengLength of returned grib message in bytes.
[out]iretReturn code:
  • 0 No error.
  • 97 Error reading grib file.
Author
Stephen Gilbert, Ed Hartnett
Date
2003-12-31

Definition at line 1084 of file g2getgb2.F90.

References getgb2rp2().

◆ getgb2rp2()

subroutine getgb2rp2 ( integer, intent(in)  lugb,
integer, intent(inout)  idxver,
character(len = 1), dimension(*), intent(in)  cindex,
logical, intent(in)  extract,
character(len = 1), dimension(:), pointer  gribm,
integer (kind = 8), intent(out)  leng8,
integer, intent(out)  iret 
)

Extract a grib message from a file given the version 1 or 2 index of the requested field.

The GRIB message returned can contain only the requested field (extract=.true.), or the complete GRIB message originally containing the desired field can be returned (extract=.false.) even if other fields were included in the GRIB message.

If the GRIB field is not found, then the return code will be nonzero.

Parameters
[in]lugbinteger unit of the unblocked grib data file. file must be opened with baopen() or baopenr() before calling this routine.
[in]idxverVersion of index, use 1 for legacy, 2 if files may be > 2 GB.
[in]cindexIndex record of the grib field (see docunentation of subroutine ixgb2() for description of an index record.)
[in]extractLogical value indicating whether to return a GRIB2 message with just the requested field, or the entire GRIB2 message containing the requested field.
  • .true. = return grib2 message containing only the requested field.
  • .false. = return entire grib2 message containing the requested field.
[out]gribmReturned grib message.
[out]leng8Length of returned grib message in bytes.
[out]iretReturn code:
  • 0 No error.
  • 97 Error reading grib file.
Author
Edward Hartnett, Stephen Gilbert
Date
Feb 13, 2024

Definition at line 1147 of file g2getgb2.F90.

References g2_gbytec1(), g2_gbytec8(), g2_gbytec81(), g2logging::g2_log(), g2logging::g2_log_msg, and g2_sbytec81().

Referenced by getgb2p2(), and getgb2rp().