From 6a57eb63bb982262a7ae630c4439efb78a68f519 Mon Sep 17 00:00:00 2001 From: yangshaoxing Date: Wed, 3 Feb 2021 14:34:36 +0800 Subject: [PATCH] Log:g2clib init Signed-off-by: yangshaoxing --- README.md | 37 --- g2clib-1.6.0.tar | Bin 0 -> 460800 bytes g2clib-64bit.patch | 169 ++++++++++++ g2clib-degrib.patch | 18 ++ g2clib-jasper2.patch | 13 + g2clib-msg.txt | 60 +++++ g2clib-simunpack.patch | 12 + g2clib-templates.patch | 592 +++++++++++++++++++++++++++++++++++++++++ g2clib.spec | 107 ++++++++ 9 files changed, 971 insertions(+), 37 deletions(-) create mode 100644 g2clib-1.6.0.tar create mode 100644 g2clib-64bit.patch create mode 100644 g2clib-degrib.patch create mode 100644 g2clib-jasper2.patch create mode 100644 g2clib-msg.txt create mode 100644 g2clib-simunpack.patch create mode 100644 g2clib-templates.patch create mode 100644 g2clib.spec diff --git a/README.md b/README.md index cf5e145..e69de29 100644 --- a/README.md +++ b/README.md @@ -1,37 +0,0 @@ -# g2clib - -#### 介绍 -GRIB2 encoder/decoder and search/indexing routines in C - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/g2clib-1.6.0.tar b/g2clib-1.6.0.tar new file mode 100644 index 0000000000000000000000000000000000000000..4bd17a926793df3f55470c65db54dcd5a780f2a4 GIT binary patch literal 460800 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: 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 literal 0 HcmV?d00001 diff --git a/g2clib-64bit.patch b/g2clib-64bit.patch new file mode 100644 index 0000000..25505f7 --- /dev/null +++ b/g2clib-64bit.patch @@ -0,0 +1,169 @@ +diff -up g2clib-1.6.0_orig/g2_addfield.c g2clib-1.6.0/g2_addfield.c +--- g2clib-1.6.0_orig/g2_addfield.c 2015-05-06 13:54:24.000000000 +0200 ++++ g2clib-1.6.0/g2_addfield.c 2017-08-13 10:02:58.232596592 +0200 +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include "grib2.h" +@@ -190,8 +191,8 @@ g2int g2_addfield(unsigned char *cgrib,g + // total length, then there is a problem. + if ( len > lencurr ) { + printf("g2_addfield: Section byte counts don''t add to total.\n"); +- printf("g2_addfield: Sum of section byte counts = %ld\n",len); +- printf("g2_addfield: Total byte count in Section 0 = %ld\n",lencurr); ++ printf("g2_addfield: Sum of section byte counts = %"PRId32"\n",len); ++ printf("g2_addfield: Total byte count in Section 0 = %"PRId32"\n",lencurr); + ierr=-3; + return(ierr); + } +@@ -392,7 +393,7 @@ g2int g2_addfield(unsigned char *cgrib,g + } + #endif /* USE_PNG */ + else { +- printf("g2_addfield: Data Representation Template 5.%ld not yet implemented.\n",idrsnum); ++ printf("g2_addfield: Data Representation Template 5.%"PRId32" not yet implemented.\n",idrsnum); + ierr=-7; + return(ierr); + } +diff -up g2clib-1.6.0_orig/g2_addgrid.c g2clib-1.6.0/g2_addgrid.c +--- g2clib-1.6.0_orig/g2_addgrid.c 2015-05-06 13:54:24.000000000 +0200 ++++ g2clib-1.6.0/g2_addgrid.c 2017-08-13 10:02:58.233596570 +0200 +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include "grib2.h" +@@ -125,8 +126,8 @@ g2int g2_addgrid(unsigned char *cgrib,g2 + // total length, then there is a problem. + if ( len > lencurr ) { + printf("g2_addgrid: Section byte counts don''t add to total.\n"); +- printf("g2_addgrid: Sum of section byte counts = %ld\n",len); +- printf("g2_addgrid: Total byte count in Section 0 = %ld\n",lencurr); ++ printf("g2_addgrid: Sum of section byte counts = %"PRId32"\n",len); ++ printf("g2_addgrid: Total byte count in Section 0 = %"PRId32"\n",lencurr); + ierr=-3; + return(ierr); + } +diff -up g2clib-1.6.0_orig/g2_addlocal.c g2clib-1.6.0/g2_addlocal.c +--- g2clib-1.6.0_orig/g2_addlocal.c 2015-05-06 13:54:24.000000000 +0200 ++++ g2clib-1.6.0/g2_addlocal.c 2017-08-13 10:02:58.233596570 +0200 +@@ -1,3 +1,4 @@ ++#include + #include + #include "grib2.h" + +@@ -102,8 +103,8 @@ g2int g2_addlocal(unsigned char *cgrib,u + // total length, then there is a problem. + if ( len > lencurr ) { + printf("g2_addlocal: Section byte counts don't add to total.\n"); +- printf("g2_addlocal: Sum of section byte counts = %ld\n",len); +- printf("g2_addlocal: Total byte count in Section 0 = %ld\n",lencurr); ++ printf("g2_addlocal: Sum of section byte counts = %"PRId32"\n",len); ++ printf("g2_addlocal: Total byte count in Section 0 = %"PRId32"\n",lencurr); + ierr=-3; + return(ierr); + } +@@ -113,7 +114,7 @@ g2int g2_addlocal(unsigned char *cgrib,u + // + if ( (isecnum!=1) && (isecnum!=7) ) { + printf("g2_addlocal: Section 2 can only be added after Section 1 or Section 7.\n"); +- printf("g2_addlocal: Section %ld was the last found in given GRIB message.\n",isecnum); ++ printf("g2_addlocal: Section %"PRId32" was the last found in given GRIB message.\n",isecnum); + ierr=-4; + return(ierr); + } +diff -up g2clib-1.6.0_orig/g2_getfld.c g2clib-1.6.0/g2_getfld.c +--- g2clib-1.6.0_orig/g2_getfld.c 2015-05-06 13:54:25.000000000 +0200 ++++ g2clib-1.6.0/g2_getfld.c 2017-08-13 10:02:58.234596548 +0200 +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include "grib2.h" +@@ -345,12 +346,12 @@ g2int g2_getfld(unsigned char *cgrib,g2i + iofst=iofst+32; + gbit(cgrib,&isecnum,iofst,8); // Get Section number + iofst=iofst+8; +- //printf(" lensec= %ld secnum= %ld \n",lensec,isecnum); ++ //printf(" lensec= %"PRId32" secnum= %"PRId32" \n",lensec,isecnum); + // + // Check to see if section number is valid + // + if ( isecnum<1 || isecnum>7 ) { +- printf("g2_getfld: Unrecognized Section Encountered=%ld\n",isecnum); ++ printf("g2_getfld: Unrecognized Section Encountered=%"PRId32"\n",isecnum); + ierr=8; + return(ierr); + } +@@ -543,8 +544,8 @@ g2int g2_getfld(unsigned char *cgrib,g2i + // If exited from above loop, the end of the GRIB message was reached + // before the requested field was found. + // +- printf("g2_getfld: GRIB message contained %ld different fields.\n",numfld); +- printf("g2_getfld: The request was for field %ld.\n",ifldnum); ++ printf("g2_getfld: GRIB message contained %"PRId32" different fields.\n",numfld); ++ printf("g2_getfld: The request was for field %"PRId32".\n",ifldnum); + ierr=6; + + return(ierr); +diff -up g2clib-1.6.0_orig/g2_gribend.c g2clib-1.6.0/g2_gribend.c +--- g2clib-1.6.0_orig/g2_gribend.c 2015-05-06 13:54:25.000000000 +0200 ++++ g2clib-1.6.0/g2_gribend.c 2017-08-13 10:02:58.234596548 +0200 +@@ -1,3 +1,4 @@ ++#include + #include + #include "grib2.h" + +@@ -97,7 +98,7 @@ g2int g2_gribend(unsigned char *cgrib) + // + if ( isecnum != 7 ) { + printf("g2_gribend: Section 8 can only be added after Section 7.\n"); +- printf("g2_gribend: Section %ld was the last found in given GRIB message.\n",isecnum); ++ printf("g2_gribend: Section %"PRId32" was the last found in given GRIB message.\n",isecnum); + ierr=-4; + return (ierr); + } +diff -up g2clib-1.6.0_orig/g2_info.c g2clib-1.6.0/g2_info.c +--- g2clib-1.6.0_orig/g2_info.c 2015-05-06 13:54:25.000000000 +0200 ++++ g2clib-1.6.0/g2_info.c 2017-08-13 10:02:58.234596548 +0200 +@@ -1,3 +1,4 @@ ++#include + #include + #include + #include "grib2.h" +@@ -178,7 +179,7 @@ g2int g2_info(unsigned char *cgrib,g2int + (*numfields)++; + } + else { +- printf("g2_info: Invalid section number found in GRIB message: %ld\n" ,isecnum); ++ printf("g2_info: Invalid section number found in GRIB message: %"PRId32"\n" ,isecnum); + ierr=6; + return(ierr); + } +diff -up g2clib-1.6.0_orig/grib2.h g2clib-1.6.0/grib2.h +--- g2clib-1.6.0_orig/grib2.h 2016-01-22 13:27:13.000000000 +0100 ++++ g2clib-1.6.0/grib2.h 2017-08-13 10:02:58.235596526 +0200 +@@ -1,5 +1,6 @@ + #ifndef _grib2_H + #define _grib2_H ++#include + #include + + #define G2_VERSION "g2clib-1.6.0" +@@ -151,13 +152,8 @@ + // that holds the data. + */ + +-#ifdef __64BIT__ +-typedef int g2int; +-typedef unsigned int g2intu; +-#else +-typedef long g2int; +-typedef unsigned long g2intu; +-#endif ++typedef int32_t g2int; ++typedef uint32_t g2intu; + typedef float g2float; + + struct gtemplate { diff --git a/g2clib-degrib.patch b/g2clib-degrib.patch new file mode 100644 index 0000000..655eaad --- /dev/null +++ b/g2clib-degrib.patch @@ -0,0 +1,18 @@ +diff -up g2clib-1.6.0.p123/gridtemplates.c g2clib-1.6.0.p1234/gridtemplates.c +--- g2clib-1.6.0.p123/gridtemplates.c 2017-08-13 10:50:40.668001879 +0200 ++++ g2clib-1.6.0.p1234/gridtemplates.c 2017-08-13 10:52:24.579434531 +0200 +@@ -24,11 +24,11 @@ const struct gridtemplate templatesgrid[ + {140, 17, 0, {1,1,4,1,4,1,4,4,4,-4,4,4,4,1,4,4,1} }, + // + // 3.10: Mercator +- {10, 19, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,-4,4,1,4,4,4} }, ++ {10, 19, 0, {1,1,4,1,4,1,4,4,4,-4,-4,1,-4,-4,-4,1,4,4,4} }, + // 3.20: Polar Stereographic Projection +- {20, 18, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1} }, ++ {20, 18, 0, {1,1,4,1,4,1,4,4,4,-4,-4,1,-4,-4,4,4,1,1} }, + // 3.30: Lambert Conformal +- {30, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} }, ++ {30, 22, 0, {1,1,4,1,4,1,4,4,4,-4,-4,1,-4,-4,4,4,1,1,-4,-4,-4,-4} }, + // 3.31: Albers equal area + {31, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} }, + // 3.40: Guassian Lat/Lon diff --git a/g2clib-jasper2.patch b/g2clib-jasper2.patch new file mode 100644 index 0000000..783ef17 --- /dev/null +++ b/g2clib-jasper2.patch @@ -0,0 +1,13 @@ +diff -up g2clib-1.6.0.p1234/enc_jpeg2000.c g2clib-1.6.0.p12345/enc_jpeg2000.c +--- g2clib-1.6.0.p1234/enc_jpeg2000.c 2017-08-13 10:52:12.990720854 +0200 ++++ g2clib-1.6.0.p12345/enc_jpeg2000.c 2017-08-13 10:55:41.220584631 +0200 +@@ -121,7 +121,9 @@ int enc_jpeg2000(unsigned char *cin,g2in + image.clrspc_=JAS_CLRSPC_SGRAY; /* grayscale Image */ + image.cmprof_=0; + #endif ++#if JAS_VERSION_MAJOR == 1 + image.inmem_=1; ++#endif + + cmpt.tlx_=0; + cmpt.tly_=0; diff --git a/g2clib-msg.txt b/g2clib-msg.txt new file mode 100644 index 0000000..e9aa569 --- /dev/null +++ b/g2clib-msg.txt @@ -0,0 +1,60 @@ +Date: Fri, 24 Aug 2007 08:03:05 -0400 +From: "Justin Cooke" +To: pertusus@free.fr +Subject: Re: [pmb.dataflow #1013] grib2 related programs license +Reply-To: ncep.pmb.dataflow@noaa.gov +X-Loop: WREQ 2 +Status: RO +Content-Length: 1358 +Lines: 49 + +Your request #1013 was updated by justin.cooke: + +Hi Pat, + +Yes all code available on the NCEP website, including cnvgrib, is +public domain. + +I will pass along the request to add the public domain message to +the documentation of cnvgrib. + +Justin Cooke +NCEP Central Operations + +>>>>>>>>>>>>>>>>>> Original Message >>>>>>>>>>>>>>>>>> +>From: Patrice Dumas +>Subject: grib2 related programs license +>To: NCEP.List.PMB-PCSP@noaa.gov + +Hello, + +It is possible that I am not adressing this mail to the right people, +but this seems to me to be the simplest way to reach the right people. + +On +http://www.nco.ncep.noaa.gov/pmb/codes/GRIB2/ +there are some codes, but the license isn't stated anywhere. It could +mean Public Domain if there was no author mention, but there is some +mention of the authors, like + PRGMMR: Gilbert +(I only checked g2clib and g2lib, I don't know for the other softwares). + +On the disclaimer page: +http://www.weather.gov/disclaimer.php +there is no reference to the programming codes found on the site, only +to data and text. + +My feeling is that these codes are public domain, but I prefer to ask to +be sure. Also if it is true, maybe you could mention it in the README? + +Cordially, + +-- +Pat + + +>>>>>>>>>>>>>>>>>> Action Log >>>>>>>>>>>>>>>>>> +====================== Updated/Mailed by justin.cooke Aug 24 8:3:4 2007 (1187956984) + + + diff --git a/g2clib-simunpack.patch b/g2clib-simunpack.patch new file mode 100644 index 0000000..15d935c --- /dev/null +++ b/g2clib-simunpack.patch @@ -0,0 +1,12 @@ +diff -up g2clib-1.6.0.p12/simunpack.c g2clib-1.6.0.p123/simunpack.c +--- g2clib-1.6.0.p12/simunpack.c 2017-08-13 10:24:02.266764550 +0200 ++++ g2clib-1.6.0.p123/simunpack.c 2017-08-13 10:50:49.881774231 +0200 +@@ -49,7 +49,7 @@ g2int simunpack(unsigned char *cpack,g2i + nbits = idrstmpl[3]; + itype = idrstmpl[4]; + +- ifld=(g2int *)calloc(ndpts,sizeof(g2int)); ++ ifld=(g2int *)calloc((ndpts ? ndpts : 1),sizeof(g2int)); + if ( ifld == 0 ) { + fprintf(stderr,"Could not allocate space in simunpack.\n Data field NOT upacked.\n"); + return(1); diff --git a/g2clib-templates.patch b/g2clib-templates.patch new file mode 100644 index 0000000..0454691 --- /dev/null +++ b/g2clib-templates.patch @@ -0,0 +1,592 @@ +diff -up g2clib-1.6.0.p1/drstemplates.c g2clib-1.6.0.p12/drstemplates.c +--- g2clib-1.6.0.p1/drstemplates.c 2017-08-13 10:17:37.479288682 +0200 ++++ g2clib-1.6.0.p12/drstemplates.c 2017-08-13 10:26:59.958196881 +0200 +@@ -2,6 +2,29 @@ + #include "grib2.h" + #include "drstemplates.h" + ++const struct drstemplate templatesdrs[MAXDRSTEMP] = { ++ // 5.0: Grid point data - Simple Packing ++ { 0, 5, 0, {4,-2,-2,1,1} }, ++ // 5.2: Grid point data - Complex Packing ++ { 2, 16, 0, {4,-2,-2,1,1,1,1,4,4,4,1,1,4,1,4,1} }, ++ // 5.3: Grid point data - Complex Packing and spatial differencing ++ { 3, 18, 0, {4,-2,-2,1,1,1,1,4,4,4,1,1,4,1,4,1,1,1} }, ++ // 5.50: Spectral Data - Simple Packing ++ { 50, 5, 0, {4,-2,-2,1,4} }, ++ // 5.51: Spherical Harmonics data - Complex packing ++ { 51, 10, 0, {4,-2,-2,1,-4,2,2,2,4,1} }, ++// // 5.1: Matrix values at gridpoint - Simple packing ++// { 1, 15, 1, {4,-2,-2,1,1,1,4,2,2,1,1,1,1,1,1} }, ++ // 5.40: Grid point data - JPEG2000 encoding ++ { 40, 7, 0, {4,-2,-2,1,1,1,1} }, ++ // 5.41: Grid point data - PNG encoding ++ { 41, 5, 0, {4,-2,-2,1,1} }, ++ // 5.40000: Grid point data - JPEG2000 encoding ++ { 40000, 7, 0, {4,-2,-2,1,1,1,1} }, ++ // 5.40010: Grid point data - PNG encoding ++ { 40010, 5, 0, {4,-2,-2,1,1} } ++} ; ++ + g2int getdrsindex(g2int number) + /*!$$$ SUBPROGRAM DOCUMENTATION BLOCK + ! . . . . +diff -up g2clib-1.6.0.p1/drstemplates.h g2clib-1.6.0.p12/drstemplates.h +--- g2clib-1.6.0.p1/drstemplates.h 2017-08-13 10:17:37.479288682 +0200 ++++ g2clib-1.6.0.p12/drstemplates.h 2017-08-13 10:26:38.492728755 +0200 +@@ -42,28 +42,8 @@ + g2int mapdrs[MAXDRSMAPLEN]; + }; + +- const struct drstemplate templatesdrs[MAXDRSTEMP] = { +- // 5.0: Grid point data - Simple Packing +- { 0, 5, 0, {4,-2,-2,1,1} }, +- // 5.2: Grid point data - Complex Packing +- { 2, 16, 0, {4,-2,-2,1,1,1,1,4,4,4,1,1,4,1,4,1} }, +- // 5.3: Grid point data - Complex Packing and spatial differencing +- { 3, 18, 0, {4,-2,-2,1,1,1,1,4,4,4,1,1,4,1,4,1,1,1} }, +- // 5.50: Spectral Data - Simple Packing +- { 50, 5, 0, {4,-2,-2,1,4} }, +- // 5.51: Spherical Harmonics data - Complex packing +- { 51, 10, 0, {4,-2,-2,1,-4,2,2,2,4,1} }, +-// // 5.1: Matrix values at gridpoint - Simple packing +-// { 1, 15, 1, {4,-2,-2,1,1,1,4,2,2,1,1,1,1,1,1} }, +- // 5.40: Grid point data - JPEG2000 encoding +- { 40, 7, 0, {4,-2,-2,1,1,1,1} }, +- // 5.41: Grid point data - PNG encoding +- { 41, 5, 0, {4,-2,-2,1,1} }, +- // 5.40000: Grid point data - JPEG2000 encoding +- { 40000, 7, 0, {4,-2,-2,1,1,1,1} }, +- // 5.40010: Grid point data - PNG encoding +- { 40010, 5, 0, {4,-2,-2,1,1} } +- } ; ++ extern const struct drstemplate templatesdrs[]; + ++ g2int getdrsindex(g2int number); + + #endif /* _drstemplates_H */ +Binary files g2clib-1.6.0.p1/grib2c.doc.gz and g2clib-1.6.0.p12/grib2c.doc.gz differ +diff -up g2clib-1.6.0.p1/gridtemplates.c g2clib-1.6.0.p12/gridtemplates.c +--- g2clib-1.6.0.p1/gridtemplates.c 2017-08-13 10:17:37.481288632 +0200 ++++ g2clib-1.6.0.p12/gridtemplates.c 2017-08-13 10:41:53.079066944 +0200 +@@ -2,6 +2,75 @@ + #include "grib2.h" + #include "gridtemplates.h" + ++const struct gridtemplate templatesgrid[MAXGRIDTEMP] = { ++ // 3.0: Lat/Lon grid ++ { 0, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, ++ // 3.1: Rotated Lat/Lon grid ++ { 1, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4} }, ++ // 3.2: Stretched Lat/Lon grid ++ { 2, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,-4} }, ++ // 3.3: Stretched & Rotated Lat/Lon grid ++ { 3, 25, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4,-4,4,-4} }, ++// Added GDT 3.4,3.5 (08/05/2013) ++ // 3.4: Variable resolution Latitude/Longitude ++ { 4, 13, 1, {1,1,4,1,4,1,4,4,4,4,4,1,1} }, ++ // 3.5: Variable resolution rotate Latitude/Longitude ++ { 5, 16, 1, {1,1,4,1,4,1,4,4,4,4,4,1,1,-4,4,4} }, ++ // 3.12: Transverse Mercator ++ {12, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,1,4,4,-4,-4,-4,-4} }, ++ // 3.101: General unstructured grid ++ {101, 4, 0, {1,4,1,-4} }, ++ // 3.140: Lambert Azimuthal Equal Area Projection ++ {140, 17, 0, {1,1,4,1,4,1,4,4,4,-4,4,4,4,1,4,4,1} }, ++// ++ // 3.10: Mercator ++ {10, 19, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,-4,4,1,4,4,4} }, ++ // 3.20: Polar Stereographic Projection ++ {20, 18, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1} }, ++ // 3.30: Lambert Conformal ++ {30, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} }, ++ // 3.31: Albers equal area ++ {31, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} }, ++ // 3.40: Guassian Lat/Lon ++ {40, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, ++ // 3.41: Rotated Gaussian Lat/Lon ++ {41, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4} }, ++ // 3.42: Stretched Gaussian Lat/Lon ++ {42, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,-4} }, ++ // 3.43: Stretched and Rotated Gaussian Lat/Lon ++ {43, 25, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4,-4,4,-4} }, ++ // 3.50: Spherical Harmonic Coefficients ++ {50, 5, 0, {4,4,4,1,1} }, ++ // 3.51: Rotated Spherical Harmonic Coefficients ++ {51, 8, 0, {4,4,4,1,1,-4,4,4} }, ++ // 3.52: Stretched Spherical Harmonic Coefficients ++ {52, 8, 0, {4,4,4,1,1,-4,4,-4} }, ++ // 3.53: Stretched and Rotated Spherical Harmonic Coefficients ++ {53, 11, 0, {4,4,4,1,1,-4,4,4,-4,4,-4} }, ++ // 3.90: Space View Perspective or orthographic ++ {90, 21, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,4,4,4,4,1,4,4,4,4} }, ++ // 3.100: Triangular grid based on an icosahedron ++ {100, 11, 0, {1,1,2,1,-4,4,4,1,1,1,4} }, ++ // 3.110: Equatorial Azimuthal equidistant ++ {110, 16, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,4,4,1,1} }, ++ // 3.120: Azimuth-range projection ++ {120, 7, 1, {4,4,-4,4,4,4,1} }, ++ // 3.204: Curvilinear Orthogonal Grid ++ {204, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, ++ // 3.32768: Rot Lat/Lon E-grid (Arakawa) ++ {32768, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, ++ // 3.32769: Rot Lat/Lon Non-E Staggered grid (Arakawa) ++ {32769, 21, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,4,4} }, ++ // 3.1000: Cross Section Grid ++ {1000, 20, 1, {1,1,4,1,4,1,4,4,4,4,-4,4,1,4,4,1,2,1,1,2} }, ++ // 3.1100: Hovmoller Diagram Grid ++ {1100, 28, 0, {1,1,4,1,4,1,4,4,4,4,-4,4,1,-4,4,1,4,1,-4,1,1,-4,2,1,1,1,1,1} }, ++ // 3.1200: Time Section Grid ++ {1200, 16, 1, {4,1,-4,1,1,-4,2,1,1,1,1,1,2,1,1,2} } ++ ++} ; ++ ++ + g2int getgridindex(g2int number) + /*!$$$ SUBPROGRAM DOCUMENTATION BLOCK + ! . . . . +diff -up g2clib-1.6.0.p1/gridtemplates.h g2clib-1.6.0.p12/gridtemplates.h +--- g2clib-1.6.0.p1/gridtemplates.h 2017-08-13 10:17:37.481288632 +0200 ++++ g2clib-1.6.0.p12/gridtemplates.h 2017-08-13 10:30:23.584151390 +0200 +@@ -49,73 +49,8 @@ + g2int mapgrid[MAXGRIDMAPLEN]; + }; + +- const struct gridtemplate templatesgrid[MAXGRIDTEMP] = { +- // 3.0: Lat/Lon grid +- { 0, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, +- // 3.1: Rotated Lat/Lon grid +- { 1, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4} }, +- // 3.2: Stretched Lat/Lon grid +- { 2, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,-4} }, +- // 3.3: Stretched & Rotated Lat/Lon grid +- { 3, 25, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4,-4,4,-4} }, +-// Added GDT 3.4,3.5 (08/05/2013) +- // 3.4: Variable resolution Latitude/Longitude +- { 4, 13, 1, {1,1,4,1,4,1,4,4,4,4,4,1,1} }, +- // 3.5: Variable resolution rotate Latitude/Longitude +- { 5, 16, 1, {1,1,4,1,4,1,4,4,4,4,4,1,1,-4,4,4} }, +- // 3.12: Transverse Mercator +- {12, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,1,4,4,-4,-4,-4,-4} }, +- // 3.101: General unstructured grid +- {101, 4, 0, {1,4,1,-4} }, +- // 3.140: Lambert Azimuthal Equal Area Projection +- {140, 17, 0, {1,1,4,1,4,1,4,4,4,-4,4,4,4,1,4,4,1} }, +-// +- // 3.10: Mercator +- {10, 19, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,-4,4,1,4,4,4} }, +- // 3.20: Polar Stereographic Projection +- {20, 18, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1} }, +- // 3.30: Lambert Conformal +- {30, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} }, +- // 3.31: Albers equal area +- {31, 22, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,-4,4,4,4,1,1,-4,-4,-4,4} }, +- // 3.40: Guassian Lat/Lon +- {40, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, +- // 3.41: Rotated Gaussian Lat/Lon +- {41, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4} }, +- // 3.42: Stretched Gaussian Lat/Lon +- {42, 22, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,-4} }, +- // 3.43: Stretched and Rotated Gaussian Lat/Lon +- {43, 25, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,-4,4,4,-4,4,-4} }, +- // 3.50: Spherical Harmonic Coefficients +- {50, 5, 0, {4,4,4,1,1} }, +- // 3.51: Rotated Spherical Harmonic Coefficients +- {51, 8, 0, {4,4,4,1,1,-4,4,4} }, +- // 3.52: Stretched Spherical Harmonic Coefficients +- {52, 8, 0, {4,4,4,1,1,-4,4,-4} }, +- // 3.53: Stretched and Rotated Spherical Harmonic Coefficients +- {53, 11, 0, {4,4,4,1,1,-4,4,4,-4,4,-4} }, +- // 3.90: Space View Perspective or orthographic +- {90, 21, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,4,4,4,4,1,4,4,4,4} }, +- // 3.100: Triangular grid based on an icosahedron +- {100, 11, 0, {1,1,2,1,-4,4,4,1,1,1,4} }, +- // 3.110: Equatorial Azimuthal equidistant +- {110, 16, 0, {1,1,4,1,4,1,4,4,4,-4,4,1,4,4,1,1} }, +- // 3.120: Azimuth-range projection +- {120, 7, 1, {4,4,-4,4,4,4,1} }, +- // 3.204: Curvilinear Orthogonal Grid +- {204, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, +- // 3.32768: Rot Lat/Lon E-grid (Arakawa) +- {32768, 19, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1} }, +- // 3.32769: Rot Lat/Lon Non-E Staggered grid (Arakawa) +- {32769, 21, 0, {1,1,4,1,4,1,4,4,4,4,4,-4,4,1,-4,4,4,4,1,4,4} }, +- // 3.1000: Cross Section Grid +- {1000, 20, 1, {1,1,4,1,4,1,4,4,4,4,-4,4,1,4,4,1,2,1,1,2} }, +- // 3.1100: Hovmoller Diagram Grid +- {1100, 28, 0, {1,1,4,1,4,1,4,4,4,4,-4,4,1,-4,4,1,4,1,-4,1,1,-4,2,1,1,1,1,1} }, +- // 3.1200: Time Section Grid +- {1200, 16, 1, {4,1,-4,1,1,-4,2,1,1,1,1,1,2,1,1,2} } +- +- } ; ++ extern const struct gridtemplate templatesgrid[]; + ++ g2int getgridindex(g2int number); + + #endif /* _gridtemplates_H */ +diff -up g2clib-1.6.0.p1/pdstemplates.c g2clib-1.6.0.p12/pdstemplates.c +--- g2clib-1.6.0.p1/pdstemplates.c 2017-08-13 10:17:37.482288608 +0200 ++++ g2clib-1.6.0.p12/pdstemplates.c 2017-08-13 10:47:53.643134973 +0200 +@@ -2,6 +2,179 @@ + #include "grib2.h" + #include "pdstemplates.h" + ++const struct pdstemplate templatespds[MAXPDSTEMP] = { ++ // 4.0: Analysis or Forecast at Horizontal Level/Layer ++ // at a point in time ++ {0,15,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, ++ // 4.1: Individual Ensemble Forecast at Horizontal Level/Layer ++ // at a point in time ++ {1,18,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1} }, ++ // 4.2: Derived Fcst based on whole Ensemble at Horiz Level/Layer ++ // at a point in time ++ {2,17,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1} }, ++ // 4.3: Derived Fcst based on Ensemble cluster over rectangular ++ // area at Horiz Level/Layer at a point in time ++ {3,31,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,-4,4,4,1,-1,4,-1,4} }, ++ // 4.4: Derived Fcst based on Ensemble cluster over circular ++ // area at Horiz Level/Layer at a point in time ++ {4,30,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,4,4,1,-1,4,-1,4} }, ++ // 4.5: Probablility Forecast at Horiz Level/Layer ++ // at a point in time ++ {5,22,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,-1,-4,-1,-4} }, ++ // 4.6: Percentile Forecast at Horiz Level/Layer ++ // at a point in time ++ {6,16,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1} }, ++ // 4.7: Analysis or Forecast Error at Horizontal Level/Layer ++ // at a point in time ++ {7,15,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, ++ // 4.8: Ave/Accum/etc... at Horiz Level/Layer ++ // in a time interval ++ {8,29,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++ // 4.9: Probablility Forecast at Horiz Level/Layer ++ // in a time interval ++ {9,36,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,-1,-4,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++ // 4.10: Percentile Forecast at Horiz Level/Layer ++ // in a time interval ++ {10,30,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++ // 4.11: Individual Ensemble Forecast at Horizontal Level/Layer ++ // in a time interval ++ {11,32,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++ // 4.12: Derived Fcst based on whole Ensemble at Horiz Level/Layer ++ // in a time interval ++ {12,31,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++ // 4.13: Derived Fcst based on Ensemble cluster over rectangular ++ // area at Horiz Level/Layer in a time interval ++ {13,45,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,-4,4,4,1,-1,4,-1,4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++ // 4.14: Derived Fcst based on Ensemble cluster over circular ++ // area at Horiz Level/Layer in a time interval ++ {14,44,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,4,4,1,-1,4,-1,4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++ // 4.15: Average, accumulation, extreme values or other statistically-processed values over a ++ // spatial area at a horizontal level or in a horizontal layer at a point in time ++ {15,18,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1} }, ++ // 4.20: Radar Product ++ {20,19,0, {1,1,1,1,1,-4,4,2,4,2,1,1,1,1,1,2,1,3,2} }, ++ // 4.30: Satellite Product ++ {30,5,1, {1,1,1,1,1} }, ++ // 4.31: Satellite Product ++ {31,5,1, {1,1,1,1,1} }, ++ // 4.40: Analysis or forecast at a horizontal level or in a horizontal layer ++ // at a point in time for atmospheric chemical constituents ++ {40,16,0, {1,1,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, ++ // 4.41: Individual ensemble forecast, control and perturbed, at a horizontal level or ++ // in a horizontal layer at a point in time for atmospheric chemical constituents ++ {41,19,0, {1,1,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1} }, ++ // 4.42: Average, accumulation, and/or extreme values or other statistically-processed values ++ // at a horizontal level or in a horizontal layer in a continuous or non-continuous ++ // time interval for atmospheric chemical constituents ++ {42,30,1, {1,1,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++ // 4.43: Individual ensemble forecast, control and perturbed, at a horizontal level ++ // or in a horizontal layer in a continuous or non-continuous ++ // time interval for atmospheric chemical constituents ++ {43,33,1, {1,1,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++ // 4.254: CCITT IA5 Character String ++ {254,3,0, {1,1,4} }, ++ // 4.1000: Cross section of analysis or forecast ++ // at a point in time ++ {1000,9,0, {1,1,1,1,1,2,1,1,-4} }, ++ // 4.1001: Cross section of Ave/Accum/etc... analysis or forecast ++ // in a time interval ++ {1001,16,0, {1,1,1,1,1,2,1,1,4,4,1,1,1,4,1,4} }, ++ // 4.1001: Cross section of Ave/Accum/etc... analysis or forecast ++ // over latitude or longitude ++ {1002,15,0, {1,1,1,1,1,2,1,1,-4,1,1,1,4,4,2} }, ++ // 4.1100: Hovmoller-type grid w/ no averaging or other ++ // statistical processing ++ {1100,15,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, ++ // 4.1100: Hovmoller-type grid with averaging or other ++ // statistical processing ++ {1101,22,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,4,1,1,1,4,1,4} }, ++ // 4.32:Simulate (synthetic) Satellite Product ++ {32,10,1, {1,1,1,1,1,2,1,1,-2,1} }, ++ // 4.44: Analysis or forecast at a horizontal level or in a horizontal layer ++ // at a point in time for Aerosol ++ {44,21,0, {1,1,2,1,-1,-4,-1,-4,1,1,1,2,1,1,-2,1,-1,-4,1,-1,-4} }, ++ // 4.45: Individual ensemble forecast, control and ++ // perturbed, at a horizontal level or in a horizontal layer ++ // at a point in time for Aerosol ++ {45,24,0, {1,1,2,1,-1,-4,-1,-4,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1} }, ++ // 4.46: Ave or Accum or Extreme value at level/layer ++ // at horizontal level or in a horizontal in a continuous or ++ // non-continuous time interval for Aerosol ++ {46,35,1, {1,1,2,1,-1,-4,-1,-4,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++ // 4.47: Individual ensemble forecast, control and ++ // perturbed, at horizontal level or in a horizontal ++ // in a continuous or non-continuous time interval for Aerosol ++ {47,38,1, {1,1,1,2,1,-1,-4,-1,-4,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++ ++ // PDT 4.48 ++ // 4.48: Analysis or forecast at a horizontal level or in a horizontal layer ++ // at a point in time for Optical Properties of Aerosol ++ {48,26,0, {1,1,2,1,-1,-4,-1,-4,1,-1,-4,-1,-4,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, ++ ++ // VALIDATION --- PDT 4.50 ++ // 4.50: Analysis or forecast of multi component parameter or ++ // matrix element at a point in time ++ {50,21,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,4,4,4,4} }, ++ ++ // VALIDATION --- PDT 4.52 ++ // 4.52: Analysis or forecast of Wave parameters ++ // at the Sea surface at a point in time ++ {52,15,0, {1,1,1,1,1,1,1,1,2,1,1,-4,1,-1,-4} }, ++ ++ // 4.51: Categorical forecasts at a horizontal level or ++ // in a horizontal layer at a point in time ++ {51,16,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1} }, ++ ++ // 4.91: Categorical forecasts at a horizontal level or ++ // in a horizontal layer at a point in time ++ // in a continuous or non-continuous time interval ++ {91,36,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,-1,-4,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++// PDT 4.33 (07/29/2013) ++ // 4.33: Individual ensemble forecast, control, perturbed, ++ // at a horizontal level or in a horizontal layer ++ // at a point in time for simulated (synthetic) Satellite data ++ {33,18,1, {1,1,1,1,1,2,1,1,-4,1,2,2,2,-1,-4,1,1,1} }, ++// PDT 4.34 (07/29/2013) ++ // 4.34: Individual ensemble forecast, control, perturbed, ++ // at a horizontal level or in a horizontal layer,in a continuous or ++ // non-continuous interval for simulated (synthetic) Satellite data ++ {34,32,1, {1,1,1,1,1,2,1,1,-4,1,2,2,2,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++// PDT 4.53 (07/29/2013) ++ // 4.53: Partitioned parameters at ++ // horizontal level or horizontal layer ++ // at a point in time ++ {53,19,1, {1,1,1,1,4,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, ++// PDT 4.54 (07/29/2013) ++ // 4.54: Individual ensemble forecast, control, perturbed, ++ // at a horizontal level or in a horizontal layer ++ // at a point in time for partitioned parameters ++ {54,22,1, {1,1,1,1,4,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1} }, ++// PDT 4.57 (10/07/2015) ++ // 4.57: Analysis or Forecast at a horizontal or in a ++ // horizontal layer at a point in time for ++ // atmospheric chemical constituents based on ++ // a distribution function ++ {57,7,1, {1,1,2,2,2,2,1} }, ++// PDT 4.60 (10/07/2015) ++ // 4.60: Individual ensemble reforecast, control and perturbed, ++ // at a horizontal level or in a horizontal layer ++ // at a point in time ++ {60,24,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1} }, ++// PDT 4.61 (10/07/2015) ++ // 4.61: Individual ensemble reforecast, control and perturbed, ++ // at a horizontal level or in a horizontal layer ++ // in a continuous or non-continuous time interval ++ {61,38,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, ++// VALIDATION --- PDT 4.35 ++// PDT 4.35 (10/07/2015) ++ // 4.35: Individual ensemble reforecast, control and perturbed, ++ // at a horizontal level or in a horizontal layer ++ // in a continuous or non-continuous time interval ++ {35,6,1, {1,1,1,1,1,1} } ++ ++} ; ++ ++ + g2int getpdsindex(g2int number) + ///$$$ SUBPROGRAM DOCUMENTATION BLOCK + // . . . . +diff -up g2clib-1.6.0.p1/pdstemplates.h g2clib-1.6.0.p12/pdstemplates.h +--- g2clib-1.6.0.p1/pdstemplates.h 2017-08-13 10:17:37.483288583 +0200 ++++ g2clib-1.6.0.p12/pdstemplates.h 2017-08-13 10:36:42.046773771 +0200 +@@ -54,176 +54,8 @@ + g2int mappds[MAXPDSMAPLEN]; + }; + +- const struct pdstemplate templatespds[MAXPDSTEMP] = { +- // 4.0: Analysis or Forecast at Horizontal Level/Layer +- // at a point in time +- {0,15,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, +- // 4.1: Individual Ensemble Forecast at Horizontal Level/Layer +- // at a point in time +- {1,18,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1} }, +- // 4.2: Derived Fcst based on whole Ensemble at Horiz Level/Layer +- // at a point in time +- {2,17,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1} }, +- // 4.3: Derived Fcst based on Ensemble cluster over rectangular +- // area at Horiz Level/Layer at a point in time +- {3,31,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,-4,4,4,1,-1,4,-1,4} }, +- // 4.4: Derived Fcst based on Ensemble cluster over circular +- // area at Horiz Level/Layer at a point in time +- {4,30,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,4,4,1,-1,4,-1,4} }, +- // 4.5: Probablility Forecast at Horiz Level/Layer +- // at a point in time +- {5,22,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,-1,-4,-1,-4} }, +- // 4.6: Percentile Forecast at Horiz Level/Layer +- // at a point in time +- {6,16,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1} }, +- // 4.7: Analysis or Forecast Error at Horizontal Level/Layer +- // at a point in time +- {7,15,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, +- // 4.8: Ave/Accum/etc... at Horiz Level/Layer +- // in a time interval +- {8,29,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +- // 4.9: Probablility Forecast at Horiz Level/Layer +- // in a time interval +- {9,36,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,-1,-4,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +- // 4.10: Percentile Forecast at Horiz Level/Layer +- // in a time interval +- {10,30,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +- // 4.11: Individual Ensemble Forecast at Horizontal Level/Layer +- // in a time interval +- {11,32,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +- // 4.12: Derived Fcst based on whole Ensemble at Horiz Level/Layer +- // in a time interval +- {12,31,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +- // 4.13: Derived Fcst based on Ensemble cluster over rectangular +- // area at Horiz Level/Layer in a time interval +- {13,45,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,-4,4,4,1,-1,4,-1,4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +- // 4.14: Derived Fcst based on Ensemble cluster over circular +- // area at Horiz Level/Layer in a time interval +- {14,44,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,1,1,1,1,-4,4,4,1,-1,4,-1,4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +- // 4.15: Average, accumulation, extreme values or other statistically-processed values over a +- // spatial area at a horizontal level or in a horizontal layer at a point in time +- {15,18,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1} }, +- // 4.20: Radar Product +- {20,19,0, {1,1,1,1,1,-4,4,2,4,2,1,1,1,1,1,2,1,3,2} }, +- // 4.30: Satellite Product +- {30,5,1, {1,1,1,1,1} }, +- // 4.31: Satellite Product +- {31,5,1, {1,1,1,1,1} }, +- // 4.40: Analysis or forecast at a horizontal level or in a horizontal layer +- // at a point in time for atmospheric chemical constituents +- {40,16,0, {1,1,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, +- // 4.41: Individual ensemble forecast, control and perturbed, at a horizontal level or +- // in a horizontal layer at a point in time for atmospheric chemical constituents +- {41,19,0, {1,1,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1} }, +- // 4.42: Average, accumulation, and/or extreme values or other statistically-processed values +- // at a horizontal level or in a horizontal layer in a continuous or non-continuous +- // time interval for atmospheric chemical constituents +- {42,30,1, {1,1,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +- // 4.43: Individual ensemble forecast, control and perturbed, at a horizontal level +- // or in a horizontal layer in a continuous or non-continuous +- // time interval for atmospheric chemical constituents +- {43,33,1, {1,1,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +- // 4.254: CCITT IA5 Character String +- {254,3,0, {1,1,4} }, +- // 4.1000: Cross section of analysis or forecast +- // at a point in time +- {1000,9,0, {1,1,1,1,1,2,1,1,-4} }, +- // 4.1001: Cross section of Ave/Accum/etc... analysis or forecast +- // in a time interval +- {1001,16,0, {1,1,1,1,1,2,1,1,4,4,1,1,1,4,1,4} }, +- // 4.1001: Cross section of Ave/Accum/etc... analysis or forecast +- // over latitude or longitude +- {1002,15,0, {1,1,1,1,1,2,1,1,-4,1,1,1,4,4,2} }, +- // 4.1100: Hovmoller-type grid w/ no averaging or other +- // statistical processing +- {1100,15,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, +- // 4.1100: Hovmoller-type grid with averaging or other +- // statistical processing +- {1101,22,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,4,1,1,1,4,1,4} }, +- // 4.32:Simulate (synthetic) Satellite Product +- {32,10,1, {1,1,1,1,1,2,1,1,-2,1} }, +- // 4.44: Analysis or forecast at a horizontal level or in a horizontal layer +- // at a point in time for Aerosol +- {44,21,0, {1,1,2,1,-1,-4,-1,-4,1,1,1,2,1,1,-2,1,-1,-4,1,-1,-4} }, +- // 4.45: Individual ensemble forecast, control and +- // perturbed, at a horizontal level or in a horizontal layer +- // at a point in time for Aerosol +- {45,24,0, {1,1,2,1,-1,-4,-1,-4,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1} }, +- // 4.46: Ave or Accum or Extreme value at level/layer +- // at horizontal level or in a horizontal in a continuous or +- // non-continuous time interval for Aerosol +- {46,35,1, {1,1,2,1,-1,-4,-1,-4,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +- // 4.47: Individual ensemble forecast, control and +- // perturbed, at horizontal level or in a horizontal +- // in a continuous or non-continuous time interval for Aerosol +- {47,38,1, {1,1,1,2,1,-1,-4,-1,-4,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +- +- // PDT 4.48 +- // 4.48: Analysis or forecast at a horizontal level or in a horizontal layer +- // at a point in time for Optical Properties of Aerosol +- {48,26,0, {1,1,2,1,-1,-4,-1,-4,1,-1,-4,-1,-4,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, +- +- // VALIDATION --- PDT 4.50 +- // 4.50: Analysis or forecast of multi component parameter or +- // matrix element at a point in time +- {50,21,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,4,4,4,4} }, +- +- // VALIDATION --- PDT 4.52 +- // 4.52: Analysis or forecast of Wave parameters +- // at the Sea surface at a point in time +- {52,15,0, {1,1,1,1,1,1,1,1,2,1,1,-4,1,-1,-4} }, +- +- // 4.51: Categorical forecasts at a horizontal level or +- // in a horizontal layer at a point in time +- {51,16,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1} }, +- +- // 4.91: Categorical forecasts at a horizontal level or +- // in a horizontal layer at a point in time +- // in a continuous or non-continuous time interval +- {91,36,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,-1,-4,-1,-4,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +-// PDT 4.33 (07/29/2013) +- // 4.33: Individual ensemble forecast, control, perturbed, +- // at a horizontal level or in a horizontal layer +- // at a point in time for simulated (synthetic) Satellite data +- {33,18,1, {1,1,1,1,1,2,1,1,-4,1,2,2,2,-1,-4,1,1,1} }, +-// PDT 4.34 (07/29/2013) +- // 4.34: Individual ensemble forecast, control, perturbed, +- // at a horizontal level or in a horizontal layer,in a continuous or +- // non-continuous interval for simulated (synthetic) Satellite data +- {34,32,1, {1,1,1,1,1,2,1,1,-4,1,2,2,2,-1,-4,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +-// PDT 4.53 (07/29/2013) +- // 4.53: Partitioned parameters at +- // horizontal level or horizontal layer +- // at a point in time +- {53,19,1, {1,1,1,1,4,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4} }, +-// PDT 4.54 (07/29/2013) +- // 4.54: Individual ensemble forecast, control, perturbed, +- // at a horizontal level or in a horizontal layer +- // at a point in time for partitioned parameters +- {54,22,1, {1,1,1,1,4,2,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1} }, +-// PDT 4.57 (10/07/2015) +- // 4.57: Analysis or Forecast at a horizontal or in a +- // horizontal layer at a point in time for +- // atmospheric chemical constituents based on +- // a distribution function +- {57,7,1, {1,1,2,2,2,2,1} }, +-// PDT 4.60 (10/07/2015) +- // 4.60: Individual ensemble reforecast, control and perturbed, +- // at a horizontal level or in a horizontal layer +- // at a point in time +- {60,24,0, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1} }, +-// PDT 4.61 (10/07/2015) +- // 4.61: Individual ensemble reforecast, control and perturbed, +- // at a horizontal level or in a horizontal layer +- // in a continuous or non-continuous time interval +- {61,38,1, {1,1,1,1,1,2,1,1,-4,1,-1,-4,1,-1,-4,1,1,1,2,1,1,1,1,1,2,1,1,1,1,1,1,4,1,1,1,4,1,4} }, +-// VALIDATION --- PDT 4.35 +-// PDT 4.35 (10/07/2015) +- // 4.35: Individual ensemble reforecast, control and perturbed, +- // at a horizontal level or in a horizontal layer +- // in a continuous or non-continuous time interval +- {35,6,1, {1,1,1,1,1,1} } +- +- } ; ++ extern const struct pdstemplate templatespds[]; ++ ++ g2int getpdsindex(g2int number); + + #endif /* _pdstemplates_H */ diff --git a/g2clib.spec b/g2clib.spec new file mode 100644 index 0000000..54affb9 --- /dev/null +++ b/g2clib.spec @@ -0,0 +1,107 @@ +%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) + +Name: g2clib +Version: 1.6.0 +Release: 1 +Summary: GRIB2 encoder/decoder and search/indexing routines in C + +License: Public Domain +URL: http://www.nco.ncep.noaa.gov/pmb/codes/GRIB2/ +Source0: http://www.nco.ncep.noaa.gov/pmb/codes/GRIB2/g2clib-%{version}.tar +Source1: g2clib-msg.txt +#Patch to fix up type detection and printf arguments on 64-bit machines +Patch0: g2clib-64bit.patch +# Patch to remove multiple definitions of templates +Patch1: g2clib-templates.patch +# Patch from Wesley Ebisuzaki to fix sigfault +# if simunpack() is called with 0 values to unpack +Patch2: g2clib-simunpack.patch +# Patch from degrib - appears to fix projection issues +Patch3: g2clib-degrib.patch +# Fix build with Jasper 2 +Patch4: g2clib-jasper2.patch + +BuildRequires: gcc +BuildRequires: libpng-devel jasper-devel +# static only library - no debuginfo +%global debug_package %{nil} + +%if %{lua: print(rpm.vercmp(rpm.expand("%version"),"1.6.0"))} >= 0 +%global g2clib g2c_v%{version} +%else +%global g2clib grib2c +%endif + +%description +This library contains "C" decoder/encoder +routines for GRIB edition 2. The user API for the GRIB2 routines +is described in ASCII file "grib2c.doc". + + +%package devel +Summary: Development files for %{name} +#Requires: %%{name} = %%{version}-%%{release} +Provides: %{name}-static = %{version}-%{release} +Requires: libpng-devel jasper-devel + +%description devel +This library contains "C" decoder/encoder +routines for GRIB edition 2. The user API for the GRIB2 routines +is described in file "grib2c.doc". + +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + + +%prep +%setup -q +%patch0 -p1 -b .64bit +%patch1 -p1 -b .templates +%patch2 -p1 -b .simunpack +%patch3 -p1 -b .degrib +%patch4 -p1 -b .jasper2 +chmod a-x *.h *.c README CHANGES grib2c.doc makefile +cp -p %{SOURCE1} . + + +%build +CFLAGS="$RPM_OPT_FLAGS -DUSE_PNG -DUSE_JPEG2000" + +%ifarch sparc64 s390x %{mips64} +CFLAGS="$CFLAGS -D__64BIT__ -fPIC" +%endif +%ifarch x86_64 ia64 %{power64} aarch64 +CFLAGS="$CFLAGS -D__64BIT__ -fpic" +%endif +%ifarch %{ix86} %{arm} %{mips32} +CFLAGS="$CFLAGS -fpic" +%endif + +make CFLAGS="$CFLAGS" CC="%{__cc}" ARFLAGS= + + +%install +mkdir -p $RPM_BUILD_ROOT%{_libdir} $RPM_BUILD_ROOT%{_includedir} +install -p -m0644 lib%{g2clib}.a $RPM_BUILD_ROOT%{_libdir} +install -p -m0644 grib2.h $RPM_BUILD_ROOT%{_includedir} +install -p -m0644 drstemplates.h $RPM_BUILD_ROOT%{_includedir} +install -p -m0644 gridtemplates.h $RPM_BUILD_ROOT%{_includedir} +install -p -m0644 pdstemplates.h $RPM_BUILD_ROOT%{_includedir} +mkdir -p $RPM_BUILD_ROOT%{macrosdir} +echo %%g2clib %g2clib > $RPM_BUILD_ROOT%{macrosdir}/macros.g2clib + + +%files devel +%doc README CHANGES grib2c.doc g2clib-msg.txt +#%%{_libdir}/libgrib2c.a +%{_libdir}/lib%{g2clib}.a +%{_includedir}/grib2.h +%{_includedir}/drstemplates.h +%{_includedir}/gridtemplates.h +%{_includedir}/pdstemplates.h +%{macrosdir}/macros.g2clib + + +%changelog +* Web Feb 03 2021 yangshaoxing - 1.6.0-1 +- Package init