g2cinq.c(3)

πŸ“¦
version 2.3.0 Β· 2 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– g2cinq.c β€” Library Functions Manual, section 3 πŸ’–

okay bestie, welcome to the inquiry corner of NCEPLIBS-g2c πŸ¦‹ this is the page for g2cinq.c, and it's giving "let me ask the GRIB2 file some questions" energy. all the functions here are about learning things, not changing things. pure gossip, no drama. πŸ’…


✨ NAME ✨

g2cinq.c β€” Inquiry functions.

like. that's it. that's the name. iconic behavior honestly πŸŽ€


🌸 SYNOPSIS 🌸

#include 'grib2_int.h'
#include <stdarg.h>

🫢 Functions

  • EXTERN_MUTEX (m) β€” if pthreads are enabled, use an externally-defined mutex for thread-safety. keeping it safe out here fr fr πŸ”₯
  • int g2c_inq (int g2cid, int *num_msg) β€” learn about a GRIB2 file.
  • int g2c_inq_dim (int g2cid, int msg_num, int prod_num, int dim_num, size_t *len, char *name, float *val) β€” learn about the one of the dimensions of a GRIB2 product.
  • int g2c_inq_dim_info (int g2cid, int msg_num, int prod_num, int dim_num, size_t *len, char *name) β€” learn about the one of the dimensions of a GRIB2 product.
  • int g2c_inq_msg (int g2cid, int msg_num, unsigned char *discipline, int *num_fields, int *num_local, short *center, short *subcenter, unsigned char *master_version, unsigned char *local_version) β€” learn about a GRIB2 message.
  • int g2c_inq_msg_time (int g2cid, int msg_num, unsigned char *sig_ref_time, short *year, unsigned char *month, unsigned char *day, unsigned char *hour, unsigned char *minute, unsigned char *second) β€” learn about the date/time information in a GRIB2 message.
  • int g2c_inq_prod (int g2cid, int msg_num, int prod_num, int *pds_template_len, long long int *pds_template, int *gds_template_len, long long int *gds_template, int *drs_template_len, long long int *drs_template) β€” inquire about a product.

πŸ‘‘ Variables

  • G2C_FILE_INFO_T g2c_file [G2C_MAX_FILES+1] β€” global file information.

πŸ’œ Detailed Description πŸ’œ

Inquiry functions. that's the whole vibe. you ask, it answers. πŸ’–

🌈 Author

Ed Hartnett

🌈 Date

10/21/22

🌈 Definition in file g2cinq.c.


πŸ’… Function Documentation πŸ’…

✨ EXTERN_MUTEX (m ) ✨

If pthreads are enabled, use externally-defined mutex for thread-safety.

like, no cap, this is the lock so your threads don't trip over each other 🫢


✨ int g2c_inq (int g2cid, int * num_msg) ✨

Learn about a GRIB2 file. the whole file. one little query, so much tea β˜•

Parameters

  • g2cid β€” ID of the opened file, as from g2c_open().
  • num_msg β€” Pointer that gets the number of messages in the file. Ignored if NULL.

Returns

  • G2C_NOERROR β€” No error. πŸŽ‰
  • G2C_EBADID β€” File ID not found. πŸ’€

Author

Ed Hartnett

Date

10/21/22

Definition at line 31 of file g2cinq.c.

References

G2C_EBADID, g2c_file, G2C_MAX_FILES, G2C_NOERROR, MUTEX_LOCK, and MUTEX_UNLOCK.


✨ int g2c_inq_dim (int g2cid, int msg_num, int prod_num, int dim_num, size_t * len, char * name, float * val) ✨

Learn about the one of the dimensions of a GRIB2 product. This function will return the size, name, and values along the dimension. yes bestie, all three β€” she's generous πŸ’…

Parameters

  • g2cid β€” ID of the opened file, as from g2c_open().
  • msg_num β€” Number of the message in the file, starting with the first message as 0. (zero-indexed, the way the universe intended ✨)
  • prod_num β€” Product number.
  • dim_num β€” Dimension number, with the first dimension as 0.
  • len β€” Pointer that gets the length of this dimension. Ignored if NULL.
  • name β€” Pointer that gets the name of this dimension. Must have memory of size G2C_MAX_NAME. Ignored if NULL.
  • val β€” Pointer that gets array of dimension values, of length len. Ignored if NULL.

