From 246f760da3d92009248e64a4835d912135cbe0ae Mon Sep 17 00:00:00 2001 From: John Halley Gotway Date: Mon, 10 May 2021 14:43:34 -0600 Subject: [PATCH 1/5] Per #1786, updates for the v10.0.0 release. Note that no changes were needed in conf.py. It had already been updated. --- met/docs/Users_Guide/release-notes.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/met/docs/Users_Guide/release-notes.rst b/met/docs/Users_Guide/release-notes.rst index 536170ede6..725b968c8d 100644 --- a/met/docs/Users_Guide/release-notes.rst +++ b/met/docs/Users_Guide/release-notes.rst @@ -20,6 +20,7 @@ MET Version |version| release notes (|release_date|) * Run the nightly build as the shared met_test user (`#1116 `_). * Correct the time offset for tests in unit_plot_data_plane.xml (`#1677 `_). * Enhance the sample plotting R-script to read output from different versions of MET (`#1653 `_). + * Update the default configuration options to compile the development code with the debug (-g) option and the production code without it (`#1788 `_). * Documentation: @@ -46,6 +47,7 @@ MET Version |version| release notes (|release_date|) * Python embedding enhancements: + * Note that the netCDF4 Python package is now required in place of the pickle package! * **Replace the pickle format for temporary python files with NetCDF for gridded data** (`#1319 `_, `#1697 `_). * **Replace the pickle format for temporary python files with ASCII for point observations in ascii2nc and matched pair data in Stat-Analysis** (`#1319 `_, `#1700 `_). * **Complete support for Python XArray embedding** (`#1534 `_). @@ -108,6 +110,10 @@ MET Version |version| release notes (|release_date|) * Improve the point2grid runtime performance (`#1421 `_). * Process point observations by variable name instead of GRIB code (`#1408 `_). + * GIS Tools: + + * Fix memory corruption bug in the gis_dump_dbf utility which causes it to abort at runtime (`#1777 `_). + * Plot-Point-Obs Tool: * **Overhaul Plot-Point-Obs to make it highly configurable** (`#213 `_, `#1528 `_, and `#1052 `_). @@ -120,6 +126,7 @@ MET Version |version| release notes (|release_date|) * **Add detailed log messages when discarding observations** (`#1588 `_). * Update log messages (`#1514 `_). * Enhance the validation of masking regions to check for non-unique masking region names (`#1439 `_). + * Fix Point-Stat runtime error when verifying certain CF-complaint NetCDF files (`#1782 `_). * Grid-Stat Tool: From 3a7d20ce52e0675f77373b4a203a1ea6c5a8753d Mon Sep 17 00:00:00 2001 From: "Julie.Prestopnik" Date: Mon, 10 May 2021 14:56:03 -0600 Subject: [PATCH 2/5] Added update MET to compile using GNU version 10 compilers and PGI version 20 compilers --- met/docs/Users_Guide/release-notes.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/met/docs/Users_Guide/release-notes.rst b/met/docs/Users_Guide/release-notes.rst index 725b968c8d..b4b77c56cc 100644 --- a/met/docs/Users_Guide/release-notes.rst +++ b/met/docs/Users_Guide/release-notes.rst @@ -21,7 +21,9 @@ MET Version |version| release notes (|release_date|) * Correct the time offset for tests in unit_plot_data_plane.xml (`#1677 `_). * Enhance the sample plotting R-script to read output from different versions of MET (`#1653 `_). * Update the default configuration options to compile the development code with the debug (-g) option and the production code without it (`#1788 `_). - + * Update MET to compile using GCC version 10 (`#1552 https://github.com/dtcenter/MET/issues/1552`_). + * Update MET to compile using PGI version 20 (`#1317 https://github.com/dtcenter/MET/issues/1317`_). + * Documentation: * **Migrate the MET documentation to Read the Docs** (`#1649 `_). From ae835399b28bb52a272abf512ac0d486339d1138 Mon Sep 17 00:00:00 2001 From: "Julie.Prestopnik" Date: Mon, 10 May 2021 15:04:01 -0600 Subject: [PATCH 3/5] Made updates to improve compilation --- scripts/installation/compile_MET_all.sh | 27 ++++++++++++++----------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/scripts/installation/compile_MET_all.sh b/scripts/installation/compile_MET_all.sh index 0d11f4f8fd..3357e80b73 100755 --- a/scripts/installation/compile_MET_all.sh +++ b/scripts/installation/compile_MET_all.sh @@ -64,11 +64,11 @@ if [ ! -e $TAR_DIR ]; then fi # Update library linker path -export LD_LIBRARY_PATH=${TEST_BASE}/external_libs/lib:${MET_PYTHON}/lib:${MET_NETCDF}/lib:${MET_HDF5}/lib:${MET_BUFRLIB}:${MET_GRIB2CLIB}:${LIB_JASPER}:${LIB_LIBPNG}:${LIB_Z}:${LD_LIBRARY_PATH} +export LD_LIBRARY_PATH=${TEST_BASE}/external_libs/lib${MET_PYTHON:+:$MET_PYTHON/lib}${MET_NETCDF:+:$MET_NETCDF/lib}${MET_HDF5:+:$MET_HDF5/lib}${MET_BUFRLIB:+:$MET_BUFRLIB}${MET_GRIB2CLIB:+:$MET_GRIB2CLIB}${LIB_JASPER:+$LIB_JASPER}${LIB_LIBPNG:+:$LIB_JASPER}${LIB_Z:+$LIB_Z}:${LD_LIBRARY_PATH} echo "LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}" # Constants -if [[ -z ${MET_GRIB2CLIB} && -z ${MET_GRIB2CINC} ]]; then +if [[ -z ${MET_GRIB2CLIB} ]] && [[ -z ${MET_GRIB2C} ]]; then COMPILE_ZLIB=1 COMPILE_LIBPNG=1 COMPILE_JASPER=1 @@ -185,7 +185,7 @@ elif [ ${COMPILER_FAMILY} = "pgi" ]; then export F77=${F90} export FC=${F90} fi -elif [[ ${COMPILER_FAMILY} == "intel" ]] || [[ ${COMPILER_FAMILY} == "ics" ]] || [[ ${COMPILER_FAMILY} == "ips" ]] || [[ ${COMPILER_FAMILY} == "PrgEnv-intel" ]]; then +elif [[ ${COMPILER_FAMILY} == "intel" ]] || [[ ${COMPILER_FAMILY} == "ics" ]] || [[ ${COMPILER_FAMILY} == "ips" ]] || [[ ${COMPILER_FAMILY} == "PrgEnv-intel" ]]; then if [ -z ${CC} ]; then export CC=`which icc` else @@ -353,8 +353,8 @@ if [[ $COMPILE_LIBPNG -eq 1 && $HOST != ys* ]]; then tar -xzf ${TAR_DIR}/libpng*.tar.gz cd libpng* echo "cd `pwd`" - echo "./configure --prefix=${LIB_DIR} LDFLAGS=-L/${LIB_DIR}/lib CPPFLAGS=-I/${LIB_DIR}/include > configure.log 2>&1" - ./configure --prefix=${LIB_DIR} LDFLAGS=-L/${LIB_DIR}/lib CPPFLAGS=-I/${LIB_DIR}/include > configure.log 2>&1 + echo "./configure --prefix=${LIB_DIR} LDFLAGS=-L${LIB_DIR}/lib CPPFLAGS=-I${LIB_DIR}/include > configure.log 2>&1" + ./configure --prefix=${LIB_DIR} LDFLAGS=-L${LIB_DIR}/lib CPPFLAGS=-I${LIB_DIR}/include > configure.log 2>&1 ret=$? if [ $ret != 0 ]; then echo "configure returned with non-zero ($ret) status" @@ -530,8 +530,8 @@ if [ $COMPILE_NETCDF -eq 1 ]; then tar -xzf ${TAR_DIR}/hdf5*.tar.gz cd hdf5* echo "cd `pwd`" - echo "./configure --prefix=${LIB_DIR} --with-zlib=${LIB_DIR}/lib CFLAGS=-fPIC CXXFLAGS=-fPIC LDFLAGS=-L${LIB_DIR}/lib CPPFLAGS=-I${LIB_DIR}/include > configure.log 2>&1" - ./configure --prefix=${LIB_DIR} --with-zlib=${LIB_Z} CFLAGS=-fPIC CXXFLAGS=-fPIC LDFLAGS=-L${LIB_DIR}/lib:{LIB_Z} CPPFLAGS=-I${LIB_DIR}/include > configure.log 2>&1 + echo "./configure --prefix=${LIB_DIR} --with-zlib=${LIB_DIR}/lib CFLAGS=-fPIC CXXFLAGS=-fPIC FFLAGS=-fPIC LDFLAGS=-L${LIB_DIR}/lib CPPFLAGS=-I${LIB_DIR}/include > configure.log 2>&1" + ./configure --prefix=${LIB_DIR} --with-zlib=${LIB_Z} CFLAGS=-fPIC CXXFLAGS=-fPIC FFLAGS=-fPIC LDFLAGS=-L${LIB_DIR}/lib:${LIB_Z} CPPFLAGS=-I${LIB_DIR}/include > configure.log 2>&1 ret=$? if [ $ret != 0 ]; then echo "configure returned with non-zero ($ret) status" @@ -674,8 +674,8 @@ if [ $COMPILE_CAIRO -eq 1 ]; then export PKG_CONFIG_PATH=${LIB_DIR}/lib/pkgconfig/ fi echo "cd `pwd`" - echo "./configure --prefix=${LIB_DIR} ax_cv_c_float_words_bigendian=no LDFLAGS=-L/${LIB_DIR}/lib CPPFLAGS=-I/${LIB_DIR}/include > configure.log 2>&1" - ./configure --prefix=${LIB_DIR} ax_cv_c_float_words_bigendian=no LDFLAGS=-L/${LIB_DIR}/lib CPPFLAGS=-I/${LIB_DIR}/include > configure.log 2>&1 + echo "./configure --prefix=${LIB_DIR} ax_cv_c_float_words_bigendian=no LDFLAGS=-L${LIB_DIR}/lib CPPFLAGS=-I${LIB_DIR}/include > configure.log 2>&1" + ./configure --prefix=${LIB_DIR} ax_cv_c_float_words_bigendian=no LDFLAGS=-L${LIB_DIR}/lib CPPFLAGS=-I${LIB_DIR}/include > configure.log 2>&1 ret=$? if [ $ret != 0 ]; then echo "configure returned with non-zero ($ret) status" @@ -748,9 +748,12 @@ if [ $COMPILE_MET -eq 1 ]; then export MET_PYTHON_LD=${MET_PYTHON_LD} export MET_PYTHON_CC=${MET_PYTHON_CC} export LDFLAGS="-Wl,--disable-new-dtags" - export LDFLAGS="${LDFLAGS} -Wl,-rpath,${LIB_DIR}/lib:${MET_NETCDF}/lib:${MET_HDF5}/lib:${MET_BUFRLIB}:${MET_GRIB2CLIB}:${MET_PYTHON}/lib:${MET_GSL}/lib" - export LDFLAGS="${LDFLAGS} -Wl,-rpath,${LIB_JASPER}:${LIB_LIBPNG}:${LIB_Z}" - export LDFLAGS="${LDFLAGS} -L${LIB_JASPER} -L${LIB_LIBPNG} -L${MET_HDF5}/lib" + # https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html + # ${parameter:+word} + # If parameter is null or unset, nothing is substituted, otherwise the expansion of word is substituted. + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${LIB_DIR}/lib${MET_NETCDF:+:$MET_NETCDF/lib}${MET_HDF5:+:$MET_HDF5/lib}${MET_BUFRLIB:+:$MET_BUFRLIB}${MET_GRIB2CLIB:+:$MET_GRIB2CLIB}${MET_PYTHON:+:$MET_PYTHON/lib}${MET_GSL:+$MET_GSL/lib}" + export LDFLAGS="${LDFLAGS} -Wl,-rpath,${LIB_JASPER:+$LIB_JASPER}${LIB_LIBPNG:+:$LIB_JASPER}${LIB_Z:+$LIB_Z}" + export LDFLAGS="${LDFLAGS} ${LIB_JASPER:+-L$LIB_JASPER} ${LIB_LIBPNG:+-L$LIB_LIBPNG} ${MET_HDF5:+-L$MET_HDF5/lib}" export LIBS="${LIBS} -lhdf5_hl -lhdf5 -lz" export MET_FONT_DIR=${TEST_BASE}/fonts From 10b03203b845dec2f40f9331b33f73d5f51e90db Mon Sep 17 00:00:00 2001 From: John Halley Gotway Date: Mon, 10 May 2021 15:04:14 -0600 Subject: [PATCH 4/5] Per #1768, added a couple more 10.0.0 release notes. --- met/docs/Users_Guide/release-notes.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/met/docs/Users_Guide/release-notes.rst b/met/docs/Users_Guide/release-notes.rst index b4b77c56cc..70d1a1a028 100644 --- a/met/docs/Users_Guide/release-notes.rst +++ b/met/docs/Users_Guide/release-notes.rst @@ -27,7 +27,9 @@ MET Version |version| release notes (|release_date|) * Documentation: * **Migrate the MET documentation to Read the Docs** (`#1649 `_). - * Enhance and update documentation (`#1459 `_ and `#1460 `_). + * Enhance and update documentation (`#1459 `_ and `#1460 `_, and `#1731 `_). + * Enhance the python embedding documentation (`#1468 `_). + * Document the supported grid definition templates (`#1469 `_). * Update comments at the top of each MET config file directing users to the MET User's Guide (`#1598 `_). * Migrate content from README and README_TC in data/config to the MET User's Guide (`#1474 `_). * Add version selector to the Sphinx documentation page (`#1461 `_). @@ -128,7 +130,7 @@ MET Version |version| release notes (|release_date|) * **Add detailed log messages when discarding observations** (`#1588 `_). * Update log messages (`#1514 `_). * Enhance the validation of masking regions to check for non-unique masking region names (`#1439 `_). - * Fix Point-Stat runtime error when verifying certain CF-complaint NetCDF files (`#1782 `_). + * Fix Point-Stat runtime error for some CF-complaint NetCDF files (`#1782 `_). * Grid-Stat Tool: From ecb0988ff446298e147990d98d6959020eb40302 Mon Sep 17 00:00:00 2001 From: "Julie.Prestopnik" Date: Mon, 10 May 2021 15:04:41 -0600 Subject: [PATCH 5/5] Adding pgi config file from cheyenne --- .../config/install_met_env.cheyenne_pgi | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 scripts/installation/config/install_met_env.cheyenne_pgi diff --git a/scripts/installation/config/install_met_env.cheyenne_pgi b/scripts/installation/config/install_met_env.cheyenne_pgi new file mode 100644 index 0000000000..635f93e8f3 --- /dev/null +++ b/scripts/installation/config/install_met_env.cheyenne_pgi @@ -0,0 +1,29 @@ +module load ncarenv/1.3 +module load pgi/20.4 +module load python/3.7.9 +ncar_pylib + +export TEST_BASE=/glade/p/ral/jntp/MET/MET_cross_platform_testing/met-10.0.0-beta4/pgi +export COMPILER=pgi_20.4 +export MET_SUBDIR=${TEST_BASE} +export MET_TARBALL=met-10.0.0-beta4.20210302.tar.gz +export USE_MODULES=TRUE +export MET_PYTHON=/glade/u/apps/ch/opt/python/3.7.9/gnu/9.1.0 +export MET_PYTHON_CC=-I${MET_PYTHON}/include/python3.7m +export MET_PYTHON_LD=-L${MET_PYTHON}/lib\ -lpython3.7m\ -lcrypt\ -lpthread\ -ldl\ -lutil\ -lm +export EXTERNAL_LIBS=/glade/p/ral/jntp/MET/MET_cross_platform_testing/met-10.0.0-beta4/pgi/external_libs/ +export MET_NETCDF=${EXTERNAL_LIBS} +export MET_GSL=${EXTERNAL_LIBS} +export MET_BUFRLIB=${EXTERNAL_LIBS} +export BUFRLIB_NAME=-lbufr +export MET_HDF5=${EXTERNAL_LIBS} +export MET_GRIB2CLIB=${EXTERNAL_LIBS}/lib +export MET_GRIB2CINC=${EXTERNAL_LIBS}/include +export GRIB2CLIB_NAME=-lgrib2c +export LIB_JASPER=${EXTERNAL_LIBS}/lib +export LIB_LIBPNG=${EXTERNAL_LIBS}/lib +export LIB_Z=${EXTERNAL_LIBS}/lib +export SET_D64BIT=FALSE +export CFLAGS="-Wall -g" +export CXXFLAGS="-Wall -g -lcurl" +