Returns

  • G2C_NOERROR β€” No error.
  • G2C_EBADID β€” File ID not found.
  • G2C_ENOMSG β€” Message not found.
  • G2C_ENOPRODUCT β€” Product not found.
  • G2C_ENOSECTION β€” GDS not found.

Author

Ed Hartnett

Date

10/21/22

Definition at line 372 of file g2cinq.c.

References

G2C_EBADID, G2C_EINVAL, G2C_ENOMSG, G2C_ENOPRODUCT, G2C_ENOSECTION, g2c_file, G2C_MAX_FILES, G2C_MAX_NAME, G2C_NOERROR, g2c_dim_info::len, g2c_message_info::msg_num, MUTEX_LOCK, MUTEX_UNLOCK, g2c_dim_info::name, g2c_message_info::next, g2c_section_info::next, g2c_section_info::prev, g2c_message_info::sec, g2c_section_info::sec_info, g2c_section_info::sec_num, and g2c_dim_info::value.

Referenced by

g2c_inq_dim_info().


✨ int g2c_inq_dim_info (int g2cid, int msg_num, int prod_num, int dim_num, size_t * len, char * name) ✨

Learn about the one of the dimensions of a GRIB2 product. This function will return the size and name of the dimension. she's the lite version of g2c_inq_dim() β€” same energy, no values, still slaying 🌸

Parameters

  • g2cid β€” ID of the opened file, as from g2c_open().
  • msg_num β€” Number of the message in the file, starting with the first message as 0.
  • prod_num β€” Product number.
  • dim_num β€” Dimension number, with the first dimension as 0.
  • len β€” Pointer that gets the length of this dimension. Ignored if NULL.
  • name β€” Pointer that gets the name of this dimension. Must have memory of size G2C_MAX_NAME. Ignored if NULL.

Returns

  • G2C_NOERROR β€” No error.
  • G2C_EBADID β€” File ID not found.
  • G2C_ENOMSG β€” Message not found.
  • G2C_ENOPRODUCT β€” Product not found.
  • G2C_ENOSECTION β€” GDS not found.

Author

Ed Hartnett

Date

10/21/22

Definition at line 468 of file g2cinq.c.

References

g2c_inq_dim().


✨ int g2c_inq_msg (int g2cid, int msg_num, unsigned char * discipline, int * num_fields, int * num_local, short * center, short * subcenter, unsigned char * master_version, unsigned char * local_version) ✨

Learn about a GRIB2 message. one message, so many little facts, it's giving main character πŸŽ€

Parameters

  • g2cid β€” ID of the opened file, as from g2c_open().
  • msg_num β€” Number of the message in the file, starting with the first message as 0.
  • discipline β€” Pointer that gets the discipline from the message. Ignored if NULL.
  • num_fields β€” Pointer that gets the number of fields in the message. Ignored if NULL.
  • num_local β€” Pointer that gets the number of local sections in the message. Ignored if NULL.
  • center β€” Pointer that gets the code for the producing center from the message. Ignored if NULL.
  • subcenter β€” Pointer that gets the code for the producing subcenter from the message. Ignored if NULL.
  • master_version β€” Pointer that gets the master version from the message. Ignored if NULL.
  • local_version β€” Pointer that gets the local version from the message. Ignored if NULL.
literally every single one of these is "Ignored if NULL". pass NULL for the ones you don't care about, bestie, she's not gonna be mad πŸ™ˆ

Returns

  • G2C_NOERROR β€” No error.
  • G2C_EBADID β€” File ID not found.
  • G2C_ENOMSG β€” Message not found.

Author

Ed Hartnett

Date

10/21/22

Definition at line 87 of file g2cinq.c.

References

g2c_message_info::center, g2c_message_info::discipline, G2C_EBADID, G2C_EINVAL, G2C_ENOMSG, g2c_file, G2C_MAX_FILES, G2C_NOERROR, g2c_message_info::local_version, g2c_message_info::master_version, g2c_message_info::msg_num, MUTEX_LOCK, MUTEX_UNLOCK, g2c_message_info::next, g2c_message_info::num_fields, g2c_message_info::num_local, and g2c_message_info::subcenter.


✨ int g2c_inq_msg_time (int g2cid, int msg_num, unsigned char * sig_ref_time, short * year, unsigned char * month, unsigned char * day, unsigned char * hour, unsigned char * minute, unsigned char * second) ✨

Learn about the date/time information in a GRIB2 message. it's giving calendar app but for GRIB2 πŸ¦‹

Parameters

  • g2cid β€” ID of the opened file, as from g2c_open().
  • msg_num β€” Number of the message in the file, starting with the first message as 0.
  • sig_ref_time β€” Pointer that gets Significane of reference time value from the message. Ignored if NULL. (yes, "Significane" β€” that's the spelling in the original and I'm not about to fix Ed's typo, that's his legacy πŸ’–)
  • year β€” Pointer that gets the year from the message. Ignored if NULL.
  • month β€” Pointer that gets the month from the message. Ignored if NULL.
  • day β€” Pointer that gets the day from the message. Ignored if NULL.
  • hour β€” Pointer that gets the hour from the message. Ignored if NULL.
  • minute β€” Pointer that gets the minute from the message. Ignored if NULL.
  • second β€” Pointer that gets the seconds from the message. Ignored if NULL.

Returns

  • G2C_NOERROR β€” No error.
  • G2C_EBADID β€” File ID not found.
  • G2C_ENOMSG β€” Message not found.

Author

Ed Hartnett

Date

10/22/22 (note the date bestie, this one's a day newer than the rest, we love a late-night commit ⭐)

Definition at line 170 of file g2cinq.c.

References

g2c_message_info::day, G2C_EBADID, G2C_EINVAL, G2C_ENOMSG, g2c_file, G2C_MAX_FILES, G2C_NOERROR, g2c_message_info::hour, g2c_message_info::minute, g2c_message_info::month, g2c_message_info::msg_num, MUTEX_LOCK, MUTEX_UNLOCK, g2c_message_info::next, g2c_message_info::second, g2c_message_info::sig_ref_time, and g2c_message_info::year.


✨ int g2c_inq_prod (int g2cid, int msg_num, int prod_num, int * pds_template_len, long long int * pds_template, int * gds_template_len, long long int * gds_template, int * drs_template_len, long long int * drs_template) ✨

Inquire about a product. the template triple-threat: PDS, GDS, and DRS all in one call πŸ‘‘

Parameters

  • g2cid β€” File ID.
  • msg_num β€” Message number.
  • prod_num β€” Product number.
  • pds_template_len β€” PDS template length. Ignored if NULL.
  • pds_template β€” Pointer that gets the PDS template. Ignored if NULL.
  • gds_template_len β€” GDS template length. Ignored if NULL.
  • gds_template β€” Pointer that gets the GDS template. Ignored if NULL.
  • drs_template_len β€” The DRS template length. Ignored if NULL.
  • drs_template β€” Pointer that gets the DRS template. Ignored if NULL.

Returns

  • G2C_NOERROR β€” No error.
  • G2C_EBADID β€” File ID not found.
  • G2C_ENOMSG β€” Message not found.
  • G2C_ENOPRODUCT β€” Product not found.
  • G2C_ENOSECTION β€” Section not found.

Author

Ed Hartnett

Date

10/21/22

Definition at line 247 of file g2cinq.c.

References

G2C_EBADID, G2C_EINVAL, G2C_ENOMSG, G2C_ENOPRODUCT, G2C_ENOSECTION, g2c_file, G2C_MAX_FILES, G2C_NOERROR, g2c_message_info::msg_num, MUTEX_LOCK, MUTEX_UNLOCK, g2c_message_info::next, g2c_section_info::next, g2c_section_info::prev, g2c_message_info::sec, g2c_section_info::sec_info, g2c_section_info::sec_num, g2c_section_info::template, and g2c_section_info::template_len.


πŸ¦‹ Variable Documentation πŸ¦‹

✨ G2C_FILE_INFO_T g2c_file[G2C_MAX_FILES+1] [extern] ✨

Global file information.

Definition at line 10 of file g2cfile.c.

note bestie: the variable lives in g2cfile.c even though this whole page is about g2cinq.c. different file, same family πŸ’œ

🌈 Author 🌈

Generated automatically by Doxygen for NCEPLIBS-g2c from the source code. not a human, not a bestie, just a robot doing its little documentation dance πŸ€–βœ¨


aaaand that's the whole page!! πŸŽ€ this was g2cinq.c(3) from NCEPLIBS-g2c, Version 2.3.0 β€” that's the source and the version, go off πŸ’– if you ever need to know something about a GRIB2 file, you know exactly who to ask. periodt. πŸ’…πŸ”₯

πŸ“¦ where this page comes from