From 9c33f83c632ebd188aa47872d4de453964392f7a Mon Sep 17 00:00:00 2001 From: Howard Soh Date: Fri, 17 Nov 2023 12:05:09 -0700 Subject: [PATCH] Feature 2231 unstructured grid (#2723) Co-authored-by: Howard Soh Co-authored-by: John Halley Gotway Co-authored-by: root --- .github/workflows/testing.yml | 1 + INSTALL | 4 + Make-include | 2 + Makefile.in | 14 +- compile | 6 +- config.guess | 1500 ++++++---- config.h.in | 3 + config.sub | 2609 +++++++++-------- configure | 169 +- configure.ac | 104 +- data/Makefile.in | 14 +- data/climo/Makefile.in | 14 +- data/climo/seeps/Makefile.in | 14 +- data/colortables/Makefile.in | 14 +- data/colortables/NCL_colortables/Makefile.in | 14 +- data/config/ConfigConstants | 1 + data/config/GridStatConfig_default | 6 + data/config/Makefile.am | 2 + data/config/Makefile.in | 16 +- data/config/PointStatConfig_default | 6 + data/config/UGridConfig_lfric | 36 + data/config/UGridConfig_mpas | 36 + data/map/Makefile.in | 14 +- data/map/admin_by_country/Makefile.in | 14 +- data/poly/HMT_masks/Makefile.in | 14 +- data/poly/Makefile.in | 14 +- data/poly/NCEP_masks/Makefile.in | 14 +- data/ps/Makefile.in | 14 +- data/table_files/Makefile.in | 14 +- data/tc_data/Makefile.in | 14 +- depcomp | 2 +- install-sh | 161 +- internal/scripts/docker/build_met_docker.sh | 13 +- .../scripts/environment/development.seneca | 2 + internal/test_unit/bin/unit_test.sh | 2 + .../config/GridStatConfig_ugrid_mpas | 262 ++ .../config/GridStatConfig_ugrid_mpas_diag | 263 ++ .../config/PointStatConfig_ugrid_mpas_diag | 167 ++ .../config/PointStatConfig_ugrid_mpas_out | 167 ++ internal/test_unit/xml/unit_ugrid.xml | 114 + internal/test_util/Makefile.in | 14 +- internal/test_util/basic/Makefile.in | 14 +- .../test_util/basic/vx_config/Makefile.in | 14 +- internal/test_util/basic/vx_log/Makefile.in | 14 +- internal/test_util/basic/vx_util/Makefile.am | 6 +- internal/test_util/basic/vx_util/Makefile.in | 24 +- internal/test_util/libcode/Makefile.in | 14 +- .../test_util/libcode/vx_data2d/Makefile.am | 2 + .../test_util/libcode/vx_data2d/Makefile.in | 20 +- .../libcode/vx_data2d_factory/Makefile.am | 7 +- .../libcode/vx_data2d_factory/Makefile.in | 23 +- .../libcode/vx_data2d_grib/Makefile.am | 2 + .../libcode/vx_data2d_grib/Makefile.in | 20 +- .../libcode/vx_data2d_nc_met/Makefile.am | 2 + .../libcode/vx_data2d_nc_met/Makefile.in | 20 +- .../libcode/vx_data2d_nccf/Makefile.am | 2 + .../libcode/vx_data2d_nccf/Makefile.in | 20 +- .../test_util/libcode/vx_geodesy/Makefile.in | 14 +- .../test_util/libcode/vx_grid/Makefile.am | 6 +- .../test_util/libcode/vx_grid/Makefile.in | 24 +- .../test_util/libcode/vx_nc_util/Makefile.am | 6 +- .../test_util/libcode/vx_nc_util/Makefile.in | 24 +- .../test_util/libcode/vx_physics/Makefile.in | 14 +- .../libcode/vx_plot_util/Makefile.in | 14 +- internal/test_util/libcode/vx_ps/Makefile.in | 14 +- .../libcode/vx_series_data/Makefile.in | 14 +- .../test_util/libcode/vx_solar/Makefile.in | 14 +- .../test_util/libcode/vx_tc_util/Makefile.am | 12 +- .../test_util/libcode/vx_tc_util/Makefile.in | 33 +- internal/test_util/tools/Makefile.in | 14 +- internal/test_util/tools/other/Makefile.in | 14 +- .../tools/other/mode_time_domain/Makefile.am | 9 +- .../tools/other/mode_time_domain/Makefile.in | 25 +- missing | 2 +- scripts/Makefile | 2 +- scripts/Rscripts/Makefile.in | 14 +- scripts/Rscripts/include/Makefile.in | 14 +- scripts/python/Makefile.in | 14 +- scripts/python/examples/Makefile.in | 14 +- scripts/python/met/Makefile.in | 14 +- scripts/python/pyembed/Makefile.in | 14 +- scripts/python/tc_diag/Makefile.in | 14 +- scripts/python/utility/Makefile.in | 14 +- src/Makefile.in | 14 +- src/basic/Makefile.in | 14 +- src/basic/enum_to_string/Makefile.in | 14 +- src/basic/vx_cal/Makefile.in | 14 +- src/basic/vx_config/Makefile.in | 14 +- src/basic/vx_config/config_constants.h | 6 + src/basic/vx_config/config_file.cc | 2 +- src/basic/vx_config/config_util.cc | 85 +- src/basic/vx_config/config_util.h | 9 + src/basic/vx_config/data_file_type.h | 1 + src/basic/vx_config/grdfiletype_to_string.cc | 12 +- src/basic/vx_log/Makefile.in | 14 +- src/basic/vx_math/Makefile.in | 14 +- src/basic/vx_util/Makefile.in | 14 +- src/basic/vx_util_math/Makefile.in | 14 +- src/libcode/Makefile.am | 5 +- src/libcode/Makefile.in | 27 +- src/libcode/vx_afm/Makefile.in | 14 +- src/libcode/vx_analysis_util/Makefile.in | 14 +- src/libcode/vx_bool_calc/Makefile.in | 14 +- src/libcode/vx_color/Makefile.in | 14 +- src/libcode/vx_data2d/Makefile.in | 14 +- src/libcode/vx_data2d_factory/Makefile.in | 14 +- .../vx_data2d_factory/data2d_factory.cc | 29 +- .../vx_data2d_factory/data2d_factory_utils.cc | 5 +- .../vx_data2d_factory/is_netcdf_file.cc | 53 +- .../vx_data2d_factory/is_netcdf_file.h | 1 + .../vx_data2d_factory/var_info_factory.cc | 27 +- src/libcode/vx_data2d_grib/Makefile.in | 14 +- src/libcode/vx_data2d_grib2/Makefile.in | 14 +- src/libcode/vx_data2d_nc_met/Makefile.in | 14 +- src/libcode/vx_data2d_nc_pinterp/Makefile.in | 14 +- src/libcode/vx_data2d_nccf/Makefile.in | 14 +- src/libcode/vx_data2d_nccf/data2d_nccf.cc | 7 +- src/libcode/vx_data2d_nccf/data2d_nccf.h | 4 +- src/libcode/vx_data2d_nccf/nccf_file.h | 8 +- src/libcode/vx_data2d_nccf/var_info_nccf.cc | 2 +- src/libcode/vx_data2d_python/Makefile.in | 14 +- src/libcode/vx_data2d_ugrid/Makefile.am | 20 + src/libcode/vx_data2d_ugrid/Makefile.in | 692 +++++ src/libcode/vx_data2d_ugrid/data2d_ugrid.cc | 1045 +++++++ src/libcode/vx_data2d_ugrid/data2d_ugrid.h | 138 + src/libcode/vx_data2d_ugrid/ugrid_file.cc | 1026 +++++++ src/libcode/vx_data2d_ugrid/ugrid_file.h | 186 ++ src/libcode/vx_data2d_ugrid/var_info_ugrid.cc | 488 +++ src/libcode/vx_data2d_ugrid/var_info_ugrid.h | 101 + src/libcode/vx_data2d_ugrid/vx_data2d_ugrid.h | 38 + src/libcode/vx_geodesy/Makefile.in | 14 +- src/libcode/vx_gis/Makefile.in | 14 +- src/libcode/vx_gnomon/Makefile.in | 14 +- src/libcode/vx_grid/Makefile.am | 6 + src/libcode/vx_grid/Makefile.in | 89 +- src/libcode/vx_grid/grid_base.cc | 287 +- src/libcode/vx_grid/grid_base.h | 21 +- src/libcode/vx_grid/unstructured_grid.cc | 443 +++ src/libcode/vx_grid/unstructured_grid.h | 98 + src/libcode/vx_grid/unstructured_grid_defs.h | 71 + src/libcode/vx_gsl_prob/Makefile.in | 14 +- src/libcode/vx_nav/Makefile.in | 14 +- src/libcode/vx_nc_obs/Makefile.in | 14 +- src/libcode/vx_nc_util/Makefile.in | 14 +- src/libcode/vx_nc_util/nc_utils.cc | 65 +- src/libcode/vx_nc_util/nc_utils.h | 2 + src/libcode/vx_pb_util/Makefile.in | 14 +- src/libcode/vx_physics/Makefile.in | 14 +- src/libcode/vx_plot_util/Makefile.in | 14 +- src/libcode/vx_pointdata_python/Makefile.in | 14 +- src/libcode/vx_ps/Makefile.in | 14 +- src/libcode/vx_pxm/Makefile.in | 14 +- src/libcode/vx_python3_utils/Makefile.in | 14 +- src/libcode/vx_regrid/Makefile.in | 14 +- src/libcode/vx_render/Makefile.in | 14 +- src/libcode/vx_seeps/Makefile.in | 14 +- src/libcode/vx_series_data/Makefile.in | 14 +- src/libcode/vx_shapedata/Makefile.in | 14 +- src/libcode/vx_solar/Makefile.in | 14 +- src/libcode/vx_stat_out/Makefile.in | 14 +- src/libcode/vx_statistics/Makefile.in | 14 +- src/libcode/vx_summary/Makefile.in | 14 +- src/libcode/vx_tc_util/Makefile.in | 14 +- src/libcode/vx_time_series/Makefile.in | 14 +- src/tools/Makefile.in | 14 +- src/tools/core/Makefile.in | 14 +- src/tools/core/ensemble_stat/Makefile.am | 10 +- src/tools/core/ensemble_stat/Makefile.in | 28 +- src/tools/core/ensemble_stat/ensemble_stat.cc | 122 +- .../ensemble_stat/ensemble_stat_conf_info.h | 16 +- src/tools/core/grid_stat/Makefile.am | 9 +- src/tools/core/grid_stat/Makefile.in | 27 +- src/tools/core/grid_stat/grid_stat.cc | 119 +- src/tools/core/grid_stat/grid_stat.h | 1 + .../core/grid_stat/grid_stat_conf_info.cc | 122 +- .../core/grid_stat/grid_stat_conf_info.h | 9 +- src/tools/core/mode/Makefile.am | 9 +- src/tools/core/mode/Makefile.in | 27 +- src/tools/core/mode_analysis/Makefile.am | 10 +- src/tools/core/mode_analysis/Makefile.in | 28 +- src/tools/core/pcp_combine/Makefile.am | 7 +- src/tools/core/pcp_combine/Makefile.in | 25 +- src/tools/core/point_stat/Makefile.am | 10 +- src/tools/core/point_stat/Makefile.in | 27 +- src/tools/core/point_stat/point_stat.cc | 111 +- src/tools/core/point_stat/point_stat.h | 3 +- .../core/point_stat/point_stat_conf_info.cc | 154 +- .../core/point_stat/point_stat_conf_info.h | 16 +- src/tools/core/series_analysis/Makefile.am | 9 +- src/tools/core/series_analysis/Makefile.in | 25 +- src/tools/core/stat_analysis/Makefile.am | 9 +- src/tools/core/stat_analysis/Makefile.in | 25 +- src/tools/core/wavelet_stat/Makefile.am | 9 +- src/tools/core/wavelet_stat/Makefile.in | 25 +- src/tools/dev_utils/Makefile.am | 7 +- src/tools/dev_utils/Makefile.in | 23 +- src/tools/dev_utils/shapefiles/Makefile.in | 14 +- src/tools/other/Makefile.in | 14 +- src/tools/other/ascii2nc/Makefile.am | 8 +- src/tools/other/ascii2nc/Makefile.in | 25 +- src/tools/other/gen_ens_prod/Makefile.am | 10 +- src/tools/other/gen_ens_prod/Makefile.in | 28 +- src/tools/other/gen_vx_mask/Makefile.am | 9 +- src/tools/other/gen_vx_mask/Makefile.in | 27 +- src/tools/other/gis_utils/Makefile.in | 14 +- src/tools/other/grid_diag/Makefile.am | 7 +- src/tools/other/grid_diag/Makefile.in | 25 +- src/tools/other/gsi_tools/Makefile.am | 24 +- src/tools/other/gsi_tools/Makefile.in | 45 +- src/tools/other/ioda2nc/Makefile.am | 8 +- src/tools/other/ioda2nc/Makefile.in | 26 +- src/tools/other/lidar2nc/Makefile.am | 6 +- src/tools/other/lidar2nc/Makefile.in | 24 +- src/tools/other/madis2nc/Makefile.am | 8 +- src/tools/other/madis2nc/Makefile.in | 25 +- src/tools/other/mode_graphics/Makefile.am | 7 +- src/tools/other/mode_graphics/Makefile.in | 25 +- src/tools/other/mode_time_domain/Makefile.am | 7 +- src/tools/other/mode_time_domain/Makefile.in | 25 +- src/tools/other/modis_regrid/Makefile.am | 8 +- src/tools/other/modis_regrid/Makefile.in | 24 +- src/tools/other/pb2nc/Makefile.am | 8 +- src/tools/other/pb2nc/Makefile.in | 27 +- src/tools/other/plot_data_plane/Makefile.am | 7 +- src/tools/other/plot_data_plane/Makefile.in | 23 +- .../other/plot_data_plane/plot_data_plane.cc | 6 + src/tools/other/plot_point_obs/Makefile.am | 8 +- src/tools/other/plot_point_obs/Makefile.in | 26 +- .../other/plot_point_obs/plot_point_obs.cc | 15 + src/tools/other/point2grid/Makefile.am | 8 +- src/tools/other/point2grid/Makefile.in | 25 +- src/tools/other/regrid_data_plane/Makefile.am | 7 +- src/tools/other/regrid_data_plane/Makefile.in | 23 +- src/tools/other/shift_data_plane/Makefile.am | 7 +- src/tools/other/shift_data_plane/Makefile.in | 23 +- src/tools/other/wwmca_tool/Makefile.am | 14 +- src/tools/other/wwmca_tool/Makefile.in | 34 +- src/tools/tc_utils/Makefile.in | 14 +- src/tools/tc_utils/rmw_analysis/Makefile.am | 7 +- src/tools/tc_utils/rmw_analysis/Makefile.in | 23 +- src/tools/tc_utils/tc_diag/Makefile.am | 7 +- src/tools/tc_utils/tc_diag/Makefile.in | 23 +- src/tools/tc_utils/tc_dland/Makefile.am | 2 + src/tools/tc_utils/tc_dland/Makefile.in | 19 +- src/tools/tc_utils/tc_gen/Makefile.am | 7 +- src/tools/tc_utils/tc_gen/Makefile.in | 23 +- src/tools/tc_utils/tc_pairs/Makefile.am | 7 +- src/tools/tc_utils/tc_pairs/Makefile.in | 23 +- src/tools/tc_utils/tc_rmw/Makefile.am | 7 +- src/tools/tc_utils/tc_rmw/Makefile.in | 23 +- src/tools/tc_utils/tc_stat/Makefile.am | 7 +- src/tools/tc_utils/tc_stat/Makefile.in | 25 +- ylwrap | 2 +- 253 files changed, 11242 insertions(+), 2909 deletions(-) create mode 100644 data/config/UGridConfig_lfric create mode 100644 data/config/UGridConfig_mpas create mode 100644 internal/test_unit/config/GridStatConfig_ugrid_mpas create mode 100644 internal/test_unit/config/GridStatConfig_ugrid_mpas_diag create mode 100644 internal/test_unit/config/PointStatConfig_ugrid_mpas_diag create mode 100644 internal/test_unit/config/PointStatConfig_ugrid_mpas_out create mode 100644 internal/test_unit/xml/unit_ugrid.xml create mode 100644 src/libcode/vx_data2d_ugrid/Makefile.am create mode 100644 src/libcode/vx_data2d_ugrid/Makefile.in create mode 100644 src/libcode/vx_data2d_ugrid/data2d_ugrid.cc create mode 100644 src/libcode/vx_data2d_ugrid/data2d_ugrid.h create mode 100644 src/libcode/vx_data2d_ugrid/ugrid_file.cc create mode 100644 src/libcode/vx_data2d_ugrid/ugrid_file.h create mode 100644 src/libcode/vx_data2d_ugrid/var_info_ugrid.cc create mode 100644 src/libcode/vx_data2d_ugrid/var_info_ugrid.h create mode 100644 src/libcode/vx_data2d_ugrid/vx_data2d_ugrid.h create mode 100644 src/libcode/vx_grid/unstructured_grid.cc create mode 100644 src/libcode/vx_grid/unstructured_grid.h create mode 100644 src/libcode/vx_grid/unstructured_grid_defs.h diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 40c22d80e9..fcfb898db0 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -294,6 +294,7 @@ jobs: - 'grid_stat stat_analysis_gs' - 'wavelet_stat stat_analysis_ws' - 'ensemble_stat stat_analysis_es' + - 'ugrid' fail-fast: false steps: - uses: actions/checkout@v3 diff --git a/INSTALL b/INSTALL index c408f5d504..716fae39b4 100644 --- a/INSTALL +++ b/INSTALL @@ -179,6 +179,10 @@ sub-directory, or the MET Online Tutorial: Enable compilation of lidar2nc Requires $MET_HDF + --enable-ugrid + Enable compilation of unstructured grid + Requires $MET_ATLAS and $MET_ECKIT + To configure MET to install all of the available tools in the "bin" subdirectory of your current directory, you would use the following command: diff --git a/Make-include b/Make-include index cf85bcd271..bdde7b71a4 100644 --- a/Make-include +++ b/Make-include @@ -15,6 +15,7 @@ MET_CPPFLAGS = -I${top_builddir}/src/basic/vx_cal \ -I${top_builddir}/src/libcode/vx_data2d_nc_met \ -I${top_builddir}/src/libcode/vx_data2d_nc_pinterp \ -I${top_builddir}/src/libcode/vx_data2d_python \ + -I${top_builddir}/src/libcode/vx_data2d_ugrid \ -I${top_builddir}/src/libcode/vx_python3_utils \ -I${top_builddir}/src/libcode/vx_geodesy \ -I${top_builddir}/src/libcode/vx_gis \ @@ -61,6 +62,7 @@ MET_LDFLAGS = -L${top_builddir}/src/basic/vx_cal \ -L${top_builddir}/src/libcode/vx_data2d_nc_met \ -L${top_builddir}/src/libcode/vx_data2d_nc_pinterp \ -L${top_builddir}/src/libcode/vx_data2d_python \ + -L${top_builddir}/src/libcode/vx_data2d_ugrid \ -L${top_builddir}/src/libcode/vx_python3_utils \ -L${top_builddir}/src/libcode/vx_geodesy \ -L${top_builddir}/src/libcode/vx_gis \ diff --git a/Makefile.in b/Makefile.in index b93bd865e6..d5a0a487eb 100644 --- a/Makefile.in +++ b/Makefile.in @@ -234,7 +234,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -248,11 +249,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -291,11 +298,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/compile b/compile index 99e50524b3..df363c8fbf 100755 --- a/compile +++ b/compile @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -53,7 +53,7 @@ func_file_conv () MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -67,7 +67,7 @@ func_file_conv () mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/*) + cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) diff --git a/config.guess b/config.guess index f50dcdb6de..7f76b6228f 100755 --- a/config.guess +++ b/config.guess @@ -1,12 +1,14 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2018 Free Software Foundation, Inc. +# Copyright 1992-2022 Free Software Foundation, Inc. -timestamp='2018-02-24' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2022-01-09' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but @@ -27,11 +29,19 @@ timestamp='2018-02-24' # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + me=`echo "$0" | sed -e 's,.*/,,'` usage="\ @@ -50,7 +60,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2018 Free Software Foundation, Inc. +Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,7 +94,8 @@ if test $# != 0; then exit 1 fi -trap 'exit 1' 1 2 15 +# Just in case it came from the environment. +GUESS= # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires @@ -96,73 +107,90 @@ trap 'exit 1' 1 2 15 # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > "$dummy.c" ; - for c in cc gcc c89 c99 ; do - if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "$UNAME_SYSTEM" in +case $UNAME_SYSTEM in Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu + LIBC=unknown - eval "$set_cc_for_build" + set_cc_for_build cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc - #else + #elif defined(__GLIBC__) LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif #endif EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" - # If ldd exists, use it to detect musl libc. - if command -v ldd >/dev/null && \ - ldd --version 2>&1 | grep -q ^musl - then - LIBC=musl + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -174,12 +202,12 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - "/sbin/$sysctl" 2>/dev/null || \ - "/usr/sbin/$sysctl" 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ echo unknown)` - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; @@ -188,18 +216,18 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in earmv*) arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` - machine="${arch}${endian}"-unknown + machine=${arch}${endian}-unknown ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval "$set_cc_for_build" + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -215,7 +243,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in ;; esac # Determine ABI tags. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` @@ -226,7 +254,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "$UNAME_VERSION" in + case $UNAME_VERSION in Debian*) release='-gnu' ;; @@ -237,45 +265,57 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi}" - exit ;; + GUESS=$machine-${os}${release}${abi-} + ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; *:MidnightBSD:*:*) - echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; *:ekkoBSD:*:*) - echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; *:SolidBSD:*:*) - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; *:MirBSD:*:*) - echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; *:Sortix:*:*) - echo "$UNAME_MACHINE"-unknown-sortix - exit ;; + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; *:Redox:*:*) - echo "$UNAME_MACHINE"-unknown-redox - exit ;; + GUESS=$UNAME_MACHINE-unknown-redox + ;; mips:OSF1:*.*) - echo mips-dec-osf1 - exit ;; + GUESS=mips-dec-osf1 + ;; alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` @@ -289,7 +329,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in + case $ALPHA_CPU_TYPE in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") @@ -326,117 +366,121 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; + GUESS=m68k-unknown-sysv4 + ;; *:[Aa]miga[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-amigaos - exit ;; + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; *:[Mm]orph[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-morphos - exit ;; + GUESS=$UNAME_MACHINE-unknown-morphos + ;; *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; + GUESS=i370-ibm-openedition + ;; *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; + GUESS=s390-ibm-zvmoe + ;; *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; + GUESS=powerpc-ibm-os400 + ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix"$UNAME_RELEASE" - exit ;; + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; + GUESS=arm-unknown-riscos + ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; + GUESS=hppa1.1-hitachi-hiuxmpp + ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; + GUESS=pyramid-pyramid-svr4 + ;; DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; + GUESS=sparc-icl-nx6 + ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; s390x:SunOS:*:*) - echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux"$UNAME_RELEASE" - exit ;; + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval "$set_cc_for_build" + set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi - echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in + case `/usr/bin/arch -k` in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos"$UNAME_RELEASE" - exit ;; + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case "`/bin/arch`" in + case `/bin/arch` in sun3) - echo m68k-sun-sunos"$UNAME_RELEASE" + GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) - echo sparc-sun-sunos"$UNAME_RELEASE" + GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac - exit ;; + ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos"$UNAME_RELEASE" - exit ;; + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -446,43 +490,43 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; m68k:machten:*:*) - echo m68k-apple-machten"$UNAME_RELEASE" - exit ;; + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; powerpc:machten:*:*) - echo powerpc-apple-machten"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; + GUESS=mips-dec-mach_bsd4.3 + ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix"$UNAME_RELEASE" - exit ;; + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix"$UNAME_RELEASE" - exit ;; + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix"$UNAME_RELEASE" - exit ;; + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ @@ -508,78 +552,79 @@ EOF dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos"$UNAME_RELEASE" - exit ;; + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; + GUESS=powerpc-motorola-powermax + ;; Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; + GUESS=powerpc-harris-powerunix + ;; m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; + GUESS=m88k-harris-cxux7 + ;; m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; + GUESS=m88k-motorola-sysv4 + ;; m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then - if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ - [ "$TARGET_BINARY_INTERFACE"x = x ] + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x then - echo m88k-dg-dgux"$UNAME_RELEASE" + GUESS=m88k-dg-dgux$UNAME_RELEASE else - echo m88k-dg-dguxbcs"$UNAME_RELEASE" + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else - echo i586-dg-dgux"$UNAME_RELEASE" + GUESS=i586-dg-dgux$UNAME_RELEASE fi - exit ;; + ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; + GUESS=m88k-dolphin-sysv3 + ;; M88*:*:R3*:*) # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; + GUESS=m88k-tektronix-sysv3 + ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; + GUESS=m68k-tektronix-bsd + ;; *:IRIX*:*:*) - echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" - exit ;; + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; + GUESS=i386-ibm-aix + ;; ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then + if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" - exit ;; + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include @@ -593,16 +638,16 @@ EOF EOF if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then - echo "$SYSTEM_NAME" + GUESS=$SYSTEM_NAME else - echo rs6000-ibm-aix3.2.5 + GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 + GUESS=rs6000-ibm-aix3.2.4 else - echo rs6000-ibm-aix3.2 + GUESS=rs6000-ibm-aix3.2 fi - exit ;; + ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then @@ -610,57 +655,57 @@ EOF else IBM_ARCH=powerpc fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo "$IBM_ARCH"-ibm-aix"$IBM_REV" - exit ;; + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; + GUESS=rs6000-ibm-aix + ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) - echo romp-ibm-bsd4.4 - exit ;; + GUESS=romp-ibm-bsd4.4 + ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; + GUESS=rs6000-bull-bosx + ;; DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; + GUESS=m68k-bull-sysv3 + ;; 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; + GUESS=m68k-hp-bsd + ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; + GUESS=m68k-hp-bsd4.4 + ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - case "$UNAME_MACHINE" in + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then + if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "$sc_cpu_version" in + case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "$sc_kernel_bits" in + case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "$HP_ARCH" = "" ]; then - eval "$set_cc_for_build" + if test "$HP_ARCH" = ""; then + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE @@ -698,9 +743,9 @@ EOF test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ "$HP_ARCH" = hppa2.0w ] + if test "$HP_ARCH" = hppa2.0w then - eval "$set_cc_for_build" + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -719,14 +764,14 @@ EOF HP_ARCH=hppa64 fi fi - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" - exit ;; + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; ia64:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux"$HPUX_REV" - exit ;; + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; 3050*:HI-UX:*:*) - eval "$set_cc_for_build" + set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include int @@ -754,36 +799,36 @@ EOF EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; + GUESS=unknown-hitachi-hiuxwe2 + ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) - echo hppa1.1-hp-bsd - exit ;; + GUESS=hppa1.1-hp-bsd + ;; 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; + GUESS=hppa1.0-hp-bsd + ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; + GUESS=hppa1.0-hp-mpeix + ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) - echo hppa1.1-hp-osf - exit ;; + GUESS=hppa1.1-hp-osf + ;; hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; + GUESS=hppa1.0-hp-osf + ;; i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo "$UNAME_MACHINE"-unknown-osf1mk + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk else - echo "$UNAME_MACHINE"-unknown-osf1 + GUESS=$UNAME_MACHINE-unknown-osf1 fi - exit ;; + ;; parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; + GUESS=hppa1.1-hp-lites + ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; + GUESS=c1-convex-bsd + ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd @@ -791,17 +836,18 @@ EOF fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; + GUESS=c34-convex-bsd + ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; + GUESS=c38-convex-bsd + ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; + GUESS=c4-convex-bsd + ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ @@ -809,103 +855,129 @@ EOF -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; *:BSD/OS:*:*) - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case "$UNAME_PROCESSOR" in + case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac - echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; i*:CYGWIN*:*) - echo "$UNAME_MACHINE"-pc-cygwin - exit ;; + GUESS=$UNAME_MACHINE-pc-cygwin + ;; *:MINGW64*:*) - echo "$UNAME_MACHINE"-pc-mingw64 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; *:MINGW*:*) - echo "$UNAME_MACHINE"-pc-mingw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; *:MSYS*:*) - echo "$UNAME_MACHINE"-pc-msys - exit ;; + GUESS=$UNAME_MACHINE-pc-msys + ;; i*:PW*:*) - echo "$UNAME_MACHINE"-pc-pw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; *:Interix*:*) - case "$UNAME_MACHINE" in + case $UNAME_MACHINE in x86) - echo i586-pc-interix"$UNAME_RELEASE" - exit ;; + GUESS=i586-pc-interix$UNAME_RELEASE + ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix"$UNAME_RELEASE" - exit ;; + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; IA64) - echo ia64-unknown-interix"$UNAME_RELEASE" - exit ;; + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; esac ;; i*:UWIN*:*) - echo "$UNAME_MACHINE"-pc-uwin - exit ;; + GUESS=$UNAME_MACHINE-pc-uwin + ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; + GUESS=x86_64-pc-cygwin + ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; *:GNU:*:*) # the GNU system - echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" - exit ;; + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" - exit ;; - i*86:Minix:*:*) - echo "$UNAME_MACHINE"-pc-minix - exit ;; + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; aarch64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -916,187 +988,225 @@ EOF esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; arm*:Linux:*:*) - eval "$set_cc_for_build" + set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi - exit ;; + ;; avr32*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; cris:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; crisv32:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; e2k:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; frv:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; hexagon:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; ia64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; k1om:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m32r*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m68*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; mips:Linux:*:* | mips64:Linux:*:*) - eval "$set_cc_for_build" + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 sed 's/^ //' << EOF > "$dummy.c" #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el + MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} + MIPS_ENDIAN= #else - CPU= + MIPS_ENDIAN= #endif #endif EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" - test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-"$LIBC" - exit ;; + GUESS=or1k-unknown-linux-$LIBC + ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; padre:Linux:*:*) - echo sparc-unknown-linux-"$LIBC" - exit ;; + GUESS=sparc-unknown-linux-$LIBC + ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-"$LIBC" - exit ;; + GUESS=hppa64-unknown-linux-$LIBC + ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; - *) echo hppa-unknown-linux-"$LIBC" ;; + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; esac - exit ;; + ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc64-unknown-linux-$LIBC + ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc-unknown-linux-$LIBC + ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc64le-unknown-linux-$LIBC + ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-"$LIBC" - exit ;; - riscv32:Linux:*:* | riscv64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; s390:Linux:*:* | s390x:Linux:*:*) - echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; sh64*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sh*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; tile*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; vax:Linux:*:*) - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; x86_64:Linux:*:*) - if objdump -f /bin/sh | grep -q elf32-x86-64; then - echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32 - else - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + set_cc_for_build + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_X32 >/dev/null + then + LIBCABI=${LIBC}x32 + fi fi - exit ;; + GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI + ;; xtensa*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; + GUESS=i386-sequent-sysv4 + ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" - exit ;; + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo "$UNAME_MACHINE"-pc-os2-emx - exit ;; + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; i*86:XTS-300:*:STOP) - echo "$UNAME_MACHINE"-unknown-stop - exit ;; + GUESS=$UNAME_MACHINE-unknown-stop + ;; i*86:atheos:*:*) - echo "$UNAME_MACHINE"-unknown-atheos - exit ;; + GUESS=$UNAME_MACHINE-unknown-atheos + ;; i*86:syllable:*:*) - echo "$UNAME_MACHINE"-pc-syllable - exit ;; + GUESS=$UNAME_MACHINE-pc-syllable + ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; i*86:*DOS:*:*) - echo "$UNAME_MACHINE"-pc-msdosdjgpp - exit ;; + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; i*86:*:4.*:*) UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else - echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi - exit ;; + ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in @@ -1104,12 +1214,12 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" - exit ;; + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1119,11 +1229,11 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else - echo "$UNAME_MACHINE"-pc-sysv32 + GUESS=$UNAME_MACHINE-pc-sysv32 fi - exit ;; + ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about @@ -1131,31 +1241,31 @@ EOF # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; + GUESS=i586-pc-msdosdjgpp + ;; Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; + GUESS=i386-pc-mach3 + ;; paragon:*:*:*) - echo i860-intel-osf1 - exit ;; + GUESS=i860-intel-osf1 + ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi - exit ;; + ;; mini*:CTIX:SYS*5:*) # "miniframe" - echo m68010-convergent-sysv - exit ;; + GUESS=m68010-convergent-sysv + ;; mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; + GUESS=m68k-convergent-sysv + ;; M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; + GUESS=m68k-diab-dnix + ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) @@ -1180,249 +1290,404 @@ EOF /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; + GUESS=m68k-atari-sysv4 + ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv"$UNAME_RELEASE" - exit ;; + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo "$UNAME_MACHINE"-sni-sysv4 + GUESS=$UNAME_MACHINE-sni-sysv4 else - echo ns32k-sni-sysv + GUESS=ns32k-sni-sysv fi - exit ;; + ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says - echo i586-unisys-sysv4 - exit ;; + GUESS=i586-unisys-sysv4 + ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; + GUESS=hppa1.1-stratus-sysv4 + ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; + GUESS=i860-stratus-sysv4 + ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo "$UNAME_MACHINE"-stratus-vos - exit ;; + GUESS=$UNAME_MACHINE-stratus-vos + ;; *:VOS:*:*) # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; + GUESS=hppa1.1-stratus-vos + ;; mc68*:A/UX:*:*) - echo m68k-apple-aux"$UNAME_RELEASE" - exit ;; + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; + GUESS=mips-sony-newsos6 + ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv"$UNAME_RELEASE" + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE else - echo mips-unknown-sysv"$UNAME_RELEASE" + GUESS=mips-unknown-sysv$UNAME_RELEASE fi - exit ;; + ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; + GUESS=powerpc-be-beos + ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; + GUESS=powerpc-apple-beos + ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; + GUESS=i586-pc-beos + ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; + GUESS=i586-pc-haiku + ;; x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; + GUESS=x86_64-unknown-haiku + ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; *:Rhapsody:*:*) - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval "$set_cc_for_build" - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build fi - if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE fi - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; *:QNX:*:4*) - echo i386-pc-qnx - exit ;; + GUESS=i386-pc-qnx + ;; NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; NSV-*:NONSTOP_KERNEL:*:*) - echo nsv-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; + GUESS=mips-compaq-nonstopux + ;; BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; + GUESS=bs2000-siemens-sysv + ;; DS/*:UNIX_System_V:*:*) - echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - if test "$cputype" = 386; then + if test "${cputype-}" = 386; then UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype fi - echo "$UNAME_MACHINE"-unknown-plan9 - exit ;; + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; + GUESS=pdp10-unknown-tops10 + ;; *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; + GUESS=pdp10-unknown-tenex + ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; + GUESS=pdp10-dec-tops20 + ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; + GUESS=pdp10-xkl-tops20 + ;; *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; + GUESS=pdp10-unknown-tops20 + ;; *:ITS:*:*) - echo pdp10-unknown-its - exit ;; + GUESS=pdp10-unknown-its + ;; SEI:*:*:SEIUX) - echo mips-sei-seiux"$UNAME_RELEASE" - exit ;; + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; *:DragonFly:*:*) - echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "$UNAME_MACHINE" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; + GUESS=i386-pc-xenix + ;; i*86:skyos:*:*) - echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" - exit ;; + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; i*86:rdos:*:*) - echo "$UNAME_MACHINE"-pc-rdos - exit ;; - i*86:AROS:*:*) - echo "$UNAME_MACHINE"-pc-aros - exit ;; + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; x86_64:VMkernel:*:*) - echo "$UNAME_MACHINE"-unknown-esx - exit ;; + GUESS=$UNAME_MACHINE-unknown-esx + ;; amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; esac +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + echo "$0: unable to guess system type" >&2 -case "$UNAME_MACHINE:$UNAME_SYSTEM" in +case $UNAME_MACHINE:$UNAME_SYSTEM in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&2 <&2 exit 1 ;; *local*) @@ -110,1223 +119,1186 @@ case $# in exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | cloudabi*-eabi* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo "$1" | sed 's/-[^-]*$//'` - if [ "$basic_machine" != "$1" ] - then os=`echo "$1" | sed 's/.*-/-/'` - else os=; fi - ;; -esac +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 ;; - -lynx*) - os=-lynxos + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 ;; - -ptx*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac ;; - -psos*) - os=-psos + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac ;; esac -# Decode aliases for certain CPU-COMPANY combinations. +# Decode 1-component or ad-hoc basic machines case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | ba \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia16 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pru \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | wasm32 \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + op50n) + cpu=hppa1.1 + vendor=oki ;; - ms1) - basic_machine=mt-unknown + op60c) + cpu=hppa1.1 + vendor=oki ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown + ibm*) + cpu=i370 + vendor=ibm ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none + orion105) + cpu=clipper + vendor=highlevel ;; - xscaleeb) - basic_machine=armeb-unknown + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple ;; - - xscaleel) - basic_machine=armel-unknown + pmac | pmac-mpw) + cpu=powerpc + vendor=apple ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | ba-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pru-* \ - | pyramid-* \ - | riscv32-* | riscv64-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | wasm32-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-pc - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att + cpu=m68000 + vendor=att ;; 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux + cpu=we32k + vendor=att ;; bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec + cpu=powerpc + vendor=ibm + basic_os=cnk ;; decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 + cpu=pdp10 + vendor=dec + basic_os=tops10 ;; decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 + cpu=pdp10 + vendor=dec + basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx + cpu=m68k + vendor=motorola ;; dpx2*) - basic_machine=m68k-bull - os=-sysv3 - ;; - e500v[12]) - basic_machine=powerpc-unknown - os=$os"spe" - ;; - e500v[12]-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=$os"spe" - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + cpu=m68k + vendor=bull + basic_os=sysv3 ;; encore | umax | mmax) - basic_machine=ns32k-encore + cpu=ns32k + vendor=encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} ;; fx2800) - basic_machine=i860-alliant + cpu=i860 + vendor=alliant ;; genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 + cpu=ns32k + vendor=ns ;; h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp + cpu=m68000 + vendor=hp ;; hp9k3[2-9][0-9]) - basic_machine=m68k-hp + cpu=m68k + vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm + cpu=hppa1.0 + vendor=hp ;; i*86v32) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv32 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 ;; i*86v4*) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv4 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 ;; i*86v) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv ;; i*86sol2) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 ;; - vsta) - basic_machine=i386-unknown - os=-vsta + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} ;; iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) + cpu=mips + vendor=sgi + case $basic_os in + irix*) ;; *) - os=-irix4 + basic_os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox + cpu=m68000 + vendor=convergent ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint ;; news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv + cpu=mips + vendor=sony + basic_os=newsos ;; next | m*-next) - basic_machine=m68k-next - case $os in - -nextstep* ) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) ;; - -ns2*) - os=-nextstep2 + ns2*) + basic_os=nextstep2 ;; *) - os=-nextstep3 + basic_os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - nsv-tandem) - basic_machine=nsv-tandem - ;; - nsx-tandem) - basic_machine=nsx-tandem + cpu=np1 + vendor=gould ;; op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k + cpu=hppa1.1 + vendor=oki + basic_os=proelf ;; pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 ;; pbd) - basic_machine=sparc-tti + cpu=sparc + vendor=tti ;; pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc + cpu=m68k + vendor=tti ;; - pc98-*) - basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` + pc532) + cpu=ns32k + vendor=pc532 ;; pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc | ppcbe) basic_machine=powerpc-unknown + cpu=pn + vendor=gould ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle) - basic_machine=powerpcle-unknown + power) + cpu=power + vendor=ibm ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ps2) + cpu=i386 + vendor=ibm ;; - ppc64) basic_machine=powerpc64-unknown + rm[46]00) + cpu=mips + vendor=siemens ;; - ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` + rtpc | rtpc-*) + cpu=romp + vendor=ibm ;; - ppc64le | powerpc64little) - basic_machine=powerpc64le-unknown + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks ;; - ps2) - basic_machine=i386-ibm + tower | tower-32) + cpu=m68k + vendor=ncr ;; - pw32) - basic_machine=i586-unknown - os=-pw32 + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos + w65) + cpu=w65 + vendor=wdc ;; - rdos32) - basic_machine=i386-pc - os=-rdos + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff + none) + cpu=none + vendor=none ;; - rm[46]00) - basic_machine=mips-siemens + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine ;; - rtpc | rtpc-*) - basic_machine=romp-ibm + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; - s390 | s390-*) - basic_machine=s390-ibm + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 - exit 1 + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb | arc32 | arc64 \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bpf | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | loongarch32 | loongarch64 | loongarchx32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64eb | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r3 | mipsisa32r3el \ + | mipsisa32r5 | mipsisa32r5el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r3 | mipsisa64r3el \ + | mipsisa64r5 | mipsisa64r5el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | picochip \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv32be | riscv64 | riscv64be \ + | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ + | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | thumbv7* \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | w65 \ + | wasm32 | wasm64 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac ;; esac # Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` +case $vendor in + digital*) + vendor=dec ;; - *-commodore*) - basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` + commodore*) + vendor=cbm ;; *) ;; @@ -1334,203 +1306,215 @@ esac # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if test x$basic_os != x then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. ;; esac + else # Here we handle the default operating systems that come with various machines. @@ -1543,258 +1527,363 @@ else # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. -case $basic_machine in +kernel= +case $cpu-$vendor in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + kernel=linux + os=gnu ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 ;; pru-*) - os=-elf + os=elf ;; *-be) - os=-beos + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna + os=luna ;; *-next) - os=-nextstep + os=nextstep ;; *-sequent) - os=-ptx + os=ptx ;; *-crds) - os=-unos + os=unos ;; *-ns) - os=-genix + os=genix ;; i370-*) - os=-mvs + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac + fi +# Now, validate our (potentially fixed-up) OS. +case $os in + # Sometimes we do "kernel-libc", so those need to count as OSes. + musl* | newlib* | relibc* | uclibc*) + ;; + # Likewise for "kernel-abi" + eabi* | gnueabi*) + ;; + # VxWorks passes extra cpu info in the 4th filed. + simlinux | simwindows | spe) + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ + | hiux* | abug | nacl* | netware* | windows* \ + | os9* | macos* | osx* | ios* \ + | mpw* | magic* | mmixware* | mon960* | lnews* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* | twizzler* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | mirbsd* | netbsd* | dicos* | openedition* | ose* \ + | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ + | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* | serenity* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | mint* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ + | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ + | fiwix* ) + ;; + # This one is extra strict with allowed versions + sco3.2v2 | sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + none) + ;; + *) + echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* ) + ;; + uclinux-uclibc* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 + exit 1 + ;; +esac + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) vendor=acorn ;; - -sunos*) + *-sunos*) vendor=sun ;; - -cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; - -beos*) + *-beos*) vendor=be ;; - -hpux*) + *-hpux*) vendor=hp ;; - -mpeix*) + *-mpeix*) vendor=hp ;; - -hiux*) + *-hiux*) vendor=hitachi ;; - -unos*) + *-unos*) vendor=crds ;; - -dgux*) + *-dgux*) vendor=dg ;; - -luna*) + *-luna*) vendor=omron ;; - -genix*) + *-genix*) vendor=ns ;; - -mvs* | -opened*) + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) vendor=ibm ;; - -os400*) + s390-* | s390x-*) vendor=ibm ;; - -ptx*) + *-ptx*) vendor=sequent ;; - -tpf*) + *-tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; - -aux*) + *-aux*) vendor=apple ;; - -hms*) + *-hms*) vendor=hitachi ;; - -mpw* | -macos*) + *-mpw* | *-macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; - -vos*) + *-vos*) vendor=stratus ;; esac - basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo "$basic_machine$os" +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: -# eval: (add-hook 'write-file-functions 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/configure b/configure index 1e7e56769e..cd5180c8ae 100755 --- a/configure +++ b/configure @@ -656,10 +656,16 @@ YACC FC_LIBS ENABLE_DEVELOPMENT_FALSE ENABLE_DEVELOPMENT_TRUE -PYTHON_LIBS +UGRID_DEP_LIBS +UGRID_MET_LIBS +ENABLE_UGRID_FALSE +ENABLE_UGRID_TRUE +PYTHON_DEP_LIBS +PYTHON_MET_LIBS ENABLE_PYTHON_FALSE ENABLE_PYTHON_TRUE -GRIB2_LIBS +GRIB2_DEP_LIBS +GRIB2_MET_LIBS GRIB2CLIB_NAME_SET_FALSE GRIB2CLIB_NAME_SET_TRUE ENABLE_GRIB2_FALSE @@ -757,6 +763,12 @@ MET_HDF5 MET_NETCDFLIB MET_NETCDFINC MET_NETCDF +MET_ECKITLIB +MET_ECKITINC +MET_ECKIT +MET_ATLASLIB +MET_ATLASINC +MET_ATLAS MET_PROJLIB MET_PROJINC MET_PROJ @@ -882,6 +894,7 @@ enable_tc_utils enable_gsi_tools enable_grib2 enable_python +enable_ugrid ' ac_precious_vars='build_alias host_alias @@ -894,6 +907,12 @@ CPPFLAGS MET_PROJ MET_PROJINC MET_PROJLIB +MET_ATLAS +MET_ATLASINC +MET_ATLASLIB +MET_ECKIT +MET_ECKITINC +MET_ECKITLIB MET_NETCDF MET_NETCDFINC MET_NETCDFLIB @@ -1608,6 +1627,8 @@ Optional Features: --disable-gsi_tools Disable compilation of gsi_tools --enable-grib2 Enable compilation of utilities using GRIB2 --enable-python Enable python embedding + --enable-ugrid Enable unstructured grid with Atlas and eckit + libraries Some influential environment variables: CC C compiler command @@ -1627,6 +1648,30 @@ Some influential environment variables: include files are not under the same main proj directory. If used, MET_PROJINC must also be defined and MET_PROJ will be ignored. + MET_ATLAS Where Atlas lib and include subdirectories are located. If they + are installed in /usr/local, you don't have to specify them. + MET_ATLASINC + Where Atlas include files are located. Use if the libraries and + include files are not under the same main Atlas directory. If + used, MET_ATLASLIB must also be defined and MET_ATLAS will be + ignored. + MET_ATLASLIB + Where Atlas libraries are located. Use if the libraries and + include files are not under the same main Atlas directory. If + used, MET_ATLASINC must also be defined and MET_ATLAS will be + ignored. + MET_ECKIT Where eckit lib and include subdirectories are located. If they + are installed in /usr/local, you don't have to specify them. + MET_ECKITINC + Where eckit include files are located. Use if the libraries and + include files are not under the same main eckit directory. If + used, MET_ECKITLIB must also be defined and MET_ECKIT will be + ignored. + MET_ECKITLIB + Where eckit libraries are located. Use if the libraries and + include files are not under the same main eckit directory. If + used, MET_ECKITINC must also be defined and MET_ECKIT will be + ignored. MET_NETCDF Where netcdf lib and include subdirectories are located. If they are installed in /usr/local, you don't have to specify them. MET_NETCDFINC @@ -4561,6 +4606,60 @@ if (test -n "$MET_PROJLIB"); then LDFLAGS="${LDFLAGS} -L${MET_PROJLIB}" fi +# +# Look for the Atlas library. +# + +# Configure the variables. The help text will appear if the user uses "configure --help". + + + + + +# Ensure that both or neither are specified. + +if (test -n "$MET_ATLASLIB" && test -z "$MET_ATLASINC"); then + as_fn_error $? "MET_ATLASLIB environment variable set, but MET_ATLASINC not set. If one of these variables is set, then both must be set." "$LINENO" 5 +elif (test -n "$MET_ATLASINC" && test -z "$MET_ATLASLIB"); then + as_fn_error $? "MET_ATLASINC environment variable set, but MET_ATLASLIB not set. If one of these variables is set, then both must be set." "$LINENO" 5 +fi + +# Use the main Atlas directory if individual locations were not specified. + +if (test -n "$MET_ATLAS" && test -z "$MET_ATLASLIB"); then + MET_ATLASINC='${MET_ATLAS}/include' + MET_ATLASLIB='${MET_ATLAS}/lib' +fi + +# AC_SUBST command line variables. + +# +# Look for the Eckit library. +# + +# Configure the variables. The help text will appear if the user uses "configure --help". + + + + + +# Ensure that both or neither are specified. + +if (test -n "$MET_ECKITLIB" && test -z "$MET_ECKITINC"); then + as_fn_error $? "MET_ECKITLIB environment variable set, but MET_ECKITINC not set. If one of these variables is set, then both must be set." "$LINENO" 5 +elif (test -n "$MET_ECKITINC" && test -z "$MET_ECKITLIB"); then + as_fn_error $? "MET_ECKITINC environment variable set, but MET_ECKITLIB not set. If one of these variables is set, then both must be set." "$LINENO" 5 +fi + +# Use the main Eckit directory if individual locations were not specified. + +if (test -n "$MET_ECKIT" && test -z "$MET_ECKITLIB"); then + MET_ECKITINC='${MET_ECKIT}/include' + MET_ECKITLIB='${MET_ECKIT}/lib' +fi + +# AC_SUBST command line variables. + # # Look for the NetCDF library. # @@ -5959,17 +6058,21 @@ $as_echo "$as_me: GRIB2 utilites will be compiled" >&6;} { $as_echo "$as_me:${as_lineno-$LINENO}: GRIB2CLIB_NAME will be set" >&5 $as_echo "$as_me: GRIB2CLIB_NAME will be set" >&6;} if test -z "$GRIB2CLIB_NAME"; then - GRIB2_LIBS="-lvx_data2d_grib2 -lgrib2c -ljasper -lpng -lz" + GRIB2_MET_LIBS="-lvx_data2d_grib2" + GRIB2_DEP_LIBS="-lgrib2c -ljasper -lpng -lz" else - GRIB2_LIBS="-lvx_data2d_grib2 ${GRIB2CLIB_NAME} -ljasper -lpng -lz" + GRIB2_MET_LIBS="-lvx_data2d_grib2" + GRIB2_DEP_LIBS="${GRIB2CLIB_NAME} -ljasper -lpng -lz" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: GRIB2 utilities will not be compiled" >&5 $as_echo "$as_me: GRIB2 utilities will not be compiled" >&6;} - GRIB2_LIBS= + GRIB2_MET_LIBS= + GRIB2_DEP_LIBS= fi + # Python # Check whether --enable-python was given. @@ -6000,14 +6103,59 @@ $as_echo "#define ENABLE_PYTHON /**/" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: python embedding will be compiled" >&5 $as_echo "$as_me: python embedding will be compiled" >&6;} CPPFLAGS="${CPPFLAGS} -DWITH_PYTHON" - PYTHON_LIBS="-lvx_data2d_python -lvx_pointdata_python -lvx_python3_utils ${MET_PYTHON_LD}" + PYTHON_MET_LIBS="-lvx_data2d_python -lvx_pointdata_python -lvx_python3_utils" + PYTHON_DEP_LIBS="${MET_PYTHON_LD}" else { $as_echo "$as_me:${as_lineno-$LINENO}: python embedding will not be compiled" >&5 $as_echo "$as_me: python embedding will not be compiled" >&6;} - PYTHON_LIBS= + PYTHON_MET_LIBS= + PYTHON_DEP_LIBS= +fi + + + +# Unstructure grid with ECMF libraries (Atlas/ecKit) + +# Check whether --enable-ugrid was given. +if test "${enable_ugrid+set}" = set; then : + enableval=$enable_ugrid; case "${enableval}" in + yes | no ) ENABLE_UGRID="${enableval}" ;; + *) as_fn_error $? "bad value ${enableval} for --enable-ugrid" "$LINENO" 5 ;; + esac +else + ENABLE_UGRID="no" + +fi + + + if test "x$ENABLE_UGRID" = "xyes"; then + ENABLE_UGRID_TRUE= + ENABLE_UGRID_FALSE='#' +else + ENABLE_UGRID_TRUE='#' + ENABLE_UGRID_FALSE= +fi + + +if test "x$ENABLE_UGRID" = "xyes"; then + +$as_echo "#define ENABLE_UGRID /**/" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: unstructured grid will be compiled" >&5 +$as_echo "$as_me: unstructured grid will be compiled" >&6;} + CPPFLAGS="${CPPFLAGS} -I${MET_ATLASINC} -I${MET_ECKITINC} -DWITH_UGRID" + LDFLAGS="${LDFLAGS} -L${MET_ATLASLIB} -L${MET_ECKITLIB} -Wl,-rpath,${MET_ATLASLIB}:${MET_ECKITLIB}" + UGRID_MET_LIBS="-lvx_data2d_ugrid" + UGRID_DEP_LIBS="-latlas -leckit -leckit_mpi -leckit_geometry" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: unstructured grid will not be compiled" >&5 +$as_echo "$as_me: unstructured grid will not be compiled" >&6;} + UGRID_MET_LIBS= + UGRID_DEP_LIBS= fi + ######################################################################## # Check for the MET_DEVELOPMENT environment variable @@ -8851,7 +8999,7 @@ done # Create configured files -ac_config_files="$ac_config_files Makefile scripts/Rscripts/Makefile scripts/Rscripts/include/Makefile scripts/python/Makefile scripts/python/examples/Makefile scripts/python/met/Makefile scripts/python/pyembed/Makefile scripts/python/utility/Makefile scripts/python/tc_diag/Makefile data/Makefile data/climo/Makefile data/climo/seeps/Makefile data/colortables/Makefile data/colortables/NCL_colortables/Makefile data/config/Makefile data/map/Makefile data/map/admin_by_country/Makefile data/poly/Makefile data/poly/HMT_masks/Makefile data/poly/NCEP_masks/Makefile data/ps/Makefile data/table_files/Makefile data/tc_data/Makefile src/Makefile src/basic/Makefile src/basic/enum_to_string/Makefile src/basic/vx_cal/Makefile src/basic/vx_config/Makefile src/basic/vx_log/Makefile src/basic/vx_math/Makefile src/basic/vx_util/Makefile src/basic/vx_util_math/Makefile src/libcode/Makefile src/libcode/vx_afm/Makefile src/libcode/vx_analysis_util/Makefile src/libcode/vx_color/Makefile src/libcode/vx_data2d/Makefile src/libcode/vx_data2d_factory/Makefile src/libcode/vx_data2d_grib/Makefile src/libcode/vx_data2d_grib2/Makefile src/libcode/vx_data2d_nc_met/Makefile src/libcode/vx_data2d_nc_pinterp/Makefile src/libcode/vx_data2d_nccf/Makefile src/libcode/vx_geodesy/Makefile src/libcode/vx_gis/Makefile src/libcode/vx_gnomon/Makefile src/libcode/vx_grid/Makefile src/libcode/vx_gsl_prob/Makefile src/libcode/vx_nav/Makefile src/libcode/vx_solar/Makefile src/libcode/vx_nc_obs/Makefile src/libcode/vx_nc_util/Makefile src/libcode/vx_pb_util/Makefile src/libcode/vx_plot_util/Makefile src/libcode/vx_ps/Makefile src/libcode/vx_pxm/Makefile src/libcode/vx_render/Makefile src/libcode/vx_shapedata/Makefile src/libcode/vx_stat_out/Makefile src/libcode/vx_statistics/Makefile src/libcode/vx_time_series/Makefile src/libcode/vx_physics/Makefile src/libcode/vx_series_data/Makefile src/libcode/vx_regrid/Makefile src/libcode/vx_tc_util/Makefile src/libcode/vx_summary/Makefile src/libcode/vx_python3_utils/Makefile src/libcode/vx_data2d_python/Makefile src/libcode/vx_bool_calc/Makefile src/libcode/vx_pointdata_python/Makefile src/libcode/vx_seeps/Makefile src/tools/Makefile src/tools/core/Makefile src/tools/core/ensemble_stat/Makefile src/tools/core/grid_stat/Makefile src/tools/core/mode/Makefile src/tools/core/mode_analysis/Makefile src/tools/core/pcp_combine/Makefile src/tools/core/point_stat/Makefile src/tools/core/series_analysis/Makefile src/tools/core/stat_analysis/Makefile src/tools/core/wavelet_stat/Makefile src/tools/other/Makefile src/tools/other/ascii2nc/Makefile src/tools/other/lidar2nc/Makefile src/tools/other/gen_ens_prod/Makefile src/tools/other/gen_vx_mask/Makefile src/tools/other/gis_utils/Makefile src/tools/other/ioda2nc/Makefile src/tools/other/madis2nc/Makefile src/tools/other/mode_graphics/Makefile src/tools/other/modis_regrid/Makefile src/tools/other/pb2nc/Makefile src/tools/other/plot_data_plane/Makefile src/tools/other/plot_point_obs/Makefile src/tools/other/wwmca_tool/Makefile src/tools/other/gsi_tools/Makefile src/tools/other/regrid_data_plane/Makefile src/tools/other/point2grid/Makefile src/tools/other/shift_data_plane/Makefile src/tools/other/mode_time_domain/Makefile src/tools/other/grid_diag/Makefile src/tools/tc_utils/Makefile src/tools/tc_utils/tc_dland/Makefile src/tools/tc_utils/tc_pairs/Makefile src/tools/tc_utils/tc_stat/Makefile src/tools/tc_utils/tc_gen/Makefile src/tools/tc_utils/rmw_analysis/Makefile src/tools/tc_utils/tc_rmw/Makefile src/tools/tc_utils/tc_diag/Makefile" +ac_config_files="$ac_config_files Makefile scripts/Rscripts/Makefile scripts/Rscripts/include/Makefile scripts/python/Makefile scripts/python/examples/Makefile scripts/python/met/Makefile scripts/python/pyembed/Makefile scripts/python/utility/Makefile scripts/python/tc_diag/Makefile data/Makefile data/climo/Makefile data/climo/seeps/Makefile data/colortables/Makefile data/colortables/NCL_colortables/Makefile data/config/Makefile data/map/Makefile data/map/admin_by_country/Makefile data/poly/Makefile data/poly/HMT_masks/Makefile data/poly/NCEP_masks/Makefile data/ps/Makefile data/table_files/Makefile data/tc_data/Makefile src/Makefile src/basic/Makefile src/basic/enum_to_string/Makefile src/basic/vx_cal/Makefile src/basic/vx_config/Makefile src/basic/vx_log/Makefile src/basic/vx_math/Makefile src/basic/vx_util/Makefile src/basic/vx_util_math/Makefile src/libcode/Makefile src/libcode/vx_afm/Makefile src/libcode/vx_analysis_util/Makefile src/libcode/vx_color/Makefile src/libcode/vx_data2d/Makefile src/libcode/vx_data2d_factory/Makefile src/libcode/vx_data2d_grib/Makefile src/libcode/vx_data2d_grib2/Makefile src/libcode/vx_data2d_nc_met/Makefile src/libcode/vx_data2d_nc_pinterp/Makefile src/libcode/vx_data2d_nccf/Makefile src/libcode/vx_data2d_ugrid/Makefile src/libcode/vx_geodesy/Makefile src/libcode/vx_gis/Makefile src/libcode/vx_gnomon/Makefile src/libcode/vx_grid/Makefile src/libcode/vx_gsl_prob/Makefile src/libcode/vx_nav/Makefile src/libcode/vx_solar/Makefile src/libcode/vx_nc_obs/Makefile src/libcode/vx_nc_util/Makefile src/libcode/vx_pb_util/Makefile src/libcode/vx_plot_util/Makefile src/libcode/vx_ps/Makefile src/libcode/vx_pxm/Makefile src/libcode/vx_render/Makefile src/libcode/vx_shapedata/Makefile src/libcode/vx_stat_out/Makefile src/libcode/vx_statistics/Makefile src/libcode/vx_time_series/Makefile src/libcode/vx_physics/Makefile src/libcode/vx_series_data/Makefile src/libcode/vx_regrid/Makefile src/libcode/vx_tc_util/Makefile src/libcode/vx_summary/Makefile src/libcode/vx_python3_utils/Makefile src/libcode/vx_data2d_python/Makefile src/libcode/vx_bool_calc/Makefile src/libcode/vx_pointdata_python/Makefile src/libcode/vx_seeps/Makefile src/tools/Makefile src/tools/core/Makefile src/tools/core/ensemble_stat/Makefile src/tools/core/grid_stat/Makefile src/tools/core/mode/Makefile src/tools/core/mode_analysis/Makefile src/tools/core/pcp_combine/Makefile src/tools/core/point_stat/Makefile src/tools/core/series_analysis/Makefile src/tools/core/stat_analysis/Makefile src/tools/core/wavelet_stat/Makefile src/tools/other/Makefile src/tools/other/ascii2nc/Makefile src/tools/other/lidar2nc/Makefile src/tools/other/gen_ens_prod/Makefile src/tools/other/gen_vx_mask/Makefile src/tools/other/gis_utils/Makefile src/tools/other/ioda2nc/Makefile src/tools/other/madis2nc/Makefile src/tools/other/mode_graphics/Makefile src/tools/other/modis_regrid/Makefile src/tools/other/pb2nc/Makefile src/tools/other/plot_data_plane/Makefile src/tools/other/plot_point_obs/Makefile src/tools/other/wwmca_tool/Makefile src/tools/other/gsi_tools/Makefile src/tools/other/regrid_data_plane/Makefile src/tools/other/point2grid/Makefile src/tools/other/shift_data_plane/Makefile src/tools/other/mode_time_domain/Makefile src/tools/other/grid_diag/Makefile src/tools/tc_utils/Makefile src/tools/tc_utils/tc_dland/Makefile src/tools/tc_utils/tc_pairs/Makefile src/tools/tc_utils/tc_stat/Makefile src/tools/tc_utils/tc_gen/Makefile src/tools/tc_utils/rmw_analysis/Makefile src/tools/tc_utils/tc_rmw/Makefile src/tools/tc_utils/tc_diag/Makefile" if test -n "$MET_DEVELOPMENT"; then @@ -9128,6 +9276,10 @@ if test -z "${ENABLE_PYTHON_TRUE}" && test -z "${ENABLE_PYTHON_FALSE}"; then as_fn_error $? "conditional \"ENABLE_PYTHON\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${ENABLE_UGRID_TRUE}" && test -z "${ENABLE_UGRID_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_UGRID\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${ENABLE_DEVELOPMENT_TRUE}" && test -z "${ENABLE_DEVELOPMENT_FALSE}"; then as_fn_error $? "conditional \"ENABLE_DEVELOPMENT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -9778,6 +9930,7 @@ do "src/libcode/vx_data2d_nc_met/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_nc_met/Makefile" ;; "src/libcode/vx_data2d_nc_pinterp/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_nc_pinterp/Makefile" ;; "src/libcode/vx_data2d_nccf/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_nccf/Makefile" ;; + "src/libcode/vx_data2d_ugrid/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_ugrid/Makefile" ;; "src/libcode/vx_geodesy/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_geodesy/Makefile" ;; "src/libcode/vx_gis/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_gis/Makefile" ;; "src/libcode/vx_gnomon/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_gnomon/Makefile" ;; diff --git a/configure.ac b/configure.ac index 49d3397a6a..cb4f7c0c63 100644 --- a/configure.ac +++ b/configure.ac @@ -47,6 +47,60 @@ if (test -n "$MET_PROJLIB"); then LDFLAGS="${LDFLAGS} -L${MET_PROJLIB}" fi +# +# Look for the Atlas library. +# + +# Configure the variables. The help text will appear if the user uses "configure --help". + +AC_ARG_VAR([MET_ATLAS], [Where Atlas lib and include subdirectories are located. If they are installed in /usr/local, you don't have to specify them.]) +AC_ARG_VAR([MET_ATLASINC], [Where Atlas include files are located. Use if the libraries and include files are not under the same main Atlas directory. If used, MET_ATLASLIB must also be defined and MET_ATLAS will be ignored.]) +AC_ARG_VAR([MET_ATLASLIB], [Where Atlas libraries are located. Use if the libraries and include files are not under the same main Atlas directory. If used, MET_ATLASINC must also be defined and MET_ATLAS will be ignored.]) + +# Ensure that both or neither are specified. + +if (test -n "$MET_ATLASLIB" && test -z "$MET_ATLASINC"); then + AC_MSG_ERROR([MET_ATLASLIB environment variable set, but MET_ATLASINC not set. If one of these variables is set, then both must be set.]) +elif (test -n "$MET_ATLASINC" && test -z "$MET_ATLASLIB"); then + AC_MSG_ERROR([MET_ATLASINC environment variable set, but MET_ATLASLIB not set. If one of these variables is set, then both must be set.]) +fi + +# Use the main Atlas directory if individual locations were not specified. + +if (test -n "$MET_ATLAS" && test -z "$MET_ATLASLIB"); then + MET_ATLASINC='${MET_ATLAS}/include' + MET_ATLASLIB='${MET_ATLAS}/lib' +fi + +# AC_SUBST command line variables. + +# +# Look for the Eckit library. +# + +# Configure the variables. The help text will appear if the user uses "configure --help". + +AC_ARG_VAR([MET_ECKIT], [Where eckit lib and include subdirectories are located. If they are installed in /usr/local, you don't have to specify them.]) +AC_ARG_VAR([MET_ECKITINC], [Where eckit include files are located. Use if the libraries and include files are not under the same main eckit directory. If used, MET_ECKITLIB must also be defined and MET_ECKIT will be ignored.]) +AC_ARG_VAR([MET_ECKITLIB], [Where eckit libraries are located. Use if the libraries and include files are not under the same main eckit directory. If used, MET_ECKITINC must also be defined and MET_ECKIT will be ignored.]) + +# Ensure that both or neither are specified. + +if (test -n "$MET_ECKITLIB" && test -z "$MET_ECKITINC"); then + AC_MSG_ERROR([MET_ECKITLIB environment variable set, but MET_ECKITINC not set. If one of these variables is set, then both must be set.]) +elif (test -n "$MET_ECKITINC" && test -z "$MET_ECKITLIB"); then + AC_MSG_ERROR([MET_ECKITINC environment variable set, but MET_ECKITLIB not set. If one of these variables is set, then both must be set.]) +fi + +# Use the main Eckit directory if individual locations were not specified. + +if (test -n "$MET_ECKIT" && test -z "$MET_ECKITLIB"); then + MET_ECKITINC='${MET_ECKIT}/include' + MET_ECKITLIB='${MET_ECKIT}/lib' +fi + +# AC_SUBST command line variables. + # # Look for the NetCDF library. # @@ -1000,15 +1054,19 @@ if test "x$ENABLE_GRIB2" = "xyes"; then AC_SUBST([GRIB2CLIB_NAME]) AC_MSG_NOTICE([GRIB2CLIB_NAME will be set]) if test -z "$GRIB2CLIB_NAME"; then - GRIB2_LIBS="-lvx_data2d_grib2 -lgrib2c -ljasper -lpng -lz" + GRIB2_MET_LIBS="-lvx_data2d_grib2" + GRIB2_DEP_LIBS="-lgrib2c -ljasper -lpng -lz" else - GRIB2_LIBS="-lvx_data2d_grib2 ${GRIB2CLIB_NAME} -ljasper -lpng -lz" + GRIB2_MET_LIBS="-lvx_data2d_grib2" + GRIB2_DEP_LIBS="${GRIB2CLIB_NAME} -ljasper -lpng -lz" fi else AC_MSG_NOTICE([GRIB2 utilities will not be compiled]) - GRIB2_LIBS= + GRIB2_MET_LIBS= + GRIB2_DEP_LIBS= fi -AC_SUBST([GRIB2_LIBS]) +AC_SUBST([GRIB2_MET_LIBS]) +AC_SUBST([GRIB2_DEP_LIBS]) # Python @@ -1027,12 +1085,43 @@ if test "x$ENABLE_PYTHON" = "xyes"; then AC_DEFINE([ENABLE_PYTHON], [], ["build python embedding"]) AC_MSG_NOTICE([python embedding will be compiled]) CPPFLAGS="${CPPFLAGS} -DWITH_PYTHON" - PYTHON_LIBS="-lvx_data2d_python -lvx_pointdata_python -lvx_python3_utils ${MET_PYTHON_LD}" + PYTHON_MET_LIBS="-lvx_data2d_python -lvx_pointdata_python -lvx_python3_utils" + PYTHON_DEP_LIBS="${MET_PYTHON_LD}" else AC_MSG_NOTICE([python embedding will not be compiled]) - PYTHON_LIBS= + PYTHON_MET_LIBS= + PYTHON_DEP_LIBS= +fi +AC_SUBST([PYTHON_MET_LIBS]) +AC_SUBST([PYTHON_DEP_LIBS]) + +# Unstructure grid with ECMF libraries (Atlas/ecKit) + +AC_ARG_ENABLE(ugrid, + [AS_HELP_STRING([--enable-ugrid], [Enable unstructured grid with Atlas and eckit libraries])], + [case "${enableval}" in + yes | no ) ENABLE_UGRID="${enableval}" ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-ugrid) ;; + esac], + [ENABLE_UGRID="no"] +) + +AM_CONDITIONAL([ENABLE_UGRID], [test "x$ENABLE_UGRID" = "xyes"]) + +if test "x$ENABLE_UGRID" = "xyes"; then + AC_DEFINE([ENABLE_UGRID], [], ["build unstructured grid with Atlas and eckit libraries"]) + AC_MSG_NOTICE([unstructured grid will be compiled]) + CPPFLAGS="${CPPFLAGS} -I${MET_ATLASINC} -I${MET_ECKITINC} -DWITH_UGRID" + LDFLAGS="${LDFLAGS} -L${MET_ATLASLIB} -L${MET_ECKITLIB} -Wl,-rpath,${MET_ATLASLIB}:${MET_ECKITLIB}" + UGRID_MET_LIBS="-lvx_data2d_ugrid" + UGRID_DEP_LIBS="-latlas -leckit -leckit_mpi -leckit_geometry" +else + AC_MSG_NOTICE([unstructured grid will not be compiled]) + UGRID_MET_LIBS= + UGRID_DEP_LIBS= fi -AC_SUBST([PYTHON_LIBS]) +AC_SUBST([UGRID_MET_LIBS]) +AC_SUBST([UGRID_DEP_LIBS]) ######################################################################## @@ -1204,6 +1293,7 @@ AC_CONFIG_FILES([Makefile src/libcode/vx_data2d_nc_met/Makefile src/libcode/vx_data2d_nc_pinterp/Makefile src/libcode/vx_data2d_nccf/Makefile + src/libcode/vx_data2d_ugrid/Makefile src/libcode/vx_geodesy/Makefile src/libcode/vx_gis/Makefile src/libcode/vx_gnomon/Makefile diff --git a/data/Makefile.in b/data/Makefile.in index a3fb0c78e1..56458f3bcc 100644 --- a/data/Makefile.in +++ b/data/Makefile.in @@ -239,7 +239,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -253,11 +254,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -296,11 +303,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/climo/Makefile.in b/data/climo/Makefile.in index f653ea973c..5641a76c7c 100644 --- a/data/climo/Makefile.in +++ b/data/climo/Makefile.in @@ -209,7 +209,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -223,11 +224,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -266,11 +273,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/climo/seeps/Makefile.in b/data/climo/seeps/Makefile.in index b3cf3b8346..c771ae02f6 100644 --- a/data/climo/seeps/Makefile.in +++ b/data/climo/seeps/Makefile.in @@ -179,7 +179,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -193,11 +194,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -236,11 +243,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/colortables/Makefile.in b/data/colortables/Makefile.in index bc2c584108..f8660cbeb4 100644 --- a/data/colortables/Makefile.in +++ b/data/colortables/Makefile.in @@ -239,7 +239,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -253,11 +254,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -296,11 +303,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/colortables/NCL_colortables/Makefile.in b/data/colortables/NCL_colortables/Makefile.in index 3f33b60626..fbc242380d 100644 --- a/data/colortables/NCL_colortables/Makefile.in +++ b/data/colortables/NCL_colortables/Makefile.in @@ -179,7 +179,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -193,11 +194,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -236,11 +243,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/config/ConfigConstants b/data/config/ConfigConstants index c28b13ec28..b9cf21a67a 100644 --- a/data/config/ConfigConstants +++ b/data/config/ConfigConstants @@ -64,6 +64,7 @@ NETCDF_PINT = 4; NETCDF_NCCF = 5; PYTHON_NUMPY = 6; PYTHON_XARRAY = 7; +NETCDF_UGRID = 8; // Set Logic NONE = 1; diff --git a/data/config/GridStatConfig_default b/data/config/GridStatConfig_default index 4bec5ecf4b..adbb9a214b 100644 --- a/data/config/GridStatConfig_default +++ b/data/config/GridStatConfig_default @@ -264,6 +264,12 @@ nc_pairs_flag = { //////////////////////////////////////////////////////////////////////////////// +ugrid_dataset = ""; +ugrid_max_distance_km = 30; +ugrid_coordinates_file = ""; + +//////////////////////////////////////////////////////////////////////////////// + grid_weight_flag = NONE; tmp_dir = "/tmp"; output_prefix = ""; diff --git a/data/config/Makefile.am b/data/config/Makefile.am index 8c3e1934de..f6ed69c168 100644 --- a/data/config/Makefile.am +++ b/data/config/Makefile.am @@ -48,6 +48,8 @@ config_DATA = \ WWMCARegridConfig_default \ PlotModeFieldConfig_default \ Point2GridConfig_default \ + UGridConfig_lfric \ + UGridConfig_mpas \ PlotPointObsConfig_default EXTRA_DIST = ${config_DATA} diff --git a/data/config/Makefile.in b/data/config/Makefile.in index b5e7cdd628..6bfe852a86 100644 --- a/data/config/Makefile.in +++ b/data/config/Makefile.in @@ -179,7 +179,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -193,11 +194,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -236,11 +243,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -328,6 +338,8 @@ config_DATA = \ WWMCARegridConfig_default \ PlotModeFieldConfig_default \ Point2GridConfig_default \ + UGridConfig_lfric \ + UGridConfig_mpas \ PlotPointObsConfig_default EXTRA_DIST = ${config_DATA} diff --git a/data/config/PointStatConfig_default b/data/config/PointStatConfig_default index d4b277c6a3..9a8132dccc 100644 --- a/data/config/PointStatConfig_default +++ b/data/config/PointStatConfig_default @@ -299,6 +299,12 @@ output_flag = { //////////////////////////////////////////////////////////////////////////////// +ugrid_dataset = ""; +ugrid_max_distance_km = 30; +ugrid_coordinates_file = ""; + +//////////////////////////////////////////////////////////////////////////////// + tmp_dir = "/tmp"; output_prefix = ""; version = "V12.0.0"; diff --git a/data/config/UGridConfig_lfric b/data/config/UGridConfig_lfric new file mode 100644 index 0000000000..7c5e164643 --- /dev/null +++ b/data/config/UGridConfig_lfric @@ -0,0 +1,36 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Unstructured grid configuration file. +// +// UGridConfig_lfric at the current working directory overrides the settings here. +// For additional or updated information, please see the MET User's Guide. +// +//////////////////////////////////////////////////////////////////////////////// + +// +// Dimensions and variables mapping for LFric dataset +// +ugrid_metadata_map = [ + { key = "dim_face"; val = "nMesh2d_face"; }, + { key = "dim_node"; val = "nMesh2d_node"; }, + { key = "dim_edge"; val = "nMesh2d_edge"; }, + { key = "dim_time"; val = "time_counter"; }, + { key = "dim_vert"; val = "nVertLevels"; }, + { key = "cell_id"; val = "indexToCellID"; }, + { key = "lat_face"; val = "Mesh2d_face_y"; }, + { key = "lon_face"; val = "Mesh2d_face_x"; }, + { key = "vert_face"; val = "zCell"; }, + { key = "lat_edge"; val = "Mesh2d_edge_y"; }, + { key = "lon_edge"; val = "Mesh2d_edge_x"; }, + { key = "lat_node"; val = "Mesh2d_node_y"; }, + { key = "lon_node"; val = "Mesh2d_node_x"; }, + { key = "time"; val = "time_centered"; } +]; + +ugrid_max_distance_km = 30; + +//////////////////////////////////////////////////////////////////////////////// + +version = "V12.0.0"; + +//////////////////////////////////////////////////////////////////////////////// diff --git a/data/config/UGridConfig_mpas b/data/config/UGridConfig_mpas new file mode 100644 index 0000000000..803daf6767 --- /dev/null +++ b/data/config/UGridConfig_mpas @@ -0,0 +1,36 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Unstructured grid configuration file. +// +// UGridConfig_mpas at the current working directory overrides the settings here. +// For additional or updated information, please see the MET User's Guide. +// +//////////////////////////////////////////////////////////////////////////////// + +// +// Dimensions and variables mapping for MPAS dataset +// +ugrid_metadata_map = [ + { key = "dim_face"; val = "nCells"; }, + { key = "dim_node"; val = "nVertices"; }, + { key = "dim_edge"; val = "nEdges"; }, + { key = "dim_time"; val = "Time"; }, + { key = "dim_vert"; val = "nVertLevels"; }, + { key = "cell_id"; val = "indexToCellID"; }, + { key = "lat_face"; val = "latCell"; }, + { key = "lon_face"; val = "lonCell"; }, + { key = "vert_face"; val = "zCell"; }, + { key = "lat_edge"; val = "latEdge"; }, + { key = "lon_edge"; val = "lonEdge"; }, + { key = "lat_node"; val = "latVertex"; }, + { key = "lon_node"; val = "lonVertex"; }, + { key = "time"; val = "xtime"; } +]; + +ugrid_max_distance_km = 30; + +//////////////////////////////////////////////////////////////////////////////// + +version = "V12.0.0"; + +//////////////////////////////////////////////////////////////////////////////// diff --git a/data/map/Makefile.in b/data/map/Makefile.in index 99b4d844bd..691c139de5 100644 --- a/data/map/Makefile.in +++ b/data/map/Makefile.in @@ -239,7 +239,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -253,11 +254,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -296,11 +303,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/map/admin_by_country/Makefile.in b/data/map/admin_by_country/Makefile.in index dfe35f6d1e..c9fa509819 100644 --- a/data/map/admin_by_country/Makefile.in +++ b/data/map/admin_by_country/Makefile.in @@ -179,7 +179,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -193,11 +194,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -236,11 +243,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/poly/HMT_masks/Makefile.in b/data/poly/HMT_masks/Makefile.in index 913f377f04..87929e2678 100644 --- a/data/poly/HMT_masks/Makefile.in +++ b/data/poly/HMT_masks/Makefile.in @@ -179,7 +179,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -193,11 +194,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -236,11 +243,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/poly/Makefile.in b/data/poly/Makefile.in index 48c826f0f9..c9e5c28e1d 100644 --- a/data/poly/Makefile.in +++ b/data/poly/Makefile.in @@ -239,7 +239,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -253,11 +254,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -296,11 +303,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/poly/NCEP_masks/Makefile.in b/data/poly/NCEP_masks/Makefile.in index 4c05b09c25..2e7afeee4d 100644 --- a/data/poly/NCEP_masks/Makefile.in +++ b/data/poly/NCEP_masks/Makefile.in @@ -179,7 +179,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -193,11 +194,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -236,11 +243,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/ps/Makefile.in b/data/ps/Makefile.in index 81d8853a46..a2b64a0966 100644 --- a/data/ps/Makefile.in +++ b/data/ps/Makefile.in @@ -179,7 +179,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -193,11 +194,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -236,11 +243,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/table_files/Makefile.in b/data/table_files/Makefile.in index 75416d29e5..cd6b7c6c19 100644 --- a/data/table_files/Makefile.in +++ b/data/table_files/Makefile.in @@ -179,7 +179,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -193,11 +194,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -236,11 +243,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/data/tc_data/Makefile.in b/data/tc_data/Makefile.in index 9cbf6fdbb6..89aa958dac 100644 --- a/data/tc_data/Makefile.in +++ b/data/tc_data/Makefile.in @@ -179,7 +179,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -193,11 +194,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -236,11 +243,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/depcomp b/depcomp index 65cbf7093a..715e34311e 100755 --- a/depcomp +++ b/depcomp @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/install-sh b/install-sh index 8175c640fe..ec298b5374 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2018-03-11.20; # UTC +scriptversion=2020-11-14.01; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -69,6 +69,11 @@ posix_mkdir= # Desired mode of installed file. mode=0755 +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + +backupsuffix= chgrpcmd= chmodcmd=$chmodprog chowncmd= @@ -99,18 +104,28 @@ Options: --version display version info and exit. -c (ignored) - -C install only if different (preserve the last data modification time) + -C install only if different (preserve data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. + -p pass -p to $cpprog. -s $stripprog installed files. + -S SUFFIX attempt to back up existing files, with suffix SUFFIX. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG + +By default, rm is invoked with -f; when overridden with RMPROG, +it's up to you to specify -f if you want it. + +If -S is not specified, no backups are attempted. + +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ " while test $# -ne 0; do @@ -137,8 +152,13 @@ while test $# -ne 0; do -o) chowncmd="$chownprog $2" shift;; + -p) cpprog="$cpprog -p";; + -s) stripcmd=$stripprog;; + -S) backupsuffix="$2" + shift;; + -t) is_target_a_directory=always dst_arg=$2 @@ -255,6 +275,10 @@ do dstdir=$dst test -d "$dstdir" dstdir_status=$? + # Don't chown directories that already exist. + if test $dstdir_status = 0; then + chowncmd="" + fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command @@ -301,22 +325,6 @@ do if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then @@ -326,52 +334,49 @@ do fi posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - # Note that $RANDOM variable is not portable (e.g. dash); Use it - # here however when possible just to lower collision chance. - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - - trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 - - # Because "mkdir -p" follows existing symlinks and we likely work - # directly in world-writeable /tmp, make sure that the '$tmpdir' - # directory is successfully created first before we actually test - # 'mkdir -p' feature. - if (umask $mkdir_umask && - $mkdirprog $mkdir_mode "$tmpdir" && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - test_tmpdir="$tmpdir/a" - ls_ld_tmpdir=`ls -ld "$test_tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null - fi - trap '' 0;; - esac;; + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; esac if @@ -382,7 +387,7 @@ do then : else - # The umask is ridiculous, or mkdir does not conform to POSIX, + # mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. @@ -411,7 +416,7 @@ do prefixes= else if $posix_mkdir; then - (umask=$mkdir_umask && + (umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 @@ -451,7 +456,18 @@ do trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # @@ -477,6 +493,13 @@ do then rm -f "$dsttmp" else + # If $backupsuffix is set, and the file being installed + # already exists, attempt a backup. Don't worry if it fails, + # e.g., if mv doesn't support -f. + if test -n "$backupsuffix" && test -f "$dst"; then + $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null + fi + # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || @@ -491,9 +514,9 @@ do # file should still install successfully. { test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || + $doit $rmcmd "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 diff --git a/internal/scripts/docker/build_met_docker.sh b/internal/scripts/docker/build_met_docker.sh index 297e21508c..f8f008f5e1 100755 --- a/internal/scripts/docker/build_met_docker.sh +++ b/internal/scripts/docker/build_met_docker.sh @@ -4,13 +4,24 @@ echo "Running script to build MET in Docker" source internal/scripts/environment/development.docker +# Check whether MET_GIT_NAME is defined +if [ -z ${MET_GIT_NAME+x} ]; then + MET_GIT_NAME=`git name-rev --name-only HEAD` + echo "Setting MET_GIT_NAME=${MET_GIT_NAME} based on the current branch." +fi + +# Create log directory mkdir -p /met/logs LOG_FILE=/met/logs/MET-${MET_GIT_NAME}_configure.log echo "Running bootstrap for MET ${MET_GIT_NAME} and writing log file ${LOG_FILE}" ./bootstrap > ${LOG_FILE} 2>&1 echo "Configuring MET ${MET_GIT_NAME} and appending to log file ${LOG_FILE}" -./configure BUFRLIB_NAME=${BUFRLIB_NAME} GRIB2CLIB_NAME=${GRIB2CLIB_NAME} --enable-grib2 --enable-mode_graphics --enable-modis --enable-lidar2nc --enable-python CPPFLAGS="-I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include/cairo" LIBS="-ltirpc" >> ${LOG_FILE} 2>&1 +./configure \ + BUFRLIB_NAME=${BUFRLIB_NAME} GRIB2CLIB_NAME=${GRIB2CLIB_NAME} \ + --enable-grib2 --enable-mode_graphics --enable-modis --enable-lidar2nc --enable-python --enable-ugrid \ + CPPFLAGS="-I/usr/local/include -I/usr/local/include/freetype2 -I/usr/local/include/cairo" \ + LIBS="-ltirpc" >> ${LOG_FILE} 2>&1 if [ $? != 0 ]; then cat ${LOG_FILE} exit 1 diff --git a/internal/scripts/environment/development.seneca b/internal/scripts/environment/development.seneca index 51099f2bd1..cc623c8d95 100644 --- a/internal/scripts/environment/development.seneca +++ b/internal/scripts/environment/development.seneca @@ -21,6 +21,8 @@ export MET_CAIROLIB=/usr/lib/x86_64-linux-gnu export MET_FREETYPEINC=/usr/include/freetype2 export MET_FREETYPELIB=/usr/lib/x86_64-linux-gnu export MET_JASPER=${MET_DST}/jasper-1.900.1 +export MET_ATLAS=${MET_PROJ_DIR}/MET_releases/external_libs/gnu_8.3.0/atlas +export MET_ECKIT=${MET_PROJ_DIR}/MET_releases/external_libs/gnu_8.3.0/eckit # For Python 3 in met-9.0 export MET_PYTHON=/usr/local/met-python3 diff --git a/internal/test_unit/bin/unit_test.sh b/internal/test_unit/bin/unit_test.sh index caf28047ab..0f0493720f 100755 --- a/internal/test_unit/bin/unit_test.sh +++ b/internal/test_unit/bin/unit_test.sh @@ -101,6 +101,8 @@ UNIT_XML="unit_ascii2nc.xml \ unit_grid_diag.xml \ unit_quality_filter.xml" +UNIT_XML="${UNIT_XML} unit_ugrid.xml" + # Run each unit test for CUR_XML in ${UNIT_XML}; do diff --git a/internal/test_unit/config/GridStatConfig_ugrid_mpas b/internal/test_unit/config/GridStatConfig_ugrid_mpas new file mode 100644 index 0000000000..db40bb0798 --- /dev/null +++ b/internal/test_unit/config/GridStatConfig_ugrid_mpas @@ -0,0 +1,262 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Grid-Stat configuration file. +// +// For additional information, please see the MET User's Guide. +// +//////////////////////////////////////////////////////////////////////////////// + +// +// Output model name to be written +// +model = "GFS"; + +// +// Output description to be written +// May be set separately in each "obs.field" entry +// +desc = "NA"; + +// +// Output observation type to be written +// +obtype = "GFS-ANL"; + +//////////////////////////////////////////////////////////////////////////////// + +// +// Verification grid +// +regrid = { + to_grid = OBS; + method = BILIN; + width = 2; + vld_thresh = 0.5; + shape = SQUARE; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// May be set separately in each "field" entry +// +censor_thresh = []; +censor_val = []; +mpr_column = []; +mpr_thresh = []; +cat_thresh = []; +cnt_thresh = [ NA ]; +cnt_logic = UNION; +wind_thresh = [ >5.0 ]; +wind_logic = UNION; +eclv_points = 0.05; +nc_pairs_var_name = ""; +nc_pairs_var_suffix = ""; +hss_ec_value = NA; +rank_corr_flag = FALSE; + +// +// Forecast and observation fields to be verified +// +fcst = { + + level = [ "P500" ]; + + field = [ + { name = "t2m"; } + ]; +} +obs = { + + level = [ "P500" ]; + + field = [ + { name = "TMP"; } + ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Climatology data +// +climo_mean = obs; +climo_mean = { + + file_name = []; + + regrid = { + method = NEAREST; + width = 1; + vld_thresh = 0.5; + shape = SQUARE; + } + + time_interp_method = DW_MEAN; + day_interval = 31; + hour_interval = 6; +} + +climo_stdev = climo_mean; +climo_stdev = { + file_name = []; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Verification masking regions +// +mask = { + grid = [ "FULL" ]; + poly = [ ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Confidence interval settings +// +ci_alpha = [ 0.05 ]; + +boot = { + interval = PCTILE; + rep_prop = 1.0; + n_rep = 0; + rng = "mt19937"; + seed = "1"; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Data smoothing methods +// +interp = { + field = BOTH; + vld_thresh = 1.0; + shape = SQUARE; + + type = [ + { + method = NEAREST; + width = 1; + } + ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Neighborhood methods +// +nbrhd = { + width = [ 1 ]; + cov_thresh = [ >=0.5 ]; + vld_thresh = 1.0; + shape = SQUARE; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Fourier decomposition +// +fourier = { + wave_1d_beg = [ 0, 0, 4, 10 ]; + wave_1d_end = [ 72, 3, 9, 20 ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Gradient statistics +// May be set separately in each "obs.field" entry +// +gradient = { + dx = [ 1 ]; + dy = [ 1 ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Distance Map statistics +// May be set separately in each "obs.field" entry +// +distance_map = { + baddeley_p = 2; + baddeley_max_dist = NA; + fom_alpha = 0.1; + zhu_weight = 0.5; + beta_value(n) = n * n / 2.0; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Statistical output types +// +output_flag = { + fho = NONE; + ctc = NONE; + cts = NONE; + mctc = NONE; + mcts = NONE; + cnt = STAT; + sl1l2 = STAT; + sal1l2 = STAT; + vl1l2 = STAT; + val1l2 = STAT; + vcnt = STAT; + pct = NONE; + pstd = NONE; + pjc = NONE; + prc = NONE; + eclv = NONE; + nbrctc = NONE; + nbrcts = NONE; + nbrcnt = NONE; + grad = NONE; + dmap = NONE; + seeps = NONE; +} + +// +// NetCDF matched pairs output file +// +nc_pairs_flag = { + latlon = TRUE; + raw = TRUE; + diff = TRUE; + climo = TRUE; + climo_cdp = FALSE; + weight = FALSE; + nbrhd = FALSE; + fourier = TRUE; + gradient = FALSE; + distance_map = FALSE; + apply_mask = FALSE; +} + +//////////////////////////////////////////////////////////////////////////////// +// Threshold for SEEPS p1 (Probability of being dry) + +seeps_p1_thresh = NA; + +//////////////////////////////////////////////////////////////////////////////// +// Unstructured Grid (optional ecept ugrid_dataset) + +ugrid_dataset = "mpas"; +//ugrid_max_distance_km = 30; +//ugrid_map_config = ""; +ugrid_coordinates_file = "${MET_TEST_INPUT}/ugrid_data/mpas/static.40962_reduced.nc"; + +//////////////////////////////////////////////////////////////////////////////// + +grid_weight_flag = NONE; +tmp_dir = "/tmp"; +output_prefix = "${OUTPUT_PREFIX}"; +version = "V12.0.0"; + +//////////////////////////////////////////////////////////////////////////////// diff --git a/internal/test_unit/config/GridStatConfig_ugrid_mpas_diag b/internal/test_unit/config/GridStatConfig_ugrid_mpas_diag new file mode 100644 index 0000000000..c893957e15 --- /dev/null +++ b/internal/test_unit/config/GridStatConfig_ugrid_mpas_diag @@ -0,0 +1,263 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Grid-Stat configuration file. +// +// For additional information, please see the MET User's Guide. +// +//////////////////////////////////////////////////////////////////////////////// + +// +// Output model name to be written +// +model = "GFS"; + +// +// Output description to be written +// May be set separately in each "obs.field" entry +// +desc = "NA"; + +// +// Output observation type to be written +// +obtype = "GFS-ANL"; + +//////////////////////////////////////////////////////////////////////////////// + +// +// Verification grid +// +regrid = { + to_grid = "${CLIMO_MEAN_FILE}"; + method = BILIN; + width = 2; + vld_thresh = 0.5; + shape = SQUARE; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// May be set separately in each "field" entry +// +censor_thresh = []; +censor_val = []; +mpr_column = []; +mpr_thresh = []; +cat_thresh = []; +cnt_thresh = [ NA ]; +cnt_logic = UNION; +wind_thresh = [ >5.0 ]; +wind_logic = UNION; +eclv_points = 0.05; +nc_pairs_var_name = ""; +nc_pairs_var_suffix = ""; +hss_ec_value = NA; +rank_corr_flag = FALSE; + +// +// Forecast and observation fields to be verified +// +fcst = { + + level = [ "P925" ]; + + field = [ + { name = "temperature"; } + ]; +} +obs = { + + level = [ "L3" ]; + + field = [ + { name = "theta"; } + ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Climatology data +// +//climo_mean = fcst; +//climo_mean = { +// +// file_name = [ "${CLIMO_MEAN_FILE}" ]; +// +// regrid = { +// method = NEAREST; +// width = 1; +// vld_thresh = 0.5; +// shape = SQUARE; +// } +// +// time_interp_method = DW_MEAN; +// day_interval = 31; +// hour_interval = 6; +//} +// +//climo_stdev = climo_mean; +//climo_stdev = { +// file_name = []; +//} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Verification masking regions +// +mask = { + grid = [ "FULL" ]; + poly = [ ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Confidence interval settings +// +ci_alpha = [ 0.05 ]; + +boot = { + interval = PCTILE; + rep_prop = 1.0; + n_rep = 0; + rng = "mt19937"; + seed = "1"; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Data smoothing methods +// +interp = { + field = BOTH; + vld_thresh = 1.0; + shape = SQUARE; + + type = [ + { + method = NEAREST; + width = 1; + } + ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Neighborhood methods +// +nbrhd = { + width = [ 1 ]; + cov_thresh = [ >=0.5 ]; + vld_thresh = 1.0; + shape = SQUARE; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Fourier decomposition +// +fourier = { + wave_1d_beg = [ 0, 0, 4, 10 ]; + wave_1d_end = [ 72, 3, 9, 20 ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Gradient statistics +// May be set separately in each "obs.field" entry +// +gradient = { + dx = [ 1 ]; + dy = [ 1 ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Distance Map statistics +// May be set separately in each "obs.field" entry +// +distance_map = { + baddeley_p = 2; + baddeley_max_dist = NA; + fom_alpha = 0.1; + zhu_weight = 0.5; + beta_value(n) = n * n / 2.0; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Statistical output types +// +output_flag = { + fho = NONE; + ctc = NONE; + cts = NONE; + mctc = NONE; + mcts = NONE; + cnt = STAT; + sl1l2 = STAT; + sal1l2 = STAT; + vl1l2 = STAT; + val1l2 = STAT; + vcnt = STAT; + pct = NONE; + pstd = NONE; + pjc = NONE; + prc = NONE; + eclv = NONE; + nbrctc = NONE; + nbrcts = NONE; + nbrcnt = NONE; + grad = NONE; + dmap = NONE; + seeps = NONE; +} + +// +// NetCDF matched pairs output file +// +nc_pairs_flag = { + latlon = TRUE; + raw = TRUE; + diff = TRUE; + climo = TRUE; + climo_cdp = FALSE; + weight = FALSE; + nbrhd = FALSE; + fourier = TRUE; + gradient = FALSE; + distance_map = FALSE; + apply_mask = FALSE; +} + +//////////////////////////////////////////////////////////////////////////////// +// Threshold for SEEPS p1 (Probability of being dry) + +seeps_p1_thresh = NA; + +//////////////////////////////////////////////////////////////////////////////// +// Unstructured Grid (optional ecept ugrid_dataset) + +ugrid_dataset = "mpas"; +//ugrid_max_distance_km = 30; +//ugrid_map_config = ""; +ugrid_coordinates_file = "${MET_TEST_INPUT}/ugrid_data/mpas/static.40962_reduced.nc"; + + +//////////////////////////////////////////////////////////////////////////////// + +grid_weight_flag = NONE; +tmp_dir = "/tmp"; +output_prefix = "${OUTPUT_PREFIX}"; +version = "V12.0.0"; + +//////////////////////////////////////////////////////////////////////////////// diff --git a/internal/test_unit/config/PointStatConfig_ugrid_mpas_diag b/internal/test_unit/config/PointStatConfig_ugrid_mpas_diag new file mode 100644 index 0000000000..ca0ef81ae7 --- /dev/null +++ b/internal/test_unit/config/PointStatConfig_ugrid_mpas_diag @@ -0,0 +1,167 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Point-Stat configuration file. +// +// For additional information, please see the MET User's Guide. +// +//////////////////////////////////////////////////////////////////////////////// + +model = "WRF"; + +// +// Output description to be written +// May be set separately in each "obs.field" entry +// +desc = "NA"; + +//////////////////////////////////////////////////////////////////////////////// + +regrid = { + to_grid = NONE; + method = NEAREST; + width = 1; +} + +//////////////////////////////////////////////////////////////////////////////// + +obs_window = { + beg = ${BEG_DS}; + end = ${END_DS}; +} + +//////////////////////////////////////////////////////////////////////////////// + +mpr_column = []; +mpr_thresh = []; +cnt_thresh = [ NA ]; +cnt_logic = UNION; +wind_thresh = [ NA ]; +wind_logic = UNION; +eclv_points = 0.05; + + +fcst = { + sid_inc = []; + sid_exc = []; + obs_quality_inc = []; + obs_quality_exc = []; + + field = [ + { name = "temperature"; level = "P925"; message_type = "ADPSFC"; } + ]; + +} + +obs = { + sid_inc = []; + sid_exc = []; + obs_quality_inc = []; + obs_quality_exc = []; + + field = [ + { name = "TMP"; level = "P1000-500"; message_type = "ADPSFC"; } + ]; + +} + +//////////////////////////////////////////////////////////////////////////////// + +climo_mean = obs; +climo_mean = { + file_name = []; +} + +//////////////////////////////////////////////////////////////////////////////// + +mask = { + grid = []; + poly = []; + sid = []; + llpnt = [{ name = "ALLLATLON"; lat_thresh = NA; lon_thresh = NA; }]; +} + +//////////////////////////////////////////////////////////////////////////////// + +ci_alpha = [ 0.05 ]; + +boot = { + interval = PCTILE; + rep_prop = 1.0; + n_rep = 200; + rng = "mt19937"; + seed = "1"; +} + +//////////////////////////////////////////////////////////////////////////////// + +interp = { + vld_thresh = 1.0; + + type = [ + { + method = NEAREST; + width = 1; + } + ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +hira = { + flag = FALSE; + width = [ 2, 3, 4, 5 ]; + vld_thresh = 1.0; + cov_thresh = [ ==0.25 ]; + shape = SQUARE; + prob_cat_thresh = []; +} + +//////////////////////////////////////////////////////////////////////////////// + +output_flag = { + fho = BOTH; + ctc = BOTH; + cts = BOTH; + mctc = NONE; + mcts = NONE; + cnt = BOTH; + sl1l2 = NONE; + sal1l2 = NONE; + vl1l2 = NONE; + val1l2 = NONE; + vcnt = BOTH; + pct = NONE; + pstd = NONE; + pjc = NONE; + prc = NONE; + ecnt = NONE; + orank = NONE; + rps = NONE; + eclv = BOTH; + mpr = BOTH; + seeps = NONE; + seeps_mpr = NONE; +} + +//////////////////////////////////////////////////////////////////////////////// +// Threshold for SEEPS p1 (Probability of being dry) + +seeps_p1_thresh = NA; + +//////////////////////////////////////////////////////////////////////////////// +// Unstructured Grid (optional ecept ugrid_dataset) + +ugrid_dataset = "mpas"; +//ugrid_max_distance_km = 30; +//ugrid_map_config = ""; +ugrid_coordinates_file = "${MET_TEST_INPUT}/ugrid_data/mpas/static.40962_reduced.nc"; + +//////////////////////////////////////////////////////////////////////////////// + +duplicate_flag = NONE; +rank_corr_flag = TRUE; +tmp_dir = "/tmp"; +output_prefix = "${OUTPUT_PREFIX}"; +version = "V12.0.0"; + +//////////////////////////////////////////////////////////////////////////////// diff --git a/internal/test_unit/config/PointStatConfig_ugrid_mpas_out b/internal/test_unit/config/PointStatConfig_ugrid_mpas_out new file mode 100644 index 0000000000..1e1f9e4887 --- /dev/null +++ b/internal/test_unit/config/PointStatConfig_ugrid_mpas_out @@ -0,0 +1,167 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Point-Stat configuration file. +// +// For additional information, please see the MET User's Guide. +// +//////////////////////////////////////////////////////////////////////////////// + +model = "WRF"; + +// +// Output description to be written +// May be set separately in each "obs.field" entry +// +desc = "NA"; + +//////////////////////////////////////////////////////////////////////////////// + +regrid = { + to_grid = NONE; + method = NEAREST; + width = 1; +} + +//////////////////////////////////////////////////////////////////////////////// + +obs_window = { + beg = ${BEG_DS}; + end = ${END_DS}; +} + +//////////////////////////////////////////////////////////////////////////////// + +mpr_column = []; +mpr_thresh = []; +cnt_thresh = [ NA ]; +cnt_logic = UNION; +wind_thresh = [ NA ]; +wind_logic = UNION; +eclv_points = 0.05; + + +fcst = { + sid_inc = []; + sid_exc = []; + obs_quality_inc = []; + obs_quality_exc = []; + + field = [ + { name = "theta"; level = "L2"; message_type = "ADPSFC"; } + ]; + +} + +obs = { + sid_inc = []; + sid_exc = []; + obs_quality_inc = []; + obs_quality_exc = []; + + field = [ + { name = "TMP"; level = "P1000-500"; message_type = "ADPSFC"; } + ]; + +} + +//////////////////////////////////////////////////////////////////////////////// + +climo_mean = obs; +climo_mean = { + file_name = []; +} + +//////////////////////////////////////////////////////////////////////////////// + +mask = { + grid = []; + poly = []; + sid = []; + llpnt = [{ name = "ALLLATLON"; lat_thresh = NA; lon_thresh = NA; }]; +} + +//////////////////////////////////////////////////////////////////////////////// + +ci_alpha = [ 0.05 ]; + +boot = { + interval = PCTILE; + rep_prop = 1.0; + n_rep = 200; + rng = "mt19937"; + seed = "1"; +} + +//////////////////////////////////////////////////////////////////////////////// + +interp = { + vld_thresh = 1.0; + + type = [ + { + method = NEAREST; + width = 1; + } + ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +hira = { + flag = FALSE; + width = [ 2, 3, 4, 5 ]; + vld_thresh = 1.0; + cov_thresh = [ ==0.25 ]; + shape = SQUARE; + prob_cat_thresh = []; +} + +//////////////////////////////////////////////////////////////////////////////// + +output_flag = { + fho = BOTH; + ctc = BOTH; + cts = BOTH; + mctc = NONE; + mcts = NONE; + cnt = BOTH; + sl1l2 = NONE; + sal1l2 = NONE; + vl1l2 = NONE; + val1l2 = NONE; + vcnt = BOTH; + pct = NONE; + pstd = NONE; + pjc = NONE; + prc = NONE; + ecnt = NONE; + orank = NONE; + rps = NONE; + eclv = BOTH; + mpr = BOTH; + seeps = NONE; + seeps_mpr = NONE; +} + +//////////////////////////////////////////////////////////////////////////////// +// Threshold for SEEPS p1 (Probability of being dry) + +seeps_p1_thresh = NA; + +//////////////////////////////////////////////////////////////////////////////// +// Unstructured Grid (optional ecept ugrid_dataset) + +ugrid_dataset = "mpas"; +//ugrid_max_distance_km = 30; +//ugrid_map_config = ""; +ugrid_coordinates_file = "${MET_TEST_INPUT}/ugrid_data/mpas/static.40962_reduced.nc"; + +//////////////////////////////////////////////////////////////////////////////// + +duplicate_flag = NONE; +rank_corr_flag = TRUE; +tmp_dir = "/tmp"; +output_prefix = "${OUTPUT_PREFIX}"; +version = "V12.0.0"; + +//////////////////////////////////////////////////////////////////////////////// diff --git a/internal/test_unit/xml/unit_ugrid.xml b/internal/test_unit/xml/unit_ugrid.xml new file mode 100644 index 0000000000..a77d95d886 --- /dev/null +++ b/internal/test_unit/xml/unit_ugrid.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + +]> + + + + + + + + + + + &MET_BIN;/grid_stat + + OUTPUT_PREFIX UGRID_MPAS_OUT_TO_GRID + + \ + &DATA_DIR_UGRID;/mpas/mpasout.2012-04-09_12.00.00_reduced.nc \ + &DATA_DIR_MODEL;/grib2/gfsanl/gfsanl_4_20120409_1200_000.grb2 \ + &CONFIG_DIR;/GridStatConfig_ugrid_mpas \ + -outdir &OUTPUT_DIR;/grid_stat_ugrid -v 1 + + + &OUTPUT_DIR;/grid_stat_ugrid/grid_stat_UGRID_MPAS_OUT_TO_GRID_000000L_20120409_120000V.stat + &OUTPUT_DIR;/grid_stat_ugrid/grid_stat_UGRID_MPAS_OUT_TO_GRID_000000L_20120409_120000V_pairs.nc + + + + + &MET_BIN;/grid_stat + + CLIMO_MEAN_FILE &DATA_DIR_CLIMO;/NCEP_2.5deg/pgba_mean.19590415 + OUTPUT_PREFIX UGRID_MPAS_DIAG + + \ + &DATA_DIR_UGRID;/mpas/diag.2012-04-09_12.00.00_reduced.nc \ + &DATA_DIR_UGRID;/mpas/mpasout.2012-04-09_12.00.00_reduced.nc \ + &CONFIG_DIR;/GridStatConfig_ugrid_mpas_diag \ + -outdir &OUTPUT_DIR;/grid_stat_ugrid -v 1 + + + &OUTPUT_DIR;/grid_stat_ugrid/grid_stat_UGRID_MPAS_DIAG_000000L_20120409_120000V.stat + &OUTPUT_DIR;/grid_stat_ugrid/grid_stat_UGRID_MPAS_DIAG_000000L_20120409_120000V_pairs.nc + + + + + + + + + + + &MET_BIN;/point_stat + + BEG_DS -1800 + END_DS 1800 + OUTPUT_PREFIX UGRID_MPAS_DIAG_TEMP + CONFIG_DIR &CONFIG_DIR; + + \ + &DATA_DIR_UGRID;/mpas/diag.2012-04-09_12.00.00_reduced.nc \ + &OUTPUT_DIR;/pb2nc/gdas1.20120409.t12z.prepbufr.nc \ + &CONFIG_DIR;/PointStatConfig_ugrid_mpas_diag \ + -outdir &OUTPUT_DIR;/point_stat_ugrid -v 1 + + + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_DIAG_TEMP_000000L_20120409_120000V.stat + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_DIAG_TEMP_000000L_20120409_120000V_fho.txt + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_DIAG_TEMP_000000L_20120409_120000V_ctc.txt + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_DIAG_TEMP_000000L_20120409_120000V_cts.txt + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_DIAG_TEMP_000000L_20120409_120000V_cnt.txt + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_DIAG_TEMP_000000L_20120409_120000V_eclv.txt + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_DIAG_TEMP_000000L_20120409_120000V_mpr.txt + + + + + &MET_BIN;/point_stat + + BEG_DS -1800 + END_DS 1800 + OUTPUT_PREFIX UGRID_MPAS_OUT_TEMP + CONFIG_DIR &CONFIG_DIR; + + \ + &DATA_DIR_UGRID;/mpas/mpasout.2012-04-09_12.00.00_reduced.nc \ + &OUTPUT_DIR;/pb2nc/gdas1.20120409.t12z.prepbufr.nc \ + &CONFIG_DIR;/PointStatConfig_ugrid_mpas_out \ + -outdir &OUTPUT_DIR;/point_stat_ugrid -v 1 + + + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_OUT_TEMP_000000L_20120409_120000V.stat + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_OUT_TEMP_000000L_20120409_120000V_fho.txt + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_OUT_TEMP_000000L_20120409_120000V_ctc.txt + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_OUT_TEMP_000000L_20120409_120000V_cts.txt + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_OUT_TEMP_000000L_20120409_120000V_cnt.txt + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_OUT_TEMP_000000L_20120409_120000V_eclv.txt + &OUTPUT_DIR;/point_stat_ugrid/point_stat_UGRID_MPAS_OUT_TEMP_000000L_20120409_120000V_mpr.txt + + + + diff --git a/internal/test_util/Makefile.in b/internal/test_util/Makefile.in index 273b760ac6..bc92682f01 100644 --- a/internal/test_util/Makefile.in +++ b/internal/test_util/Makefile.in @@ -209,7 +209,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -223,11 +224,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -266,11 +273,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/basic/Makefile.in b/internal/test_util/basic/Makefile.in index 297b68955b..59c1c2a6e1 100644 --- a/internal/test_util/basic/Makefile.in +++ b/internal/test_util/basic/Makefile.in @@ -209,7 +209,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -223,11 +224,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -266,11 +273,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/basic/vx_config/Makefile.in b/internal/test_util/basic/vx_config/Makefile.in index b4f2a63d55..922e74378d 100644 --- a/internal/test_util/basic/vx_config/Makefile.in +++ b/internal/test_util/basic/vx_config/Makefile.in @@ -234,7 +234,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -248,11 +249,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -291,11 +298,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/basic/vx_log/Makefile.in b/internal/test_util/basic/vx_log/Makefile.in index a280f93a32..c77a2ffbee 100644 --- a/internal/test_util/basic/vx_log/Makefile.in +++ b/internal/test_util/basic/vx_log/Makefile.in @@ -203,7 +203,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -217,11 +218,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -260,11 +267,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/basic/vx_util/Makefile.am b/internal/test_util/basic/vx_util/Makefile.am index 7fcf6cf3d4..8717867cda 100644 --- a/internal/test_util/basic/vx_util/Makefile.am +++ b/internal/test_util/basic/vx_util/Makefile.am @@ -89,14 +89,14 @@ test_ascii_header_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ diff --git a/internal/test_util/basic/vx_util/Makefile.in b/internal/test_util/basic/vx_util/Makefile.in index 468ceb6843..3a1609dc69 100644 --- a/internal/test_util/basic/vx_util/Makefile.in +++ b/internal/test_util/basic/vx_util/Makefile.in @@ -118,7 +118,9 @@ am_test_ascii_header_OBJECTS = \ test_ascii_header-test_ascii_header.$(OBJEXT) test_ascii_header_OBJECTS = $(am_test_ascii_header_OBJECTS) test_ascii_header_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) test_ascii_header_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(test_ascii_header_LDFLAGS) $(LDFLAGS) -o $@ am_test_command_line_OBJECTS = \ @@ -239,7 +241,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -253,11 +256,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -296,11 +305,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -387,14 +399,14 @@ test_ascii_header_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ diff --git a/internal/test_util/libcode/Makefile.in b/internal/test_util/libcode/Makefile.in index 3cbc250888..c6b112a95a 100644 --- a/internal/test_util/libcode/Makefile.in +++ b/internal/test_util/libcode/Makefile.in @@ -209,7 +209,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -223,11 +224,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -266,11 +273,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/libcode/vx_data2d/Makefile.am b/internal/test_util/libcode/vx_data2d/Makefile.am index 7e3c1ffd77..1759c4087c 100644 --- a/internal/test_util/libcode/vx_data2d/Makefile.am +++ b/internal/test_util/libcode/vx_data2d/Makefile.am @@ -34,6 +34,7 @@ dump_default_table_LDFLAGS = -L. ${MET_LDFLAGS} dump_default_table_LDADD = -lvx_config \ -lvx_gsl_prob \ -lvx_log \ + $(UGRID_MET_LIBS) \ -lvx_data2d \ -lvx_grid \ -lvx_geodesy \ @@ -41,4 +42,5 @@ dump_default_table_LDADD = -lvx_config \ -lvx_cal \ -lvx_math \ -lvx_log \ + $(UGRID_DEP_LIBS) \ -lproj -lgsl -lgslcblas diff --git a/internal/test_util/libcode/vx_data2d/Makefile.in b/internal/test_util/libcode/vx_data2d/Makefile.in index 5ddc56a697..36d61ebc9b 100644 --- a/internal/test_util/libcode/vx_data2d/Makefile.in +++ b/internal/test_util/libcode/vx_data2d/Makefile.in @@ -103,7 +103,9 @@ PROGRAMS = $(noinst_PROGRAMS) am_dump_default_table_OBJECTS = \ dump_default_table-dump_default_table.$(OBJEXT) dump_default_table_OBJECTS = $(am_dump_default_table_OBJECTS) -dump_default_table_DEPENDENCIES = +am__DEPENDENCIES_1 = +dump_default_table_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) dump_default_table_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(dump_default_table_LDFLAGS) $(LDFLAGS) -o $@ am_test_table_read_OBJECTS = \ @@ -207,7 +209,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -221,11 +224,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -264,11 +273,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -347,6 +359,7 @@ dump_default_table_LDFLAGS = -L. ${MET_LDFLAGS} dump_default_table_LDADD = -lvx_config \ -lvx_gsl_prob \ -lvx_log \ + $(UGRID_MET_LIBS) \ -lvx_data2d \ -lvx_grid \ -lvx_geodesy \ @@ -354,6 +367,7 @@ dump_default_table_LDADD = -lvx_config \ -lvx_cal \ -lvx_math \ -lvx_log \ + $(UGRID_DEP_LIBS) \ -lproj -lgsl -lgslcblas all: all-am diff --git a/internal/test_util/libcode/vx_data2d_factory/Makefile.am b/internal/test_util/libcode/vx_data2d_factory/Makefile.am index 78d54d8936..77bd62fff1 100644 --- a/internal/test_util/libcode/vx_data2d_factory/Makefile.am +++ b/internal/test_util/libcode/vx_data2d_factory/Makefile.am @@ -32,10 +32,12 @@ test_factory_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -50,4 +52,5 @@ test_factory_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas diff --git a/internal/test_util/libcode/vx_data2d_factory/Makefile.in b/internal/test_util/libcode/vx_data2d_factory/Makefile.in index fc47b90c40..7900d0c3cc 100644 --- a/internal/test_util/libcode/vx_data2d_factory/Makefile.in +++ b/internal/test_util/libcode/vx_data2d_factory/Makefile.in @@ -104,6 +104,8 @@ am_test_factory_OBJECTS = test_factory-test_factory.$(OBJEXT) test_factory_OBJECTS = $(am_test_factory_OBJECTS) am__DEPENDENCIES_1 = test_factory_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) test_factory_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(test_factory_LDFLAGS) $(LDFLAGS) -o $@ @@ -205,7 +207,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -219,11 +222,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -262,11 +271,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -343,10 +355,12 @@ test_factory_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -361,6 +375,7 @@ test_factory_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas all: all-am diff --git a/internal/test_util/libcode/vx_data2d_grib/Makefile.am b/internal/test_util/libcode/vx_data2d_grib/Makefile.am index e03b42df6e..4bdf460e12 100644 --- a/internal/test_util/libcode/vx_data2d_grib/Makefile.am +++ b/internal/test_util/libcode/vx_data2d_grib/Makefile.am @@ -16,6 +16,7 @@ test_read_grib1_SOURCES = test_read_grib1.cc test_read_grib1_CPPFLAGS = ${MET_CPPFLAGS} test_read_grib1_LDFLAGS = -L. ${MET_LDFLAGS} test_read_grib1_LDADD = -lvx_data2d_grib \ + $(UGRID_MET_LIBS) \ -lvx_data2d \ -lvx_grid \ -lvx_geodesy \ @@ -27,4 +28,5 @@ test_read_grib1_LDADD = -lvx_data2d_grib \ -lvx_color \ -lvx_cal \ -lvx_log \ + $(UGRID_DEP_LIBS) \ -lproj -lgsl -lgslcblas diff --git a/internal/test_util/libcode/vx_data2d_grib/Makefile.in b/internal/test_util/libcode/vx_data2d_grib/Makefile.in index 7d3461c0c5..0244c37c4a 100644 --- a/internal/test_util/libcode/vx_data2d_grib/Makefile.in +++ b/internal/test_util/libcode/vx_data2d_grib/Makefile.in @@ -103,7 +103,9 @@ PROGRAMS = $(noinst_PROGRAMS) am_test_read_grib1_OBJECTS = \ test_read_grib1-test_read_grib1.$(OBJEXT) test_read_grib1_OBJECTS = $(am_test_read_grib1_OBJECTS) -test_read_grib1_DEPENDENCIES = +am__DEPENDENCIES_1 = +test_read_grib1_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) test_read_grib1_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(test_read_grib1_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -198,7 +200,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -212,11 +215,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -255,11 +264,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -321,6 +333,7 @@ test_read_grib1_SOURCES = test_read_grib1.cc test_read_grib1_CPPFLAGS = ${MET_CPPFLAGS} test_read_grib1_LDFLAGS = -L. ${MET_LDFLAGS} test_read_grib1_LDADD = -lvx_data2d_grib \ + $(UGRID_MET_LIBS) \ -lvx_data2d \ -lvx_grid \ -lvx_geodesy \ @@ -332,6 +345,7 @@ test_read_grib1_LDADD = -lvx_data2d_grib \ -lvx_color \ -lvx_cal \ -lvx_log \ + $(UGRID_DEP_LIBS) \ -lproj -lgsl -lgslcblas all: all-am diff --git a/internal/test_util/libcode/vx_data2d_nc_met/Makefile.am b/internal/test_util/libcode/vx_data2d_nc_met/Makefile.am index e32ef23772..e0100f5fdc 100644 --- a/internal/test_util/libcode/vx_data2d_nc_met/Makefile.am +++ b/internal/test_util/libcode/vx_data2d_nc_met/Makefile.am @@ -16,6 +16,7 @@ test_read_nc_met_SOURCES = test_read_nc_met.cc test_read_nc_met_CPPFLAGS = ${MET_CPPFLAGS} test_read_nc_met_LDFLAGS = -L. ${MET_LDFLAGS} test_read_nc_met_LDADD = -lvx_data2d_nc_met \ + $(UGRID_MET_LIBS) \ -lvx_nc_util \ -lvx_data2d \ -lvx_grid \ @@ -28,4 +29,5 @@ test_read_nc_met_LDADD = -lvx_data2d_nc_met \ -lvx_color \ -lvx_cal \ -lvx_log \ + $(UGRID_DEP_LIBS) \ -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas diff --git a/internal/test_util/libcode/vx_data2d_nc_met/Makefile.in b/internal/test_util/libcode/vx_data2d_nc_met/Makefile.in index 372ccf3a8c..0eeb2004c9 100644 --- a/internal/test_util/libcode/vx_data2d_nc_met/Makefile.in +++ b/internal/test_util/libcode/vx_data2d_nc_met/Makefile.in @@ -103,7 +103,9 @@ PROGRAMS = $(noinst_PROGRAMS) am_test_read_nc_met_OBJECTS = \ test_read_nc_met-test_read_nc_met.$(OBJEXT) test_read_nc_met_OBJECTS = $(am_test_read_nc_met_OBJECTS) -test_read_nc_met_DEPENDENCIES = +am__DEPENDENCIES_1 = +test_read_nc_met_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) test_read_nc_met_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(test_read_nc_met_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -199,7 +201,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -213,11 +216,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -256,11 +265,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -322,6 +334,7 @@ test_read_nc_met_SOURCES = test_read_nc_met.cc test_read_nc_met_CPPFLAGS = ${MET_CPPFLAGS} test_read_nc_met_LDFLAGS = -L. ${MET_LDFLAGS} test_read_nc_met_LDADD = -lvx_data2d_nc_met \ + $(UGRID_MET_LIBS) \ -lvx_nc_util \ -lvx_data2d \ -lvx_grid \ @@ -334,6 +347,7 @@ test_read_nc_met_LDADD = -lvx_data2d_nc_met \ -lvx_color \ -lvx_cal \ -lvx_log \ + $(UGRID_DEP_LIBS) \ -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas all: all-am diff --git a/internal/test_util/libcode/vx_data2d_nccf/Makefile.am b/internal/test_util/libcode/vx_data2d_nccf/Makefile.am index 151f5f84d6..1c9bbbe8e3 100644 --- a/internal/test_util/libcode/vx_data2d_nccf/Makefile.am +++ b/internal/test_util/libcode/vx_data2d_nccf/Makefile.am @@ -16,6 +16,7 @@ test_read_nccf_SOURCES = test_read_nccf.cc test_read_nccf_CPPFLAGS = ${MET_CPPFLAGS} test_read_nccf_LDFLAGS = -L. ${MET_LDFLAGS} test_read_nccf_LDADD = -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ -lvx_nc_util \ -lvx_data2d \ -lvx_grid \ @@ -28,4 +29,5 @@ test_read_nccf_LDADD = -lvx_data2d_nccf \ -lvx_color \ -lvx_cal \ -lvx_log \ + $(UGRID_DEP_LIBS) \ -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas diff --git a/internal/test_util/libcode/vx_data2d_nccf/Makefile.in b/internal/test_util/libcode/vx_data2d_nccf/Makefile.in index f86958db2c..f28a17bac3 100644 --- a/internal/test_util/libcode/vx_data2d_nccf/Makefile.in +++ b/internal/test_util/libcode/vx_data2d_nccf/Makefile.in @@ -102,7 +102,9 @@ CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_test_read_nccf_OBJECTS = test_read_nccf-test_read_nccf.$(OBJEXT) test_read_nccf_OBJECTS = $(am_test_read_nccf_OBJECTS) -test_read_nccf_DEPENDENCIES = +am__DEPENDENCIES_1 = +test_read_nccf_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) test_read_nccf_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(test_read_nccf_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -197,7 +199,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -211,11 +214,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -254,11 +263,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -320,6 +332,7 @@ test_read_nccf_SOURCES = test_read_nccf.cc test_read_nccf_CPPFLAGS = ${MET_CPPFLAGS} test_read_nccf_LDFLAGS = -L. ${MET_LDFLAGS} test_read_nccf_LDADD = -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ -lvx_nc_util \ -lvx_data2d \ -lvx_grid \ @@ -332,6 +345,7 @@ test_read_nccf_LDADD = -lvx_data2d_nccf \ -lvx_color \ -lvx_cal \ -lvx_log \ + $(UGRID_DEP_LIBS) \ -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas all: all-am diff --git a/internal/test_util/libcode/vx_geodesy/Makefile.in b/internal/test_util/libcode/vx_geodesy/Makefile.in index f006dc86c7..0755d5d534 100644 --- a/internal/test_util/libcode/vx_geodesy/Makefile.in +++ b/internal/test_util/libcode/vx_geodesy/Makefile.in @@ -197,7 +197,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -211,11 +212,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -254,11 +261,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/libcode/vx_grid/Makefile.am b/internal/test_util/libcode/vx_grid/Makefile.am index 271b4e3460..a36bcc50e0 100644 --- a/internal/test_util/libcode/vx_grid/Makefile.am +++ b/internal/test_util/libcode/vx_grid/Makefile.am @@ -15,8 +15,9 @@ noinst_PROGRAMS = test_grid_area test_grid_area_SOURCES = test_grid_area.cc test_grid_area_CPPFLAGS = ${MET_CPPFLAGS} test_grid_area_LDFLAGS = -L. ${MET_LDFLAGS} -test_grid_area_LDADD = -lvx_grid \ - -lvx_geodesy \ +test_grid_area_LDADD = \ + $(UGRID_MET_LIBS) \ + -lvx_grid \ -lvx_geodesy \ -lvx_nav \ -lvx_util_math \ @@ -24,4 +25,5 @@ test_grid_area_LDADD = -lvx_grid \ -lvx_math \ -lvx_cal \ -lvx_log \ + $(UGRID_DEP_LIBS) \ -lz -lm -lproj diff --git a/internal/test_util/libcode/vx_grid/Makefile.in b/internal/test_util/libcode/vx_grid/Makefile.in index ae2a4383d0..02cf7bebbe 100644 --- a/internal/test_util/libcode/vx_grid/Makefile.in +++ b/internal/test_util/libcode/vx_grid/Makefile.in @@ -102,7 +102,9 @@ CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_test_grid_area_OBJECTS = test_grid_area-test_grid_area.$(OBJEXT) test_grid_area_OBJECTS = $(am_test_grid_area_OBJECTS) -test_grid_area_DEPENDENCIES = +am__DEPENDENCIES_1 = +test_grid_area_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) test_grid_area_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(test_grid_area_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -197,7 +199,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -211,11 +214,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -254,11 +263,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -319,8 +331,9 @@ MAINTAINERCLEANFILES = Makefile.in test_grid_area_SOURCES = test_grid_area.cc test_grid_area_CPPFLAGS = ${MET_CPPFLAGS} test_grid_area_LDFLAGS = -L. ${MET_LDFLAGS} -test_grid_area_LDADD = -lvx_grid \ - -lvx_geodesy \ +test_grid_area_LDADD = \ + $(UGRID_MET_LIBS) \ + -lvx_grid \ -lvx_geodesy \ -lvx_nav \ -lvx_util_math \ @@ -328,6 +341,7 @@ test_grid_area_LDADD = -lvx_grid \ -lvx_math \ -lvx_cal \ -lvx_log \ + $(UGRID_DEP_LIBS) \ -lz -lm -lproj all: all-am diff --git a/internal/test_util/libcode/vx_nc_util/Makefile.am b/internal/test_util/libcode/vx_nc_util/Makefile.am index 6fef8cf74c..b691fbf392 100644 --- a/internal/test_util/libcode/vx_nc_util/Makefile.am +++ b/internal/test_util/libcode/vx_nc_util/Makefile.am @@ -27,14 +27,14 @@ test_pressure_levels_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ diff --git a/internal/test_util/libcode/vx_nc_util/Makefile.in b/internal/test_util/libcode/vx_nc_util/Makefile.in index f437196d7f..71e69f26b0 100644 --- a/internal/test_util/libcode/vx_nc_util/Makefile.in +++ b/internal/test_util/libcode/vx_nc_util/Makefile.in @@ -106,7 +106,9 @@ am_test_pressure_levels_OBJECTS = \ test_pressure_levels_OBJECTS = $(am_test_pressure_levels_OBJECTS) am__DEPENDENCIES_1 = test_pressure_levels_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) test_pressure_levels_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(test_pressure_levels_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -202,7 +204,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +219,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +268,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -332,14 +344,14 @@ test_pressure_levels_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ diff --git a/internal/test_util/libcode/vx_physics/Makefile.in b/internal/test_util/libcode/vx_physics/Makefile.in index ddd63db625..68d3ee560e 100644 --- a/internal/test_util/libcode/vx_physics/Makefile.in +++ b/internal/test_util/libcode/vx_physics/Makefile.in @@ -197,7 +197,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -211,11 +212,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -254,11 +261,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/libcode/vx_plot_util/Makefile.in b/internal/test_util/libcode/vx_plot_util/Makefile.in index 8aa88eed23..98a7a77776 100644 --- a/internal/test_util/libcode/vx_plot_util/Makefile.in +++ b/internal/test_util/libcode/vx_plot_util/Makefile.in @@ -198,7 +198,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -212,11 +213,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -255,11 +262,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/libcode/vx_ps/Makefile.in b/internal/test_util/libcode/vx_ps/Makefile.in index 17081679e8..9496919a41 100644 --- a/internal/test_util/libcode/vx_ps/Makefile.in +++ b/internal/test_util/libcode/vx_ps/Makefile.in @@ -197,7 +197,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -211,11 +212,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -254,11 +261,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/libcode/vx_series_data/Makefile.in b/internal/test_util/libcode/vx_series_data/Makefile.in index 6cf8e84616..05c70c4afe 100644 --- a/internal/test_util/libcode/vx_series_data/Makefile.in +++ b/internal/test_util/libcode/vx_series_data/Makefile.in @@ -199,7 +199,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -213,11 +214,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -256,11 +263,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/libcode/vx_solar/Makefile.in b/internal/test_util/libcode/vx_solar/Makefile.in index 1233b23042..af88241400 100644 --- a/internal/test_util/libcode/vx_solar/Makefile.in +++ b/internal/test_util/libcode/vx_solar/Makefile.in @@ -197,7 +197,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -211,11 +212,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -254,11 +261,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/libcode/vx_tc_util/Makefile.am b/internal/test_util/libcode/vx_tc_util/Makefile.am index f9f85a3050..1aca803372 100644 --- a/internal/test_util/libcode/vx_tc_util/Makefile.am +++ b/internal/test_util/libcode/vx_tc_util/Makefile.am @@ -28,14 +28,14 @@ test_read_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ @@ -64,14 +64,14 @@ test_read_prob_LDADD = -lvx_stat_out \ -lvx_shapedata \ -lvx_util_math \ -lvx_util \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ diff --git a/internal/test_util/libcode/vx_tc_util/Makefile.in b/internal/test_util/libcode/vx_tc_util/Makefile.in index 9c1cef30d3..79048271fd 100644 --- a/internal/test_util/libcode/vx_tc_util/Makefile.in +++ b/internal/test_util/libcode/vx_tc_util/Makefile.in @@ -105,13 +105,16 @@ am_test_read_OBJECTS = test_read-test_read.$(OBJEXT) test_read_OBJECTS = $(am_test_read_OBJECTS) am__DEPENDENCIES_1 = test_read_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) test_read_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(test_read_LDFLAGS) $(LDFLAGS) -o $@ am_test_read_prob_OBJECTS = test_read_prob-test_read_prob.$(OBJEXT) test_read_prob_OBJECTS = $(am_test_read_prob_OBJECTS) test_read_prob_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) test_read_prob_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(test_read_prob_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -207,7 +210,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -221,11 +225,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -264,11 +274,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -337,14 +350,14 @@ test_read_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ @@ -373,14 +386,14 @@ test_read_prob_LDADD = -lvx_stat_out \ -lvx_shapedata \ -lvx_util_math \ -lvx_util \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ diff --git a/internal/test_util/tools/Makefile.in b/internal/test_util/tools/Makefile.in index 186c0537e1..3cd31f5db4 100644 --- a/internal/test_util/tools/Makefile.in +++ b/internal/test_util/tools/Makefile.in @@ -209,7 +209,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -223,11 +224,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -266,11 +273,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/tools/other/Makefile.in b/internal/test_util/tools/other/Makefile.in index 035eb82c4c..b56a3bceb4 100644 --- a/internal/test_util/tools/other/Makefile.in +++ b/internal/test_util/tools/other/Makefile.in @@ -209,7 +209,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -223,11 +224,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -266,11 +273,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/internal/test_util/tools/other/mode_time_domain/Makefile.am b/internal/test_util/tools/other/mode_time_domain/Makefile.am index 496e79f330..eb52695969 100644 --- a/internal/test_util/tools/other/mode_time_domain/Makefile.am +++ b/internal/test_util/tools/other/mode_time_domain/Makefile.am @@ -53,11 +53,13 @@ test_velocity_LDADD = \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ - -lvx_statistics \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ + -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ @@ -71,5 +73,6 @@ test_velocity_LDADD = \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz diff --git a/internal/test_util/tools/other/mode_time_domain/Makefile.in b/internal/test_util/tools/other/mode_time_domain/Makefile.in index c18289e08a..dd54109320 100644 --- a/internal/test_util/tools/other/mode_time_domain/Makefile.in +++ b/internal/test_util/tools/other/mode_time_domain/Makefile.in @@ -127,6 +127,8 @@ test_velocity_DEPENDENCIES = ${top_builddir}/src/tools/other/mode_time_domain/mt ${top_builddir}/src/tools/other/mode_time_domain/mtd-mtd_txt_output.o \ ${top_builddir}/src/tools/other/mode_time_domain/mtd-nc_grid.o \ ${top_builddir}/src/tools/other/mode_time_domain/mtd-nc_utils_local.o \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) test_velocity_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(test_velocity_LDFLAGS) $(LDFLAGS) -o $@ @@ -222,7 +224,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -236,11 +239,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -279,11 +288,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -382,11 +394,13 @@ test_velocity_LDADD = \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ - -lvx_statistics \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ + -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ @@ -400,6 +414,7 @@ test_velocity_LDADD = \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz all: all-am diff --git a/missing b/missing index 625aeb1189..1fe1611f18 100755 --- a/missing +++ b/missing @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify diff --git a/scripts/Makefile b/scripts/Makefile index 2081261e28..6660bff06f 100755 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -34,7 +34,7 @@ export TEST_OUT_DIR ## -TESTS := $(shell grep "define ENABLE_" ../config.h | grep -v "ENABLE_PYTHON" | cut -d" " -f2 | cut -b8- | tr A-Z a-z) +TESTS := $(shell grep "define ENABLE_" ../config.h | grep -v "ENABLE_PYTHON" | grep -v "ENABLE_UGRID" | cut -d" " -f2 | cut -b8- | tr A-Z a-z) ######################################################################## diff --git a/scripts/Rscripts/Makefile.in b/scripts/Rscripts/Makefile.in index 2acf818e34..cab0ea2158 100644 --- a/scripts/Rscripts/Makefile.in +++ b/scripts/Rscripts/Makefile.in @@ -239,7 +239,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -253,11 +254,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -296,11 +303,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/scripts/Rscripts/include/Makefile.in b/scripts/Rscripts/include/Makefile.in index 7f8f6b245c..64c2baebc0 100644 --- a/scripts/Rscripts/include/Makefile.in +++ b/scripts/Rscripts/include/Makefile.in @@ -179,7 +179,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -193,11 +194,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -236,11 +243,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/scripts/python/Makefile.in b/scripts/python/Makefile.in index 02691c4f09..cfe87e7680 100644 --- a/scripts/python/Makefile.in +++ b/scripts/python/Makefile.in @@ -211,7 +211,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -225,11 +226,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -268,11 +275,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/scripts/python/examples/Makefile.in b/scripts/python/examples/Makefile.in index 3abe6fdead..79ba1b0208 100644 --- a/scripts/python/examples/Makefile.in +++ b/scripts/python/examples/Makefile.in @@ -181,7 +181,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -195,11 +196,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -238,11 +245,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/scripts/python/met/Makefile.in b/scripts/python/met/Makefile.in index b8663fcdac..3e3ad10b4e 100644 --- a/scripts/python/met/Makefile.in +++ b/scripts/python/met/Makefile.in @@ -181,7 +181,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -195,11 +196,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -238,11 +245,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/scripts/python/pyembed/Makefile.in b/scripts/python/pyembed/Makefile.in index d5641b6a8e..58e7354d31 100644 --- a/scripts/python/pyembed/Makefile.in +++ b/scripts/python/pyembed/Makefile.in @@ -239,7 +239,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -253,11 +254,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -296,11 +303,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/scripts/python/tc_diag/Makefile.in b/scripts/python/tc_diag/Makefile.in index a092039006..ded1817e9e 100644 --- a/scripts/python/tc_diag/Makefile.in +++ b/scripts/python/tc_diag/Makefile.in @@ -181,7 +181,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -195,11 +196,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -238,11 +245,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/scripts/python/utility/Makefile.in b/scripts/python/utility/Makefile.in index a51225a41e..3bad822147 100644 --- a/scripts/python/utility/Makefile.in +++ b/scripts/python/utility/Makefile.in @@ -181,7 +181,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -195,11 +196,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -238,11 +245,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/Makefile.in b/src/Makefile.in index 25afc196c7..6579df01d3 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -209,7 +209,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -223,11 +224,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -266,11 +273,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/basic/Makefile.in b/src/basic/Makefile.in index 77eeeedf8f..a708dac014 100644 --- a/src/basic/Makefile.in +++ b/src/basic/Makefile.in @@ -211,7 +211,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -225,11 +226,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -268,11 +275,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/basic/enum_to_string/Makefile.in b/src/basic/enum_to_string/Makefile.in index d0e76d5e05..90a93e9f77 100644 --- a/src/basic/enum_to_string/Makefile.in +++ b/src/basic/enum_to_string/Makefile.in @@ -228,7 +228,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -242,11 +243,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -285,11 +292,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/basic/vx_cal/Makefile.in b/src/basic/vx_cal/Makefile.in index f23327226c..acd2222de5 100644 --- a/src/basic/vx_cal/Makefile.in +++ b/src/basic/vx_cal/Makefile.in @@ -235,7 +235,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -249,11 +250,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -292,11 +299,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/basic/vx_config/Makefile.in b/src/basic/vx_config/Makefile.in index 3d6af85624..b031c6087d 100644 --- a/src/basic/vx_config/Makefile.in +++ b/src/basic/vx_config/Makefile.in @@ -283,7 +283,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -297,11 +298,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -340,11 +347,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/basic/vx_config/config_constants.h b/src/basic/vx_config/config_constants.h index 8937a43d82..045c696f02 100644 --- a/src/basic/vx_config/config_constants.h +++ b/src/basic/vx_config/config_constants.h @@ -680,6 +680,11 @@ static const char conf_key_missing_thresh[] = "missing_thresh"; static const char conf_key_control_id[] = "control_id"; static const char conf_key_ens_member_ids[] = "ens_member_ids"; static const char conf_key_seeps_p1_thresh[] = "seeps_p1_thresh"; +static const char conf_key_ugrid_coordinates_file[] = "ugrid_coordinates_file"; +static const char conf_key_ugrid_dataset[] = "ugrid_dataset"; +static const char conf_key_ugrid_map_config[] = "ugrid_map_config"; +static const char conf_key_ugrid_max_distance_km[] = "ugrid_max_distance_km"; +static const char conf_key_ugrid_metadata_map[] = "ugrid_metadata_map"; // // Entries to override file metadata @@ -1232,6 +1237,7 @@ static const char conf_val_grib2 [] = "GRIB2"; static const char conf_val_netcdf_met [] = "NETCDF_MET"; static const char conf_val_netcdf_pint [] = "NETCDF_PINT"; static const char conf_val_netcdf_nccf [] = "NETCDF_NCCF"; +static const char conf_val_netcdf_ugrid [] = "NETCDF_UGRID"; static const char conf_val_python_numpy [] = "PYTHON_NUMPY"; static const char conf_val_python_xarray [] = "PYTHON_XARRAY"; diff --git a/src/basic/vx_config/config_file.cc b/src/basic/vx_config/config_file.cc index 83edcebb3f..daee7b2cd6 100644 --- a/src/basic/vx_config/config_file.cc +++ b/src/basic/vx_config/config_file.cc @@ -352,7 +352,7 @@ met_open(configfilein, filename); if ( ! configfilein ) { mlog << Error << "\nMetConfig::read(const char *) -> " - << "unable to open input file \"" << filename << "\"\n\n"; + << "unable to open input file \"" << filename << "\". Please specify \"file_type = FileType_;\" at the configration file\n\n"; exit ( 1 ); diff --git a/src/basic/vx_config/config_util.cc b/src/basic/vx_config/config_util.cc index 0fae12e991..78bff4dadc 100644 --- a/src/basic/vx_config/config_util.cc +++ b/src/basic/vx_config/config_util.cc @@ -293,7 +293,7 @@ ConcatString parse_conf_string(Dictionary *dict, const char *conf_key, const char *method_name = "parse_conf_string() -> "; if(!dict) { - mlog << Error << "\n" << method_name << "empty dictionary!\n\n"; + mlog << Error << "\n" << method_name << "empty dictionary! (" << conf_key <<")\n\n"; exit(1); } @@ -356,6 +356,7 @@ GrdFileType parse_conf_file_type(Dictionary *dict) { else if(v == conf_const.lookup_int(conf_val_netcdf_met)) t = FileType_NcMet; else if(v == conf_const.lookup_int(conf_val_netcdf_pint)) t = FileType_NcPinterp; else if(v == conf_const.lookup_int(conf_val_netcdf_nccf)) t = FileType_NcCF; + else if(v == conf_const.lookup_int(conf_val_netcdf_ugrid)) t = FileType_UGrid; else if(v == conf_const.lookup_int(conf_val_python_numpy)) t = FileType_Python_Numpy; else if(v == conf_const.lookup_int(conf_val_python_xarray)) t = FileType_Python_Xarray; else { @@ -1009,20 +1010,19 @@ TimeSummaryInfo parse_conf_time_summary(Dictionary *dict) { } /////////////////////////////////////////////////////////////////////////////// +// Conf: map_name: message_type_map, obs_var_map, etc void parse_add_conf_key_value_map( Dictionary *dict, const char *conf_key_map_name, map *m) { - Dictionary *map_dict = (Dictionary *) nullptr; - ConcatString key, val; if(!dict) { - mlog << Error << "\nparse_conf_key_value_type_map() -> " + mlog << Error << "\nparse_add_conf_key_value_map() -> " << "empty dictionary!\n\n"; exit(1); } - // Conf: map_name: message_type_map, obs)var_map, etc - map_dict = dict->lookup_array(conf_key_map_name); + ConcatString key, val; + Dictionary *map_dict = dict->lookup_array(conf_key_map_name); // Loop through the array entries for(int i=0; in_entries(); i++) { @@ -1043,6 +1043,32 @@ void parse_add_conf_key_value_map( return; } +/////////////////////////////////////////////////////////////////////////////// +// Conf: map_name: ugrid_metadata_maps + +void parse_add_conf_key_values_map( + Dictionary *dict, const char *conf_key_map_name, + map *sa_map, const char *caller) { + const char *method_name = (nullptr != caller) ? caller : "parse_conf_key_values_map() -> "; + + if(!dict) { + mlog << Error << "\n" << method_name + << "empty dictionary!\n\n"; + exit(1); + } + + StringArray sa; + map cs_map = parse_conf_key_value_map(dict, conf_key_map_name, method_name); + + // Loop through the array entries and convert input comma-separated strings to StringArray + for(map::const_iterator it=cs_map.begin(); it!= cs_map.end(); it++) { + sa.parse_css(it->second); + (*sa_map)[it->first] = sa; + } + + return; +} + /////////////////////////////////////////////////////////////////////////////// map parse_conf_key_value_map( @@ -2259,6 +2285,40 @@ WaveletType parse_conf_wavelet_type(Dictionary *dict) { return t; } + +/////////////////////////////////////////////////////////////////////////////// + + +ConcatString parse_conf_ugrid_coordinates_file(Dictionary *dict) { + return dict ? dict->lookup_string(conf_key_ugrid_coordinates_file, false) : ""; +} + +/////////////////////////////////////////////////////////////////////////////// + +ConcatString parse_conf_ugrid_dataset(Dictionary *dict) { + return dict ? dict->lookup_string(conf_key_ugrid_dataset, false) : ""; +} + +/////////////////////////////////////////////////////////////////////////////// + +double parse_conf_ugrid_max_distance_km(Dictionary *dict) { + return dict ? dict->lookup_double(conf_key_ugrid_max_distance_km, false) : bad_data_double; +} + +/////////////////////////////////////////////////////////////////////////////// + +ConcatString parse_conf_ugrid_map_config(Dictionary *dict) { + return dict ? dict->lookup_string(conf_key_ugrid_map_config, false) : ""; +} + +/////////////////////////////////////////////////////////////////////////////// + +void parse_add_conf_ugrid_metadata_map(Dictionary *dict, map *m) { + parse_add_conf_key_values_map(dict, conf_key_ugrid_metadata_map, m, + "parse_add_conf_ugrid_metadata_map"); +} + + /////////////////////////////////////////////////////////////////////////////// @@ -3299,3 +3359,16 @@ void python_compile_error(const char *caller) { } /////////////////////////////////////////////////////////////////////////////// + +void ugrid_compile_error(const char *caller) { + + const char *method_name = (nullptr != caller) ? caller : "ugrid_compile_error() -> "; + + mlog << Error << "\n" << method_name + << "Support for the unstructured grid has not been compiled!\n" + << "To use the filetype NETCDF_UGRID (unstructured grid), recompile with the --enable-ugrid option.\n\n"; + + exit(1); +} + +/////////////////////////////////////////////////////////////////////////////// diff --git a/src/basic/vx_config/config_util.h b/src/basic/vx_config/config_util.h index e31f4eb81e..47bee9e65e 100644 --- a/src/basic/vx_config/config_util.h +++ b/src/basic/vx_config/config_util.h @@ -55,6 +55,9 @@ extern std::map parse_conf_key_value_map( Dictionary *dict, const char *conf_key_map_name, const char *caller=nullptr); extern void parse_add_conf_key_value_map( Dictionary *dict, const char *conf_key_map_name, std::map *m); +extern void parse_add_conf_key_values_map( + Dictionary *dict, const char *conf_key_map_name, + std::map *m, const char *caller=nullptr); extern std::map parse_conf_message_type_map(Dictionary *dict); extern std::map @@ -85,6 +88,11 @@ extern void parse_conf_range_int(Dictionary *dict, int &beg, int &end extern void parse_conf_range_double(Dictionary *dict, double &beg, double &end); extern StringArray parse_conf_ens_member_ids(Dictionary *dict); extern NormalizeType parse_conf_normalize(Dictionary *dict); +extern ConcatString parse_conf_ugrid_coordinates_file(Dictionary *dict); +extern ConcatString parse_conf_ugrid_dataset(Dictionary *dict); +extern ConcatString parse_conf_ugrid_map_config(Dictionary *dict); +extern double parse_conf_ugrid_max_distance_km(Dictionary *dict); +extern void parse_add_conf_ugrid_metadata_map(Dictionary *dict, std::map *m); extern void check_mask_names(const StringArray &); @@ -140,6 +148,7 @@ extern ConcatString wavelettype_to_string(WaveletType); extern int parse_conf_percentile(Dictionary *dict); extern void python_compile_error(const char *caller=nullptr); +extern void ugrid_compile_error(const char *caller=nullptr); //////////////////////////////////////////////////////////////////////// diff --git a/src/basic/vx_config/data_file_type.h b/src/basic/vx_config/data_file_type.h index 9d43e6faca..f9f6fa7c24 100644 --- a/src/basic/vx_config/data_file_type.h +++ b/src/basic/vx_config/data_file_type.h @@ -36,6 +36,7 @@ enum GrdFileType FileType_Python_Numpy, // python script using numpy array and attributes dictionary FileType_Python_Xarray, // python script using xarray dataplane + FileType_UGrid, // Unstructured grid }; diff --git a/src/basic/vx_config/grdfiletype_to_string.cc b/src/basic/vx_config/grdfiletype_to_string.cc index 8c192183a1..0b802b97ab 100644 --- a/src/basic/vx_config/grdfiletype_to_string.cc +++ b/src/basic/vx_config/grdfiletype_to_string.cc @@ -24,12 +24,12 @@ //////////////////////////////////////////////////////////////////////// -#include +using namespace std; -#include "grdfiletype_to_string.h" +#include -using namespace std; +#include "grdfiletype_to_string.h" //////////////////////////////////////////////////////////////////////// @@ -56,6 +56,7 @@ switch ( t ) { case FileType_Python_Numpy: s = "FileType_Python_Numpy"; break; case FileType_Python_Xarray: s = "FileType_Python_Xarray"; break; + case FileType_UGrid: s = "FileType_UGrid"; break; default: s = "(bad value)"; @@ -64,7 +65,7 @@ switch ( t ) { } // switch -return ConcatString (s); +return ( ConcatString (s) ); } @@ -89,11 +90,12 @@ else if ( strcmp(text, "FileType_Bufr" ) == 0 ) { t = FileType_Bufr; else if ( strcmp(text, "FileType_Python_Numpy" ) == 0 ) { t = FileType_Python_Numpy; return ( true ); } else if ( strcmp(text, "FileType_Python_Xarray" ) == 0 ) { t = FileType_Python_Xarray; return ( true ); } +else if ( strcmp(text, "FileType_UGrid" ) == 0 ) { t = FileType_UGrid; return ( true ); } // // nope // -return false; +return ( false ); } diff --git a/src/basic/vx_log/Makefile.in b/src/basic/vx_log/Makefile.in index 13b0b73efa..e33739457f 100644 --- a/src/basic/vx_log/Makefile.in +++ b/src/basic/vx_log/Makefile.in @@ -214,7 +214,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -228,11 +229,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -271,11 +278,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/basic/vx_math/Makefile.in b/src/basic/vx_math/Makefile.in index b185c4c3db..c49c7d80ef 100644 --- a/src/basic/vx_math/Makefile.in +++ b/src/basic/vx_math/Makefile.in @@ -228,7 +228,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -242,11 +243,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -285,11 +292,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/basic/vx_util/Makefile.in b/src/basic/vx_util/Makefile.in index 43939400f7..a887c3c5cb 100644 --- a/src/basic/vx_util/Makefile.in +++ b/src/basic/vx_util/Makefile.in @@ -333,7 +333,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -347,11 +348,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -390,11 +397,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/basic/vx_util_math/Makefile.in b/src/basic/vx_util_math/Makefile.in index bc7f62bd82..072c3cbdd8 100644 --- a/src/basic/vx_util_math/Makefile.in +++ b/src/basic/vx_util_math/Makefile.in @@ -213,7 +213,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -227,11 +228,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -270,11 +277,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/Makefile.am b/src/libcode/Makefile.am index b22ff5ea90..e20f67551a 100644 --- a/src/libcode/Makefile.am +++ b/src/libcode/Makefile.am @@ -30,11 +30,14 @@ if ENABLE_PYTHON SUBDIRS += vx_pointdata_python endif - if ENABLE_GRIB2 SUBDIRS += vx_data2d_grib2 endif +if ENABLE_UGRID + SUBDIRS += vx_data2d_ugrid +endif + SUBDIRS += vx_data2d_factory \ vx_gsl_prob \ vx_gnomon \ diff --git a/src/libcode/Makefile.in b/src/libcode/Makefile.in index 7e35d744ef..c1858ed1c2 100644 --- a/src/libcode/Makefile.in +++ b/src/libcode/Makefile.in @@ -90,6 +90,7 @@ host_triplet = @host@ @ENABLE_PYTHON_TRUE@am__append_1 = vx_python3_utils vx_data2d_python \ @ENABLE_PYTHON_TRUE@ vx_pointdata_python @ENABLE_GRIB2_TRUE@am__append_2 = vx_data2d_grib2 +@ENABLE_UGRID_TRUE@am__append_3 = vx_data2d_ugrid subdir = src/libcode ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac @@ -157,9 +158,9 @@ CTAGS = ctags DIST_SUBDIRS = vx_grid vx_data2d vx_nc_util vx_data2d_grib \ vx_data2d_nc_met vx_data2d_nccf vx_data2d_nc_pinterp \ vx_python3_utils vx_data2d_python vx_pointdata_python \ - vx_data2d_grib2 vx_data2d_factory vx_gsl_prob vx_gnomon \ - vx_geodesy vx_gis vx_nav vx_pb_util vx_afm vx_color vx_pxm \ - vx_render vx_ps vx_plot_util vx_shapedata vx_statistics \ + vx_data2d_grib2 vx_data2d_ugrid vx_data2d_factory vx_gsl_prob \ + vx_gnomon vx_geodesy vx_gis vx_nav vx_pb_util vx_afm vx_color \ + vx_pxm vx_render vx_ps vx_plot_util vx_shapedata vx_statistics \ vx_stat_out vx_analysis_util vx_tc_util vx_summary \ vx_time_series vx_physics vx_series_data vx_regrid vx_nc_obs \ vx_solar vx_bool_calc vx_seeps @@ -220,7 +221,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -234,11 +236,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -277,11 +285,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -340,9 +351,9 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = vx_grid vx_data2d vx_nc_util vx_data2d_grib vx_data2d_nc_met \ vx_data2d_nccf vx_data2d_nc_pinterp $(am__append_1) \ - $(am__append_2) vx_data2d_factory vx_gsl_prob vx_gnomon \ - vx_geodesy vx_gis vx_nav vx_pb_util vx_afm vx_color vx_pxm \ - vx_render vx_ps vx_plot_util vx_shapedata vx_statistics \ + $(am__append_2) $(am__append_3) vx_data2d_factory vx_gsl_prob \ + vx_gnomon vx_geodesy vx_gis vx_nav vx_pb_util vx_afm vx_color \ + vx_pxm vx_render vx_ps vx_plot_util vx_shapedata vx_statistics \ vx_stat_out vx_analysis_util vx_tc_util vx_summary \ vx_time_series vx_physics vx_series_data vx_regrid vx_nc_obs \ vx_solar vx_bool_calc vx_seeps diff --git a/src/libcode/vx_afm/Makefile.in b/src/libcode/vx_afm/Makefile.in index a42770282c..8fff595ef2 100644 --- a/src/libcode/vx_afm/Makefile.in +++ b/src/libcode/vx_afm/Makefile.in @@ -222,7 +222,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -236,11 +237,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -279,11 +286,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_analysis_util/Makefile.in b/src/libcode/vx_analysis_util/Makefile.in index 22227b0c6a..88649cb6ce 100644 --- a/src/libcode/vx_analysis_util/Makefile.in +++ b/src/libcode/vx_analysis_util/Makefile.in @@ -229,7 +229,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -243,11 +244,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -286,11 +293,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_bool_calc/Makefile.in b/src/libcode/vx_bool_calc/Makefile.in index b541ca6b87..d272098a05 100644 --- a/src/libcode/vx_bool_calc/Makefile.in +++ b/src/libcode/vx_bool_calc/Makefile.in @@ -224,7 +224,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -238,11 +239,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -281,11 +288,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_color/Makefile.in b/src/libcode/vx_color/Makefile.in index 7558c1599e..1ff8903806 100644 --- a/src/libcode/vx_color/Makefile.in +++ b/src/libcode/vx_color/Makefile.in @@ -241,7 +241,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -255,11 +256,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -298,11 +305,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_data2d/Makefile.in b/src/libcode/vx_data2d/Makefile.in index f1f052dea3..af4fe623a3 100644 --- a/src/libcode/vx_data2d/Makefile.in +++ b/src/libcode/vx_data2d/Makefile.in @@ -224,7 +224,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -238,11 +239,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -281,11 +288,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_data2d_factory/Makefile.in b/src/libcode/vx_data2d_factory/Makefile.in index f0974875f2..f49d5106dd 100644 --- a/src/libcode/vx_data2d_factory/Makefile.in +++ b/src/libcode/vx_data2d_factory/Makefile.in @@ -227,7 +227,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -241,11 +242,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -284,11 +291,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_data2d_factory/data2d_factory.cc b/src/libcode/vx_data2d_factory/data2d_factory.cc index 0c292521b5..729b43417e 100644 --- a/src/libcode/vx_data2d_factory/data2d_factory.cc +++ b/src/libcode/vx_data2d_factory/data2d_factory.cc @@ -23,6 +23,9 @@ using namespace std; #include "data2d_nc_met.h" #include "data2d_nc_pinterp.h" #include "data2d_nccf.h" +#ifdef WITH_UGRID +#include "data2d_ugrid.h" +#endif #ifdef WITH_PYTHON @@ -45,10 +48,11 @@ Met2dDataFile * Met2dDataFileFactory::new_met_2d_data_file(GrdFileType type) { - Met2dDataFile *mtddf = (Met2dDataFile *) 0; + Met2dDataFile *mtddf = (Met2dDataFile *) nullptr; + const char *method_name ="Met2dDataFileFactory::new_met_2d_data_file() -> "; #ifdef WITH_PYTHON -MetPythonDataFile * p = 0; +MetPythonDataFile * p = nullptr; #endif // @@ -66,7 +70,7 @@ MetPythonDataFile * p = 0; #ifdef WITH_GRIB2 mtddf = new MetGrib2DataFile; #else - mlog << Error << "\nMet2dDataFileFactory::new_met_2d_data_file() -> " + mlog << Error << "\n" << method_name << "Support for GRIB2 has not been compiled!\n" << "To read GRIB2 files, recompile with the --enable-grib2 option.\n\n"; exit(1); @@ -104,31 +108,40 @@ MetPythonDataFile * p = 0; case FileType_Python_Numpy: case FileType_Python_Xarray: - python_compile_error("Met2dDataFileFactory::new_met_2d_data_file() -> "); + python_compile_error(method_name); #endif case FileType_HdfEos: - mlog << Error << "\nMet2dDataFileFactory::new_met_2d_data_file() -> " + mlog << Error << "\n" << method_name << "Support for GrdFileType = \"" << grdfiletype_to_string(type) << "\" not yet implemented!\n\n"; exit(1); case FileType_Bufr: - mlog << Error << "\nMet2dDataFileFactory::new_met_2d_data_file() -> " + mlog << Error << "\n" << method_name << "cannot use this factory to read files of type \"" << grdfiletype_to_string(type) << "\"\n\n"; exit(1); + case FileType_UGrid: +#ifdef WITH_UGRID + // For FileType_None, silently return a nullptr pointer + mtddf = new MetUGridDataFile; +#else + ugrid_compile_error(method_name); +#endif + break; + case FileType_None: // For FileType_None, silently return a nullptr pointer - mtddf = (Met2dDataFile *) 0; + mtddf = (Met2dDataFile *) nullptr; break; default: - mlog << Error << "\nMet2dDataFileFactory::new_met_2d_data_file() -> " + mlog << Error << "\n" << method_name << "unsupported gridded data file type \"" << grdfiletype_to_string(type) << "\"\n\n"; exit(1); diff --git a/src/libcode/vx_data2d_factory/data2d_factory_utils.cc b/src/libcode/vx_data2d_factory/data2d_factory_utils.cc index db5672046f..5c6d7e991e 100644 --- a/src/libcode/vx_data2d_factory/data2d_factory_utils.cc +++ b/src/libcode/vx_data2d_factory/data2d_factory_utils.cc @@ -101,6 +101,7 @@ else if ( is_ncpinterp_file (filename) ) data_type = FileType_NcPinterp; else if ( is_nccf_file (filename) ) data_type = FileType_NcCF; else if ( is_ncmet_file (filename) ) data_type = FileType_NcMet; else if ( is_bufr_file (filename) ) data_type = FileType_Bufr; +else if ( is_ugrid_file (filename) ) data_type = FileType_UGrid; else data_type = FileType_None; // @@ -118,8 +119,8 @@ if ( suffix_type != FileType_None && suffix_type != data_type ) { } -if ( suffix_type != FileType_None ) return ( suffix_type ); -else return ( data_type ); +if ( suffix_type != FileType_None ) return suffix_type; +else return data_type ; } diff --git a/src/libcode/vx_data2d_factory/is_netcdf_file.cc b/src/libcode/vx_data2d_factory/is_netcdf_file.cc index b96c720079..f6f0856009 100644 --- a/src/libcode/vx_data2d_factory/is_netcdf_file.cc +++ b/src/libcode/vx_data2d_factory/is_netcdf_file.cc @@ -43,6 +43,8 @@ static const int netcdf_magic_len = m_strlen(netcdf_magic); static const string nccf_att_value = "CF-"; static const string nccf_att_value2 = "CF "; static const string nccf_att_value3 = "COARDS"; +static const string mpas_att_value = "MPAS"; +static const string ugrid_att_value = "UGRID"; static const string ncmet_att_version = "MET_version"; static const string ncmet_att_projection = "Projection"; @@ -50,34 +52,36 @@ static const string ncmet_att_projection = "Projection"; static const string ncpinterp_att_name = "TITLE"; static const char ncpinterp_att_value [] = "ON PRES LEVELS"; +static const string mesh_spec_att_name = "mesh_spec"; + //////////////////////////////////////////////////////////////////////// bool is_netcdf_file(const char * filename) { - if ( !filename || !(*filename) ) return ( false ); + if ( !filename || !(*filename) ) return false; int fd = -1; int n_read; char buf[netcdf_magic_len]; - if ( (fd = open(filename, O_RDONLY)) < 0 ) return ( false ); + if ( (fd = open(filename, O_RDONLY)) < 0 ) return false; n_read = read(fd, buf, netcdf_magic_len); close(fd); - if ( n_read != netcdf_magic_len ) return ( false ); + if ( n_read != netcdf_magic_len ) return false; if ( strncmp(buf, netcdf_magic, netcdf_magic_len) == 0 - || strncmp(buf, hdf_magic, netcdf_magic_len) == 0) return ( true ); + || strncmp(buf, hdf_magic, netcdf_magic_len) == 0) return true; // // done // - return ( false ); + return false; } @@ -110,7 +114,7 @@ bool is_nccf_file(const char * filename) catch(...) { } - return ( status ); + return status; } @@ -136,7 +140,7 @@ bool is_ncmet_file(const char * filename) }catch(...) { } - return ( status ); + return status; } @@ -164,7 +168,40 @@ bool is_ncpinterp_file(const char * filename) }catch(...) { } - return ( status ); + return status; + +} + + +//////////////////////////////////////////////////////////////////////// + + +bool is_ugrid_file(const char * filename) +{ + bool status = false; + try { + ConcatString att_val; + NcFile *nc_file = open_ncfile(filename); + + if (!IS_INVALID_NC_P(nc_file)) { + // Get the global attribute + // Check Conventions attrribute (Conventions= "UGRID" or "MPAS") + if (get_cf_conventions(nc_file, att_val)) { + status = (0 == att_val.compare(0, ugrid_att_value.length(), + ugrid_att_value) + || 0 == att_val.compare(0, mpas_att_value.length(), + mpas_att_value)); + } + if (!status) { + status = get_global_att(nc_file, mesh_spec_att_name, att_val); // for MPAS + } + } + if (nullptr != nc_file) delete nc_file; + + }catch(...) { + } + + return status; } diff --git a/src/libcode/vx_data2d_factory/is_netcdf_file.h b/src/libcode/vx_data2d_factory/is_netcdf_file.h index 4c916fc3e6..170a5d4c0f 100644 --- a/src/libcode/vx_data2d_factory/is_netcdf_file.h +++ b/src/libcode/vx_data2d_factory/is_netcdf_file.h @@ -29,6 +29,7 @@ extern bool is_ncmet_file(const char * filename); extern bool is_ncpinterp_file(const char * filename); +extern bool is_ugrid_file(const char * filename); //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_factory/var_info_factory.cc b/src/libcode/vx_data2d_factory/var_info_factory.cc index d82a74a8ad..3ac92b1dd1 100644 --- a/src/libcode/vx_data2d_factory/var_info_factory.cc +++ b/src/libcode/vx_data2d_factory/var_info_factory.cc @@ -29,6 +29,7 @@ using namespace std; #include "var_info_nccf.h" #include "var_info_nc_met.h" #include "var_info_nc_pinterp.h" +#include "var_info_ugrid.h" #ifdef WITH_PYTHON #include "var_info_python.h" @@ -51,10 +52,11 @@ VarInfo * VarInfoFactory::new_var_info(GrdFileType type) { - VarInfo *vi = (VarInfo *) 0; + VarInfo *vi = (VarInfo *) nullptr; + const char *method_name = "VarInfoFactory::new_var_info() -> "; #ifdef WITH_PYTHON - VarInfoPython * p = 0; + VarInfoPython * p = nullptr; #endif // @@ -73,7 +75,7 @@ VarInfo * VarInfoFactory::new_var_info(GrdFileType type) vi = new VarInfoGrib2; break; #else - mlog << Error << "\nVarInfoFactory::new_var_info() -> " + mlog << Error << "\n" << method_name << "Support for GRIB2 has not been compiled!\n" << "To read GRIB2 files, recompile with the --enable-grib2 option.\n\n"; exit(1); @@ -93,31 +95,38 @@ VarInfo * VarInfoFactory::new_var_info(GrdFileType type) p = new VarInfoPython; p->set_file_type(type); vi = p; - p = 0; + p = nullptr; break; #else - python_compile_error("VarInfoFactory::new_var_info() -> "); + python_compile_error(method_name); #endif case FileType_NcCF: vi = new VarInfoNcCF; break; + case FileType_UGrid: +#ifdef WITH_UGRID + vi = new VarInfoUGrid; + break; +#else + ugrid_compile_error(method_name); +#endif + case FileType_HdfEos: - mlog << Error << "\nVarInfoFactory::new_var_info() -> " + mlog << Error << "\n" << method_name << "Support for GrdFileType = " << grdfiletype_to_string(type) << " not yet implemented!\n\n"; exit(1); default: - mlog << Error << "\nVarInfoFactory::new_var_info() -> " + mlog << Error << "\n" << method_name << "unsupported gridded data file type \"" << grdfiletype_to_string(type) << "\"\n\n"; exit(1); } // end switch - mlog << Debug(4) - << "VarInfoFactory::new_var_info() -> " + mlog << Debug(4) << method_name << "created new VarInfo object of type \"" << grdfiletype_to_string(type) << "\".\n"; diff --git a/src/libcode/vx_data2d_grib/Makefile.in b/src/libcode/vx_data2d_grib/Makefile.in index 4e2468fb76..86eb4b44a2 100644 --- a/src/libcode/vx_data2d_grib/Makefile.in +++ b/src/libcode/vx_data2d_grib/Makefile.in @@ -224,7 +224,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -238,11 +239,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -281,11 +288,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_data2d_grib2/Makefile.in b/src/libcode/vx_data2d_grib2/Makefile.in index f3fbbcc006..40965fc98f 100644 --- a/src/libcode/vx_data2d_grib2/Makefile.in +++ b/src/libcode/vx_data2d_grib2/Makefile.in @@ -217,7 +217,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -231,11 +232,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -274,11 +281,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_data2d_nc_met/Makefile.in b/src/libcode/vx_data2d_nc_met/Makefile.in index 18878c25f7..ab84ef720f 100644 --- a/src/libcode/vx_data2d_nc_met/Makefile.in +++ b/src/libcode/vx_data2d_nc_met/Makefile.in @@ -221,7 +221,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -235,11 +236,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -278,11 +285,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_data2d_nc_pinterp/Makefile.in b/src/libcode/vx_data2d_nc_pinterp/Makefile.in index 989068ea4d..0aa8adbb37 100644 --- a/src/libcode/vx_data2d_nc_pinterp/Makefile.in +++ b/src/libcode/vx_data2d_nc_pinterp/Makefile.in @@ -222,7 +222,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -236,11 +237,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -279,11 +286,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_data2d_nccf/Makefile.in b/src/libcode/vx_data2d_nccf/Makefile.in index 9f8ca6f73e..cb619c6f59 100644 --- a/src/libcode/vx_data2d_nccf/Makefile.in +++ b/src/libcode/vx_data2d_nccf/Makefile.in @@ -218,7 +218,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -232,11 +233,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -275,11 +282,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_data2d_nccf/data2d_nccf.cc b/src/libcode/vx_data2d_nccf/data2d_nccf.cc index f8b251c6d1..d25a1062c7 100644 --- a/src/libcode/vx_data2d_nccf/data2d_nccf.cc +++ b/src/libcode/vx_data2d_nccf/data2d_nccf.cc @@ -10,20 +10,20 @@ //////////////////////////////////////////////////////////////////////// -using namespace std; - #include #include #include #include #include -using namespace netCDF; #include "data2d_nccf.h" #include "vx_math.h" #include "vx_log.h" +using namespace std; +using namespace netCDF; + //////////////////////////////////////////////////////////////////////// static const int error_code_no_error = 0; @@ -352,7 +352,6 @@ int MetNcCFDataFile::data_plane_array(VarInfo &vinfo, LongArray time_offsets = collect_time_offsets(vinfo); if (0 < time_offsets.n_elements()) { LevelInfo level = vinfo.level(); - VarInfoNcCF *vinfo_nc = (VarInfoNcCF *)&vinfo; long time_lower = bad_data_int; long time_upper = bad_data_int; if (level.type() == LevelType_Time) { diff --git a/src/libcode/vx_data2d_nccf/data2d_nccf.h b/src/libcode/vx_data2d_nccf/data2d_nccf.h index e6ad78b1eb..f85ae04259 100644 --- a/src/libcode/vx_data2d_nccf/data2d_nccf.h +++ b/src/libcode/vx_data2d_nccf/data2d_nccf.h @@ -34,7 +34,7 @@ class MetNcCFDataFile : public Met2dDataFile { void nccf_init_from_scratch(); NcVarInfo *find_first_data_var(); long convert_time_to_offset(long time_value); - long convert_value_to_offset(double z_value, string z_dim_name); + long convert_value_to_offset(double z_value, std::string z_dim_name); LongArray collect_time_offsets(VarInfo &vinfo); MetNcCFDataFile(const MetNcCFDataFile &); @@ -108,7 +108,7 @@ class MetNcCFDataFile : public Met2dDataFile { //////////////////////////////////////////////////////////////////////// -inline GrdFileType MetNcCFDataFile::file_type () const { return ( FileType_NcCF ); } +inline GrdFileType MetNcCFDataFile::file_type () const { return FileType_NcCF; } //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_nccf/nccf_file.h b/src/libcode/vx_data2d_nccf/nccf_file.h index c43f4b535b..fde3b48e28 100644 --- a/src/libcode/vx_data2d_nccf/nccf_file.h +++ b/src/libcode/vx_data2d_nccf/nccf_file.h @@ -150,10 +150,10 @@ class NcCfFile { // Determine the file times from the filename - unixtime get_valid_time_from_file_path(const string &filepath) const; - unixtime get_init_time_from_file_path(const string &filepath) const; - unixtime get_time_from_TRMM_3B42_3hourly_filename(const string &filename) const; - unixtime get_time_from_TRMM_3B42_daily_filename(const string &filename) const; + unixtime get_valid_time_from_file_path(const std::string &filepath) const; + unixtime get_init_time_from_file_path(const std::string &filepath) const; + unixtime get_time_from_TRMM_3B42_3hourly_filename(const std::string &filename) const; + unixtime get_time_from_TRMM_3B42_daily_filename(const std::string &filename) const; // Read the grid information from the netCDF file and fill in the diff --git a/src/libcode/vx_data2d_nccf/var_info_nccf.cc b/src/libcode/vx_data2d_nccf/var_info_nccf.cc index 7050fd3018..a77ece6881 100644 --- a/src/libcode/vx_data2d_nccf/var_info_nccf.cc +++ b/src/libcode/vx_data2d_nccf/var_info_nccf.cc @@ -287,7 +287,7 @@ void VarInfoNcCF::set_magic(const ConcatString &nstr, const ConcatString &lstr) level_value = unix_time; as_offset = false; } - else if (is_number(ptr2)) { + else if (is_number(ptr2)) { if (as_offset) level = atoi(ptr2); else { level = vx_data2d_dim_by_value; diff --git a/src/libcode/vx_data2d_python/Makefile.in b/src/libcode/vx_data2d_python/Makefile.in index bfc7060cd1..d44514ab1c 100644 --- a/src/libcode/vx_data2d_python/Makefile.in +++ b/src/libcode/vx_data2d_python/Makefile.in @@ -225,7 +225,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -239,11 +240,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -282,11 +289,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_data2d_ugrid/Makefile.am b/src/libcode/vx_data2d_ugrid/Makefile.am new file mode 100644 index 0000000000..98c2814a20 --- /dev/null +++ b/src/libcode/vx_data2d_ugrid/Makefile.am @@ -0,0 +1,20 @@ +## @start 1 +## Makefile.am -- Process this file with automake to produce Makefile.in +## @end 1 + +MAINTAINERCLEANFILES = Makefile.in + +# Include the project definitions + +include ${top_srcdir}/Make-include + +# The library + +noinst_LIBRARIES = libvx_data2d_ugrid.a +libvx_data2d_ugrid_a_SOURCES = \ + ugrid_file.cc ugrid_file.h \ + var_info_ugrid.cc var_info_ugrid.h \ + data2d_ugrid.cc data2d_ugrid.h \ + vx_data2d_ugrid.h +libvx_data2d_ugrid_a_CPPFLAGS = ${MET_CPPFLAGS} + diff --git a/src/libcode/vx_data2d_ugrid/Makefile.in b/src/libcode/vx_data2d_ugrid/Makefile.in new file mode 100644 index 0000000000..855b5c10a3 --- /dev/null +++ b/src/libcode/vx_data2d_ugrid/Makefile.in @@ -0,0 +1,692 @@ +# Makefile.in generated by automake 1.16.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2018 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src/libcode/vx_data2d_ugrid +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LIBRARIES = $(noinst_LIBRARIES) +AR = ar +ARFLAGS = cru +AM_V_AR = $(am__v_AR_@AM_V@) +am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) +am__v_AR_0 = @echo " AR " $@; +am__v_AR_1 = +libvx_data2d_ugrid_a_AR = $(AR) $(ARFLAGS) +libvx_data2d_ugrid_a_LIBADD = +am_libvx_data2d_ugrid_a_OBJECTS = \ + libvx_data2d_ugrid_a-ugrid_file.$(OBJEXT) \ + libvx_data2d_ugrid_a-var_info_ugrid.$(OBJEXT) \ + libvx_data2d_ugrid_a-data2d_ugrid.$(OBJEXT) +libvx_data2d_ugrid_a_OBJECTS = $(am_libvx_data2d_ugrid_a_OBJECTS) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = \ + ./$(DEPDIR)/libvx_data2d_ugrid_a-data2d_ugrid.Po \ + ./$(DEPDIR)/libvx_data2d_ugrid_a-ugrid_file.Po \ + ./$(DEPDIR)/libvx_data2d_ugrid_a-var_info_ugrid.Po +am__mv = mv -f +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_@AM_V@) +am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) +am__v_CXX_0 = @echo " CXX " $@; +am__v_CXX_1 = +CXXLD = $(CXX) +CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) +am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) +am__v_CXXLD_0 = @echo " CXXLD " $@; +am__v_CXXLD_1 = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libvx_data2d_ugrid_a_SOURCES) +DIST_SOURCES = $(libvx_data2d_ugrid_a_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUFRLIB_NAME = @BUFRLIB_NAME@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FC_LIBS = @FC_LIBS@ +FFLAGS = @FFLAGS@ +FLIBS = @FLIBS@ +GREP = @GREP@ +GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ +MET_BUFR = @MET_BUFR@ +MET_BUFRLIB = @MET_BUFRLIB@ +MET_CAIRO = @MET_CAIRO@ +MET_CAIROINC = @MET_CAIROINC@ +MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ +MET_FREETYPE = @MET_FREETYPE@ +MET_FREETYPEINC = @MET_FREETYPEINC@ +MET_FREETYPELIB = @MET_FREETYPELIB@ +MET_GRIB2C = @MET_GRIB2C@ +MET_GRIB2CINC = @MET_GRIB2CINC@ +MET_GRIB2CLIB = @MET_GRIB2CLIB@ +MET_GSL = @MET_GSL@ +MET_GSLINC = @MET_GSLINC@ +MET_GSLLIB = @MET_GSLLIB@ +MET_HDF = @MET_HDF@ +MET_HDF5 = @MET_HDF5@ +MET_HDF5INC = @MET_HDF5INC@ +MET_HDF5LIB = @MET_HDF5LIB@ +MET_HDFEOS = @MET_HDFEOS@ +MET_HDFEOSINC = @MET_HDFEOSINC@ +MET_HDFEOSLIB = @MET_HDFEOSLIB@ +MET_HDFINC = @MET_HDFINC@ +MET_HDFLIB = @MET_HDFLIB@ +MET_NETCDF = @MET_NETCDF@ +MET_NETCDFINC = @MET_NETCDFINC@ +MET_NETCDFLIB = @MET_NETCDFLIB@ +MET_PROJ = @MET_PROJ@ +MET_PROJINC = @MET_PROJINC@ +MET_PROJLIB = @MET_PROJLIB@ +MET_PYTHON_BIN_EXE = @MET_PYTHON_BIN_EXE@ +MET_PYTHON_CC = @MET_PYTHON_CC@ +MET_PYTHON_LD = @MET_PYTHON_LD@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ +VERSION = @VERSION@ +YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +MAINTAINERCLEANFILES = Makefile.in + +# The library +noinst_LIBRARIES = libvx_data2d_ugrid.a +libvx_data2d_ugrid_a_SOURCES = \ + ugrid_file.cc ugrid_file.h \ + var_info_ugrid.cc var_info_ugrid.h \ + data2d_ugrid.cc data2d_ugrid.h \ + vx_data2d_ugrid.h + +libvx_data2d_ugrid_a_CPPFLAGS = ${MET_CPPFLAGS} +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .o .obj +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libcode/vx_data2d_ugrid/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/libcode/vx_data2d_ugrid/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +libvx_data2d_ugrid.a: $(libvx_data2d_ugrid_a_OBJECTS) $(libvx_data2d_ugrid_a_DEPENDENCIES) $(EXTRA_libvx_data2d_ugrid_a_DEPENDENCIES) + $(AM_V_at)-rm -f libvx_data2d_ugrid.a + $(AM_V_AR)$(libvx_data2d_ugrid_a_AR) libvx_data2d_ugrid.a $(libvx_data2d_ugrid_a_OBJECTS) $(libvx_data2d_ugrid_a_LIBADD) + $(AM_V_at)$(RANLIB) libvx_data2d_ugrid.a + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_ugrid_a-data2d_ugrid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_ugrid_a-ugrid_file.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_ugrid_a-var_info_ugrid.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.cc.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +libvx_data2d_ugrid_a-ugrid_file.o: ugrid_file.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_ugrid_a-ugrid_file.o -MD -MP -MF $(DEPDIR)/libvx_data2d_ugrid_a-ugrid_file.Tpo -c -o libvx_data2d_ugrid_a-ugrid_file.o `test -f 'ugrid_file.cc' || echo '$(srcdir)/'`ugrid_file.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_ugrid_a-ugrid_file.Tpo $(DEPDIR)/libvx_data2d_ugrid_a-ugrid_file.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ugrid_file.cc' object='libvx_data2d_ugrid_a-ugrid_file.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_ugrid_a-ugrid_file.o `test -f 'ugrid_file.cc' || echo '$(srcdir)/'`ugrid_file.cc + +libvx_data2d_ugrid_a-ugrid_file.obj: ugrid_file.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_ugrid_a-ugrid_file.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_ugrid_a-ugrid_file.Tpo -c -o libvx_data2d_ugrid_a-ugrid_file.obj `if test -f 'ugrid_file.cc'; then $(CYGPATH_W) 'ugrid_file.cc'; else $(CYGPATH_W) '$(srcdir)/ugrid_file.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_ugrid_a-ugrid_file.Tpo $(DEPDIR)/libvx_data2d_ugrid_a-ugrid_file.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ugrid_file.cc' object='libvx_data2d_ugrid_a-ugrid_file.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_ugrid_a-ugrid_file.obj `if test -f 'ugrid_file.cc'; then $(CYGPATH_W) 'ugrid_file.cc'; else $(CYGPATH_W) '$(srcdir)/ugrid_file.cc'; fi` + +libvx_data2d_ugrid_a-var_info_ugrid.o: var_info_ugrid.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_ugrid_a-var_info_ugrid.o -MD -MP -MF $(DEPDIR)/libvx_data2d_ugrid_a-var_info_ugrid.Tpo -c -o libvx_data2d_ugrid_a-var_info_ugrid.o `test -f 'var_info_ugrid.cc' || echo '$(srcdir)/'`var_info_ugrid.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_ugrid_a-var_info_ugrid.Tpo $(DEPDIR)/libvx_data2d_ugrid_a-var_info_ugrid.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_ugrid.cc' object='libvx_data2d_ugrid_a-var_info_ugrid.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_ugrid_a-var_info_ugrid.o `test -f 'var_info_ugrid.cc' || echo '$(srcdir)/'`var_info_ugrid.cc + +libvx_data2d_ugrid_a-var_info_ugrid.obj: var_info_ugrid.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_ugrid_a-var_info_ugrid.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_ugrid_a-var_info_ugrid.Tpo -c -o libvx_data2d_ugrid_a-var_info_ugrid.obj `if test -f 'var_info_ugrid.cc'; then $(CYGPATH_W) 'var_info_ugrid.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_ugrid.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_ugrid_a-var_info_ugrid.Tpo $(DEPDIR)/libvx_data2d_ugrid_a-var_info_ugrid.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_ugrid.cc' object='libvx_data2d_ugrid_a-var_info_ugrid.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_ugrid_a-var_info_ugrid.obj `if test -f 'var_info_ugrid.cc'; then $(CYGPATH_W) 'var_info_ugrid.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_ugrid.cc'; fi` + +libvx_data2d_ugrid_a-data2d_ugrid.o: data2d_ugrid.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_ugrid_a-data2d_ugrid.o -MD -MP -MF $(DEPDIR)/libvx_data2d_ugrid_a-data2d_ugrid.Tpo -c -o libvx_data2d_ugrid_a-data2d_ugrid.o `test -f 'data2d_ugrid.cc' || echo '$(srcdir)/'`data2d_ugrid.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_ugrid_a-data2d_ugrid.Tpo $(DEPDIR)/libvx_data2d_ugrid_a-data2d_ugrid.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='data2d_ugrid.cc' object='libvx_data2d_ugrid_a-data2d_ugrid.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_ugrid_a-data2d_ugrid.o `test -f 'data2d_ugrid.cc' || echo '$(srcdir)/'`data2d_ugrid.cc + +libvx_data2d_ugrid_a-data2d_ugrid.obj: data2d_ugrid.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_ugrid_a-data2d_ugrid.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_ugrid_a-data2d_ugrid.Tpo -c -o libvx_data2d_ugrid_a-data2d_ugrid.obj `if test -f 'data2d_ugrid.cc'; then $(CYGPATH_W) 'data2d_ugrid.cc'; else $(CYGPATH_W) '$(srcdir)/data2d_ugrid.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_ugrid_a-data2d_ugrid.Tpo $(DEPDIR)/libvx_data2d_ugrid_a-data2d_ugrid.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='data2d_ugrid.cc' object='libvx_data2d_ugrid_a-data2d_ugrid.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_ugrid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_ugrid_a-data2d_ugrid.obj `if test -f 'data2d_ugrid.cc'; then $(CYGPATH_W) 'data2d_ugrid.cc'; else $(CYGPATH_W) '$(srcdir)/data2d_ugrid.cc'; fi` + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-am + +clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -f ./$(DEPDIR)/libvx_data2d_ugrid_a-data2d_ugrid.Po + -rm -f ./$(DEPDIR)/libvx_data2d_ugrid_a-ugrid_file.Po + -rm -f ./$(DEPDIR)/libvx_data2d_ugrid_a-var_info_ugrid.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f ./$(DEPDIR)/libvx_data2d_ugrid_a-data2d_ugrid.Po + -rm -f ./$(DEPDIR)/libvx_data2d_ugrid_a-ugrid_file.Po + -rm -f ./$(DEPDIR)/libvx_data2d_ugrid_a-var_info_ugrid.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-noinstLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Include the project definitions + +include ${top_srcdir}/Make-include + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/src/libcode/vx_data2d_ugrid/data2d_ugrid.cc b/src/libcode/vx_data2d_ugrid/data2d_ugrid.cc new file mode 100644 index 0000000000..fa96c66941 --- /dev/null +++ b/src/libcode/vx_data2d_ugrid/data2d_ugrid.cc @@ -0,0 +1,1045 @@ +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +// ** Copyright UCAR (c) 1992 - 2023 +// ** University Corporation for Atmospheric Research (UCAR) +// ** National Center for Atmospheric Research (NCAR) +// ** Research Applications Lab (RAL) +// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + + +//////////////////////////////////////////////////////////////////////// + + +#include +#include +#include +#include + +#include + +#include "data2d_ugrid.h" +#include "vx_math.h" +#include "vx_log.h" + +using namespace std; +using namespace netCDF; + +//////////////////////////////////////////////////////////////////////// + +static const int error_code_no_error = 0; +static const int error_code_no_time_dim = 1; +static const int error_code_missing_time_value = 2; +static const int error_code_missing_time_values = 3; +static const int error_code_missing_time_offsets = 4; +static const int error_code_empty_times = 5; +static const int error_code_bad_increment = 6; +static const int error_code_bad_offset = 7; +static const int error_code_no_vert_dim = 11; +static const int error_code_missing_vert_value = 12; +static const int error_code_missing_vert_values = 13; +static const int error_code_missing_vert_offsets = 14; +static const int error_code_empty_verticals = 15; +static const int error_code_unknown = 999; + +//////////////////////////////////////////////////////////////////////// +// +// Code for class MetUGridDataFile +// +//////////////////////////////////////////////////////////////////////// + +MetUGridDataFile::MetUGridDataFile() { + + ugrid_init_from_scratch(); + +} + +//////////////////////////////////////////////////////////////////////// + +MetUGridDataFile::~MetUGridDataFile() { + + close(); +} + +//////////////////////////////////////////////////////////////////////// + +MetUGridDataFile::MetUGridDataFile(const MetUGridDataFile &) { + + mlog << Error << "\nMetUGridDataFile::MetUGridDataFile(const MetUGridDataFile &) -> " + << "should never be called!\n\n"; + exit(1); +} + +//////////////////////////////////////////////////////////////////////// + +MetUGridDataFile & MetUGridDataFile::operator=(const MetUGridDataFile &) { + + mlog << Error << "\nMetUGridDataFile::operator=(const MetUGridDataFile &) -> " + << "should never be called!\n\n"; + exit(1); +} + +//////////////////////////////////////////////////////////////////////// + +void MetUGridDataFile::ugrid_init_from_scratch() { + + _file = (UGridFile *) nullptr; + _cur_time_index = -1; + _cur_vert_index = -1; + + close(); + + return; +} + +//////////////////////////////////////////////////////////////////////// + +void MetUGridDataFile::close() { + + if(_file) { delete _file; _file = (UGridFile *) nullptr; } + + return; +} + +//////////////////////////////////////////////////////////////////////// + +bool MetUGridDataFile::open(const char * _filename) { + + close(); + + _file = new UGridFile; + + if(!_file->open(_filename)) { + mlog << Error << "\nMetUGridDataFile::open(const char *) -> " + << "unable to open NetCDF file \"" << _filename << "\"\n\n"; + close(); + + return false; + } + + Filename = _filename; + + return true; +} + +//////////////////////////////////////////////////////////////////////// + +bool MetUGridDataFile::open_metadata(const char * _filename) { + const char *method_name = "MetUGridDataFile::open_metadata(const char *) -> "; + + if (! _file) { + mlog << Error << "\n" << method_name + << "UGridFile is not initiated to handle \"" << _filename << "\"\n\n"; + close(); + return false; + } + + if (!_file->open_metadata(_filename)) { + mlog << Error << "\n" << method_name + << "unable to open NetCDF file \"" << _filename << "\"\n\n"; + close(); + return false ; + } + + meta_filename = _filename; + + Raw_Grid = new Grid; + + (*Raw_Grid) = _file->grid; + //Raw_Grid->set(*_file->grid.info().us); + + Dest_Grid = new Grid; + + (*Dest_Grid) = (*Raw_Grid); + //Dest_Grid->set(*_file->grid.info().us); + + return(true); +} + +//////////////////////////////////////////////////////////////////////// + +void MetUGridDataFile::dump(ostream & out, int depth) const { + + if(_file) _file->dump(out, depth); + + return; +} + +//////////////////////////////////////////////////////////////////////// + +bool MetUGridDataFile::data_plane(VarInfo &vinfo, DataPlane &plane) +{ + bool status = false; + NcVarInfo *data_var = (NcVarInfo *)nullptr; + const long time_cnt = (long)_file->ValidTime.n(); + static const string method_name + = "MetUGridDataFile::data_plane(VarInfo &, DataPlane &) -> "; + + // Initialize the data plane + + plane.clear(); + + ConcatString req_name = vinfo.req_name(); + data_var = _file->find_by_name(req_name.c_str()); + if (nullptr != data_var) { + // Read the data + status = data_plane(vinfo, plane, data_var); + } + else { + LevelInfo level = vinfo.level(); + long lvl_lower = level.lower(); + long lvl_upper = level.upper(); + vector vinfo_list; + if (_file->find_nc_vinfo_list(req_name.c_str(), vinfo_list)) { + for (int idx=0; idxname.c_str()); + if (vlevel >= lvl_lower && vlevel <= lvl_upper) { + vinfo.set_req_name(vinfo_list[idx]->name.c_str()); + status = data_plane(vinfo, plane, vinfo_list[idx]); + if (status) { + mlog << Debug(5) << method_name + << "Found range match for VarInfo \"" << req_name + << " (" << vinfo_list[idx]->name << ")\"\n"; + break; + } + } + } + vinfo.set_name(req_name.c_str()); // restore the name + } + } + + return status; +} + + +//////////////////////////////////////////////////////////////////////// +// Find the actual variable from the requested variuable name. +// The requested variable name is the prefix of the actual variable name. +// + +bool MetUGridDataFile::data_plane(VarInfo &vinfo, DataPlane &plane, NcVarInfo *data_var) +{ + // Not sure why we do this + bool status = false; + const long time_cnt = (long)_file->ValidTime.n(); + VarInfoUGrid *vinfo_nc = (VarInfoUGrid *)&vinfo; + static const string method_name + = "MetUGridDataFile::data_plane(VarInfo &, DataPlane &, NcVarInfo *) -> "; + + // Initialize the data plane + + plane.clear(); + + int zdim_slot = bad_data_int; + int time_dim_slot = bad_data_int; + NumArray dim_value = vinfo_nc->dim_value(); + LongArray dimension(vinfo_nc->dimension()); + BoolArray is_offset(vinfo_nc->is_offset()); + + if (nullptr != data_var) { + zdim_slot = data_var->z_slot; + time_dim_slot = data_var->t_slot; + + // Adjust dimension and is_offset + int dim_size = dimension.n_elements(); + if (0 == dim_size) { + for (int idx=0; idxNdims; idx++) { + long offset = 0; + if (zdim_slot == idx &&_cur_vert_index >= 0) offset = _cur_vert_index; + else if (time_dim_slot != idx) offset = vx_data2d_star; + dimension.add(offset); + is_offset.add(true); + } + } + else if (dim_size < data_var->Ndims) { + for (int idx=dim_size; idxNdims; idx++) { + long offset = 0; + if (zdim_slot == idx &&_cur_vert_index >= 0) offset = _cur_vert_index; + else if (time_dim_slot != idx) offset = vx_data2d_star; + dimension.add(offset); + is_offset.add(true); + } + } + for (int idx=0; idx time_offset) || (time_offset >= time_cnt)) { + time_offset = convert_time_to_offset(time_offset); + } + if ((0 > time_offset) || (time_offset >= time_cnt)) { + mlog << Error << "\n" << method_name << "the requested time offset " + << time_offset << " for \"" << vinfo.req_name() << "\" variable " + << "is out of range (between 0 and " << (time_cnt-1) << ").\n\n"; + return false; + } + dimension[time_dim_slot] = time_offset; + } + else if (idx == zdim_slot) { + long z_cnt = (long)get_dim_size(_file->get_vert_dim()); + long z_offset = dim_offset; + if (z_offset == range_flag) z_offset = _cur_vert_index; // from data_plane_array() + //else if (!is_offset[idx]) { + // // convert the value to index for slicing + // z_offset = convert_value_to_offset(dim_value[idx], z_dim_name); + //} + if ((z_offset >= 0) && (z_offset < z_cnt)) { + dimension[idx] = long(z_offset); + } + } + } + + // Read the data + status = read_data_plane(data_var->name, vinfo, plane, dimension); + } + + return status; +} + +//////////////////////////////////////////////////////////////////////// + +int MetUGridDataFile::data_plane_array(VarInfo &vinfo, + DataPlaneArray &plane_array) { + int n_rec = 0; + DataPlane plane; + bool status = false; + static const string method_name + = "MetUGridDataFile::data_plane_array(VarInfo &, DataPlaneArray &) -> "; + + // Initialize + plane_array.clear(); + + LevelInfo level = vinfo.level(); + long lvl_lower = level.lower(); + long lvl_upper = level.upper(); + const int debug_level = 7; + ConcatString req_name = vinfo.req_name(); + NcVarInfo *data_vinfo = _file->find_by_name(req_name.c_str()); + if (level.type() == LevelType_Time) { + mlog << Error << "\n" << method_name + << "LevelType_Time for unstructured grid is not enabled\n\n"; + exit(1); + /* Not enabled + LongArray time_offsets = collect_time_offsets(vinfo); + if (0 < time_offsets.n_elements()) { + for (int idx=0; idx= debug_level) { + for (int idx=0; idx< time_offsets.n_elements(); idx++ ) { + mlog << Debug(debug_level) << method_name << "time: " + << unix_to_yyyymmdd_hhmmss(_file->ValidTime[time_offsets[idx]]) + << " from index " << time_offsets[idx] << "\n"; + } + } + } + */ + } + else if (level.type() == LevelType_Pres) { + if (nullptr == data_vinfo) { + vector vinfo_list; + if (_file->find_nc_vinfo_list(req_name.c_str(), vinfo_list)) { + for (int idx=0; idxname.c_str()); + if (vlevel >= lvl_lower && vlevel <= lvl_upper) { + vinfo.set_req_name(vinfo_list[idx]->name.c_str()); + if (data_plane(vinfo, plane, vinfo_list[idx])) { + plane_array.add(plane, lvl_lower, lvl_upper); + n_rec++; + } + mlog << Debug(5) << method_name + << "Found range match for VarInfo \"" << req_name + << " (" << vinfo_list[idx]->name << ")\"\n"; + } + } + vinfo.set_name(req_name.c_str()); + } + else { + mlog << Error << "\n" << method_name + << "Can not find variables which begin with \"" << req_name + << "\"\n\n"; + exit(1); + } + } + else { + // NOT SUPPORTED??? + } + } + else { // if (level.type() == LevelType_None) { + if (lvl_lower != lvl_upper && nullptr != data_vinfo) { + int tmp_lower = lvl_lower; + int tmp_upper = lvl_upper; + int z_offset = bad_data_int; + if (data_vinfo->z_slot >= 0) { + int zdim_size = get_dim_size(data_vinfo->var, data_vinfo->z_slot); + if (tmp_lower >= zdim_size) tmp_lower = zdim_size - 1; + if (tmp_upper >= zdim_size) tmp_upper = zdim_size - 1; + } + for (int idx=tmp_lower; idx<=tmp_upper; idx++) { + _cur_vert_index = idx; + if (data_plane(vinfo, plane, data_vinfo)) { + plane_array.add(plane, lvl_lower, lvl_upper); + n_rec++; + } + } + } + else if (data_plane(vinfo, plane)) { + plane_array.add(plane, lvl_lower, lvl_upper); + n_rec++; + } + } + + return n_rec; +} + +//////////////////////////////////////////////////////////////////////// + +LongArray MetUGridDataFile::collect_time_offsets(VarInfo &vinfo) { + int n_rec = 0; + bool status = false; + VarInfoUGrid *vinfo_nc = (VarInfoUGrid *)&vinfo; + static const string method_name + = "MetUGridDataFile::collect_time_offsets(VarInfo &) -> "; + + LongArray time_offsets; + NcVarInfo *info = _file->find_by_name(vinfo_nc->req_name().c_str()); + + // Check for variable not found + if(!info) { + mlog << Warning << "\n" << method_name + << "can't find NetCDF variable \"" << vinfo_nc->req_name() + << "\" in file \"" << Filename << "\".\n\n"; + return(time_offsets); + } + + int time_dim_slot = info->t_slot; + int time_dim_size = _file->ValidTime.n_elements(); + if (0 < time_dim_size && time_dim_slot < 0) { + // The time dimension does not exist at the variable and the time + // variable exists. Stop time slicing and set the time offset to 0. + time_offsets.add(0); + return(time_offsets); + } + + double time_lower = bad_data_double; + double time_upper = bad_data_double; + int error_code = error_code_no_error; + LevelInfo level = vinfo.level(); + LongArray dimension = vinfo_nc->dimension(); + bool is_time_range = (level.type() == LevelType_Time); + bool time_as_value = !level.is_offset(); + + long dim_offset = (time_dim_slot >= 0) ? dimension[time_dim_slot] : -1; + bool include_all_times = (dim_offset == vx_data2d_star); + + int idx; + TimeArray missing_times; + if (include_all_times) { + for (idx=0; idxValidTime[idx] < time_lower) continue; + next_offset = idx; + if (_file->ValidTime[idx] != time_lower) + missing_times.add(time_lower); + else { + mlog << Debug(9) << method_name << " found the lower time " + << unix_to_yyyymmdd_hhmmss(time_lower) << "\n"; + time_offsets.add(idx); + next_offset++; + } + break; + } + + if (0 > next_offset) error_code = error_code_missing_time_values; + else if (0 > time_inc) error_code = error_code_bad_increment; + else if (0 == time_inc) { // no increment configuration + for (idx=next_offset; idxValidTime[idx] > time_upper) break; + time_offsets.add(idx); + mlog << Debug(9) << method_name << " found the time " + << unix_to_yyyymmdd_hhmmss(_file->ValidTime[idx]) << "\n"; + } + } + else { + long next_time; + next_time = time_lower + time_inc; + for (idx=next_offset; idxValidTime[idx] > time_upper) break; + else if (_file->ValidTime[idx] < next_time) continue; + else if (_file->ValidTime[idx] == next_time) { + time_offsets.add(idx); + mlog << Debug(9) << method_name << " found the time " + << unix_to_yyyymmdd_hhmmss(_file->ValidTime[idx]) << "\n"; + next_time += time_inc; + } + else { // next_time < _file->ValidTime[idx] + while (next_time < _file->ValidTime[idx]) { + missing_times.add(next_time); + next_time += time_inc; + } + if (_file->ValidTime[idx] == next_time) { + time_offsets.add(idx); + mlog << Debug(9) << method_name << " found the time " + << unix_to_yyyymmdd_hhmmss(_file->ValidTime[idx]) << "\n"; + next_time += time_inc; + } + } + if (next_time > time_upper) break; + } + } + } + else if (time_lower < time_dim_size) { + int inc_offset = (time_inc <= 0) ? 1 : time_inc; + int max_time_offset = time_upper; + if (max_time_offset == time_dim_size) + missing_times.add(time_dim_size); + else if (max_time_offset > time_dim_size) { + for (idx=time_dim_size; idx<=max_time_offset; idx++) + missing_times.add(idx); + } + for (idx=time_lower; idxValidTime[0]) << " and " + << unix_to_yyyymmdd_hhmmss(_file->ValidTime[time_dim_size-1]) << "\n"; + else { + mlog << Warning << method_name << "Not found time out of " + << time_dim_size << ".\n"; + if (include_all_times) error_code = error_code_empty_times; + else if (is_time_range) { + error_code = time_as_value ? error_code_missing_time_values + : error_code_missing_time_offsets; + } + } + + // Handling error code + if (error_code > error_code_no_error) { + ConcatString log_msg; + log_msg << "variable \"" << vinfo_nc->req_name() << "\" "; + if (error_code == error_code_no_time_dim) { + log_msg << "does not support the range of times because the time dimension is " + << time_dim_size; + } + else if (error_code == error_code_missing_time_values) { + log_msg << "does not have the matching time ranges between " + << unix_to_yyyymmdd_hhmmss(time_lower) << " and " + << unix_to_yyyymmdd_hhmmss(time_upper); + if (0 < time_dim_size) { + log_msg << " from [" + << unix_to_yyyymmdd_hhmmss(_file->ValidTime.min()) << " and " + << unix_to_yyyymmdd_hhmmss(_file->ValidTime.max()) << "]"; + } + } + else if (error_code == error_code_missing_time_offsets) { + log_msg << "does not have the matching time offsets between " + << nint(time_lower) << " and " << nint(time_upper); + if (0 < time_dim_size) { + log_msg << " [0 <= offset < " << time_dim_size << "]"; + } + } + else if (error_code == error_code_empty_times) { + log_msg << "does not have the time values"; + } + else if (error_code == error_code_bad_increment) { + log_msg << "was configured with bad increment"; + } + else if (error_code == error_code_bad_offset) { + log_msg << "was configured with the bad time offset" + << " (0 <= offset < " << time_dim_size << ")"; + } + else if (error_code == error_code_missing_time_value) { + long time_value = (time_as_value ? dim_offset : -1); + log_msg << "does not have the matching time " + << unix_to_yyyymmdd_hhmmss(time_value) << " [" + << unix_to_yyyymmdd_hhmmss(_file->ValidTime.min()) << " and " + << unix_to_yyyymmdd_hhmmss(_file->ValidTime.max()) << "]"; + } + else { + log_msg.clear(); + log_msg << "variable \"" << vinfo_nc->req_name() + << "\" has unknown error (" << error_code << ")"; + } + mlog << Error << "\n" << method_name << log_msg << ".\n\n"; + exit(1); + } + + return(time_offsets); +} + + +//////////////////////////////////////////////////////////////////////// + +/* +LongArray MetUGridDataFile::collect_vertical_offsets(VarInfo &vinfo) { + int n_rec = 0; + bool status = false; + VarInfoUGrid *vinfo_nc = (VarInfoUGrid *)&vinfo; + static const string method_name + = "MetUGridDataFile::collect_vertical_offsets(VarInfo &) -> "; + + LongArray vertical_offsets; + NcVarInfo *info = _file->find_by_name(vinfo_nc->req_name().c_str()); + + // Check for variable not found + if(!info) { + mlog << Warning << "\n" << method_name + << "can't find NetCDF variable \"" << vinfo_nc->req_name() + << "\" in file \"" << Filename << "\".\n\n"; + return(vertical_offsets); + } + + int z_dim_slot = info->z_slot; + int z_dim_size = get_dim_size(_file->get_vert_dim()); + if (0 < z_dim_size && z_dim_slot < 0) { + // The vertical dimension does not exist at the variable and the vertical + // variable exists. Stop vertical slicing and set the vertical offset to 0. + vertical_offsets.add(0); + return(vertical_offsets); + } + + double z_lower = bad_data_double; + double z_upper = bad_data_double; + int error_code = error_code_no_error; + LevelInfo level = vinfo.level(); + LongArray dimension = vinfo_nc->dimension(); + bool is_vert_range = (level.type() == LevelType_Pres); + bool z_as_value = !level.is_offset(); + + long dim_offset = (z_dim_slot >= 0) ? dimension[z_dim_slot] : -1; + bool include_all_verticals = (dim_offset == vx_data2d_star); + + z_as_value = false; // this is not supported yet. + if (include_all_verticals) { + for (int idx=0; idxvlevels[idx] < z_lower) continue; + next_offset = idx; + if (_file->vlevels[idx] != z_lower) + missing_verticals.add(z_lower); + else { + mlog << Debug(9) << method_name << " found the lower vertical " + << z_lower << "\n"; + vertical_offsets.add(idx); + next_offset++; + } + break; + } + + if (0 > next_offset) error_code = error_code_missing_vert_values; + else if (0 > z_inc) error_code = error_code_bad_increment; + else if (0 == z_inc) { // no increment configuration + for (idx=next_offset; idxvlevels[idx] > z_upper) break; + vertical_offsets.add(idx); + mlog << Debug(9) << method_name << " found the vertical " + << _file->vlevels[idx] << "\n"; + } + } + else { + long next_z; + next_z = z_lower + z_inc; + for (idx=next_offset; idxvlevels[idx] > z_upper) break; + else if (_file->vlevels[idx] < next_z) continue; + else if (_file->vlevels[idx] == next_z) { + vertical_offsets.add(idx); + mlog << Debug(9) << method_name << " found the vertical " + << _file->vlevels[idx] << "\n"; + next_z += z_inc; + } + else { // next_z < _file->vlevels[idx] + while (next_z < _file->vlevels[idx]) { + missing_verticals.add(next_z); + next_z += z_inc; + } + if (_file->vlevels[idx] == next_z) { + vertical_offsets.add(idx); + mlog << Debug(9) << method_name << " found the vertical " + << _file->vlevels[idx] << "\n"; + next_z += z_inc; + } + } + if (next_z > z_upper) break; + } + } + } + else if (z_lower < z_dim_size) { + int inc_offset = (z_inc <= 0) ? 1 : z_inc; + int max_vert_offset = z_upper; + if (max_vert_offset == z_dim_size) + missing_verticals.add(z_dim_size); + else if (max_vert_offset > z_dim_size) { + for (idx=z_dim_size; idx<=z_upper; idx++) + missing_verticals.add(idx); + max_vert_offset = z_dim_size - 1; + } + for (idx=z_lower; idx<=max_vert_offset; idx+=inc_offset) { + vertical_offsets.add(idx); + mlog << Debug(9) << method_name << " added index " << idx << "\n"; + } + } + + int missing_count = missing_verticals.n_elements(); + if (0 < missing_count) { + for (idx = 0; idxvlevels[0] << " and " +// << _file->vlevels[z_dim_size-1] << "\n"; +// else { +// mlog << Warning << method_name << "Not found vertical out of " +// << z_dim_size << ".\n"; +// if (include_all_verticals) error_code = error_code_empty_verticals; +// else if (is_vert_range) { +// error_code = z_as_value ? error_code_missing_vert_values +// : error_code_missing_vert_offsets; +// } +// } + + // Handling error code + if (error_code > error_code_no_error) { + ConcatString log_msg; + log_msg << "variable \"" << vinfo_nc->req_name() << "\" "; + if (error_code == error_code_no_vert_dim) { + log_msg << "does not support the range of verticals because the vertical dimension is " + << z_dim_size; + } + else if (error_code == error_code_missing_vert_values) { + log_msg << "does not have the matching vertical ranges between " + << z_lower << " and " << z_upper; + if (0 < z_dim_size) { + log_msg << " from [" + << std::to_string(_file->vlevels.min()) << " and " + << std::to_string(_file->vlevels.max()) << "]"; + } + } + else if (error_code == error_code_missing_vert_offsets) { + log_msg << "does not have the matching vertical offsets between " + << nint(z_lower) << " and " << nint(z_upper); + if (0 < z_dim_size) { + log_msg << " [0 <= offset < " << z_dim_size << "]"; + } + } + else if (error_code == error_code_empty_verticals) { + log_msg << "does not have the vertical values"; + } + else if (error_code == error_code_bad_increment) { + log_msg << "was configured with bad increment"; + } + else if (error_code == error_code_bad_offset) { + log_msg << "was configured with the bad vertical offset" + << " (0 <= offset < " << z_dim_size << ")"; + } + else if (error_code == error_code_missing_vert_value) { + long z_value = (z_as_value ? dim_offset : -1); + log_msg << "does not have the matching vertical " + << std::to_string(z_value) << " [" + << std::to_string(_file->vlevels.min()) << " and " + << std::to_string(_file->vlevels.max()) << "]"; + } + else { + log_msg.clear(); + log_msg << "variable \"" << vinfo_nc->req_name() + << "\" has unknown error (" << std::to_string(error_code) << ")"; + } + mlog << Error << "\n" << method_name << log_msg << ".\n\n"; + exit(1); + } + + return(vertical_offsets); +} +*/ + +//////////////////////////////////////////////////////////////////////// + +long MetUGridDataFile::convert_time_to_offset(long time_value) { + bool found = false; + bool found_value = false; + long time_offset = bad_data_int; + int dim_size = _file->ValidTime.n(); + static const string method_name + = "MetUGridDataFile::convert_time_to_offset() -> "; + + for (int idx=0; idxValidTime[idx] == time_value) { + time_offset = idx; + found = true; + break; + } + } + + if (!found) { + dim_size = _file->raw_times.n(); + for (int idx=0; idxraw_times[idx] == time_value) { + time_offset = idx; + found_value = true; + break; + } + } + } + + if (found) + mlog << Debug(7) << method_name << " Found " + << unix_to_yyyymmdd_hhmmss(time_value) + << " at index " << time_offset << " from time value\n"; + else if (found_value) + mlog << Debug(7) << method_name << " Found " << time_value + << " at index " << time_offset << " from time value\n"; + else + mlog << Warning << "\n" << method_name << time_value + << " does not exist at time variable\n\n"; + + return time_offset; +} + +//////////////////////////////////////////////////////////////////////// + +/* +long MetUGridDataFile::convert_value_to_offset(double z_value, string z_dim_name) { + bool found = false; + long z_offset = bad_data_int; + int dim_size = _file->vlevels.n(); + static const string method_name + = "MetUGridDataFile::convert_value_to_offset() -> "; + + for (int idx=0; idxvlevels[idx], z_value)) { + found = true; + z_offset = idx; + break; + } + } + + if (!found && 0 < z_dim_name.length()) { + NcVarInfo *var_info = find_var_info_by_dim_name(_file->Var, z_dim_name, _file->Nvars); + if (var_info) { + long new_offset = get_index_at_nc_data(var_info->var, z_value, z_dim_name); + if (new_offset != bad_data_int) z_offset = new_offset; + } + } + + return z_offset; +} +*/ + +//////////////////////////////////////////////////////////////////////// + +int MetUGridDataFile::extract_vlevels(ConcatString var_name_base, const char *var_name) { + int num_mat = 0; + char** mat = nullptr; + int vlevel = bad_data_int; + ConcatString name_pattern; + + name_pattern.erase(); + name_pattern << "(" << var_name_base << "[ _])([0-9]+)(.*)"; + num_mat = regex_apply(name_pattern.c_str(), 4, var_name, mat); + if (2 < num_mat) vlevel = atoi(mat[2]); + + return vlevel; +} + +//////////////////////////////////////////////////////////////////////// + + +long MetUGridDataFile::get_time_offset(long time_value, const long time_cnt, + const char *var_name, const string caller) { + const long time_threshold_cnt = 10000000; + long time_offset = convert_time_to_offset(time_value); + if ((0 > time_offset) || (time_offset >= time_cnt)) { + if (time_value > time_threshold_cnt) // from time string (yyyymmdd_hh) + mlog << Warning << "\n" << caller << "the requested time " + << unix_to_yyyymmdd_hhmmss(time_value) << " for \"" + << var_name << "\" variable does not exist (" + << unix_to_yyyymmdd_hhmmss(_file->ValidTime[0]) << " and " + << unix_to_yyyymmdd_hhmmss(_file->ValidTime[time_cnt-1]) << ").\n\n"; + else + mlog << Warning << "\n" << caller << "the requested time value " + << time_value << " for \"" << var_name << "\" variable " + << "is out of range (between 0 and " << (time_cnt-1) << ").\n\n"; + time_offset = -1; + } + return time_offset; +} + +//////////////////////////////////////////////////////////////////////// + +int MetUGridDataFile::index(VarInfo &vinfo){ + + if( nullptr == _file->find_by_name( vinfo.name().c_str() ) ) return -1; + + if( ( vinfo.valid() != 0 && _file->ValidTime[0] != vinfo.valid() ) || + ( vinfo.init() != 0 && _file->InitTime != vinfo.init() ) || + ( !is_bad_data(vinfo.lead()) && _file->lead_time() != vinfo.lead() ) ) + return -1; + + return 0; +} + +//////////////////////////////////////////////////////////////////////// + +bool MetUGridDataFile::read_data_plane(ConcatString var_name, VarInfo &vinfo, + DataPlane &plane, LongArray &dimension) { + static const string method_name + = "MetUGridDataFile::read_data_plane() -> "; + + // Read the data + NcVarInfo *info = (NcVarInfo *) nullptr; + + bool status = _file->getData(var_name.c_str(), + dimension, + plane, info); + + //if (org_time_offset != bad_data_int && 0 <= time_dim_slot) + // dimension[time_dim_slot] = org_time_offset; + //if (org_z_offset != bad_data_int && 0 <= zdim_slot) + // dimension[zdim_slot] = org_z_offset; + + // Check that the times match those requested + + if (status) + { + // Check that the valid time matches the request + + if (vinfo.valid() > 0 && vinfo.valid() != plane.valid()) + { + // Compute time strings + + ConcatString req_time_str = unix_to_yyyymmdd_hhmmss(vinfo.valid()); + ConcatString data_time_str = unix_to_yyyymmdd_hhmmss(plane.valid()); + + mlog << Warning << "\n" << method_name + << "for \"" << vinfo.req_name() << "\" variable, the valid " + << "time does not match the requested valid time: (" + << data_time_str << " != " << req_time_str << ")\n\n"; + status = false; + } + + // Check that the lead time matches the request + + if (vinfo.lead() > 0 && vinfo.lead() != plane.lead()) + { + // Compute time strings + + ConcatString req_time_str = sec_to_hhmmss(vinfo.lead()); + ConcatString data_time_str = sec_to_hhmmss(plane.lead()); + + mlog << Warning << "\n" << method_name + << "for \"" << vinfo.req_name() << "\" variable, the lead " + << "time does not match the requested lead time: (" + << data_time_str << " != " << req_time_str << ")\n\n"; + status = false; + } + + status = process_data_plane(&vinfo, plane); + + // Set the VarInfo object's name, long_name, level, and units strings + + if (info->name_att.length() > 0) + vinfo.set_name(info->name_att); + else + vinfo.set_name(info->name); + + if (info->long_name_att.length() > 0) + vinfo.set_long_name(info->long_name_att.c_str()); + + if (info->level_att.length() > 0) + vinfo.set_level_name(info->level_att.c_str()); + + if (info->units_att.length() > 0) + vinfo.set_units(info->units_att.c_str()); + } + + return status; +} + +//////////////////////////////////////////////////////////////////////// + +void MetUGridDataFile::set_ugrid_configs(ConcatString dataset_name, + double max_distance_km, + ConcatString map_config_filename) { + _file->set_dataset(dataset_name); + if (0 < map_config_filename.length()) { + _file->set_map_config_file(map_config_filename); + } + if (!is_eq(bad_data_double, max_distance_km)) { + _file->set_max_distance_km(max_distance_km); + } +} + + +//////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_ugrid/data2d_ugrid.h b/src/libcode/vx_data2d_ugrid/data2d_ugrid.h new file mode 100644 index 0000000000..935ddc73ed --- /dev/null +++ b/src/libcode/vx_data2d_ugrid/data2d_ugrid.h @@ -0,0 +1,138 @@ +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +// ** Copyright UCAR (c) 1992 - 2023 +// ** University Corporation for Atmospheric Research (UCAR) +// ** National Center for Atmospheric Research (NCAR) +// ** Research Applications Lab (RAL) +// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + + +//////////////////////////////////////////////////////////////////////// + + +#ifndef __MET_VX_DATA_2D_UGRID_H__ +#define __MET_VX_DATA_2D_UGRID_H__ + + +//////////////////////////////////////////////////////////////////////// + + +#include "data_plane.h" +#include "data_class.h" +#include "var_info_ugrid.h" +#include "ugrid_file.h" +#include "two_to_one.h" + + +//////////////////////////////////////////////////////////////////////// + + +class MetUGridDataFile : public Met2dDataFile { + + private: + + void ugrid_init_from_scratch(); + //NcVarInfo *find_first_data_var(); + long convert_time_to_offset(long time_value); + //long convert_value_to_offset(double z_value, std::string z_dim_name); + LongArray collect_time_offsets(VarInfo &vinfo); + //LongArray collect_vertical_offsets(VarInfo &vinfo); + long get_time_offset(long time_value, const long time_cnt, + const char *var_name, const std::string caller); + + MetUGridDataFile(const MetUGridDataFile &); + MetUGridDataFile & operator=(const MetUGridDataFile &); + + // + // NetCDF file + // + + UGridFile * _file; // allocated + long _cur_time_index; // current time index to get the data plane (for array of data_plane) + long _cur_vert_index; // current vertical index to get the data plane (for array of data_plane) + + protected: + + ConcatString meta_filename; + + public: + + MetUGridDataFile(); + ~MetUGridDataFile(); + + virtual int nx() const + { + if (_file == nullptr) + return 0; + + return _file->getNx(); + } + + + virtual int ny() const + { + return 1; + } + + + // + // set stuff + // + + // + // get stuff + // + + GrdFileType file_type() const; + + // retrieve the first matching data plane + + bool data_plane(VarInfo &, DataPlane &); + bool data_plane(VarInfo &, DataPlane &, NcVarInfo *); + + // retrieve all matching data planes + + int data_plane_array(VarInfo &, DataPlaneArray &); + + // retrieve the index of the first matching record + + int extract_vlevels(ConcatString var_name_base, const char *var_name); + + int index(VarInfo &); + + bool read_data_plane(ConcatString var_name, VarInfo &vinfo, + DataPlane &plane, LongArray &dimension); + + // + // do stuff + // + + bool open (const char * filename); + bool open_metadata(const char * filename); + ConcatString coordinate_file() const; + void set_ugrid_configs(ConcatString dataset_name, double max_distance_km, + ConcatString map_config_filename); + + void close (); + + void dump(std::ostream &, int = 0) const; + +}; + + +//////////////////////////////////////////////////////////////////////// + + +inline GrdFileType MetUGridDataFile::file_type () const { return FileType_UGrid; } +inline ConcatString MetUGridDataFile::coordinate_file() const { return _file->coordinate_nc(); } + + +//////////////////////////////////////////////////////////////////////// + + +#endif /* __MET_VX_DATA_2D_UGRID_H__ */ + + +//////////////////////////////////////////////////////////////////////// + + diff --git a/src/libcode/vx_data2d_ugrid/ugrid_file.cc b/src/libcode/vx_data2d_ugrid/ugrid_file.cc new file mode 100644 index 0000000000..13cfde1f6f --- /dev/null +++ b/src/libcode/vx_data2d_ugrid/ugrid_file.cc @@ -0,0 +1,1026 @@ +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +// ** Copyright UCAR (c) 1992 - 2023 +// ** University Corporation for Atmospheric Research (UCAR) +// ** National Center for Atmospheric Research (NCAR) +// ** Research Applications Lab (RAL) +// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + + +//////////////////////////////////////////////////////////////////////// + + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "vx_math.h" +#include "vx_cal.h" +#include "vx_log.h" +#include "config_util.h" + +#include "ugrid_file.h" + +using namespace std; +using namespace netCDF; + + +//////////////////////////////////////////////////////////////////////// + +static const char *def_user_config = "UGridConfig_user"; +static const char *def_config_prefix = "UGridConfig_"; +static const char *def_config_prefix2 = "MET_BASE/config/UGridConfig_"; + +array DIM_KEYS = { + "dim_face", "dim_node", "dim_edge", "dim_time", "dim_vert" +}; + +array COORD_VAR_KEYS = { + "time", "lat_face", "lon_face", "vert_face", "lat_edge", + "lon_edge", "lat_node", "lon_node", "cell_id" +}; + +static double get_nc_var_att_double(const NcVar *nc_var, const char *att_name, + bool is_required=true); + +#define USE_BUFFER 1 + +//////////////////////////////////////////////////////////////////////// + + + // + // Code for class UGridFile + // + + +//////////////////////////////////////////////////////////////////////// + + +UGridFile::UGridFile() +{ + init_from_scratch(); +} + + +//////////////////////////////////////////////////////////////////////// + +UGridFile::~UGridFile() +{ + close(); +} + + +//////////////////////////////////////////////////////////////////////// + + +void UGridFile::init_from_scratch() + +{ + // Initialize the pointers + + _ncFile = (NcFile *) nullptr; + _ncMetaFile = (NcFile *) nullptr; + Var = (NcVarInfo *) nullptr; + _time_var_info = (NcVarInfo *)nullptr; + + _faceDim = (NcDim *)nullptr; + _edgeDim = (NcDim *)nullptr; + _nodeDim = (NcDim *)nullptr; + _virtDim = (NcDim *)nullptr; + _tDim = (NcDim *)nullptr; + _latVar = (NcVar *)nullptr; + _lonVar = (NcVar *)nullptr; + metadata_map.clear(); + max_distance_km = bad_data_double; + + // Close any existing file + + close(); + + return; +} + + +//////////////////////////////////////////////////////////////////////// + + +void UGridFile::close() +{ + + // Reclaim the file pointer + + if (_ncFile) { + delete _ncFile; + _ncFile = (NcFile *)nullptr; + } + + if (_ncMetaFile) { + delete _ncMetaFile; + _ncMetaFile = (NcFile *)nullptr; + } + + // Reclaim the dimension pointers + + _numDims = 0; + + _dimNames.clear(); + metadata_map.clear(); + metadata_names.clear(); + + _faceDim = _edgeDim = _tDim = (NcDim *)nullptr; + + // Reclaim the variable pointers + + if (Var) { + delete [] Var; + Var = (NcVarInfo *)nullptr; + } + + Nvars = 0; + + // Reset the time values + + ValidTime.clear(); + raw_times.clear(); + vlevels.clear(); + InitTime = (unixtime)0; + AccumTime = (unixtime)0; + + face_count = 0; + + // done + + return; +} + + +//////////////////////////////////////////////////////////////////////// + + +bool UGridFile::open(const char * filepath) +{ + const char *method_name = "UGridFile::open() -> "; + + // Close any open files and clear out the associated members + close(); + if (_ncFile) { + delete _ncFile; + _ncFile = (NcFile *) nullptr; + } + + // Open the file + _ncFile = open_ncfile(filepath); + + if (IS_INVALID_NC_P(_ncFile)) + { + close(); + return false; + } + + return get_var_info(); +} + + +//////////////////////////////////////////////////////////////////////// + + +bool UGridFile::open_metadata(const char * filepath) +{ + unixtime ut = 0; + int sec_per_unit; + const char *method_name = "UGridFile::open_metadata() -> "; + + // Open the file + _ncMetaFile = open_ncfile(filepath); + + if (IS_INVALID_NC_P(_ncMetaFile)) { + close(); + return false; + } + + NcDim dim; + string meta_name; + string time_dim_name; + string vert_dim_name; + StringArray dim_names; + StringArray meta_names; + + get_dim_names(_ncMetaFile, &dim_names); + + // Face (cell) dimension + meta_name = find_metadata_name(DIM_KEYS[0], dim_names); + if (0 < meta_name.length()) { + dim = get_nc_dim(_ncMetaFile, meta_name.c_str()); + face_count = get_dim_size(&dim); + _faceDim = new NcDim(dim); + NcDim face_dim = get_nc_dim(_ncFile, meta_name.c_str()); + int data_face_count = get_dim_size(&face_dim); + if (face_count != data_face_count) { + mlog << Error << "\n" << method_name + << meta_name << " dimension is different: data file = " + << data_face_count << ", coordinates file = " << face_count << "\n\n"; + exit(1); + } + } + + // Node (vertex) dimension + meta_name = find_metadata_name(DIM_KEYS[1], dim_names); + if (0 < meta_name.length()) { + dim = get_nc_dim(_ncMetaFile, meta_name.c_str()); + _nodeDim = new NcDim(dim); + } + + // Edge dimension + meta_name = find_metadata_name(DIM_KEYS[2], dim_names); + if (0 < meta_name.length()) { + dim = get_nc_dim(_ncMetaFile, meta_name.c_str()); + _edgeDim = new NcDim(dim); + } + + // Time dimension + time_dim_name = find_metadata_name(DIM_KEYS[3], dim_names); + if (0 < time_dim_name.length()) { + dim = get_nc_dim(_ncMetaFile, time_dim_name.c_str()); + _tDim = new NcDim(dim); + } + + // Vertical dimension + vert_dim_name = find_metadata_name(DIM_KEYS[4], dim_names); + if (0 < vert_dim_name.length()) { + dim = get_nc_dim(_ncMetaFile, vert_dim_name.c_str()); + _virtDim = new NcDim(dim); + } + + int max_dim_count = 0; + StringArray var_names; + ConcatString att_value; + NcVar *z_var = (NcVar *)nullptr; + NcVar *valid_time_var = (NcVar *)nullptr; + + StringArray time_names = get_metadata_names(COORD_VAR_KEYS[0]); + StringArray lat_names = get_metadata_names(COORD_VAR_KEYS[1]); + StringArray lon_names = get_metadata_names(COORD_VAR_KEYS[2]); + StringArray z_names = get_metadata_names(COORD_VAR_KEYS[3]); + for (int j=0; j max_dim_count) max_dim_count = dim_count; + + // parse the variable attributes + get_att_str( MetaVar[j], long_name_att_name, MetaVar[j].long_name_att ); + get_att_str( MetaVar[j], units_att_name, MetaVar[j].units_att ); + + if (0 == j && nullptr == _time_var_info) { + valid_time_var = MetaVar[j].var; + _time_var_info = &MetaVar[j]; + } + else if (1 == j && nullptr == _latVar) _latVar = MetaVar[j].var; + else if (2 == j && nullptr == _lonVar) _lonVar = MetaVar[j].var; + else if (3 == j && nullptr == _latVar) z_var = MetaVar[j].var; + } + + } // for j + + + // Pull out the valid and init times + if (IS_INVALID_NC_P(valid_time_var)) { + mlog << Debug(4) << method_name + << "could not extract valid time from the " + << "time variable from " << filepath << "\n"; + + ValidTime.add(ut); + } + else { + // Store the dimension for the time variable as the time dimension + ConcatString units; + bool use_bounds_var = false; + int time_dim_count = get_dim_count(valid_time_var); + if (time_dim_count == 1 || time_dim_count == 2) { + NcDim tDim = get_nc_dim(valid_time_var, 0); + if (IS_VALID_NC(tDim)) { + _tDim = new NcDim(tDim); + } + } + + // Parse the units for the time variable. + ut = sec_per_unit = 0; + if (get_var_units(valid_time_var, units) && (time_dim_count < 2)) { + if (units.length() == 0) { + mlog << Warning << "\n" << method_name + << "the \"time\" variable must contain a \"units\" attribute. " + << "Using valid time of 0\n\n"; + } + else { + mlog << Debug(4) << method_name + << "parsing units for the time variable \"" << units << "\"\n"; + parse_cf_time_string(units.c_str(), ut, sec_per_unit); + } + } + + // Determine the number of times present. + int n_times = IS_VALID_NC_P(_tDim) ? get_dim_size(_tDim) + : (int) get_data_size(valid_time_var); + int tim_buf_size = n_times; + double *time_values = new double[tim_buf_size]; + if(2 == time_dim_count) { + for(int i=0; i 1 ) { + double latest_time = bad_data_double; + for(int i=0; ivar; + } + + // Pull out the vertical levels + if (IS_VALID_NC_P(z_var)) { + + int z_count = (int) get_data_size(z_var); + double *z_values = new double[z_count]; + + if( get_nc_data(z_var, z_values) ) { + for(int i=0; i 0) { + unix_to_mdyhms(AccumTime, month, day, year, hour, minute, second); + snprintf(junk, sizeof(junk), "%2d:%02d:%02d (%d seconds)", + hour, minute, second, (int)AccumTime); + out << prefix << "Accum Time = "; + out << junk << "\n"; + out << prefix << "\n"; + } + + out << prefix << "\n"; + + out << prefix << "Nvars = " << Nvars << "\n"; + + for (int j = 0; j < Nvars; ++j) + { + out << p2 << "Var # " << j << " = " << (Var[j].name) << " ("; + + for (int k = 0; k < Var[j].Ndims; ++k) + { + if (Var[j].Dims[k] == _faceDim) + out << 'X'; + else if (Var[j].Dims[k] == _edgeDim) + out << 'Y'; + else if (Var[j].Dims[k] == _tDim) + out << 'T'; + else + out << GET_NC_NAME_P(Var[j].Dims[k]); + + if (k < Var[j].Ndims - 1) + out << ", "; + } // for k + + out << ")\n"; + + out << p2 << "\n"; + + } // for j + + // done + + out.flush(); + + return; +} + + +//////////////////////////////////////////////////////////////////////// + +std::string UGridFile::find_metadata_name(std::string &key, StringArray &available_names) { + string meta_name = ""; + StringArray meta_names = get_metadata_names(key); + + for (int idx=0; idx &vinfo_list) const +{ + vinfo_list.clear(); + for (int i = 0; i < Nvars; i++) { + if (Var[i].name.startswith(var_name)) vinfo_list.push_back(&Var[i]); + } + return vinfo_list.size() > 0; +} + + +//////////////////////////////////////////////////////////////////////// + + +double UGridFile::getData(NcVar * var, const LongArray & a) const +{ + clock_t start_clock = clock(); + static const string method_name + = "UGridFile::getData(NcVar *, const LongArray &) -> "; + + bool status = false; + double d = bad_data_double; + + double fill_value; + double missing_value = get_var_missing_value(var); + get_var_fill_value(var, fill_value); + + //status = get_nc_data(var, &d, a); + status = get_nc_data(var, a); + + if (!status) + { + mlog << Error << "\nUGridFile::getData(NcVar *, const LongArray &) const -> " + << "bad status for var->get()\n\n"; + exit(1); + } + + // done + + mlog << Debug(6) << method_name << "took " + << (clock()-start_clock)/double(CLOCKS_PER_SEC) << " seconds\n"; + + return d; +} + + +//////////////////////////////////////////////////////////////////////// + + +bool UGridFile::getData(NcVar * v, const LongArray & a, DataPlane & plane) const +{ + clock_t start_clock = clock(); + static const string method_name_short + = "UGridFile::getData(NcVar*, LongArray&, DataPlane&) "; + static const string method_name + = "UGridFile::getData(NcVar *, const LongArray &, DataPlane &) -> "; + + if (!args_ok(a)) + { + mlog << Error << "\n" << method_name + << "bad arguments:\n"; + a.dump(cerr); + exit(1); + } + + int dim_count = get_dim_count(v); + if (dim_count != a.n_elements()) + { + mlog << Error << "\n" << method_name + << "needed " << (dim_count) << " arguments for variable " + << (GET_NC_NAME_P(v)) << ", got " << (a.n_elements()) << "\n\n"; + exit(1); + } + + // find varinfo's + + NcVarInfo *var = find_by_name(GET_NC_NAME_P(v).c_str()); + + if (nullptr == var) { + mlog << Error << "\n" << method_name + << "variable " << (GET_NC_NAME_P(v)) << " not found!\n\n"; + exit(1); + } + + // check star positions and count + + // + // get the bad data values + // + + double fill_value; + double missing_value = get_var_missing_value(v); + get_var_fill_value(v, fill_value); + + // set up the DataPlane object + + const int nx = grid.nx(); + const int ny = grid.ny(); + + plane.clear(); + plane.set_size(nx, ny); + + // get the data + const int plane_size = nx * ny; + double *d = new double[plane_size]; + + int length; + size_t dim_size; + LongArray offsets; + LongArray lengths; + for (int k=0; kt_slot && k != var->z_slot) length = plane_size - a[k]; + } + lengths.add(length); + dim_size = v->getDim(k).getSize(); + if (dim_size < offsets[k]) { + mlog << Error << "\n" << method_name + << "offset (" << offsets[k] << ") at " << k + << "th dimension (" << long(dim_size) << ") is too big for variable \"" + << GET_NC_NAME_P(v) << "\"\n\n"; + exit ( 1 ); + } + } + + get_nc_data(v, d, lengths, offsets); + + int offset = 0; + double min_value, max_value; + + min_value = 10e10; + max_value = -min_value; + for (int x = 0; x< nx; ++x) { + double value = d[x]; + if( is_eq(value, missing_value) || is_eq(value, fill_value) ) { + value = bad_data_double; + } + else { + if (min_value > value) min_value = value; + if (max_value < value) max_value = value; + } + + plane.set(value, x, 0); + + } // for x + + delete [] d; + + // done + ConcatString log_message; + for (int idx=0; idxvar, a, plane); + + // store the times + unixtime valid_ut; + if(info->t_slot >= 0) valid_ut = ValidTime[a[info->t_slot]]; + else valid_ut = ValidTime[0]; + + // if unset, set the init time to the valid time + unixtime init_ut = InitTime; + if(init_ut == 0 && valid_ut != 0) { + mlog << Debug(4) << "UGridFile::getData() -> " + << "setting the unset init time to the valid time of " + << unix_to_yyyymmdd_hhmmss(valid_ut) << ".\n"; + init_ut = valid_ut; + } + + unixtime accum_time = info->AccumTime; + if ((0 == accum_time) && (AccumTime>0)) accum_time = AccumTime; + + plane.set_init(init_ut); + plane.set_valid(valid_ut); + plane.set_lead(valid_ut - init_ut); + plane.set_accum(accum_time); + + // done + + return found; +} + + +//////////////////////////////////////////////////////////////////////// + + +StringArray UGridFile::get_metadata_names(std::string &key) { + StringArray empty; + auto search = metadata_map.find(key); + return search == metadata_map.end() ? empty : metadata_map[key]; +} + + +//////////////////////////////////////////////////////////////////////// + +bool UGridFile::get_var_info() { + + // Pull out the variables + if (Var) { + delete [] Var; + Var = (NcVarInfo *)nullptr; + } + + NcDim dim; + int meta_count = 0; + int max_dim_count = 0; + ConcatString att_value; + StringArray var_names; + + Nvars = get_var_names(_ncFile, &var_names); + Var = new NcVarInfo [Nvars]; + + for (int j=0; j max_dim_count) max_dim_count = dim_count; + + Var[j].Dims = new NcDim * [dim_count]; + + // parse the variable attributes + get_att_str( Var[j], long_name_att_name, Var[j].long_name_att ); + get_att_str( Var[j], units_att_name, Var[j].units_att ); + + } // for j + + // done + + return true; +} + +//////////////////////////////////////////////////////////////////////// + + +int UGridFile::lead_time() const +{ + unixtime dt = ValidTime[0] - InitTime; + + return (int) dt; +} + + +//////////////////////////////////////////////////////////////////////// + + +void UGridFile::read_config(ConcatString config_filename) { + const char *method_name = "UGridFile::read_config() "; + double conf_value; + ConcatString conf_value_s; + MetConfig conf; + + // Read the default config file + mlog << Debug(6) << method_name + << "configuration from " << config_filename << " (" << replace_path(config_filename) << ")\n"; + conf.read(replace_path(config_filename).c_str()); + + conf_value = parse_conf_ugrid_max_distance_km(&conf); + if (!is_eq(conf_value, bad_data_double)) max_distance_km = conf_value; + conf_value_s = parse_conf_ugrid_coordinates_file(&conf); + if (0 < conf_value_s.length()) coordinate_file = conf_value_s; + parse_add_conf_ugrid_metadata_map(&conf, &metadata_map); + + metadata_names.clear(); + for (std::map::iterator it=metadata_map.begin(); + it!=metadata_map.end(); ++it) { + metadata_names.add(it->second); + } + + mlog << Debug(6) << method_name + << "map size: " << metadata_map.size() << ", dims_vars_count = " << metadata_names.n() << "\n"; + +} + +//////////////////////////////////////////////////////////////////////// + + +void UGridFile::read_netcdf_grid() +{ + // Loop through the variables looking for the first gridded variable. We + // will use this variable to pull out the grid information. The CF + // description allows for different fields in the same file to have different + // grids, but with how the gridded information is used in MET, I'm making the + // assumption that all fields are on the same grid. + + ConcatString units_value; + const char *method_name = "UGridFile::read_netcdf_grid() -> "; + + double *_lat = new double[face_count]; + double *_lon = new double[face_count]; + + if (IS_INVALID_NC_P(_latVar)) { + mlog << Error << "\n" << method_name << "latitude variable is missing\n\n"; + exit(1); + } + else if (!get_nc_data(_latVar,_lat)) { + mlog << Error << "\n" << method_name << "fail to read latitude values\n\n"; + exit(1); + } + + if (IS_INVALID_NC_P(_lonVar)) { + mlog << Error << "\n" << method_name << "longitude variable is missing\n\n"; + exit(1); + } + else if (!get_nc_data(_lonVar,_lon)) { + mlog << Error << "\n" << method_name << "fail to read latitude values\n\n"; + exit(1); + } + + if (get_var_units(_latVar, units_value)) { + if (units_value == "rad" || units_value == "radian") { + mlog << Debug(6) << method_name << "convert " << units_value << " to degree for lat\n"; + for (int idx=0; idx + +#include "vx_grid.h" +#include "nc_utils.h" +#include "data_plane.h" +#include "long_array.h" +#include "nc_var_info.h" + + +//////////////////////////////////////////////////////////////////////// + + +static const int UG_DIM_COUNT = 5; +static const int UG_META_VAR_COUNT = 9; + + +//////////////////////////////////////////////////////////////////////// + + +class UGridFile { + + public: + + UGridFile(); + ~UGridFile(); + + bool open(const char *filename); + bool open_metadata(const char *filename); + bool get_var_info(); + + ConcatString coordinate_nc(); + void set_dataset(ConcatString _dataset_name); + void set_map_config_file(ConcatString filename); + void set_max_distance_km(double max_distance); + + void close(); + + void dump(std::ostream &, int = 0) const; + + + int getNx() const { + return (_faceDim == nullptr) ? 0 : GET_NC_SIZE_P(_faceDim); + } + + int getNy() const { + return 1; + } + + NcVarInfo *get_time_var_info() const { return _time_var_info; } + + // + // time + // + + TimeArray ValidTime; + NumArray raw_times; + NumArray vlevels; + + unixtime InitTime; + unixtime AccumTime; + + int lead_time () const; // seconds + + + // + // variables + // + + int Nvars; + + NcVarInfo *Var; // allocated + std::arrayMetaVar; + + // + // Grid + // + + Grid grid; + UnstructuredData grid_data; + + // + // data + // + + double getData(netCDF::NcVar *, const LongArray &) const; + + bool getData(netCDF::NcVar *, const LongArray &, DataPlane &) const; + + bool getData(const char *, const LongArray &, DataPlane &, NcVarInfo *&) const; + + netCDF::NcDim *get_vert_dim() const; + NcVarInfo* find_by_name(const char * var_name) const; + NcVarInfo* find_var_by_dim_name(const char *dim_name) const; + bool find_nc_vinfo_list(const char *var_name, std::vector &vinfo_list) const; + + + private: + + static const double DELTA_TOLERANCE; + + netCDF::NcFile * _ncFile; // allocated + netCDF::NcFile * _ncMetaFile; // allocated + + ConcatString dataset_name; + ConcatString coordinate_file; + StringArray metadata_names; + std::map metadata_map; + double max_distance_km; + // + // dimensions + // + + int _numDims; + + //std::array _dims; // allocated + + StringArray _dimNames; + + // Pointers to the X/Y and time dimensions and the associated coordinate + // variables. Note that these are pointers into the _dims and Var + // arrays so should not be deleted. + + netCDF::NcDim *_faceDim; + netCDF::NcDim *_edgeDim; + netCDF::NcDim *_nodeDim; + netCDF::NcDim *_virtDim; + netCDF::NcDim *_tDim; + + netCDF::NcVar *_latVar; + netCDF::NcVar *_lonVar; + NcVarInfo *_time_var_info; + + int face_count; + //double *_lat; + //double *_lon; + + void init_from_scratch(); + + UGridFile(const UGridFile &); + UGridFile & operator=(const UGridFile &); + + // Determine the file times from the filename + + // Read the grid information from the netCDF file and fill in the + // grid member with that information. + + std::string find_metadata_name(std::string &key, StringArray &available_names); + StringArray get_metadata_names(std::string &key); + void read_config(ConcatString config_filename); + void read_netcdf_grid(); + +}; + + +//////////////////////////////////////////////////////////////////////// + +inline netCDF::NcDim *UGridFile::get_vert_dim() const { return _virtDim; } +inline ConcatString UGridFile::coordinate_nc() { return coordinate_file; } + +//////////////////////////////////////////////////////////////////////// + +#endif /* __UGRID_FILE_H__ */ + + +//////////////////////////////////////////////////////////////////////// + + diff --git a/src/libcode/vx_data2d_ugrid/var_info_ugrid.cc b/src/libcode/vx_data2d_ugrid/var_info_ugrid.cc new file mode 100644 index 0000000000..a40844de76 --- /dev/null +++ b/src/libcode/vx_data2d_ugrid/var_info_ugrid.cc @@ -0,0 +1,488 @@ +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +// ** Copyright UCAR (c) 1992 - 2023 +// ** University Corporation for Atmospheric Research (UCAR) +// ** National Center for Atmospheric Research (NCAR) +// ** Research Applications Lab (RAL) +// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + +/////////////////////////////////////////////////////////////////////////////// +// +// Filename: var_info_ugrid.cc +// +// Description: +// +// Mod# Date Name Description +// ---- ---- ---- ----------- +// +/////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include + +#include "var_info.h" +#include "var_info_ugrid.h" + +#include "vx_math.h" +#include "util_constants.h" +#include "vx_log.h" +#include "grib_strings.h" + +using namespace std; + + +/////////////////////////////////////////////////////////////////////////////// + +static bool is_grib_code_abbr_match(const ConcatString &, int); + +/////////////////////////////////////////////////////////////////////////////// +// +// Code for class VarInfoUGrid +// +/////////////////////////////////////////////////////////////////////////////// + +VarInfoUGrid::VarInfoUGrid() { + + init_from_scratch(); +} + +/////////////////////////////////////////////////////////////////////////////// + +VarInfoUGrid::~VarInfoUGrid() { + + clear(); +} + +/////////////////////////////////////////////////////////////////////////////// + +VarInfoUGrid::VarInfoUGrid(const VarInfoUGrid &f) { + + init_from_scratch(); + + assign(f); +} + +/////////////////////////////////////////////////////////////////////////////// + +VarInfoUGrid & VarInfoUGrid::operator=(const VarInfoUGrid &f) { + + if ( this == &f ) return ( *this ); + + assign(f); + + return ( *this ); +} + +/////////////////////////////////////////////////////////////////////////////// + +void VarInfoUGrid::init_from_scratch() { + + // First call the parent's initialization + VarInfo::init_from_scratch(); + + clear(); + + return; +} + +/////////////////////////////////////////////////////////////////////////////// + +void VarInfoUGrid::assign(const VarInfoUGrid &v) { + int i; + + // First call the parent's assign + VarInfo::assign(v); + + // Copy + clear_dimension(); + for(i=0; i 0) lvl_type = cfg_level.char_at(0); + if (lvl_type == 'A' || lvl_type == 'Z' || lvl_type == 'P' || + lvl_type == 'R' || lvl_type == 'L') { + set_level_info_grib(dict); + VarInfo::set_magic(cfg_name, cfg_level); + } + else set_magic(cfg_name, cfg_level); + + if (Level.lower() != Level.upper()) { + mlog << Error << "\n" << method_name + << "Multiple vertical levels (" + << cfg_level << ") for UGrid are not supported\n\n"; + exit(1); + } + + set_req_name(cfg_name.c_str()); + + return; +} + +/////////////////////////////////////////////////////////////////////////////// + +bool VarInfoUGrid::is_precipitation() const { + + // + // Check set_attrs entry + // + if(!is_bad_data(SetAttrIsPrecipitation)) { + return(SetAttrIsPrecipitation != 0); + } + + // + // Check to see if the VarInfo name begins with the GRIB code abbreviation + // for any precipitation variables. + // + return(has_prefix(grib_precipitation_abbr, + n_grib_precipitation_abbr, + Name.c_str())); +} + +/////////////////////////////////////////////////////////////////////////////// + +bool VarInfoUGrid::is_specific_humidity() const { + + // + // Check set_attrs entry + // + if(!is_bad_data(SetAttrIsSpecificHumidity)) { + return(SetAttrIsSpecificHumidity != 0); + } + + // + // Check to see if the VarInfo name begins with the GRIB code abbreviation + // for any specific humidity variables. + // + return(has_prefix(grib_specific_humidity_abbr, + n_grib_specific_humidity_abbr, + Name.c_str())); +} + +/////////////////////////////////////////////////////////////////////////////// + +bool VarInfoUGrid::is_u_wind() const { + + // + // Check set_attrs entry + // + if(!is_bad_data(SetAttrIsUWind)) { + return(SetAttrIsUWind != 0); + } + + return(is_grib_code_abbr_match(Name, ugrd_grib_code)); +} + +/////////////////////////////////////////////////////////////////////////////// + +bool VarInfoUGrid::is_v_wind() const { + + // + // Check set_attrs entry + // + if(!is_bad_data(SetAttrIsVWind)) { + return(SetAttrIsVWind != 0); + } + + return(is_grib_code_abbr_match(Name, vgrd_grib_code)); +} + +/////////////////////////////////////////////////////////////////////////////// + +bool VarInfoUGrid::is_wind_speed() const { + + // + // Check set_attrs entry + // + if(!is_bad_data(SetAttrIsWindSpeed)) { + return(SetAttrIsWindSpeed != 0); + } + + return(is_grib_code_abbr_match(Name, wind_grib_code)); +} + +/////////////////////////////////////////////////////////////////////////////// + +bool VarInfoUGrid::is_wind_direction() const { + + // + // Check set_attrs entry + // + if(!is_bad_data(SetAttrIsWindDirection)) { + return(SetAttrIsWindDirection != 0); + } + + return(is_grib_code_abbr_match(Name, wdir_grib_code)); +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Begin miscellaneous utility functions +// +/////////////////////////////////////////////////////////////////////////////// + +bool is_grib_code_abbr_match(const ConcatString &str, int grib_code) { + ConcatString abbr_str; + bool match = false; + + if(str.empty()) return(false); + + // + // Use the default GRIB1 parameter table version number 2 + // + abbr_str = get_grib_code_abbr(grib_code, 2); + + // + // Consider it a match if the search string begins with the GRIB code + // abbreviation, ignoring case. + // + if(strncasecmp(str.c_str(), abbr_str.c_str(), abbr_str.length()) == 0) match = true; + + return(match); +} + +/////////////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_ugrid/var_info_ugrid.h b/src/libcode/vx_data2d_ugrid/var_info_ugrid.h new file mode 100644 index 0000000000..b7c64b1014 --- /dev/null +++ b/src/libcode/vx_data2d_ugrid/var_info_ugrid.h @@ -0,0 +1,101 @@ +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +// ** Copyright UCAR (c) 1992 - 2023 +// ** University Corporation for Atmospheric Research (UCAR) +// ** National Center for Atmospheric Research (NCAR) +// ** Research Applications Lab (RAL) +// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + + +/////////////////////////////////////////////////////////////////////////////// + +#ifndef __VAR_INFO_UGRID_H__ +#define __VAR_INFO_UGRID_H__ + +/////////////////////////////////////////////////////////////////////////////// + +#include "var_info.h" + +#include "data_file_type.h" +#include "long_array.h" +#include "math_constants.h" +#include "nc_constants.h" +#include "bool_array.h" + +/////////////////////////////////////////////////////////////////////////////// + +class VarInfoUGrid : public VarInfo +{ + private: + + // + // NetCDF-specific parameters + // + + LongArray Dimension; // Dimension values for extracting 2D field + BoolArray Is_offset; // boolean for Dimension value (true: offset, false: value to be an offset (false for value) + NumArray Dim_value; // Dimension values as float for extracting 2D field + + void init_from_scratch(); + void assign(const VarInfoUGrid &); + void clear_dimension(); + + public: + VarInfoUGrid(); + ~VarInfoUGrid(); + VarInfoUGrid(const VarInfoUGrid &); + VarInfoUGrid & operator=(const VarInfoUGrid &); + + void dump(std::ostream &) const; + void clear(); + + // + // get stuff + // + + GrdFileType file_type() const; + const LongArray & dimension() const; + int dimension(int i) const; + const NumArray & dim_value() const; + double dim_value(int i) const; + const BoolArray & is_offset() const; + bool is_offset(int i) const; + int n_dimension() const; + + // + // set stuff + // + + void set_magic(const ConcatString &, const ConcatString &); + void set_dict(Dictionary &s); + + void add_dimension(int dim, bool as_offset=true, double dim_value=bad_data_double); + + // + // do stuff + // + + bool is_precipitation() const; + bool is_specific_humidity() const; + bool is_u_wind() const; + bool is_v_wind() const; + bool is_wind_speed() const; + bool is_wind_direction() const; +}; + +/////////////////////////////////////////////////////////////////////////////// + +inline GrdFileType VarInfoUGrid::file_type() const { return(FileType_UGrid); } +inline const LongArray & VarInfoUGrid::dimension() const { return(Dimension); } +inline int VarInfoUGrid::dimension(int i) const { return(Dimension[i]); } +inline int VarInfoUGrid::n_dimension() const { return(Dimension.n_elements());} +inline const NumArray & VarInfoUGrid::dim_value() const { return(Dim_value); } +inline double VarInfoUGrid::dim_value(int i) const { return(Dim_value[i]); } +inline const BoolArray & VarInfoUGrid::is_offset() const { return(Is_offset); } +inline bool VarInfoUGrid::is_offset(int i) const { return(Is_offset[i]); } + +/////////////////////////////////////////////////////////////////////////////// + +#endif // __VAR_INFO_UGRID_H__ + +/////////////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_ugrid/vx_data2d_ugrid.h b/src/libcode/vx_data2d_ugrid/vx_data2d_ugrid.h new file mode 100644 index 0000000000..3156f8a9b7 --- /dev/null +++ b/src/libcode/vx_data2d_ugrid/vx_data2d_ugrid.h @@ -0,0 +1,38 @@ + + +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +// ** Copyright UCAR (c) 1992 - 2023 +// ** University Corporation for Atmospheric Research (UCAR) +// ** National Center for Atmospheric Research (NCAR) +// ** Research Applications Lab (RAL) +// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + + + + +//////////////////////////////////////////////////////////////////////// + + +#ifndef __VX_DATA2D_UGRID_H__ +#define __VX_DATA2D_UGRID_H__ + + +//////////////////////////////////////////////////////////////////////// + + +#include "data2d_ugrid.h" +#include "var_info_ugrid.h" +#include "ugrid_file.h" + + +//////////////////////////////////////////////////////////////////////// + + +#endif // __VX_DATA2D_UGRID_H__ + + +//////////////////////////////////////////////////////////////////////// + + + diff --git a/src/libcode/vx_geodesy/Makefile.in b/src/libcode/vx_geodesy/Makefile.in index eda413d780..245df2de69 100644 --- a/src/libcode/vx_geodesy/Makefile.in +++ b/src/libcode/vx_geodesy/Makefile.in @@ -213,7 +213,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -227,11 +228,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -270,11 +277,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_gis/Makefile.in b/src/libcode/vx_gis/Makefile.in index 412cd006f3..8c7096d7bf 100644 --- a/src/libcode/vx_gis/Makefile.in +++ b/src/libcode/vx_gis/Makefile.in @@ -222,7 +222,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -236,11 +237,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -279,11 +286,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_gnomon/Makefile.in b/src/libcode/vx_gnomon/Makefile.in index 3086a47bbf..22cdb0cba7 100644 --- a/src/libcode/vx_gnomon/Makefile.in +++ b/src/libcode/vx_gnomon/Makefile.in @@ -213,7 +213,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -227,11 +228,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -270,11 +277,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_grid/Makefile.am b/src/libcode/vx_grid/Makefile.am index 1652066e87..58e572439b 100644 --- a/src/libcode/vx_grid/Makefile.am +++ b/src/libcode/vx_grid/Makefile.am @@ -35,4 +35,10 @@ libvx_grid_a_SOURCES = \ semilatlon_grid_defs.h \ semilatlon_grid.cc semilatlon_grid.h \ vx_grid.h + +if ENABLE_UGRID + libvx_grid_a_SOURCES += unstructured_grid.cc unstructured_grid.h unstructured_grid_defs.h +endif + + libvx_grid_a_CPPFLAGS = ${MET_CPPFLAGS} diff --git a/src/libcode/vx_grid/Makefile.in b/src/libcode/vx_grid/Makefile.in index a67bd0ec16..d2e99030d9 100644 --- a/src/libcode/vx_grid/Makefile.in +++ b/src/libcode/vx_grid/Makefile.in @@ -88,6 +88,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ +@ENABLE_UGRID_TRUE@am__append_1 = unstructured_grid.cc unstructured_grid.h unstructured_grid_defs.h subdir = src/libcode/vx_grid ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac @@ -107,6 +108,20 @@ am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libvx_grid_a_AR = $(AR) $(ARFLAGS) libvx_grid_a_LIBADD = +am__libvx_grid_a_SOURCES_DIST = earth_rotation.cc earth_rotation.h \ + find_grid_by_name.cc find_grid_by_name.h grid_base.cc \ + grid_base.h latlon_grid_defs.h latlon_grid.cc latlon_grid.h \ + laea_grid_defs.h laea_grid.cc laea_grid.h lc_grid_defs.h \ + lc_grid.cc lc_grid.h merc_grid_defs.h merc_grid.cc merc_grid.h \ + gaussian_grid_defs.h gaussian_grid.cc gaussian_grid.h \ + st_grid_defs.h st_grid.cc st_grid.h latlon_xyz.h latlon_xyz.cc \ + rot_latlon_grid.cc rot_latlon_grid.h tcrmw_grid.cc \ + tcrmw_grid.h goes_grid_defs.h goes_grid.cc goes_grid.h \ + semilatlon_grid_defs.h semilatlon_grid.cc semilatlon_grid.h \ + vx_grid.h unstructured_grid.cc unstructured_grid.h \ + unstructured_grid_defs.h +@ENABLE_UGRID_TRUE@am__objects_1 = \ +@ENABLE_UGRID_TRUE@ libvx_grid_a-unstructured_grid.$(OBJEXT) am_libvx_grid_a_OBJECTS = libvx_grid_a-earth_rotation.$(OBJEXT) \ libvx_grid_a-find_grid_by_name.$(OBJEXT) \ libvx_grid_a-grid_base.$(OBJEXT) \ @@ -120,7 +135,7 @@ am_libvx_grid_a_OBJECTS = libvx_grid_a-earth_rotation.$(OBJEXT) \ libvx_grid_a-rot_latlon_grid.$(OBJEXT) \ libvx_grid_a-tcrmw_grid.$(OBJEXT) \ libvx_grid_a-goes_grid.$(OBJEXT) \ - libvx_grid_a-semilatlon_grid.$(OBJEXT) + libvx_grid_a-semilatlon_grid.$(OBJEXT) $(am__objects_1) libvx_grid_a_OBJECTS = $(am_libvx_grid_a_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) @@ -150,7 +165,8 @@ am__depfiles_remade = ./$(DEPDIR)/libvx_grid_a-earth_rotation.Po \ ./$(DEPDIR)/libvx_grid_a-rot_latlon_grid.Po \ ./$(DEPDIR)/libvx_grid_a-semilatlon_grid.Po \ ./$(DEPDIR)/libvx_grid_a-st_grid.Po \ - ./$(DEPDIR)/libvx_grid_a-tcrmw_grid.Po + ./$(DEPDIR)/libvx_grid_a-tcrmw_grid.Po \ + ./$(DEPDIR)/libvx_grid_a-unstructured_grid.Po am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -182,7 +198,7 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libvx_grid_a_SOURCES) -DIST_SOURCES = $(libvx_grid_a_SOURCES) +DIST_SOURCES = $(am__libvx_grid_a_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -239,7 +255,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -253,11 +270,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -296,11 +319,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -361,31 +387,17 @@ MAINTAINERCLEANFILES = Makefile.in # The library noinst_LIBRARIES = libvx_grid.a -libvx_grid_a_SOURCES = \ - earth_rotation.cc earth_rotation.h \ - find_grid_by_name.cc find_grid_by_name.h \ - grid_base.cc grid_base.h \ - latlon_grid_defs.h \ - latlon_grid.cc latlon_grid.h \ - laea_grid_defs.h \ - laea_grid.cc laea_grid.h \ - lc_grid_defs.h \ - lc_grid.cc lc_grid.h \ - merc_grid_defs.h \ - merc_grid.cc merc_grid.h \ - gaussian_grid_defs.h \ - gaussian_grid.cc gaussian_grid.h \ - st_grid_defs.h \ - st_grid.cc st_grid.h \ - latlon_xyz.h latlon_xyz.cc \ - rot_latlon_grid.cc rot_latlon_grid.h \ - tcrmw_grid.cc tcrmw_grid.h \ - goes_grid_defs.h \ - goes_grid.cc goes_grid.h \ - semilatlon_grid_defs.h \ - semilatlon_grid.cc semilatlon_grid.h \ - vx_grid.h - +libvx_grid_a_SOURCES = earth_rotation.cc earth_rotation.h \ + find_grid_by_name.cc find_grid_by_name.h grid_base.cc \ + grid_base.h latlon_grid_defs.h latlon_grid.cc latlon_grid.h \ + laea_grid_defs.h laea_grid.cc laea_grid.h lc_grid_defs.h \ + lc_grid.cc lc_grid.h merc_grid_defs.h merc_grid.cc merc_grid.h \ + gaussian_grid_defs.h gaussian_grid.cc gaussian_grid.h \ + st_grid_defs.h st_grid.cc st_grid.h latlon_xyz.h latlon_xyz.cc \ + rot_latlon_grid.cc rot_latlon_grid.h tcrmw_grid.cc \ + tcrmw_grid.h goes_grid_defs.h goes_grid.cc goes_grid.h \ + semilatlon_grid_defs.h semilatlon_grid.cc semilatlon_grid.h \ + vx_grid.h $(am__append_1) libvx_grid_a_CPPFLAGS = ${MET_CPPFLAGS} all: all-am @@ -449,6 +461,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_grid_a-semilatlon_grid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_grid_a-st_grid.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_grid_a-tcrmw_grid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_grid_a-unstructured_grid.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @@ -666,6 +679,20 @@ libvx_grid_a-semilatlon_grid.obj: semilatlon_grid.cc @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_grid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_grid_a-semilatlon_grid.obj `if test -f 'semilatlon_grid.cc'; then $(CYGPATH_W) 'semilatlon_grid.cc'; else $(CYGPATH_W) '$(srcdir)/semilatlon_grid.cc'; fi` +libvx_grid_a-unstructured_grid.o: unstructured_grid.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_grid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_grid_a-unstructured_grid.o -MD -MP -MF $(DEPDIR)/libvx_grid_a-unstructured_grid.Tpo -c -o libvx_grid_a-unstructured_grid.o `test -f 'unstructured_grid.cc' || echo '$(srcdir)/'`unstructured_grid.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_grid_a-unstructured_grid.Tpo $(DEPDIR)/libvx_grid_a-unstructured_grid.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='unstructured_grid.cc' object='libvx_grid_a-unstructured_grid.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_grid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_grid_a-unstructured_grid.o `test -f 'unstructured_grid.cc' || echo '$(srcdir)/'`unstructured_grid.cc + +libvx_grid_a-unstructured_grid.obj: unstructured_grid.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_grid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_grid_a-unstructured_grid.obj -MD -MP -MF $(DEPDIR)/libvx_grid_a-unstructured_grid.Tpo -c -o libvx_grid_a-unstructured_grid.obj `if test -f 'unstructured_grid.cc'; then $(CYGPATH_W) 'unstructured_grid.cc'; else $(CYGPATH_W) '$(srcdir)/unstructured_grid.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_grid_a-unstructured_grid.Tpo $(DEPDIR)/libvx_grid_a-unstructured_grid.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='unstructured_grid.cc' object='libvx_grid_a-unstructured_grid.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_grid_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_grid_a-unstructured_grid.obj `if test -f 'unstructured_grid.cc'; then $(CYGPATH_W) 'unstructured_grid.cc'; else $(CYGPATH_W) '$(srcdir)/unstructured_grid.cc'; fi` + ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am @@ -805,6 +832,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/libvx_grid_a-semilatlon_grid.Po -rm -f ./$(DEPDIR)/libvx_grid_a-st_grid.Po -rm -f ./$(DEPDIR)/libvx_grid_a-tcrmw_grid.Po + -rm -f ./$(DEPDIR)/libvx_grid_a-unstructured_grid.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -864,6 +892,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libvx_grid_a-semilatlon_grid.Po -rm -f ./$(DEPDIR)/libvx_grid_a-st_grid.Po -rm -f ./$(DEPDIR)/libvx_grid_a-tcrmw_grid.Po + -rm -f ./$(DEPDIR)/libvx_grid_a-unstructured_grid.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic diff --git a/src/libcode/vx_grid/grid_base.cc b/src/libcode/vx_grid/grid_base.cc index 9e5dd32607..9ed499be1e 100644 --- a/src/libcode/vx_grid/grid_base.cc +++ b/src/libcode/vx_grid/grid_base.cc @@ -34,7 +34,7 @@ static const int grid_debug_level = 4; /////////////////////////////////////////////////////////////////////////////// -inline bool is_even(int k) { return ( (k%2) == 0 ); } +inline bool is_even(int k) { return (k%2) == 0; } //////////////////////////////////////////////////////////////////////// @@ -292,7 +292,7 @@ void SemiLatLonData::clear() { -name = (const char *) 0; +name = (const char *) nullptr; lats.clear(); lons.clear(); @@ -302,6 +302,51 @@ times.clear(); } +//////////////////////////////////////////////////////////////////////// + +#ifdef WITH_UGRID + +void UnstructuredData::clear() { + + name = (const char *) nullptr; + + max_distance_km = bad_data_double; // disable max_distance + + clear_data(); + +} + + +//////////////////////////////////////////////////////////////////////// + +void UnstructuredData::clear_data() { + + Nface = Nnode = Nedge = 0; + pointLonLat.clear(); + lat_checksum = lon_checksum = 0.; + + if (kdtree) { delete kdtree; kdtree = nullptr; } + +} + + +//////////////////////////////////////////////////////////////////////// + + +void UnstructuredData::dump() const { + + mlog << Debug(grid_debug_level) + << "\nUnstructured Grid Data:\n" + << " Nface: " << Nface << "\n" + << " lat_checksum: " << lat_checksum << "\n" + << " lon_checksum: " << lon_checksum << "\n" + << " max_distance_km: " << max_distance_km << "\n" + ; +} + +#endif + + //////////////////////////////////////////////////////////////////////// @@ -355,11 +400,9 @@ GridInfo & GridInfo::operator=(const GridInfo & info) { -if ( this == &info ) return ( * this ); - -assign(info); +if ( this != &info ) assign(info); -return ( * this ); +return *this; } @@ -371,16 +414,19 @@ void GridInfo::init_from_scratch() { -lc = (const LambertData *) 0; -st = (const StereographicData *) 0; -ll = (const LatLonData *) 0; -rll = (const RotatedLatLonData *) 0; -m = (const MercatorData *) 0; -g = (const GaussianData *) 0; -gi = (const GoesImagerData *) 0; -la = (const LaeaData *) 0; -tc = (const TcrmwData *) 0; -sl = (const SemiLatLonData *) 0; +lc = (const LambertData *) nullptr; +st = (const StereographicData *) nullptr; +ll = (const LatLonData *) nullptr; +rll = (const RotatedLatLonData *) nullptr; +m = (const MercatorData *) nullptr; +g = (const GaussianData *) nullptr; +gi = (const GoesImagerData *) nullptr; +la = (const LaeaData *) nullptr; +tc = (const TcrmwData *) nullptr; +sl = (const SemiLatLonData *) nullptr; +#ifdef WITH_UGRID +us = (const UnstructuredData *) nullptr; +#endif clear(); @@ -396,16 +442,19 @@ void GridInfo::clear() { -if ( lc ) { delete lc; lc = (const LambertData *) 0; }; -if ( st ) { delete st; st = (const StereographicData *) 0; }; -if ( ll ) { delete ll; ll = (const LatLonData *) 0; }; -if ( rll ) { delete rll; rll = (const RotatedLatLonData *) 0; }; -if ( m ) { delete m; m = (const MercatorData *) 0; }; -if ( g ) { delete g; g = (const GaussianData *) 0; }; -if ( gi ) { delete gi; gi = (const GoesImagerData *) 0; }; -if ( la ) { delete la; la = (const LaeaData *) 0; }; -if ( tc ) { delete tc; tc = (const TcrmwData *) 0; }; -if ( sl ) { delete sl; sl = (const SemiLatLonData *) 0; }; +if ( lc ) { delete lc; lc = (const LambertData *) nullptr; }; +if ( st ) { delete st; st = (const StereographicData *) nullptr; }; +if ( ll ) { delete ll; ll = (const LatLonData *) nullptr; }; +if ( rll ) { delete rll; rll = (const RotatedLatLonData *) nullptr; }; +if ( m ) { delete m; m = (const MercatorData *) nullptr; }; +if ( g ) { delete g; g = (const GaussianData *) nullptr; }; +if ( gi ) { delete gi; gi = (const GoesImagerData *) nullptr; }; +if ( la ) { delete la; la = (const LaeaData *) nullptr; }; +if ( tc ) { delete tc; tc = (const TcrmwData *) nullptr; }; +if ( sl ) { delete sl; sl = (const SemiLatLonData *) nullptr; }; +#ifdef WITH_UGRID +if ( us ) { delete us; us = (const UnstructuredData *) nullptr; }; +#endif return; @@ -428,6 +477,9 @@ if ( info.g ) set( *(info.g) ); if ( info.gi ) set( *(info.gi) ); if ( info.la ) set( *(info.la) ); if ( info.sl ) set( *(info.sl) ); +#ifdef WITH_UGRID +if ( info.us ) set( *(info.us) ); +#endif return; @@ -452,8 +504,11 @@ if ( g ) ++count; if ( gi ) ++count; if ( la ) ++count; if ( sl ) ++count; +#ifdef WITH_UGRID +if ( us ) ++count; +#endif -return ( count == 1 ); +return count == 1; } @@ -482,6 +537,9 @@ else if ( g ) gg.set( *g ); else if ( gi ) gg.set( *gi ); else if ( la ) gg.set( *la ); else if ( sl ) gg.set( *sl ); +#ifdef WITH_UGRID +else if ( us ) gg.set( *us ); +#endif return; @@ -497,13 +555,13 @@ void GridInfo::set(const LambertData & data) clear(); -LambertData * D = (LambertData *) 0; +LambertData * D = (LambertData *) nullptr; D = new LambertData; memcpy(D, &data, sizeof(data)); -lc = D; D = (LambertData *) 0; +lc = D; D = (LambertData *) nullptr; return; @@ -519,13 +577,13 @@ void GridInfo::set(const StereographicData & data) clear(); -StereographicData * D = (StereographicData *) 0; +StereographicData * D = (StereographicData *) nullptr; D = new StereographicData; memcpy(D, &data, sizeof(data)); -st = D; D = (StereographicData *) 0; +st = D; D = (StereographicData *) nullptr; return; @@ -541,13 +599,13 @@ void GridInfo::set(const LatLonData & data) clear(); -LatLonData * D = (LatLonData *) 0; +LatLonData * D = (LatLonData *) nullptr; D = new LatLonData; memcpy(D, &data, sizeof(data)); -ll = D; D = (LatLonData *) 0; +ll = D; D = (LatLonData *) nullptr; return; @@ -563,13 +621,13 @@ void GridInfo::set(const RotatedLatLonData & data) clear(); -RotatedLatLonData * D = (RotatedLatLonData *) 0; +RotatedLatLonData * D = (RotatedLatLonData *) nullptr; D = new RotatedLatLonData; memcpy(D, &data, sizeof(data)); -rll = D; D = (RotatedLatLonData *) 0; +rll = D; D = (RotatedLatLonData *) nullptr; return; @@ -585,13 +643,13 @@ void GridInfo::set(const MercatorData & data) clear(); -MercatorData * D = (MercatorData *) 0; +MercatorData * D = (MercatorData *) nullptr; D = new MercatorData; memcpy(D, &data, sizeof(data)); -m = D; D = (MercatorData *) 0; +m = D; D = (MercatorData *) nullptr; return; @@ -607,13 +665,13 @@ void GridInfo::set(const GaussianData & data) clear(); -GaussianData * D = (GaussianData *) 0; +GaussianData * D = (GaussianData *) nullptr; D = new GaussianData; memcpy(D, &data, sizeof(data)); -g = D; D = (GaussianData *) 0; +g = D; D = (GaussianData *) nullptr; return; @@ -629,13 +687,13 @@ void GridInfo::set(const GoesImagerData & data) clear(); -GoesImagerData * D = (GoesImagerData *) 0; +GoesImagerData * D = (GoesImagerData *) nullptr; D = new GoesImagerData; memcpy(D, &data, sizeof(data)); -gi = D; D = (GoesImagerData *) 0; +gi = D; D = (GoesImagerData *) nullptr; return; @@ -651,13 +709,13 @@ void GridInfo::set(const LaeaData & data) clear(); -LaeaData * D = (LaeaData *) 0; +LaeaData * D = (LaeaData *) nullptr; D = new LaeaData; memcpy(D, &data, sizeof(data)); -la = D; D = (LaeaData *) 0; +la = D; D = (LaeaData *) nullptr; return; @@ -673,7 +731,7 @@ void GridInfo::set(const SemiLatLonData & data) clear(); -SemiLatLonData * D = (SemiLatLonData *) 0; +SemiLatLonData * D = (SemiLatLonData *) nullptr; D = new SemiLatLonData; @@ -684,13 +742,36 @@ D = new SemiLatLonData; *D = data; -sl = D; D = (SemiLatLonData *) 0; +sl = D; D = (SemiLatLonData *) nullptr; return; } +//////////////////////////////////////////////////////////////////////// + + +#ifdef WITH_UGRID +void GridInfo::set(const UnstructuredData & data) + +{ + +clear(); + +UnstructuredData *D = new UnstructuredData; + +D->Nedge = data.Nedge; +D->Nnode = data.Nnode; +D->max_distance_km = data.max_distance_km; +D->set_points(data.Nface, data.pointLonLat); +us = D; +D = (UnstructuredData *)nullptr; + +} +#endif + + //////////////////////////////////////////////////////////////////////// @@ -797,11 +878,9 @@ Grid & Grid::operator=(const Grid & g) { -if ( this == &g ) return ( * this ); +if ( this != &g ) assign(g); -assign(g); - -return ( * this ); +return *this; } @@ -827,7 +906,7 @@ void Grid::init_from_scratch() { -rep = (GridRep *) 0; +rep = (GridRep *) nullptr; clear(); @@ -841,7 +920,7 @@ void Grid::clear() { -if ( rep ) { delete rep; rep = (GridRep *) 0; } +if ( rep ) { delete rep; rep = (GridRep *) nullptr; } set_swap_to_north(false); return; @@ -966,7 +1045,7 @@ double Grid::calc_area(int x, int y) const if ( !rep ) return ( 0.0 ); -return ( rep->calc_area(x, y) ); +return rep->calc_area(x, y); } @@ -980,7 +1059,7 @@ int Grid::nx() const if ( !rep ) return ( 0 ); -return ( rep->nx() ); +return rep->nx(); } @@ -994,7 +1073,7 @@ int Grid::ny() const if ( !rep ) return ( 0 ); -return ( rep->ny() ); +return rep->ny(); } @@ -1006,7 +1085,7 @@ int Grid::nxy() const { -return ( nx()*ny() ); +return nx()*ny(); } @@ -1018,9 +1097,9 @@ double Grid::scale_km() const { -if ( !rep ) return ( 0 ); +if ( !rep ) return 0; -return ( rep->scale_km() ); +return rep->scale_km(); } @@ -1032,9 +1111,9 @@ ConcatString Grid::name() const { -if ( !rep ) return ( ConcatString("(no name)") ); +if ( !rep ) return ConcatString("(no name)"); -return ( rep->name() ); +return rep->name(); } @@ -1050,7 +1129,7 @@ ConcatString s; if ( rep ) s = rep->serialize(sep); -return ( s ); +return s; } @@ -1071,7 +1150,7 @@ if ( !rep ) { } -return ( rep->info() ); +return rep->info(); } @@ -1093,7 +1172,7 @@ if ( !rep ) { } -return ( rep->rot_grid_to_earth(x, y) ); +return rep->rot_grid_to_earth(x, y); } @@ -1114,7 +1193,7 @@ if ( !rep ) { } -return ( rep->wrap_lon() ); +return rep->wrap_lon(); } @@ -1135,7 +1214,7 @@ if ( !rep ) { } -return ( rep->shift_right(N) ); +return rep->shift_right(N); } @@ -1246,7 +1325,7 @@ if ( info_new.lc ) { } -return ( g_new ); +return g_new; } @@ -1285,7 +1364,7 @@ iy_ll = ll_func(dy_center, ny_new); // subset // -return ( subset_ll(ix_ll, iy_ll, nx_new, ny_new) ); +return subset_ll(ix_ll, iy_ll, nx_new, ny_new); } @@ -1305,10 +1384,10 @@ bool operator==(const Grid & g1, const Grid & g2) { -if ( !(g1.rep) ) return ( false ); -if ( !(g2.rep) ) return ( false ); +if ( !(g1.rep) ) return false; +if ( !(g2.rep) ) return false; -return ( g1.info() == g2.info() ); +return g1.info() == g2.info(); } @@ -1322,7 +1401,7 @@ bool operator!=(const Grid & g1, const Grid & g2) bool status = (g1 == g2); -return ( ! status ); +return ! status; } @@ -1343,8 +1422,11 @@ else if ( i1.g && i2.g ) return ( is_eq(i1.g, i2.g ) ); else if ( i1.gi && i2.gi ) return ( is_eq(i1.gi, i2.gi ) ); else if ( i1.la && i2.la ) return ( is_eq(i1.la, i2.la ) ); else if ( i1.sl && i2.sl ) return ( is_eq(i1.sl, i2.sl ) ); +#ifdef WITH_UGRID +else if ( i1.us && i2.us ) return ( is_eq(i1.us, i2.us ) ); +#endif -return ( false ); +return false; } @@ -1356,7 +1438,7 @@ bool is_eq(const LambertData * lc1, const LambertData * lc2) { -if ( !lc1 || !lc2 ) return ( false ); +if ( !lc1 || !lc2 ) return false; bool status = false; @@ -1375,7 +1457,7 @@ if ( lc1->nx == lc2->nx && is_eq (lc1->r_km, lc2->r_km, loose_tol) && is_eq (lc1->so2_angle, lc2->so2_angle, loose_tol) ) status = true; -return ( status ); +return status; } @@ -1387,7 +1469,7 @@ bool is_eq(const StereographicData * st1, const StereographicData * st2) { -if ( !st1 || !st2 ) return ( false ); +if ( !st1 || !st2 ) return false; bool status = false; @@ -1406,7 +1488,7 @@ if ( st1->nx == st2->nx && is_eq (st1->dy_km, st2->dy_km, loose_tol) && is_eq (st1->r_km, st2->r_km, loose_tol) ) status = true; -return ( status ); +return status; } @@ -1418,7 +1500,7 @@ bool is_eq(const LatLonData * ll1, const LatLonData * ll2) { -if ( !ll1 || !ll2 ) return ( false ); +if ( !ll1 || !ll2 ) return false; bool status = false; @@ -1430,7 +1512,7 @@ if ( ll1->Nlat == ll2->Nlat && is_eq (ll1->delta_lat, ll2->delta_lat, loose_tol) && is_eq (ll1->delta_lon, ll2->delta_lon, loose_tol) ) status = true; -return ( status ); +return status; } @@ -1442,7 +1524,7 @@ bool is_eq(const RotatedLatLonData * ll1, const RotatedLatLonData * ll2) { -if ( !ll1 || !ll2 ) return ( false ); +if ( !ll1 || !ll2 ) return false; bool status = false; @@ -1463,7 +1545,7 @@ if ( ll1->Nlat == ll2->Nlat && is_eq (ll1->aux_rotation, ll2->aux_rotation, loose_tol) ) status = true; -return ( status ); +return status; } @@ -1475,7 +1557,7 @@ bool is_eq(const MercatorData * m1, const MercatorData * m2) { -if ( !m1 || !m2 ) return ( false ); +if ( !m1 || !m2 ) return false; bool status = false; @@ -1488,7 +1570,7 @@ if ( m1->nx == m2->nx && is_eq (rescale_lon(m1->lon_ur), rescale_lon(m2->lon_ur), loose_tol) ) status = true; -return ( status ); +return status; } @@ -1500,7 +1582,7 @@ bool is_eq(const GaussianData * g1, const GaussianData * g2) { -if ( !g1 || !g2 ) return ( false ); +if ( !g1 || !g2 ) return false; bool status = false; @@ -1509,7 +1591,7 @@ if ( is_eq (rescale_lon(g1->lon_zero), g1->nx == g2->nx && g1->ny == g2->ny ) status = true; -return ( status ); +return status; } @@ -1520,7 +1602,7 @@ return ( status ); bool is_eq(const GoesImagerData * gi1, const GoesImagerData * gi2) { -if ( !gi1 || !gi2 ) return ( false ); +if ( !gi1 || !gi2 ) return false; bool status = false; @@ -1541,7 +1623,7 @@ if ( gi1->nx == gi2->nx && is_eq (gi1->dx_rad, gi2->dx_rad, loose_tol) && is_eq (gi1->dy_rad, gi2->dy_rad, loose_tol) ) status = true; -return ( status ); +return status; } @@ -1553,7 +1635,7 @@ bool is_eq(const LaeaData * g1, const LaeaData * g2) { -if ( !g1 || !g2 ) return ( false ); +if ( !g1 || !g2 ) return false; bool status = false; @@ -1572,7 +1654,7 @@ if ( g1->radius_km == g2->radius_km && g1->ny == g2->ny && g1->is_sphere == g2->is_sphere ) status = true; -return ( status ); +return status; } @@ -1584,7 +1666,7 @@ bool is_eq(const SemiLatLonData * gi1, const SemiLatLonData * gi2) { -if ( !gi1 || !gi2 ) return ( false ); +if ( !gi1 || !gi2 ) return false; bool status = false; @@ -1594,9 +1676,34 @@ if ( gi1->lats == gi2->lats && gi1->times == gi2->times ) status = true; -return ( status ); +return status; + +} + + +//////////////////////////////////////////////////////////////////////// + +#ifdef WITH_UGRID +bool is_eq(const UnstructuredData * us1, const UnstructuredData * us2) + +{ + + bool status = false; + if (us1 && us2) { + if (us1 == us2) status = true; + else status = us1->Nface == us2->Nface + && us1->Nnode == us2->Nnode + && us1->Nedge == us2->Nedge + && us1->pointLonLat[0] == us2->pointLonLat[0] + && (us1->Nface > 0 && us1->pointLonLat[us1->Nface-1] == us2->pointLonLat[us2->Nface-1]) + && is_eq(us1->lat_checksum, us2->lat_checksum) + && is_eq(us1->lon_checksum, us2->lon_checksum); + } + +return status; } +#endif //////////////////////////////////////////////////////////////////////// @@ -1619,7 +1726,7 @@ if ( is_even(N) ) { } -return ( LL ); +return LL; } diff --git a/src/libcode/vx_grid/grid_base.h b/src/libcode/vx_grid/grid_base.h index 81059c0353..feb2c51390 100644 --- a/src/libcode/vx_grid/grid_base.h +++ b/src/libcode/vx_grid/grid_base.h @@ -30,7 +30,9 @@ #include "goes_grid_defs.h" #include "laea_grid_defs.h" #include "semilatlon_grid_defs.h" - +#ifdef WITH_UGRID +#include "unstructured_grid_defs.h" +#endif //////////////////////////////////////////////////////////////////////// @@ -72,6 +74,9 @@ class GridInfo { void set(const TcrmwData &); void set(const LaeaData &); void set(const SemiLatLonData &); +#ifdef WITH_UGRID + void set(const UnstructuredData &); +#endif void create_grid(Grid &) const; @@ -89,6 +94,9 @@ class GridInfo { const TcrmwData * tc; // allocated const LaeaData * la; // allocated const SemiLatLonData * sl; // allocated +#ifdef WITH_UGRID + const UnstructuredData * us; // allocated +#endif }; @@ -210,6 +218,9 @@ class Grid : public GridInterface { Grid(const LaeaData &); Grid(const LaeaNetcdfData &); Grid(const SemiLatLonData &); +#ifdef WITH_UGRID + Grid(const UnstructuredData &); +#endif virtual ~Grid(); Grid(const Grid &); Grid & operator=(const Grid &); @@ -232,6 +243,9 @@ class Grid : public GridInterface { void set (const LaeaData &); void set (const LaeaNetcdfData &); void set (const SemiLatLonData &); +#ifdef WITH_UGRID + void set (const UnstructuredData &); +#endif void set_swap_to_north(bool swap_to_north); bool get_swap_to_north() const; @@ -274,7 +288,7 @@ class Grid : public GridInterface { //////////////////////////////////////////////////////////////////////// -inline bool Grid::is_set() const { return ( rep != 0 ); } +inline bool Grid::is_set() const { return ( rep != nullptr ); } //////////////////////////////////////////////////////////////////////// @@ -293,6 +307,9 @@ extern bool is_eq(const GaussianData *, const GaussianData *); extern bool is_eq(const GoesImagerData *, const GoesImagerData *); extern bool is_eq(const LaeaData *, const LaeaData *); extern bool is_eq(const SemiLatLonData *, const SemiLatLonData *); +#ifdef WITH_UGRID +extern bool is_eq(const UnstructuredData *, const UnstructuredData *); +#endif //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_grid/unstructured_grid.cc b/src/libcode/vx_grid/unstructured_grid.cc new file mode 100644 index 0000000000..652c59b0d1 --- /dev/null +++ b/src/libcode/vx_grid/unstructured_grid.cc @@ -0,0 +1,443 @@ +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +// ** Copyright UCAR (c) 1992 - 2023 +// ** University Corporation for Atmospheric Research (UCAR) +// ** National Center for Atmospheric Research (NCAR) +// ** Research Applications Lab (RAL) +// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + + +//////////////////////////////////////////////////////////////////////// + + +#include +#include +#include +#include +#include +#include + +#include "vx_math.h" +#include "vx_util.h" +#include "vx_log.h" +#include "unstructured_grid.h" + +#include "atlas/grid/Grid.h" // PointLonLat +#include "atlas/util/Geometry.h" +#include "atlas/util/KDTree.h" + +using namespace std; + +using PointLonLat = atlas::PointLonLat; +using Geometry = atlas::Geometry; +using IndexKDTree = atlas::util::IndexKDTree; + +//////////////////////////////////////////////////////////////////////// + +static const int UGRID_DEBUG_LEVEL = 9; + +static atlas::Geometry atlas_geometry; + +//////////////////////////////////////////////////////////////////////// + + + // + // Code for class UnstructuredGrid + // + + +//////////////////////////////////////////////////////////////////////// + + +UnstructuredGrid::UnstructuredGrid() { + clear(); +} + + +//////////////////////////////////////////////////////////////////////// + + +UnstructuredGrid::~UnstructuredGrid() { + clear(); +} + + +//////////////////////////////////////////////////////////////////////// + + +void UnstructuredGrid::clear() { + + Name.clear(); + + Nx = 0; + wrapLon = false; + //pt_distance = -1.; // Disabled + + Data.clear(); + return; + +} + + +//////////////////////////////////////////////////////////////////////// + + +UnstructuredGrid::UnstructuredGrid(const UnstructuredData & data) { + + set_from_data(data); + +} + + +//////////////////////////////////////////////////////////////////////// + +void UnstructuredGrid::set_from_data(const UnstructuredData &data) { + + clear(); + + if (data.name) Name = data.name; + Nx = data.Nface; + + Data.Nface = Nx; + Data.Nedge = data.Nedge; + Data.Nnode = data.Nnode; + Data.max_distance_km = data.max_distance_km; + + Data.set_points(Nx, data.pointLonLat); + +} + +//////////////////////////////////////////////////////////////////////// + +void UnstructuredGrid::set_max_distance_km(double max_distance) { + + Data.max_distance_km = max_distance; + +} + +//////////////////////////////////////////////////////////////////////// + + +void UnstructuredGrid::latlon_to_xy(double lat, double lon, double &x, double &y) const { + + PointLonLat _pointLonLat(lon, lat); + + IndexKDTree::ValueList neighbor = Data.kdtree->closestPoints(_pointLonLat, 1); + size_t index(neighbor[0].payload()); + double distance_km(neighbor[0].distance()/1000.); + bool in_distance = Data.is_in_distance(distance_km); + + x = in_distance ? index : -1.0; + y = 0; + + //PointLonLat r_lonlat; + //if(_distance > 180.0) atlas_geometry.xyz2lonlat(neighbor[0].point(), r_lonlat); + //else r_lonlat.assign(neighbor[0].point()[0], neighbor[0].point()[1]); + + if(mlog.verbosity_level() >= UGRID_DEBUG_LEVEL) mlog + << Debug(UGRID_DEBUG_LEVEL) << "UnstructuredGrid::latlon_to_xy() " + << "input=(" << lon << ", " << lat << ") ==> (" << x << ", " << y << ") == (" + << Data.pointLonLat[index].x() << ", " << Data.pointLonLat[index].y() + << ") distance= " << distance_km << "km, " + << _pointLonLat.distance(Data.pointLonLat[index]) + << " degree" << (in_distance ? " " : ", rejected") << "\n"; +} + + +//////////////////////////////////////////////////////////////////////// + + +void UnstructuredGrid::xy_to_latlon(double x, double y, double &lat, double &lon) const { + + lat = Data.pointLonLat[x].y(); + lon = Data.pointLonLat[x].x(); + + if(mlog.verbosity_level() >= UGRID_DEBUG_LEVEL) mlog + << Debug(UGRID_DEBUG_LEVEL) << "UnstructuredGrid::xy_to_latlon() " + << "(" << x << ", " << y << ") ==> (" << lon << ", " << lat << ").\n"; + +} + + +//////////////////////////////////////////////////////////////////////// + +double UnstructuredGrid::calc_area(int x, int y) const { + + double area = 0.; + + return ( area ); + +} + +//////////////////////////////////////////////////////////////////////// + + +int UnstructuredGrid::nx() const { + + return Nx; + +} + + +//////////////////////////////////////////////////////////////////////// + + +int UnstructuredGrid::ny() const { + + return 1; + +} + + +//////////////////////////////////////////////////////////////////////// + + +ConcatString UnstructuredGrid::name() const { + + return Name; + +} + + +//////////////////////////////////////////////////////////////////////// + + +void UnstructuredGrid::dump(ostream & out, int depth) const { + +Indent prefix(depth); + +out << prefix << "Name = "; + +if ( Name.length() > 0 ) out << '\"' << Name << '\"'; +else out << "(nul)\n"; + +out << '\n'; + +out << prefix << "Nface = " << Nx << "\n"; + + // + // done + // +out.flush(); + +return; + +} + + +//////////////////////////////////////////////////////////////////////// + + +ConcatString UnstructuredGrid::serialize(const char *sep) const { + +ConcatString a; +char junk[256]; + + +a << "Projection: UnstructuredGrid" << sep; + +a << "Nface: " << Nx << sep; + // + // done + // + +return a; + +} + + +//////////////////////////////////////////////////////////////////////// + + +GridInfo UnstructuredGrid::info() const { + +GridInfo i; + +i.set( Data ); + +return i; + +} + + +//////////////////////////////////////////////////////////////////////// + +double UnstructuredGrid::rot_grid_to_earth(int x, int y) const + +{ + +// +// The rotation angle from grid relative to earth relative is zero +// for the PlateCarreeGrids that are defined north and east. This may +// need to be changed when support is added for GRIB2. +// + +return 0.0; + +} + +//////////////////////////////////////////////////////////////////////// + +void UnstructuredGrid::shift_right(int N) +{ + + mlog << Warning << "\nUnstructuredGrid::shift_right(int) -> not implemented\n\n"; + +} + +//////////////////////////////////////////////////////////////////////// + + +GridRep * UnstructuredGrid::copy() const { + + UnstructuredGrid *p = new UnstructuredGrid (Data); + + p->Name = Name; + + return p; + +} + + +//////////////////////////////////////////////////////////////////////// + + + // + // Code for misc functions + // + + +//////////////////////////////////////////////////////////////////////// + + +Grid::Grid(const UnstructuredData &data) { + + init_from_scratch(); + + set(data); + +} + + +//////////////////////////////////////////////////////////////////////// + + +void Grid::set(const UnstructuredData &data) { + clear(); + + rep = new UnstructuredGrid ( data ); + if ( !rep ) { + mlog << Error << "\nGrid::set(const Unstructured &) -> memory allocation error\n\n"; + exit ( 1 ); + } +} + + +//////////////////////////////////////////////////////////////////////// + + +UnstructuredData::UnstructuredData() { + kdtree = nullptr; + max_distance_km = bad_data_double; // disable distance + clear(); +} + +//////////////////////////////////////////////////////////////////////// + +UnstructuredData::~UnstructuredData() { + clear(); +} + +//////////////////////////////////////////////////////////////////////// + +void UnstructuredData::build_tree() { + + atlas::idx_t n = 0; + kdtree = new IndexKDTree(atlas_geometry); + kdtree->reserve(Nface); + for (int i=0; iinsert(pointLL, n++); + lat_checksum += (i+1) * pointLonLat[i].y(); + lon_checksum += (i+1) * pointLonLat[i].x(); + } + + kdtree->build(); + +} + +//////////////////////////////////////////////////////////////////////// + +void UnstructuredData::copy_from(const UnstructuredData &us_data) { + set_points(us_data.Nface, us_data.pointLonLat); + Nedge = us_data.Nedge; + Nnode = us_data.Nnode; + max_distance_km = us_data.max_distance_km; +} + +//////////////////////////////////////////////////////////////////////// + +void UnstructuredData::copy_from(const UnstructuredData *us_data) { + set_points(us_data->Nface, us_data->pointLonLat); + Nedge = us_data->Nedge; + Nnode = us_data->Nnode; + max_distance_km = us_data->max_distance_km; +} + +//////////////////////////////////////////////////////////////////////// + +bool UnstructuredData::is_in_distance(double distance_km) const { + bool in_distance = is_eq(max_distance_km, bad_data_double) + || (max_distance_km <= 0) + || (max_distance_km >= distance_km); + //if (!in_distance) rejectedCount++; + //totalCount++; + return in_distance; +} + +//////////////////////////////////////////////////////////////////////// + +void UnstructuredData::set_points(int count, double *_lon, double *_lat) { + + clear_data(); + + Nface = count; + pointLonLat.reserve(count); + for (int i=0; i= UGRID_DEBUG_LEVEL) mlog + << Debug(UGRID_DEBUG_LEVEL) << "UnstructuredData::set_points(int, double *, double *) first (" + << pointLonLat[0].x() << ", " << pointLonLat[0].y() << ") and last (" + << pointLonLat[count-1].x() << ", " << pointLonLat[count-1].y() << ") from (" + << _lon[0] << ", " << _lat[0] << ") and (" + << _lon[count-1] << ", " << _lat[count-1] << ")\n"; + + build_tree(); + +} + +//////////////////////////////////////////////////////////////////////// + +void UnstructuredData::set_points(int count, const std::vector &ptLonLat) { + + clear_data(); + + Nface = count; + pointLonLat.reserve(count); + for (int i=0; i= UGRID_DEBUG_LEVEL) mlog + << Debug(UGRID_DEBUG_LEVEL) << "UnstructuredData::set_points(std::vector &) first: (" + << pointLonLat[0].x() << ", " << pointLonLat[0].y() << ") and last (" + << pointLonLat[count-1].x() << ", " << pointLonLat[count-1].y() << ") from (" + << ptLonLat[0].x() << ", " << ptLonLat[0].y() << ") and (" + << ptLonLat[count-1].x() << ", " << ptLonLat[count-1].y() << ")\n"; + + build_tree(); + +} + +//////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_grid/unstructured_grid.h b/src/libcode/vx_grid/unstructured_grid.h new file mode 100644 index 0000000000..b8c3b9eefc --- /dev/null +++ b/src/libcode/vx_grid/unstructured_grid.h @@ -0,0 +1,98 @@ +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +// ** Copyright UCAR (c) 1992 - 2023 +// ** University Corporation for Atmospheric Research (UCAR) +// ** National Center for Atmospheric Research (NCAR) +// ** Research Applications Lab (RAL) +// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + + +//////////////////////////////////////////////////////////////////////// + + +#ifndef __UNSTRUCTURTED_GRID_H__ +#define __UNSTRUCTURTED_GRID_H__ + + +//////////////////////////////////////////////////////////////////////// + + +#include "grid_base.h" + + +//////////////////////////////////////////////////////////////////////// + + +class UnstructuredGrid : public GridRep { + + friend class Grid; + + protected: + + UnstructuredGrid(); + ~UnstructuredGrid(); + UnstructuredGrid(const UnstructuredData &); + + + int Nx; + + bool wrapLon; + + ConcatString Name; + + UnstructuredData Data; + + void clear(); + + void set_from_data(const UnstructuredData &); + //void set_max_distance_deg(double max_distance); + void set_max_distance_km(double max_distance); + + // + // grid interface + // + + virtual void latlon_to_xy(double lat, double lon, double & x, double & y) const; + + virtual void xy_to_latlon(double x, double y, double & lat, double & lon) const; + + virtual double calc_area(int x, int y) const; + + virtual int nx() const; + virtual int ny() const; + + double scale_km() const; + + virtual ConcatString name() const; + + void dump(std::ostream &, int = 0) const; + + ConcatString serialize(const char *sep=" ") const; + + GridInfo info() const; + + double rot_grid_to_earth(int x, int y) const; + + bool wrap_lon() const; + + void shift_right(int); + + GridRep * copy() const; + +}; + + +//////////////////////////////////////////////////////////////////////// + + +inline double UnstructuredGrid::scale_km() const { return ( -1.0 ); } +inline bool UnstructuredGrid::wrap_lon() const { return ( wrapLon ); } + + +//////////////////////////////////////////////////////////////////////// + + +#endif // __UNSTRUCTURTED_GRID_H__ + + +//////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_grid/unstructured_grid_defs.h b/src/libcode/vx_grid/unstructured_grid_defs.h new file mode 100644 index 0000000000..a6de45ec05 --- /dev/null +++ b/src/libcode/vx_grid/unstructured_grid_defs.h @@ -0,0 +1,71 @@ +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +// ** Copyright UCAR (c) 1992 - 2023 +// ** University Corporation for Atmospheric Research (UCAR) +// ** National Center for Atmospheric Research (NCAR) +// ** Research Applications Lab (RAL) +// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + + +//////////////////////////////////////////////////////////////////////// + + +#ifndef __UNSTRUCTURTED_GRID_DEFINITIONS_H__ +#define __UNSTRUCTURTED_GRID_DEFINITIONS_H__ + + +//////////////////////////////////////////////////////////////////////// + + +#include + +#include "atlas/grid/Grid.h" // PointLonLat +#include "atlas/util/Geometry.h" +#include "atlas/util/KDTree.h" + + +//////////////////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////////////////// + + + + +struct UnstructuredData { + + const char * name; // not allocated + + int Nface; + int Nedge; + int Nnode; + double max_distance_km; // This should be set after calling set_points() + double lat_checksum; + double lon_checksum; + + std::vector pointLonLat; + atlas::util::IndexKDTree *kdtree; + + UnstructuredData(); + ~UnstructuredData(); + + void build_tree(); + bool is_in_distance(double distance_km) const; + void set_points(int count, double *_lon, double *_lat); + void set_points(int count, const std::vector &); + void copy_from(const UnstructuredData *); + void copy_from(const UnstructuredData &); + void clear(); + void clear_data(); + + void dump() const; +}; + + +//////////////////////////////////////////////////////////////////////// + + +#endif /* __UNSTRUCTURTED_GRID_DEFINITIONS_H__ */ + + +//////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_gsl_prob/Makefile.in b/src/libcode/vx_gsl_prob/Makefile.in index b60c9f0e09..c3af2f99ba 100644 --- a/src/libcode/vx_gsl_prob/Makefile.in +++ b/src/libcode/vx_gsl_prob/Makefile.in @@ -221,7 +221,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -235,11 +236,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -278,11 +285,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_nav/Makefile.in b/src/libcode/vx_nav/Makefile.in index 468226f6b9..2cf4c7a194 100644 --- a/src/libcode/vx_nav/Makefile.in +++ b/src/libcode/vx_nav/Makefile.in @@ -213,7 +213,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -227,11 +228,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -270,11 +277,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_nc_obs/Makefile.in b/src/libcode/vx_nc_obs/Makefile.in index 2ef201b449..0c2ac95b57 100644 --- a/src/libcode/vx_nc_obs/Makefile.in +++ b/src/libcode/vx_nc_obs/Makefile.in @@ -223,7 +223,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -237,11 +238,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -280,11 +287,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_nc_util/Makefile.in b/src/libcode/vx_nc_util/Makefile.in index 81fbd40a9f..28fad97cfb 100644 --- a/src/libcode/vx_nc_util/Makefile.in +++ b/src/libcode/vx_nc_util/Makefile.in @@ -221,7 +221,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -235,11 +236,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -278,11 +285,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_nc_util/nc_utils.cc b/src/libcode/vx_nc_util/nc_utils.cc index 72fceb42f2..2cd3e9aa56 100644 --- a/src/libcode/vx_nc_util/nc_utils.cc +++ b/src/libcode/vx_nc_util/nc_utils.cc @@ -1177,15 +1177,20 @@ double get_nc_time(NcVar * var, const int index) { exit(1); } - start.push_back(index); - count.push_back(1); - int vi; short vs; float vf; ncbyte vb; long long vl; + unixtime ref_ut; + int buf_len = 512; + char *tmp_buf = new char[512]; int dataType = GET_NC_TYPE_ID_P(var); + + start.push_back(index); + count.push_back(1); + tmp_buf[0] = 0; + switch (dataType) { case NC_DOUBLE: var->getVar(start, count, &k); @@ -1202,6 +1207,17 @@ double get_nc_time(NcVar * var, const int index) { var->getVar(start, count, &vb); k = (double)vb; break; + case NC_CHAR: + if (2 == get_dim_count(var)) { + buf_len = get_dim_size(var, 1); + start.push_back(0); + count.push_back(buf_len); + } + for (int i=0; igetVar(start, count, tmp_buf); + parse_time_string(tmp_buf, ref_ut); + k = ref_ut; + break; case NC_INT: var->getVar(start, count, &vi); k = (double)vi; @@ -1224,6 +1240,7 @@ double get_nc_time(NcVar * var, const int index) { << GET_NC_NAME_P(var) << "\".\n\n"; exit(1); } + if (tmp_buf) delete [] tmp_buf; } return k; @@ -3594,3 +3611,45 @@ void parse_cf_time_string(const char *str, unixtime &ref_ut, } //////////////////////////////////////////////////////////////////////// + +void parse_time_string(const char *str, unixtime &ut) { + static const char *method_name = "parse_time_string() -> "; + + // Initialize + ut = 0; + + // Check for expected time string format: + // [seconds|minutes|hours|days] since YYYY-MM-DD HH:MM:SS + if(!check_reg_exp(nc_time_unit_ymd_exp, str)) { + mlog << Warning << "\n" << method_name + << "unexpected NetCDF CF convention time unit \"" + << str << "\"\n\n"; + return; + } + else { + // Tokenize the input string + // Parse using spaces, '_', or 'T' for timestrings such as: + // 2016-01-28T12:00:00Z + // 1977-08-07 12:00:00Z + StringArray tok; + tok.parse_delim(str, " _T"); + // Parse the reference time + StringArray ymd, hms; + ymd.parse_delim(tok[0], "-"); + if(tok.n_elements() > 1) hms.parse_delim(tok[1], ":"); + else hms.parse_delim("00:00:00", ":"); + ut = mdyhms_to_unix(atoi(ymd[1].c_str()), atoi(ymd[2].c_str()), + atoi(ymd[0].c_str()), atoi(hms[0].c_str()), + hms.n_elements() > 1 ? atoi(hms[1].c_str()) : 0, + hms.n_elements() > 2 ? atoi(hms[2].c_str()) : 0); + } + + mlog << Debug(4) << method_name + << "parsed NetCDF time string \"" << str + << "\" as " << ut << " seconds (" << unix_to_yyyymmdd_hhmmss(ut) + << ").\n"; + + return; +} + +//////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_nc_util/nc_utils.h b/src/libcode/vx_nc_util/nc_utils.h index 2e3380c358..09f1b23050 100644 --- a/src/libcode/vx_nc_util/nc_utils.h +++ b/src/libcode/vx_nc_util/nc_utils.h @@ -146,6 +146,7 @@ static const std::string standard_name_att_name = "standard_name"; static const std::string units_att_name = "units"; static const char nc_time_unit_exp[] = "^[a-z|A-Z]* *since *[0-9]\\{1,4\\}-[0-9]\\{1,2\\}-[0-9]\\{1,2\\}"; +static const char nc_time_unit_ymd_exp[] = "[0-9]\\{1,4\\}-[0-9]\\{1,2\\}-[0-9]\\{1,2\\}"; static const char MET_NC_Obs_ver_1_2[] = "1.02"; static const char MET_NC_Obs_version[] = "1.02"; @@ -385,6 +386,7 @@ extern bool is_nc_unit_latitude(const char *units); extern void parse_cf_time_string(const char *str, unixtime &ref_ut, int &sec_per_unit); +extern void parse_time_string(const char *str, unixtime &ut); //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_pb_util/Makefile.in b/src/libcode/vx_pb_util/Makefile.in index b88c641dc2..abb2972f9f 100644 --- a/src/libcode/vx_pb_util/Makefile.in +++ b/src/libcode/vx_pb_util/Makefile.in @@ -219,7 +219,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -233,11 +234,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -276,11 +283,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_physics/Makefile.in b/src/libcode/vx_physics/Makefile.in index 20b84ee14d..7257818fa1 100644 --- a/src/libcode/vx_physics/Makefile.in +++ b/src/libcode/vx_physics/Makefile.in @@ -213,7 +213,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -227,11 +228,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -270,11 +277,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_plot_util/Makefile.in b/src/libcode/vx_plot_util/Makefile.in index b071eb2b54..4c9ce7ab0f 100644 --- a/src/libcode/vx_plot_util/Makefile.in +++ b/src/libcode/vx_plot_util/Makefile.in @@ -218,7 +218,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -232,11 +233,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -275,11 +282,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_pointdata_python/Makefile.in b/src/libcode/vx_pointdata_python/Makefile.in index 93da42dfd2..5ec0673e42 100644 --- a/src/libcode/vx_pointdata_python/Makefile.in +++ b/src/libcode/vx_pointdata_python/Makefile.in @@ -222,7 +222,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -236,11 +237,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -279,11 +286,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_ps/Makefile.in b/src/libcode/vx_ps/Makefile.in index 517daf49df..ddce3ca871 100644 --- a/src/libcode/vx_ps/Makefile.in +++ b/src/libcode/vx_ps/Makefile.in @@ -223,7 +223,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -237,11 +238,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -280,11 +287,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_pxm/Makefile.in b/src/libcode/vx_pxm/Makefile.in index 626c404f1e..b57ed344d3 100644 --- a/src/libcode/vx_pxm/Makefile.in +++ b/src/libcode/vx_pxm/Makefile.in @@ -220,7 +220,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -234,11 +235,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -277,11 +284,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_python3_utils/Makefile.in b/src/libcode/vx_python3_utils/Makefile.in index bf1839f2b6..211b960390 100644 --- a/src/libcode/vx_python3_utils/Makefile.in +++ b/src/libcode/vx_python3_utils/Makefile.in @@ -226,7 +226,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -240,11 +241,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -283,11 +290,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_regrid/Makefile.in b/src/libcode/vx_regrid/Makefile.in index 78c1e849c8..fe7777701a 100644 --- a/src/libcode/vx_regrid/Makefile.in +++ b/src/libcode/vx_regrid/Makefile.in @@ -215,7 +215,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -229,11 +230,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -272,11 +279,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_render/Makefile.in b/src/libcode/vx_render/Makefile.in index b3f2ee31bf..4c9ba687a8 100644 --- a/src/libcode/vx_render/Makefile.in +++ b/src/libcode/vx_render/Makefile.in @@ -237,7 +237,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -251,11 +252,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -294,11 +301,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_seeps/Makefile.in b/src/libcode/vx_seeps/Makefile.in index 7334c459d4..a6d931ac2c 100644 --- a/src/libcode/vx_seeps/Makefile.in +++ b/src/libcode/vx_seeps/Makefile.in @@ -213,7 +213,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -227,11 +228,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -270,11 +277,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_series_data/Makefile.in b/src/libcode/vx_series_data/Makefile.in index d4a9153226..aa11ced76f 100644 --- a/src/libcode/vx_series_data/Makefile.in +++ b/src/libcode/vx_series_data/Makefile.in @@ -216,7 +216,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -230,11 +231,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -273,11 +280,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_shapedata/Makefile.in b/src/libcode/vx_shapedata/Makefile.in index 41bf90d9d3..dace8e7d4c 100644 --- a/src/libcode/vx_shapedata/Makefile.in +++ b/src/libcode/vx_shapedata/Makefile.in @@ -229,7 +229,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -243,11 +244,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -286,11 +293,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_solar/Makefile.in b/src/libcode/vx_solar/Makefile.in index 1c28bf8c32..d0ddf6578f 100644 --- a/src/libcode/vx_solar/Makefile.in +++ b/src/libcode/vx_solar/Makefile.in @@ -215,7 +215,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -229,11 +230,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -272,11 +279,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_stat_out/Makefile.in b/src/libcode/vx_stat_out/Makefile.in index a3f53c5973..2042e3b926 100644 --- a/src/libcode/vx_stat_out/Makefile.in +++ b/src/libcode/vx_stat_out/Makefile.in @@ -215,7 +215,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -229,11 +230,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -272,11 +279,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_statistics/Makefile.in b/src/libcode/vx_statistics/Makefile.in index 64ba6edd5e..25ec90833d 100644 --- a/src/libcode/vx_statistics/Makefile.in +++ b/src/libcode/vx_statistics/Makefile.in @@ -240,7 +240,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -254,11 +255,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -297,11 +304,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_summary/Makefile.in b/src/libcode/vx_summary/Makefile.in index fa86db187b..02b693c4a8 100644 --- a/src/libcode/vx_summary/Makefile.in +++ b/src/libcode/vx_summary/Makefile.in @@ -235,7 +235,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -249,11 +250,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -292,11 +299,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_tc_util/Makefile.in b/src/libcode/vx_tc_util/Makefile.in index c1c10aa2ad..d91e99e14a 100644 --- a/src/libcode/vx_tc_util/Makefile.in +++ b/src/libcode/vx_tc_util/Makefile.in @@ -249,7 +249,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -263,11 +264,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -306,11 +313,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/libcode/vx_time_series/Makefile.in b/src/libcode/vx_time_series/Makefile.in index 92e35e0d53..9b05c1a29a 100644 --- a/src/libcode/vx_time_series/Makefile.in +++ b/src/libcode/vx_time_series/Makefile.in @@ -217,7 +217,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -231,11 +232,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -274,11 +281,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/tools/Makefile.in b/src/tools/Makefile.in index 1d5afeee2b..6c7330887a 100644 --- a/src/tools/Makefile.in +++ b/src/tools/Makefile.in @@ -211,7 +211,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -225,11 +226,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -268,11 +275,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/tools/core/Makefile.in b/src/tools/core/Makefile.in index fe26ee596f..e9339f56f3 100644 --- a/src/tools/core/Makefile.in +++ b/src/tools/core/Makefile.in @@ -219,7 +219,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -233,11 +234,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -276,11 +283,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/tools/core/ensemble_stat/Makefile.am b/src/tools/core/ensemble_stat/Makefile.am index f4870d0d69..5d87a3aa4c 100644 --- a/src/tools/core/ensemble_stat/Makefile.am +++ b/src/tools/core/ensemble_stat/Makefile.am @@ -22,13 +22,15 @@ ensemble_stat_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -41,7 +43,7 @@ ensemble_stat_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = ensemble_stat.h \ diff --git a/src/tools/core/ensemble_stat/Makefile.in b/src/tools/core/ensemble_stat/Makefile.in index 10ec728d48..4587c9c96f 100644 --- a/src/tools/core/ensemble_stat/Makefile.in +++ b/src/tools/core/ensemble_stat/Makefile.in @@ -106,7 +106,9 @@ am_ensemble_stat_OBJECTS = ensemble_stat-ensemble_stat.$(OBJEXT) \ ensemble_stat_OBJECTS = $(am_ensemble_stat_OBJECTS) am__DEPENDENCIES_1 = ensemble_stat_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) ensemble_stat_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(ensemble_stat_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -202,7 +204,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +219,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +268,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -333,13 +345,15 @@ ensemble_stat_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -352,7 +366,7 @@ ensemble_stat_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = ensemble_stat.h \ diff --git a/src/tools/core/ensemble_stat/ensemble_stat.cc b/src/tools/core/ensemble_stat/ensemble_stat.cc index b778e97f2f..f430b0f722 100644 --- a/src/tools/core/ensemble_stat/ensemble_stat.cc +++ b/src/tools/core/ensemble_stat/ensemble_stat.cc @@ -73,8 +73,6 @@ // //////////////////////////////////////////////////////////////////////// -using namespace std; - #include #include #include @@ -86,7 +84,6 @@ using namespace std; #include #include -using namespace netCDF; #include "main.h" #include "ensemble_stat.h" @@ -104,6 +101,9 @@ using namespace netCDF; #include "pointdata_python.h" #endif +using namespace std; +using namespace netCDF; + //////////////////////////////////////////////////////////////////////// static void process_command_line (int, char **); @@ -203,8 +203,9 @@ void process_command_line(int argc, char **argv) { int i; CommandLine cline; ConcatString default_config_file; - Met2dDataFile *ens_mtddf = (Met2dDataFile *) 0; - Met2dDataFile *obs_mtddf = (Met2dDataFile *) 0; + Met2dDataFile *ens_mtddf = (Met2dDataFile *) nullptr; + Met2dDataFile *obs_mtddf = (Met2dDataFile *) nullptr; + const char *method_name = "process_command_line() -> "; // Set default output directory out_dir = "."; @@ -273,7 +274,7 @@ void process_command_line(int argc, char **argv) { n_ens_files = atoi(cline[0].c_str()); if(n_ens_files <= 0) { - mlog << Error << "\nprocess_command_line() -> " + mlog << Error << "\n" << method_name << "the number of ensemble member files must be >= 1 (" << n_ens_files << ")\n\n"; exit(1); @@ -294,7 +295,7 @@ void process_command_line(int argc, char **argv) { // Check for at least one valid input ensemble file if(n_ens_files == 0) { - mlog << Error << "\nprocess_command_line() -> " + mlog << Error << "\n" << method_name << "no valid input ensemble member files specified!\n\n"; exit(1); } @@ -303,14 +304,14 @@ void process_command_line(int argc, char **argv) { if(ctrl_file.nonempty()) { if(n_ens_files == 1 && !ens_file_list.has(ctrl_file)) { - mlog << Error << "\nprocess_command_line() -> " + mlog << Error << "\n" << method_name << "when reading all ensemble members from the same file, " << "the control member must be in that file as well: " << ctrl_file << "\n\n"; exit(1); } else if(n_ens_files > 1 && ens_file_list.has(ctrl_file)) { - mlog << Error << "\nprocess_command_line() -> " + mlog << Error << "\n" << method_name << "the ensemble control file should not appear in the list " << "of ensemble member files: " << ctrl_file << "\n\n"; exit(1); @@ -332,7 +333,7 @@ void process_command_line(int argc, char **argv) { obs_valid_end_ut != (unixtime) 0 && obs_valid_beg_ut > obs_valid_end_ut) { - mlog << Error << "\nprocess_command_line() -> " + mlog << Error << "\n" << method_name << "the ending time (" << unix_to_yyyymmdd_hhmmss(obs_valid_end_ut) << ") must be greater than the beginning time (" @@ -357,10 +358,16 @@ void process_command_line(int argc, char **argv) { // Get the ensemble file type from config, if present etype = parse_conf_file_type(conf_info.conf.lookup_dictionary(conf_key_fcst)); + if(FileType_UGrid == etype) { + mlog << Error << "\n" << program_name << " -> filetype " + << grdfiletype_to_string(etype) << " from the configuration is not supported\n\n"; + + exit(1); + } // Read the first input ensemble file if(!(ens_mtddf = mtddf_factory.new_met_2d_data_file(ens_file_list[0].c_str(), etype))) { - mlog << Error << "\nprocess_command_line() -> " + mlog << Error << "\n" << method_name << "trouble reading ensemble file \"" << ens_file_list[0] << "\"\n\n"; exit(1); @@ -368,10 +375,18 @@ void process_command_line(int argc, char **argv) { // Store the input ensemble file type etype = ens_mtddf->file_type(); + if(FileType_UGrid == etype) { + mlog << Error << "\n" << program_name << " -> The filetype " + << grdfiletype_to_string(etype) << " (" << ens_file_list[0] + << ") is not supported\n\n"; + + exit(1); + } + // Observation files are required if(!grid_obs_flag && !point_obs_flag) { - mlog << Error << "\nprocess_command_line() -> " + mlog << Error << "\n" << method_name << "the \"-grid_obs\" or \"-point_obs\" command line option " << "must be used at least once.\n\n"; exit(1); @@ -388,10 +403,16 @@ void process_command_line(int argc, char **argv) { // Get the observation file type from config, if present otype = parse_conf_file_type(conf_info.conf.lookup_dictionary(conf_key_obs)); + if(FileType_UGrid == otype) { + mlog << Error << "\n" << program_name << " -> filetype " + << grdfiletype_to_string(otype) << " from the configuration is not supported\n\n"; + + exit(1); + } // Read the first gridded observation file if(!(obs_mtddf = mtddf_factory.new_met_2d_data_file(grid_obs_file_list[0].c_str(), otype))) { - mlog << Error << "\nprocess_command_line() -> " + mlog << Error << "\n" << method_name << "trouble reading gridded observation file \"" << grid_obs_file_list[0] << "\"\n\n"; exit(1); @@ -399,6 +420,13 @@ void process_command_line(int argc, char **argv) { // Store the gridded observation file type otype = obs_mtddf->file_type(); + if(FileType_UGrid == otype) { + mlog << Error << "\n" << program_name << " -> The filetype " + << grdfiletype_to_string(etype) << " (" << grid_obs_file_list[0] + << ") is not supported\n\n"; + + exit(1); + } } // Process the configuration @@ -424,7 +452,7 @@ void process_command_line(int argc, char **argv) { // List the input gridded observations files if(grid_obs_file_list.n() > 0) { - mlog << Debug(1) << "Gridded Observation Files[" + mlog << Debug(1) << method_name << "Gridded Observation Files[" << grid_obs_file_list.n() << "]:\n" ; for(i=0; i 0) { - mlog << Debug(1) << "Point Observation Files[" + mlog << Debug(1) << method_name << "Point Observation Files[" << point_obs_file_list.n() << "]:\n" ; for(i=0; i " + mlog << Warning << "\n" << method_name << "can't open input ensemble file: " << ens_file_list[i] << "\n\n"; ens_file_vld.add(0); @@ -458,7 +486,7 @@ void process_command_line(int argc, char **argv) { // User-specified ensemble mean file if(ens_mean_file.nonempty()) { if(!file_exists(ens_mean_file.c_str())) { - mlog << Warning << "\nprocess_command_line() -> " + mlog << Warning << "\n" << method_name << "can't open input ensemble mean file: " << ens_mean_file << "\n\n"; ens_mean_file = ""; @@ -467,14 +495,14 @@ void process_command_line(int argc, char **argv) { // User-specified ensemble control file if(conf_info.control_id.nonempty() && ctrl_file.empty()) { - mlog << Warning << "\nprocess_command_line() -> " + mlog << Warning << "\n" << method_name << "control_id is set in the config file but " << "control file is not provided with -ctrl argument\n\n"; } // Deallocate memory for data files - if(ens_mtddf) { delete ens_mtddf; ens_mtddf = (Met2dDataFile *) 0; } - if(obs_mtddf) { delete obs_mtddf; obs_mtddf = (Met2dDataFile *) 0; } + if(ens_mtddf) { delete ens_mtddf; ens_mtddf = (Met2dDataFile *) nullptr; } + if(obs_mtddf) { delete obs_mtddf; obs_mtddf = (Met2dDataFile *) nullptr; } return; } @@ -499,7 +527,7 @@ void process_grid(const Grid &fcst_grid) { } DataPlane dp; - Met2dDataFile *mtddf = (Met2dDataFile *) 0; + Met2dDataFile *mtddf = (Met2dDataFile *) nullptr; if(!(mtddf = mtddf_factory.new_met_2d_data_file( grid_obs_file_list[0].c_str(), otype))) { mlog << Error << "\nprocess_grid() -> " @@ -520,7 +548,7 @@ void process_grid(const Grid &fcst_grid) { // Store the observation grid obs_grid = mtddf->grid(); - if(mtddf) { delete mtddf; mtddf = (Met2dDataFile *) 0; } + if(mtddf) { delete mtddf; mtddf = (Met2dDataFile *) nullptr; } } else { obs_grid = fcst_grid; @@ -651,7 +679,7 @@ bool get_data_plane(const char *infile, GrdFileType ftype, } // end if found // Deallocate the data file pointer, if necessary - if(mtddf) { delete mtddf; mtddf = (Met2dDataFile *) 0; } + if(mtddf) { delete mtddf; mtddf = (Met2dDataFile *) nullptr; } return(found); } @@ -663,7 +691,7 @@ bool get_data_plane_array(const char *infile, GrdFileType ftype, bool do_regrid) { int n, i; bool found; - Met2dDataFile *mtddf = (Met2dDataFile *) 0; + Met2dDataFile *mtddf = (Met2dDataFile *) nullptr; // Read the current ensemble file if(!(mtddf = mtddf_factory.new_met_2d_data_file(infile, ftype))) { @@ -711,7 +739,7 @@ bool get_data_plane_array(const char *infile, GrdFileType ftype, } // end if found // Deallocate the data file pointer, if necessary - if(mtddf) { delete mtddf; mtddf = (Met2dDataFile *) 0; } + if(mtddf) { delete mtddf; mtddf = (Met2dDataFile *) nullptr; } return(found); } @@ -1208,12 +1236,12 @@ void process_grid_vx() { int i, j, k, n_miss, i_file; bool found; MaskPlane mask_mp; - DataPlane *fcst_dp = (DataPlane *) 0; - DataPlane *fraw_dp = (DataPlane *) 0; + DataPlane *fcst_dp = (DataPlane *) nullptr; + DataPlane *fraw_dp = (DataPlane *) nullptr; DataPlane obs_dp, oraw_dp; DataPlane emn_dp, cmn_dp, csd_dp; PairDataEnsemble pd_all, pd; - ObsErrorEntry *oerr_ptr = (ObsErrorEntry *) 0; + ObsErrorEntry *oerr_ptr = (ObsErrorEntry *) nullptr; VarInfo * var_info; ConcatString fcst_file; @@ -1572,12 +1600,12 @@ void process_grid_vx() { } // end for i // Delete allocated DataPlane objects - if(fcst_dp) { delete [] fcst_dp; fcst_dp = (DataPlane *) 0; } - if(fraw_dp) { delete [] fraw_dp; fraw_dp = (DataPlane *) 0; } + if(fcst_dp) { delete [] fcst_dp; fcst_dp = (DataPlane *) nullptr; } + if(fraw_dp) { delete [] fraw_dp; fraw_dp = (DataPlane *) nullptr; } // Close the output NetCDF file if(nc_out) { - delete nc_out; nc_out = (NcFile *) 0; + delete nc_out; nc_out = (NcFile *) nullptr; } return; @@ -1593,7 +1621,7 @@ void process_grid_scores(int i_vx, ObsErrorEntry *oerr_ptr, PairDataEnsemble &pd) { int i, j, x, y, n_miss; double cmn, csd; - ObsErrorEntry *e = (ObsErrorEntry *) 0; + ObsErrorEntry *e = (ObsErrorEntry *) nullptr; // Allocate memory in one big chunk based on grid size pd.extend(nxy); @@ -1632,7 +1660,7 @@ void process_grid_scores(int i_vx, conf_info.obtype.c_str(), oraw_dp(x,y)); } else { - e = (ObsErrorEntry *) 0; + e = (ObsErrorEntry *) nullptr; } // Store the observation error entry pointer @@ -2178,7 +2206,7 @@ void do_pct_cat_thresh(const EnsembleStatVxOpt &vx_opt, const PairDataEnsemble &pd_ens) { int i, i_thr, i_bin, i_obs, i_ens; int n_vld, n_evt, n_bin; - PCTInfo *pct_info = (PCTInfo *) 0; + PCTInfo *pct_info = (PCTInfo *) nullptr; PairDataPoint pd_pnt, pd; ConcatString fcst_var_cs, cs; @@ -2276,7 +2304,7 @@ void do_pct_cat_thresh(const EnsembleStatVxOpt &vx_opt, shc.set_fcst_var(fcst_var_cs); // Dealloate memory - if(pct_info) { delete [] pct_info; pct_info = (PCTInfo *) 0; } + if(pct_info) { delete [] pct_info; pct_info = (PCTInfo *) nullptr; } return; } @@ -2287,7 +2315,7 @@ void do_pct_cdp_thresh(const EnsembleStatVxOpt &vx_opt, const PairDataEnsemble &pd_ens) { int i, i_thr, i_bin, i_obs, i_ens; int n_vld, n_evt, n_bin; - PCTInfo *pct_info = (PCTInfo *) 0; + PCTInfo *pct_info = (PCTInfo *) nullptr; PairDataPoint pd_pnt, pd; ThreshArray cdp_thresh; @@ -2361,7 +2389,7 @@ void do_pct_cdp_thresh(const EnsembleStatVxOpt &vx_opt, write_pct_info(vx_opt, pct_info, n_bin, true); // Dealloate memory - if(pct_info) { delete [] pct_info; pct_info = (PCTInfo *) 0; } + if(pct_info) { delete [] pct_info; pct_info = (PCTInfo *) nullptr; } return; } @@ -2456,11 +2484,11 @@ void write_orank_nc(PairDataEnsemble &pd, DataPlane &dp, int i, n; // Arrays for storing observation rank data - float *obs_v = (float *) 0; - int *obs_rank = (int *) 0; - float *obs_pit = (float *) 0; - int *ens_vld = (int *) 0; - float *ens_mean = (float *) 0; + float *obs_v = (float *) nullptr; + int *obs_rank = (int *) nullptr; + float *obs_pit = (float *) nullptr; + int *ens_vld = (int *) nullptr; + float *ens_mean = (float *) nullptr; // Allocate memory for storing ensemble data obs_v = new float [nxy]; @@ -2529,11 +2557,11 @@ void write_orank_nc(PairDataEnsemble &pd, DataPlane &dp, } // Deallocate and clean up - if(obs_v) { delete [] obs_v; obs_v = (float *) 0; } - if(obs_rank) { delete [] obs_rank; obs_rank = (int *) 0; } - if(obs_pit) { delete [] obs_pit; obs_pit = (float *) 0; } - if(ens_vld) { delete [] ens_vld; ens_vld = (int *) 0; } - if(ens_mean) { delete [] ens_mean; ens_mean = (float *) 0; } + if(obs_v) { delete [] obs_v; obs_v = (float *) nullptr; } + if(obs_rank) { delete [] obs_rank; obs_rank = (int *) nullptr; } + if(obs_pit) { delete [] obs_pit; obs_pit = (float *) nullptr; } + if(ens_vld) { delete [] ens_vld; ens_vld = (int *) nullptr; } + if(ens_mean) { delete [] ens_mean; ens_mean = (float *) nullptr; } return; } diff --git a/src/tools/core/ensemble_stat/ensemble_stat_conf_info.h b/src/tools/core/ensemble_stat/ensemble_stat_conf_info.h index a6145a6fa8..67c6978744 100644 --- a/src/tools/core/ensemble_stat/ensemble_stat_conf_info.h +++ b/src/tools/core/ensemble_stat/ensemble_stat_conf_info.h @@ -104,7 +104,7 @@ class EnsembleStatVxOpt { StringArray mask_sid; // Masking station ID's // Vector of MaskLatLon objects defining Lat/Lon Point masks - vector mask_llpnt; + std::vector mask_llpnt; StringArray mask_name; // Masking region names StringArray mask_name_area; // Masking area (grid + poly) region names @@ -219,14 +219,14 @@ class EnsembleStatConfInfo { double vld_data_thresh; // Required ratio of valid data for each point // Message type groups that should be processed together - map msg_typ_group_map; - StringArray msg_typ_sfc; + std::map msg_typ_group_map; + StringArray msg_typ_sfc; // Mapping of mask names to MaskPlanes - map mask_area_map; + std::map mask_area_map; // Mapping of mask names to Station ID lists - map mask_sid_map; + std::map mask_sid_map; gsl_rng *rng_ptr; // GSL random number generator (allocated) @@ -269,9 +269,9 @@ class EnsembleStatConfInfo { //////////////////////////////////////////////////////////////////////// -inline int EnsembleStatConfInfo::get_n_vx() const { return(n_vx); } -inline int EnsembleStatConfInfo::get_max_hira_size() const { return(max_hira_size); } -inline int EnsembleStatConfInfo::get_compression_level() { return(conf.nc_compression()); } +inline int EnsembleStatConfInfo::get_n_vx() const { return n_vx; } +inline int EnsembleStatConfInfo::get_max_hira_size() const { return max_hira_size; } +inline int EnsembleStatConfInfo::get_compression_level() { return conf.nc_compression(); } //////////////////////////////////////////////////////////////////////// diff --git a/src/tools/core/grid_stat/Makefile.am b/src/tools/core/grid_stat/Makefile.am index 75382103e4..4df815bed4 100644 --- a/src/tools/core/grid_stat/Makefile.am +++ b/src/tools/core/grid_stat/Makefile.am @@ -22,13 +22,15 @@ grid_stat_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -41,6 +43,7 @@ grid_stat_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = grid_stat.h \ diff --git a/src/tools/core/grid_stat/Makefile.in b/src/tools/core/grid_stat/Makefile.in index 07eed34176..8a18ac4a53 100644 --- a/src/tools/core/grid_stat/Makefile.in +++ b/src/tools/core/grid_stat/Makefile.in @@ -105,7 +105,9 @@ am_grid_stat_OBJECTS = grid_stat-grid_stat.$(OBJEXT) \ grid_stat-grid_stat_conf_info.$(OBJEXT) grid_stat_OBJECTS = $(am_grid_stat_OBJECTS) am__DEPENDENCIES_1 = -grid_stat_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +grid_stat_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) grid_stat_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(grid_stat_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -201,7 +203,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -215,11 +218,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -258,11 +267,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -332,13 +344,15 @@ grid_stat_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -351,6 +365,7 @@ grid_stat_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = grid_stat.h \ diff --git a/src/tools/core/grid_stat/grid_stat.cc b/src/tools/core/grid_stat/grid_stat.cc index 6eef678e72..67b8379d0f 100644 --- a/src/tools/core/grid_stat/grid_stat.cc +++ b/src/tools/core/grid_stat/grid_stat.cc @@ -114,8 +114,6 @@ // //////////////////////////////////////////////////////////////////////// -using namespace std; - #include #include #include @@ -127,8 +125,6 @@ using namespace std; #include #include -using namespace netCDF; - #include "main.h" #include "handle_openmp.h" @@ -140,8 +136,21 @@ using namespace netCDF; #include "vx_log.h" #include "seeps.h" +#ifdef WITH_UGRID +#include "vx_data2d_ugrid.h" +#endif + +using namespace std; +using namespace netCDF; + + //////////////////////////////////////////////////////////////////////// + + +//////////////////////////////////////////////////////////////////////// + + static void process_command_line(int, char **); static void setup_first_pass (const DataPlane &); @@ -182,6 +191,7 @@ static void finish_txt_files(); static void clean_up(); static void usage(); +static void set_config(const StringArray &); static void set_outdir(const StringArray &); static void set_compress(const StringArray &); static bool read_data_plane(VarInfo* info, DataPlane& dp, Met2dDataFile* mtddf, @@ -220,6 +230,7 @@ void process_command_line(int argc, char **argv) { GrdFileType ftype, otype; ConcatString default_config_file; DataPlane dp; + const char *method_name = "process_command_line() -> "; // Set the default output directory out_dir = replace_path(default_out_dir); @@ -259,6 +270,7 @@ void process_command_line(int argc, char **argv) { // Read the config files conf_info.read_config(default_config_file.c_str(), config_file.c_str()); + conf_info.read_configs(config_files); // Get the forecast and observation file types from config, if present ftype = parse_conf_file_type(conf_info.conf.lookup_dictionary(conf_key_fcst)); @@ -267,14 +279,14 @@ void process_command_line(int argc, char **argv) { // Read forecast file if(!(fcst_mtddf = mtddf_factory.new_met_2d_data_file(fcst_file.c_str(), ftype))) { mlog << Error << "\nTrouble reading forecast file \"" - << fcst_file << "\"\n\n"; + << fcst_file << "\". Override the FileType with \"file_type = FileType_;\"\n\n"; exit(1); } // Read observation file if(!(obs_mtddf = mtddf_factory.new_met_2d_data_file(obs_file.c_str(), otype))) { mlog << Error << "\nTrouble reading observation file \"" - << obs_file << "\"\n\n"; + << obs_file << "\". Override the FileType with \"file_type = FileType_;\"\n\n"; exit(1); } @@ -285,6 +297,49 @@ void process_command_line(int argc, char **argv) { // Process the configuration conf_info.process_config(ftype, otype); + if (FileType_UGrid == ftype || FileType_UGrid == otype) { +#ifdef WITH_UGRID + ConcatString ugrid_dataset = conf_info.ugrid_dataset; + if (0 < ugrid_dataset.length()) { + double max_distance_km = conf_info.ugrid_max_distance_km; + ConcatString ugrid_nc = conf_info.ugrid_nc; + ConcatString ugrid_map_config_filename = conf_info.ugrid_map_config; + if (FileType_UGrid == ftype) { + MetUGridDataFile *ugrid_mtddf = (MetUGridDataFile *)fcst_mtddf; + ugrid_mtddf->set_ugrid_configs(ugrid_dataset, max_distance_km, + ugrid_map_config_filename); + if (0 == ugrid_nc.length() || ugrid_nc == "NA") { + ConcatString coordinate_file = ugrid_mtddf->coordinate_file(); + ugrid_nc = (0 < coordinate_file.length()) ? coordinate_file : fcst_file; + } + ugrid_mtddf->open_metadata(ugrid_nc.c_str()); + mlog << Debug(9) << method_name + << "FCST: ugrid_coordinates_nc: " << ugrid_nc + << " ugrid_max_distance_km: " << conf_info.ugrid_max_distance_km << "\n"; + } + if (FileType_UGrid == otype) { + MetUGridDataFile *ugrid_mtddf = (MetUGridDataFile *)obs_mtddf; + ugrid_mtddf->set_ugrid_configs(ugrid_dataset, max_distance_km, + ugrid_map_config_filename); + if (0 == ugrid_nc.length() || ugrid_nc == "NA") { + ConcatString coordinate_file = ugrid_mtddf->coordinate_file(); + ugrid_nc = (0 < coordinate_file.length()) ? coordinate_file : fcst_file; + } + ugrid_mtddf->open_metadata(ugrid_nc.c_str()); + mlog << Debug(9) << method_name + << "OBS: ugrid_coordinates_nc: " << ugrid_nc + << " ugrid_max_distance_km: " << conf_info.ugrid_max_distance_km << "\n"; + } + } + else { + mlog << Error << "\n" << method_name + << conf_key_ugrid_dataset << " is not defined at the configuration file.\n\n"; + } +#else + ugrid_compile_error(method_name); +#endif + } + // For python types read the first field to set the grid if(is_python_grdfiletype(ftype)) { if(!fcst_mtddf->data_plane(*conf_info.vx_opt[0].fcst_info, dp)) { @@ -385,7 +440,7 @@ void setup_txt_files(unixtime valid_ut, int lead_sec) { max_col += n_header_columns + 1; // Initialize file stream - stat_out = (ofstream *) 0; + stat_out = (ofstream *) nullptr; // Build the file name stat_file << base_name << stat_file_ext; @@ -417,7 +472,7 @@ void setup_txt_files(unixtime valid_ut, int lead_sec) { if(conf_info.output_flag[i] == STATOutputType_Both) { // Initialize file stream - txt_out[i] = (ofstream *) 0; + txt_out[i] = (ofstream *) nullptr; // Build the file name txt_file[i] << base_name << "_" << txt_file_abbr[i] @@ -636,11 +691,11 @@ void process_scores() { DataPlane seeps_dp, seeps_dp_fcat, seeps_dp_ocat; - CTSInfo *cts_info = (CTSInfo *) 0; + CTSInfo *cts_info = (CTSInfo *) nullptr; MCTSInfo mcts_info; - VL1L2Info *vl1l2_info = (VL1L2Info *) 0; + VL1L2Info *vl1l2_info = (VL1L2Info *) nullptr; NBRCNTInfo nbrcnt_info; - NBRCTSInfo *nbrcts_info = (NBRCTSInfo *) 0; + NBRCTSInfo *nbrcts_info = (NBRCTSInfo *) nullptr; GRADInfo grad_info; DMAPInfo dmap_info; @@ -1858,9 +1913,9 @@ void process_scores() { mlog << Debug(2) << "\n" << sep_str << "\n\n"; // Deallocate memory - if(cts_info) { delete [] cts_info; cts_info = (CTSInfo *) 0; } - if(vl1l2_info) { delete [] vl1l2_info; vl1l2_info = (VL1L2Info *) 0; } - if(nbrcts_info) { delete [] nbrcts_info; nbrcts_info = (NBRCTSInfo *) 0; } + if(cts_info) { delete [] cts_info; cts_info = (CTSInfo *) nullptr; } + if(vl1l2_info) { delete [] vl1l2_info; vl1l2_info = (VL1L2Info *) nullptr; } + if(nbrcts_info) { delete [] nbrcts_info; nbrcts_info = (NBRCTSInfo *) nullptr; } return; } @@ -1996,8 +2051,8 @@ void do_mcts(MCTSInfo &mcts_info, int i_vx, void do_cnt_sl1l2(const GridStatVxOpt &vx_opt, const PairDataPoint *pd_ptr) { int i, j, k, n_bin; PairDataPoint pd_thr, pd; - SL1L2Info *sl1l2_info = (SL1L2Info *) 0; - CNTInfo *cnt_info = (CNTInfo *) 0; + SL1L2Info *sl1l2_info = (SL1L2Info *) nullptr; + CNTInfo *cnt_info = (CNTInfo *) nullptr; mlog << Debug(2) << "Computing Scalar Partial Sums and Continuous Statistics.\n"; @@ -2175,8 +2230,8 @@ void do_cnt_sl1l2(const GridStatVxOpt &vx_opt, const PairDataPoint *pd_ptr) { } // end for i (fcnt_ta) // Dealloate memory - if(sl1l2_info) { delete [] sl1l2_info; sl1l2_info = (SL1L2Info *) 0; } - if(cnt_info) { delete [] cnt_info; cnt_info = (CNTInfo *) 0; } + if(sl1l2_info) { delete [] sl1l2_info; sl1l2_info = (SL1L2Info *) nullptr; } + if(cnt_info) { delete [] cnt_info; cnt_info = (CNTInfo *) nullptr; } return; } @@ -2230,7 +2285,7 @@ void do_vl1l2(VL1L2Info *&v_info, int i_vx, void do_pct(const GridStatVxOpt &vx_opt, const PairDataPoint *pd_ptr) { int i, j, k, n_bin; PairDataPoint pd; - PCTInfo *pct_info = (PCTInfo *) 0; + PCTInfo *pct_info = (PCTInfo *) nullptr; mlog << Debug(2) << "Computing Probabilistic Statistics.\n"; @@ -2340,7 +2395,7 @@ void do_pct(const GridStatVxOpt &vx_opt, const PairDataPoint *pd_ptr) { } // end for i (ocnt_ta) // Dealloate memory - if(pct_info) { delete [] pct_info; pct_info = (PCTInfo *) 0; } + if(pct_info) { delete [] pct_info; pct_info = (PCTInfo *) nullptr; } return; } @@ -2772,7 +2827,7 @@ void write_nc(const ConcatString &field_name, const DataPlane &dp, } // end for i // Deallocate and clean up - if(data) { delete [] data; data = (float *) 0; } + if(data) { delete [] data; data = (float *) nullptr; } return; } @@ -2807,8 +2862,8 @@ void write_nbrhd_nc(const DataPlane &fcst_dp, const DataPlane &obs_dp, // Store the apply_mask option apply_mask = conf_info.vx_opt[i_vx].nc_info.do_apply_mask; - float *fcst_data = (float *) 0; - float *obs_data = (float *) 0; + float *fcst_data = (float *) nullptr; + float *obs_data = (float *) nullptr; NcVar fcst_var; NcVar obs_var; @@ -2941,8 +2996,8 @@ void write_nbrhd_nc(const DataPlane &fcst_dp, const DataPlane &obs_dp, } // Deallocate and clean up - if(fcst_data) { delete [] fcst_data; fcst_data = (float *) 0; } - if(obs_data) { delete [] obs_data; obs_data = (float *) 0; } + if(fcst_data) { delete [] fcst_data; fcst_data = (float *) nullptr; } + if(obs_data) { delete [] obs_data; obs_data = (float *) nullptr; } return; } @@ -3006,8 +3061,8 @@ void clean_up() { } // Deallocate memory for data files - if(fcst_mtddf) { delete fcst_mtddf; fcst_mtddf = (Met2dDataFile *) 0; } - if(obs_mtddf) { delete obs_mtddf; obs_mtddf = (Met2dDataFile *) 0; } + if(fcst_mtddf) { delete fcst_mtddf; fcst_mtddf = (Met2dDataFile *) nullptr; } + if(obs_mtddf) { delete obs_mtddf; obs_mtddf = (Met2dDataFile *) nullptr; } // Deallocate memory for the random number generator rng_free(rng_ptr); @@ -3040,6 +3095,9 @@ void usage() { << "\t\t\"config_file\" is a GridStatConfig file containing " << "the desired configuration settings (required).\n" + << "\t\t\"-config config_file\" specifies additional PointStatConfig file containing " + << "the configuration settings for unstructured grid (optional).\n" + << "\t\t\"-outdir path\" overrides the default output directory " << "(" << out_dir << ") (optional).\n" @@ -3057,6 +3115,13 @@ void usage() { //////////////////////////////////////////////////////////////////////// +void set_config(const StringArray & a) +{ + config_files.add(a[0]); +} + +//////////////////////////////////////////////////////////////////////// + void set_outdir(const StringArray & a) { out_dir = a[0]; } diff --git a/src/tools/core/grid_stat/grid_stat.h b/src/tools/core/grid_stat/grid_stat.h index 7e6e5efd9c..eb659f5841 100644 --- a/src/tools/core/grid_stat/grid_stat.h +++ b/src/tools/core/grid_stat/grid_stat.h @@ -113,6 +113,7 @@ static ConcatString obs_file; // Input Config file static ConcatString config_file; +static StringArray config_files; static GridStatConfInfo conf_info; // Optional arguments diff --git a/src/tools/core/grid_stat/grid_stat_conf_info.cc b/src/tools/core/grid_stat/grid_stat_conf_info.cc index a241980d5e..3a4b717d61 100644 --- a/src/tools/core/grid_stat/grid_stat_conf_info.cc +++ b/src/tools/core/grid_stat/grid_stat_conf_info.cc @@ -47,7 +47,7 @@ GridStatConfInfo::~GridStatConfInfo() { void GridStatConfInfo::init_from_scratch() { // Initialize pointers - vx_opt = (GridStatVxOpt *) 0; + vx_opt = (GridStatVxOpt *) nullptr; clear(); @@ -67,6 +67,12 @@ void GridStatConfInfo::clear() { tmp_dir.clear(); output_prefix.clear(); version.clear(); +#ifdef WITH_UGRID + ugrid_nc.clear(); + ugrid_dataset.clear(); + ugrid_map_config.clear(); + ugrid_max_distance_km = bad_data_double; +#endif for(i=0; i " + << "The configuration file \"" << user_file_names[i]<< "\" does not exist.\n\n"; + } + + return; +} + +//////////////////////////////////////////////////////////////////////// + void GridStatConfInfo::process_config(GrdFileType ftype, GrdFileType otype) { int i, j, n_fvx, n_ovx; - Dictionary *fdict = (Dictionary *) 0; - Dictionary *odict = (Dictionary *) 0; + Dictionary *fdict = (Dictionary *) nullptr; + Dictionary *odict = (Dictionary *) nullptr; Dictionary i_fdict, i_odict; // Dump the contents of the config file @@ -131,6 +152,20 @@ void GridStatConfInfo::process_config(GrdFileType ftype, // Conf: tmp_dir tmp_dir = parse_conf_tmp_dir(&conf); +#ifdef WITH_UGRID + // Conf: ugrid_dataset + ugrid_dataset = parse_conf_ugrid_dataset(&conf); + + // Conf: ugrid_nc + ugrid_nc = parse_conf_ugrid_coordinates_file(&conf); + + // Conf: ugrid_map_config + ugrid_map_config = parse_conf_ugrid_map_config(&conf); + + // Conf: ugrid_max_distance_km + ugrid_max_distance_km = parse_conf_ugrid_max_distance_km(&conf); +#endif + // Conf: output_prefix output_prefix = conf.lookup_string(conf_key_output_prefix); @@ -263,18 +298,17 @@ void GridStatConfInfo::process_config(GrdFileType ftype, //////////////////////////////////////////////////////////////////////// void GridStatConfInfo::process_flags() { - int i, j; // Initialize - for(i=0; iis_prob(); bool vect_flag = (fcst_info->is_u_wind() && obs_info->is_u_wind()); @@ -1184,42 +1217,37 @@ int GridStatVxOpt::n_txt_row(int i_txt_row) const { exit(1); } - return(n); + return n; } //////////////////////////////////////////////////////////////////////// int GridStatVxOpt::get_n_cnt_thresh() const { - return((!fcst_info || fcst_info->is_prob()) ? - 0 : fcnt_ta.n_elements()); + return (!fcst_info || fcst_info->is_prob()) ? 0 : fcnt_ta.n_elements(); } //////////////////////////////////////////////////////////////////////// int GridStatVxOpt::get_n_cat_thresh() const { - return((!fcst_info || fcst_info->is_prob()) ? - 0 : fcat_ta.n_elements()); + return (!fcst_info || fcst_info->is_prob()) ? 0 : fcat_ta.n_elements(); } //////////////////////////////////////////////////////////////////////// int GridStatVxOpt::get_n_wind_thresh() const { - return((!fcst_info || fcst_info->is_prob()) ? - 0 : fwind_ta.n_elements()); + return (!fcst_info || fcst_info->is_prob()) ? 0 : fwind_ta.n_elements(); } //////////////////////////////////////////////////////////////////////// int GridStatVxOpt::get_n_fprob_thresh() const { - return((!fcst_info || !fcst_info->is_prob()) ? - 0 : fcat_ta.n_elements()); + return (!fcst_info || !fcst_info->is_prob()) ? 0 : fcat_ta.n_elements(); } //////////////////////////////////////////////////////////////////////// int GridStatVxOpt::get_n_oprob_thresh() const { - return((!fcst_info || !fcst_info->is_prob()) ? - 0 : ocat_ta.n_elements()); + return (!fcst_info || !fcst_info->is_prob()) ? 0 : ocat_ta.n_elements(); } diff --git a/src/tools/core/grid_stat/grid_stat_conf_info.h b/src/tools/core/grid_stat/grid_stat_conf_info.h index a6bf8dd4e7..81d0054b08 100644 --- a/src/tools/core/grid_stat/grid_stat_conf_info.h +++ b/src/tools/core/grid_stat/grid_stat_conf_info.h @@ -277,12 +277,18 @@ class GridStatConfInfo { GridStatVxOpt * vx_opt; // Array of vx task options [n_vx] (allocated) - map mask_map; // Mapping of mask names to MaskPlanes + std::map mask_map; // Mapping of mask names to MaskPlanes GridWeightType grid_weight_flag; // Grid weighting flag ConcatString tmp_dir; // Directory for temporary files ConcatString output_prefix; // String to customize output file name ConcatString version; // Config file version +#ifdef WITH_UGRID + ConcatString ugrid_nc; // NetCDF for coordinate variables of unstructured grid + ConcatString ugrid_dataset; // UGRid dataset name (mpas, lfric etc) + ConcatString ugrid_map_config; // User's configuration file which contains ugrid metadata mapping + double ugrid_max_distance_km; // max distance to be the closest neighbor to unstructured grid +#endif // Summary of output file options across all verification tasks STATOutputType output_flag[n_txt]; // Flag for each output line type @@ -293,6 +299,7 @@ class GridStatConfInfo { void clear(); void read_config (const char *, const char *); + void read_configs (StringArray user_file_names); void process_config(GrdFileType, GrdFileType); void process_flags (); void process_masks (const Grid &); diff --git a/src/tools/core/mode/Makefile.am b/src/tools/core/mode/Makefile.am index be5aa15e6e..72a35a6175 100644 --- a/src/tools/core/mode/Makefile.am +++ b/src/tools/core/mode/Makefile.am @@ -41,13 +41,15 @@ mode_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -60,6 +62,7 @@ mode_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz EXTRA_DIST = mode_exec.h \ diff --git a/src/tools/core/mode/Makefile.in b/src/tools/core/mode/Makefile.in index 324734bfa1..4ccc3994ca 100644 --- a/src/tools/core/mode/Makefile.in +++ b/src/tools/core/mode/Makefile.in @@ -112,7 +112,9 @@ am_mode_OBJECTS = mode-mode_usage.$(OBJEXT) \ mode-overlap_page.$(OBJEXT) mode-mode_exec.$(OBJEXT) mode_OBJECTS = $(am_mode_OBJECTS) am__DEPENDENCIES_1 = -mode_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +mode_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) mode_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(mode_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -219,7 +221,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -233,11 +236,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -276,11 +285,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -369,13 +381,15 @@ mode_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -388,6 +402,7 @@ mode_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz EXTRA_DIST = mode_exec.h \ diff --git a/src/tools/core/mode_analysis/Makefile.am b/src/tools/core/mode_analysis/Makefile.am index 95ce39e441..1bff9fadc7 100644 --- a/src/tools/core/mode_analysis/Makefile.am +++ b/src/tools/core/mode_analysis/Makefile.am @@ -22,14 +22,15 @@ mode_analysis_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ - -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ + -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ @@ -43,6 +44,7 @@ mode_analysis_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util EXTRA_DIST = config_to_att.h diff --git a/src/tools/core/mode_analysis/Makefile.in b/src/tools/core/mode_analysis/Makefile.in index 65fe67c86f..56aa69e946 100644 --- a/src/tools/core/mode_analysis/Makefile.in +++ b/src/tools/core/mode_analysis/Makefile.in @@ -106,7 +106,9 @@ am_mode_analysis_OBJECTS = mode_analysis-mode_analysis.$(OBJEXT) \ mode_analysis_OBJECTS = $(am_mode_analysis_OBJECTS) am__DEPENDENCIES_1 = mode_analysis_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) mode_analysis_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(mode_analysis_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -202,7 +204,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +219,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +268,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -333,14 +345,15 @@ mode_analysis_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ - -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ + -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ @@ -354,6 +367,7 @@ mode_analysis_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util EXTRA_DIST = config_to_att.h diff --git a/src/tools/core/pcp_combine/Makefile.am b/src/tools/core/pcp_combine/Makefile.am index 047e7f3fe6..0206f497ca 100644 --- a/src/tools/core/pcp_combine/Makefile.am +++ b/src/tools/core/pcp_combine/Makefile.am @@ -16,10 +16,12 @@ pcp_combine_CPPFLAGS = ${MET_CPPFLAGS} pcp_combine_LDFLAGS = ${MET_LDFLAGS} pcp_combine_LDADD = -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -34,4 +36,5 @@ pcp_combine_LDADD = -lvx_data2d_factory \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas diff --git a/src/tools/core/pcp_combine/Makefile.in b/src/tools/core/pcp_combine/Makefile.in index 2508fde598..04429df9bd 100644 --- a/src/tools/core/pcp_combine/Makefile.in +++ b/src/tools/core/pcp_combine/Makefile.in @@ -104,7 +104,9 @@ PROGRAMS = $(bin_PROGRAMS) am_pcp_combine_OBJECTS = pcp_combine-pcp_combine.$(OBJEXT) pcp_combine_OBJECTS = $(am_pcp_combine_OBJECTS) am__DEPENDENCIES_1 = -pcp_combine_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +pcp_combine_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) pcp_combine_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(pcp_combine_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -199,7 +201,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -213,11 +216,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -256,11 +265,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -323,10 +335,12 @@ pcp_combine_CPPFLAGS = ${MET_CPPFLAGS} pcp_combine_LDFLAGS = ${MET_LDFLAGS} pcp_combine_LDADD = -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -341,6 +355,7 @@ pcp_combine_LDADD = -lvx_data2d_factory \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas all: all-am diff --git a/src/tools/core/point_stat/Makefile.am b/src/tools/core/point_stat/Makefile.am index 72fd3afa13..39b45fcb1b 100644 --- a/src/tools/core/point_stat/Makefile.am +++ b/src/tools/core/point_stat/Makefile.am @@ -21,13 +21,15 @@ point_stat_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -41,7 +43,7 @@ point_stat_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = point_stat.h \ diff --git a/src/tools/core/point_stat/Makefile.in b/src/tools/core/point_stat/Makefile.in index 6970bd2117..4f1c9e1a9e 100644 --- a/src/tools/core/point_stat/Makefile.in +++ b/src/tools/core/point_stat/Makefile.in @@ -106,7 +106,8 @@ am_point_stat_OBJECTS = point_stat-point_stat.$(OBJEXT) \ point_stat_OBJECTS = $(am_point_stat_OBJECTS) am__DEPENDENCIES_1 = point_stat_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) point_stat_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(point_stat_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -202,7 +203,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +218,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +267,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -332,13 +343,15 @@ point_stat_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -352,7 +365,7 @@ point_stat_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = point_stat.h \ diff --git a/src/tools/core/point_stat/point_stat.cc b/src/tools/core/point_stat/point_stat.cc index 78ed0bd1d0..7b4d886ae6 100644 --- a/src/tools/core/point_stat/point_stat.cc +++ b/src/tools/core/point_stat/point_stat.cc @@ -106,8 +106,6 @@ // //////////////////////////////////////////////////////////////////////// -using namespace std; - #include #include #include @@ -119,7 +117,6 @@ using namespace std; #include #include -using namespace netCDF; #include "main.h" #include "point_stat.h" @@ -133,13 +130,19 @@ using namespace netCDF; #include "nc_obs_util.h" #include "nc_point_obs_in.h" +#ifdef WITH_UGRID +#include "vx_data2d_ugrid.h" +#endif + #ifdef WITH_PYTHON #include "data2d_nc_met.h" #include "pointdata_python.h" #endif -//////////////////////////////////////////////////////////////////////// +using namespace std; +using namespace netCDF; +//////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// @@ -172,6 +175,7 @@ static void finish_txt_files(); static void clean_up(); static void usage(); +static void set_config(const StringArray &); static void set_point_obs(const StringArray &); static void set_ncfile(const StringArray &); static void set_obs_valid_beg_time(const StringArray &); @@ -206,7 +210,7 @@ int met_main(int argc, char *argv[]) { // Close the text files and deallocate memory clean_up(); - return(0); + return 0; } //////////////////////////////////////////////////////////////////////// @@ -218,10 +222,11 @@ const string get_tool_name() { //////////////////////////////////////////////////////////////////////// void process_command_line(int argc, char **argv) { - CommandLine cline; int i; + CommandLine cline; GrdFileType ftype; ConcatString default_config_file; + const char *method_name = "process_command_line() -> "; out_dir = "."; @@ -235,6 +240,7 @@ void process_command_line(int argc, char **argv) { cline.set_usage(usage); // Add the options function calls + cline.add(set_config, "-config", 1); cline.add(set_point_obs, "-point_obs", 1); cline.add(set_ncfile, "-ncfile", 1); cline.add(set_obs_valid_beg_time, "-obs_valid_beg", 1); @@ -253,7 +259,7 @@ void process_command_line(int argc, char **argv) { obs_valid_end_ut != (unixtime) 0 && obs_valid_beg_ut > obs_valid_end_ut) { - mlog << Error << "\nprocess_command_line() -> " + mlog << Error << "\n" << method_name << "the ending time (" << unix_to_yyyymmdd_hhmmss(obs_valid_end_ut) << ") must be greater than the beginning time (" @@ -277,14 +283,15 @@ void process_command_line(int argc, char **argv) { // Read the config files conf_info.read_config(default_config_file.c_str(), config_file.c_str()); + conf_info.read_configs(config_files); // Get the forecast file type from config, if present ftype = parse_conf_file_type(conf_info.conf.lookup_dictionary(conf_key_fcst)); // Read forecast file if(!(fcst_mtddf = mtddf_factory.new_met_2d_data_file(fcst_file.c_str(), ftype))) { - mlog << Error << "\nTrouble reading forecast file \"" - << fcst_file << "\"\n\n"; + mlog << Error << "\n" << method_name << "Trouble reading forecast file \"" + << fcst_file << "\". Override the FileType with \"file_type = FileType_;\"\n\n"; exit(1); } @@ -297,6 +304,35 @@ void process_command_line(int argc, char **argv) { // Set the model name shc.set_model(conf_info.model.c_str()); + if (FileType_UGrid == ftype) { +#ifdef WITH_UGRID + ConcatString ugrid_dataset = conf_info.ugrid_dataset; + if (0 < ugrid_dataset.length()) { + double max_distance_km = conf_info.ugrid_max_distance_km; + ConcatString ugrid_nc = conf_info.ugrid_nc; + ConcatString ugrid_map_config_filename = conf_info.ugrid_map_config; + MetUGridDataFile *ugrid_mtddf = (MetUGridDataFile *)fcst_mtddf; + + ugrid_mtddf->set_ugrid_configs(ugrid_dataset, max_distance_km, + ugrid_map_config_filename); + if (0 == ugrid_nc.length() || ugrid_nc == "NA") { + ConcatString coordinate_file = ugrid_mtddf->coordinate_file(); + ugrid_nc = (0 < coordinate_file.length()) ? coordinate_file : fcst_file; + } + ugrid_mtddf->open_metadata(ugrid_nc.c_str()); + mlog << Debug(9) << method_name + << "ugrid_coordinate_nc: " << ugrid_nc + << " ugrid_max_distance_km: " << conf_info.ugrid_max_distance_km << "\n"; + } + else { + mlog << Error << "\n" << method_name + << conf_key_ugrid_dataset << " is not defined at the configuration file.\n\n"; + } +#else + ugrid_compile_error(method_name); +#endif + } + // Use the first verification task to set the random number generator // and seed value for bootstrap confidence intervals rng_set(rng_ptr, @@ -345,7 +381,7 @@ void setup_first_pass(const DataPlane &dp, const Grid &data_grid) { //////////////////////////////////////////////////////////////////////// void setup_txt_files() { - int i, j; + int j; int max_col, max_prob_col, max_mctc_col, max_orank_col; int n_prob, n_cat, n_eclv, n_ens; ConcatString base_name; @@ -404,7 +440,7 @@ void setup_txt_files() { ///////////////////////////////////////////////////////////////////// // Loop through output file type - for(i=0; idata_plane_array( *conf_info.vx_opt[i].vx_pd.fcst_info, fcst_dpa); - mlog << Debug(2) << "\n" << sep_str << "\n\n" << "Reading data for " @@ -676,7 +711,7 @@ void process_obs_file(int i_nc) { ConcatString hdr_vld_str; ConcatString obs_qty_str; unixtime hdr_ut; - NcFile *obs_in = (NcFile *) 0; + NcFile *obs_in = (NcFile *) nullptr; const char *method_name = "process_obs_file() -> "; // Set flags for vectors @@ -691,7 +726,7 @@ void process_obs_file(int i_nc) { bool use_arr_vars = false; bool use_python = false; MetNcPointObsIn nc_point_obs; - MetPointData *met_point_obs = 0; + MetPointData *met_point_obs = nullptr; // Check for python format string python_command = obs_file[i_nc]; @@ -777,7 +812,7 @@ void process_obs_file(int i_nc) { #endif status = nc_point_obs.read_obs_data(block_size, i_block_start_idx, (float *)obs_arr_block, - obs_qty_idx_block, (char *)0); + obs_qty_idx_block, (char *)nullptr); if (!status) exit(1); int hdr_idx; @@ -897,10 +932,10 @@ void process_scores() { ConcatString cs; // Initialize pointers - PairDataPoint *pd_ptr = (PairDataPoint *) 0; - CTSInfo *cts_info = (CTSInfo *) 0; + PairDataPoint *pd_ptr = (PairDataPoint *) nullptr; + CTSInfo *cts_info = (CTSInfo *) nullptr; MCTSInfo mcts_info; - VL1L2Info *vl1l2_info = (VL1L2Info *) 0; + VL1L2Info *vl1l2_info = (VL1L2Info *) nullptr; mlog << Debug(2) << "\n" << sep_str << "\n\n"; @@ -1293,8 +1328,8 @@ void process_scores() { } // end for i // Deallocate memory - if(cts_info) { delete [] cts_info; cts_info = (CTSInfo *) 0; } - if(vl1l2_info) { delete [] vl1l2_info; vl1l2_info = (VL1L2Info *) 0; } + if(cts_info) { delete [] cts_info; cts_info = (CTSInfo *) nullptr; } + if(vl1l2_info) { delete [] vl1l2_info; vl1l2_info = (VL1L2Info *) nullptr; } return; } @@ -1408,8 +1443,8 @@ void do_mcts(MCTSInfo &mcts_info, int i_vx, const PairDataPoint *pd_ptr) { void do_cnt_sl1l2(const PointStatVxOpt &vx_opt, const PairDataPoint *pd_ptr) { int i, j, k, n_bin; PairDataPoint pd_thr, pd; - SL1L2Info *sl1l2_info = (SL1L2Info *) 0; - CNTInfo *cnt_info = (CNTInfo *) 0; + SL1L2Info *sl1l2_info = (SL1L2Info *) nullptr; + CNTInfo *cnt_info = (CNTInfo *) nullptr; mlog << Debug(2) << "Computing Scalar Partial Sums and Continuous Statistics.\n"; @@ -1586,8 +1621,8 @@ void do_cnt_sl1l2(const PointStatVxOpt &vx_opt, const PairDataPoint *pd_ptr) { } // end for i (fcnt_ta) // Dealloate memory - if(sl1l2_info) { delete [] sl1l2_info; sl1l2_info = (SL1L2Info *) 0; } - if(cnt_info) { delete [] cnt_info; cnt_info = (CNTInfo *) 0; } + if(sl1l2_info) { delete [] sl1l2_info; sl1l2_info = (SL1L2Info *) nullptr; } + if(cnt_info) { delete [] cnt_info; cnt_info = (CNTInfo *) nullptr; } return; } @@ -1642,7 +1677,7 @@ void do_vl1l2(VL1L2Info *&v_info, int i_vx, void do_pct(const PointStatVxOpt &vx_opt, const PairDataPoint *pd_ptr) { int i, j, k, n_bin; PairDataPoint pd; - PCTInfo *pct_info = (PCTInfo *) 0; + PCTInfo *pct_info = (PCTInfo *) nullptr; mlog << Debug(2) << "Computing Probabilistic Statistics.\n"; @@ -1752,7 +1787,7 @@ void do_pct(const PointStatVxOpt &vx_opt, const PairDataPoint *pd_ptr) { } // end for i (ocnt_ta) // Dealloate memory - if(pct_info) { delete [] pct_info; pct_info = (PCTInfo *) 0; } + if(pct_info) { delete [] pct_info; pct_info = (PCTInfo *) nullptr; } return; } @@ -1843,7 +1878,7 @@ void do_hira_ens(int i_vx, const PairDataPoint *pd_ptr) { // Check for zero matched pairs if(hira_pd.o_na.n() == 0) { - if(gt) { delete gt; gt = 0; } + if(gt) { delete gt; gt = nullptr; } continue; } @@ -1910,7 +1945,7 @@ void do_hira_ens(int i_vx, const PairDataPoint *pd_ptr) { << "\"" << conf_key_prob_cat_thresh << "\" thresholds are " << "defined in the \"" << conf_key_hira << "\" dictionary.\n"; - if(gt) { delete gt; gt = 0; } + if(gt) { delete gt; gt = nullptr; } break; } @@ -1923,7 +1958,7 @@ void do_hira_ens(int i_vx, const PairDataPoint *pd_ptr) { txt_at[i_rps], i_txt_row[i_rps]); } // end if RPS - if(gt) { delete gt; gt = 0; } + if(gt) { delete gt; gt = nullptr; } } // end for i @@ -2142,7 +2177,7 @@ void clean_up() { finish_txt_files(); // Deallocate memory for data files - if(fcst_mtddf) { delete fcst_mtddf; fcst_mtddf = (Met2dDataFile *) 0; } + if(fcst_mtddf) { delete fcst_mtddf; fcst_mtddf = (Met2dDataFile *) nullptr; } // Deallocate memory for the random number generator rng_free(rng_ptr); @@ -2161,6 +2196,7 @@ void usage() { << "\tfcst_file\n" << "\tobs_file\n" << "\tconfig_file\n" + << "\t[-config config_file]\n" << "\t[-point_obs file]\n" << "\t[-obs_valid_beg time]\n" << "\t[-obs_valid_end time]\n" @@ -2177,6 +2213,9 @@ void usage() { << "\t\t\"config_file\" is a PointStatConfig file containing " << "the desired configuration settings (required).\n" + << "\t\t\"-config config_file\" specifies additional PointStatConfig file containing " + << "the configuration settings for unstructured grid (optional).\n" + << "\t\t\"-point_obs file\" specifies additional NetCDF point " << "observation files to be used (optional).\n" @@ -2200,6 +2239,13 @@ void usage() { //////////////////////////////////////////////////////////////////////// +void set_config(const StringArray & a) +{ + config_files.add(a[0]); +} + +//////////////////////////////////////////////////////////////////////// + void set_point_obs(const StringArray & a) { obs_file.add(a[0]); @@ -2234,3 +2280,4 @@ void set_outdir(const StringArray & a) } //////////////////////////////////////////////////////////////////////// + diff --git a/src/tools/core/point_stat/point_stat.h b/src/tools/core/point_stat/point_stat.h index bd0448a603..7162861dfd 100644 --- a/src/tools/core/point_stat/point_stat.h +++ b/src/tools/core/point_stat/point_stat.h @@ -108,6 +108,7 @@ static StringArray obs_file; // Input Config file static ConcatString config_file; +static StringArray config_files; static PointStatConfInfo conf_info; // Optional arguments @@ -152,7 +153,7 @@ static Met2dDataFileFactory mtddf_factory; static Met2dDataFile *fcst_mtddf = (Met2dDataFile *) 0; // Pointer to the random number generator to be used -static gsl_rng *rng_ptr = (gsl_rng *) 0; +static gsl_rng *rng_ptr = (gsl_rng *) nullptr; // Strings to be output in the STAT and optional text files static StatHdrColumns shc; diff --git a/src/tools/core/point_stat/point_stat_conf_info.cc b/src/tools/core/point_stat/point_stat_conf_info.cc index 47823acdb5..71bbcce63b 100644 --- a/src/tools/core/point_stat/point_stat_conf_info.cc +++ b/src/tools/core/point_stat/point_stat_conf_info.cc @@ -8,8 +8,6 @@ //////////////////////////////////////////////////////////////////////// -using namespace std; - #include #include #include @@ -23,6 +21,9 @@ using namespace std; #include "vx_data2d.h" #include "vx_log.h" +using namespace std; + + //////////////////////////////////////////////////////////////////////// // // Code for class PointStatConfInfo @@ -46,7 +47,7 @@ PointStatConfInfo::~PointStatConfInfo() { void PointStatConfInfo::init_from_scratch() { // Initialize pointers - vx_opt = (PointStatVxOpt *) 0; + vx_opt = (PointStatVxOpt *) nullptr; clear(); @@ -70,9 +71,14 @@ void PointStatConfInfo::clear() { tmp_dir.clear(); output_prefix.clear(); version.clear(); - +#ifdef WITH_UGRID + ugrid_nc.clear(); + ugrid_dataset.clear(); + ugrid_map_config.clear(); + ugrid_max_distance_km = bad_data_double; +#endif // Deallocate memory - if(vx_opt) { delete [] vx_opt; vx_opt = (PointStatVxOpt *) 0; } + if(vx_opt) { delete [] vx_opt; vx_opt = (PointStatVxOpt *) nullptr; } // Set count to zero n_vx = 0; @@ -99,10 +105,25 @@ void PointStatConfInfo::read_config(const char *default_file_name, //////////////////////////////////////////////////////////////////////// +void PointStatConfInfo::read_configs(StringArray user_file_names) { + + const char *file_name; + for (int i=0; i " + << "The configuration file \"" << user_file_names[i]<< "\" does not exist.\n\n"; + } + + return; +} + +//////////////////////////////////////////////////////////////////////// + void PointStatConfInfo::process_config(GrdFileType ftype) { int i, j, n_fvx, n_ovx; - Dictionary *fdict = (Dictionary *) 0; - Dictionary *odict = (Dictionary *) 0; + Dictionary *fdict = (Dictionary *) nullptr; + Dictionary *odict = (Dictionary *) nullptr; Dictionary i_fdict, i_odict; // Dump the contents of the config file @@ -120,6 +141,20 @@ void PointStatConfInfo::process_config(GrdFileType ftype) { // Conf: tmp_dir tmp_dir = parse_conf_tmp_dir(&conf); +#ifdef WITH_UGRID + // Conf: ugrid_dataset + ugrid_dataset = parse_conf_ugrid_dataset(&conf); + + // Conf: ugrid_nc + ugrid_nc = parse_conf_ugrid_coordinates_file(&conf); + + // Conf: ugrid_map_config + ugrid_map_config = parse_conf_ugrid_map_config(&conf); + + // Conf: ugrid_max_distance_km + ugrid_max_distance_km = parse_conf_ugrid_max_distance_km(&conf); +#endif + // Conf: output_prefix output_prefix = conf.lookup_string(conf_key_output_prefix); @@ -489,7 +524,7 @@ void PointStatConfInfo::process_geog(const Grid &grid, sfc_info.land_ptr = &land_mask; } else { - sfc_info.land_ptr = 0; + sfc_info.land_ptr = nullptr; } if(vx_opt[i].topo_flag) { sfc_info.topo_ptr = &topo_dp; @@ -497,7 +532,7 @@ void PointStatConfInfo::process_geog(const Grid &grid, sfc_info.topo_interp_fcst_thresh = topo_interp_fcst_thresh; } else { - sfc_info.topo_ptr = 0; + sfc_info.topo_ptr = nullptr; } vx_opt[i].vx_pd.set_sfc_info(sfc_info); } @@ -516,119 +551,118 @@ void PointStatConfInfo::set_vx_pd() { //////////////////////////////////////////////////////////////////////// int PointStatConfInfo::n_txt_row(int i_txt_row) const { - int i, n; + int n = 0; // Loop over the tasks and sum the line counts for this line type - for(i=0, n=0; ioutput_map; Dictionary *dict; @@ -845,7 +879,7 @@ void PointStatVxOpt::process_config(GrdFileType ftype, output_map = parse_conf_output_flag(&odict, txt_file_type, n_txt); // Populate the output_flag array with map values - for(i=0; iis_prob(); bool vect_flag = vx_pd.fcst_info->is_v_wind() && @@ -1379,55 +1413,55 @@ int PointStatVxOpt::n_txt_row(int i_txt_row) const { << "\n\n"; exit(1); } - return(n); + return n; } //////////////////////////////////////////////////////////////////////// int PointStatVxOpt::get_n_cnt_thresh() const { - return((!vx_pd.fcst_info || vx_pd.fcst_info->is_prob()) ? - 0 : fcnt_ta.n()); + return (!vx_pd.fcst_info || vx_pd.fcst_info->is_prob()) ? + 0 : fcnt_ta.n(); } //////////////////////////////////////////////////////////////////////// int PointStatVxOpt::get_n_cat_thresh() const { - return((!vx_pd.fcst_info || vx_pd.fcst_info->is_prob()) ? - 0 : fcat_ta.n()); + return (!vx_pd.fcst_info || vx_pd.fcst_info->is_prob()) ? + 0 : fcat_ta.n(); } //////////////////////////////////////////////////////////////////////// int PointStatVxOpt::get_n_wind_thresh() const { - return((!vx_pd.fcst_info || vx_pd.fcst_info->is_prob()) ? - 0 : fwind_ta.n()); + return (!vx_pd.fcst_info || vx_pd.fcst_info->is_prob()) ? + 0 : fwind_ta.n(); } //////////////////////////////////////////////////////////////////////// int PointStatVxOpt::get_n_fprob_thresh() const { - return((!vx_pd.fcst_info || !vx_pd.fcst_info->is_prob()) ? - 0 : fcat_ta.n()); + return (!vx_pd.fcst_info || !vx_pd.fcst_info->is_prob()) ? + 0 : fcat_ta.n(); } //////////////////////////////////////////////////////////////////////// int PointStatVxOpt::get_n_oprob_thresh() const { - return((!vx_pd.fcst_info || !vx_pd.fcst_info->is_prob()) ? - 0 : ocat_ta.n()); + return (!vx_pd.fcst_info || !vx_pd.fcst_info->is_prob()) ? + 0 : ocat_ta.n(); } //////////////////////////////////////////////////////////////////////// int PointStatVxOpt::get_n_hira_ens() const { int n = (hira_info.flag ? hira_info.width.max() : 0); - return(n*n); + return n*n; } //////////////////////////////////////////////////////////////////////// int PointStatVxOpt::get_n_hira_prob() const { - return(hira_info.flag ? hira_info.cov_ta.n() : 0); + return hira_info.flag ? hira_info.cov_ta.n() : 0; } //////////////////////////////////////////////////////////////////////// diff --git a/src/tools/core/point_stat/point_stat_conf_info.h b/src/tools/core/point_stat/point_stat_conf_info.h index 26613f0781..26edd2338d 100644 --- a/src/tools/core/point_stat/point_stat_conf_info.h +++ b/src/tools/core/point_stat/point_stat_conf_info.h @@ -134,7 +134,7 @@ class PointStatVxOpt { SingleThresh seeps_p1_thresh; // SEESP p1 threshold // Vector of MaskLatLon objects defining Lat/Lon Point masks - vector mask_llpnt; + std::vector mask_llpnt; StringArray mask_name; // Masking names @@ -235,17 +235,23 @@ class PointStatConfInfo { SingleThresh topo_interp_fcst_thresh; // Message type groups that should be processed together - map msg_typ_group_map; + std::map msg_typ_group_map; // Mapping of mask names to DataPlanes - map mask_area_map; + std::map mask_area_map; // Mapping of mask names to Station ID lists - map mask_sid_map; + std::map mask_sid_map; ConcatString tmp_dir; // Directory for temporary files ConcatString output_prefix; // String to customize output file name ConcatString version; // Config file version +#ifdef WITH_UGRID + ConcatString ugrid_nc; // NetCDF for coordinate variables of unstructured grid + ConcatString ugrid_dataset; // UGRid dataset name (mpas, lfric etc) + ConcatString ugrid_map_config; // User's configuration file which contains ugrid metadata mapping + double ugrid_max_distance_km; // max distance to be the closest neighbor to unstructured grid +#endif // Summary of output file options across all verification tasks STATOutputType output_flag[n_txt]; // Flag for each output line type @@ -255,6 +261,8 @@ class PointStatConfInfo { void clear(); void read_config(const char *, const char *); + void read_configs(StringArray user_file_names); + void process_config(GrdFileType); void process_grib_codes(); void process_flags(); diff --git a/src/tools/core/series_analysis/Makefile.am b/src/tools/core/series_analysis/Makefile.am index dc9bf9b4b6..24f14c90e8 100644 --- a/src/tools/core/series_analysis/Makefile.am +++ b/src/tools/core/series_analysis/Makefile.am @@ -22,13 +22,15 @@ series_analysis_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -41,6 +43,7 @@ series_analysis_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = series_analysis.h \ diff --git a/src/tools/core/series_analysis/Makefile.in b/src/tools/core/series_analysis/Makefile.in index 44a0b546cd..2e0a6363c8 100644 --- a/src/tools/core/series_analysis/Makefile.in +++ b/src/tools/core/series_analysis/Makefile.in @@ -107,6 +107,8 @@ am_series_analysis_OBJECTS = \ series_analysis_OBJECTS = $(am_series_analysis_OBJECTS) am__DEPENDENCIES_1 = series_analysis_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) series_analysis_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(series_analysis_LDFLAGS) $(LDFLAGS) -o $@ @@ -203,7 +205,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -217,11 +220,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -260,11 +269,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -334,13 +346,15 @@ series_analysis_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -353,6 +367,7 @@ series_analysis_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = series_analysis.h \ diff --git a/src/tools/core/stat_analysis/Makefile.am b/src/tools/core/stat_analysis/Makefile.am index 7243d38298..f73b415ca2 100644 --- a/src/tools/core/stat_analysis/Makefile.am +++ b/src/tools/core/stat_analysis/Makefile.am @@ -25,13 +25,15 @@ stat_analysis_LDADD = -lvx_stat_out \ -lvx_gsl_prob \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -47,6 +49,7 @@ stat_analysis_LDADD = -lvx_stat_out \ -lvx_color \ -lvx_log \ -lvx_summary \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = stat_analysis.h \ diff --git a/src/tools/core/stat_analysis/Makefile.in b/src/tools/core/stat_analysis/Makefile.in index 2336e6fbc8..e28288bb93 100644 --- a/src/tools/core/stat_analysis/Makefile.in +++ b/src/tools/core/stat_analysis/Makefile.in @@ -109,6 +109,8 @@ am_stat_analysis_OBJECTS = stat_analysis-stat_analysis.$(OBJEXT) \ stat_analysis_OBJECTS = $(am_stat_analysis_OBJECTS) am__DEPENDENCIES_1 = stat_analysis_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) stat_analysis_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(stat_analysis_LDFLAGS) $(LDFLAGS) -o $@ @@ -208,7 +210,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -222,11 +225,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -265,11 +274,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -342,13 +354,15 @@ stat_analysis_LDADD = -lvx_stat_out \ -lvx_gsl_prob \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -364,6 +378,7 @@ stat_analysis_LDADD = -lvx_stat_out \ -lvx_color \ -lvx_log \ -lvx_summary \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = stat_analysis.h \ diff --git a/src/tools/core/wavelet_stat/Makefile.am b/src/tools/core/wavelet_stat/Makefile.am index b7f82f764d..398ce49dcf 100644 --- a/src/tools/core/wavelet_stat/Makefile.am +++ b/src/tools/core/wavelet_stat/Makefile.am @@ -28,13 +28,15 @@ wavelet_stat_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -47,6 +49,7 @@ wavelet_stat_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lz -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = wavelet_stat.h \ diff --git a/src/tools/core/wavelet_stat/Makefile.in b/src/tools/core/wavelet_stat/Makefile.in index 3f2d2b0469..fa242727a0 100644 --- a/src/tools/core/wavelet_stat/Makefile.in +++ b/src/tools/core/wavelet_stat/Makefile.in @@ -106,6 +106,8 @@ am_wavelet_stat_OBJECTS = wavelet_stat-wavelet_stat.$(OBJEXT) \ wavelet_stat_OBJECTS = $(am_wavelet_stat_OBJECTS) am__DEPENDENCIES_1 = wavelet_stat_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) wavelet_stat_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(wavelet_stat_LDFLAGS) $(LDFLAGS) -o $@ @@ -202,7 +204,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +219,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +268,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -339,13 +351,15 @@ wavelet_stat_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -358,6 +372,7 @@ wavelet_stat_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lz -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = wavelet_stat.h \ diff --git a/src/tools/dev_utils/Makefile.am b/src/tools/dev_utils/Makefile.am index c9daba3cf8..6aa78046a9 100644 --- a/src/tools/dev_utils/Makefile.am +++ b/src/tools/dev_utils/Makefile.am @@ -124,10 +124,12 @@ gen_climo_bin_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -142,6 +144,7 @@ gen_climo_bin_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas # Build chk4copyright when making a distribution so that we can diff --git a/src/tools/dev_utils/Makefile.in b/src/tools/dev_utils/Makefile.in index 31181b9f20..d342c2f60b 100644 --- a/src/tools/dev_utils/Makefile.in +++ b/src/tools/dev_utils/Makefile.in @@ -114,6 +114,8 @@ am_gen_climo_bin_OBJECTS = gen_climo_bin-gen_climo_bin.$(OBJEXT) gen_climo_bin_OBJECTS = $(am_gen_climo_bin_OBJECTS) am__DEPENDENCIES_1 = gen_climo_bin_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) gen_climo_bin_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(gen_climo_bin_LDFLAGS) $(LDFLAGS) -o $@ @@ -345,7 +347,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -359,11 +362,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -402,11 +411,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -568,10 +580,12 @@ gen_climo_bin_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -586,6 +600,7 @@ gen_climo_bin_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas all: all-recursive diff --git a/src/tools/dev_utils/shapefiles/Makefile.in b/src/tools/dev_utils/shapefiles/Makefile.in index de5d8fec1f..9550c17c78 100644 --- a/src/tools/dev_utils/shapefiles/Makefile.in +++ b/src/tools/dev_utils/shapefiles/Makefile.in @@ -198,7 +198,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -212,11 +213,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -255,11 +262,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/tools/other/Makefile.in b/src/tools/other/Makefile.in index 52bafebb9c..1f360c8bc5 100644 --- a/src/tools/other/Makefile.in +++ b/src/tools/other/Makefile.in @@ -231,7 +231,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -245,11 +246,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -288,11 +295,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/tools/other/ascii2nc/Makefile.am b/src/tools/other/ascii2nc/Makefile.am index 6c123107be..ae5cf6402c 100644 --- a/src/tools/other/ascii2nc/Makefile.am +++ b/src/tools/other/ascii2nc/Makefile.am @@ -38,10 +38,12 @@ ascii2nc_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ -lvx_nc_util \ @@ -58,7 +60,7 @@ ascii2nc_LDADD = -lvx_stat_out \ -lvx_cal \ -lvx_math \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas diff --git a/src/tools/other/ascii2nc/Makefile.in b/src/tools/other/ascii2nc/Makefile.in index a4ed87b60b..a74c95cde4 100644 --- a/src/tools/other/ascii2nc/Makefile.in +++ b/src/tools/other/ascii2nc/Makefile.in @@ -128,7 +128,8 @@ am_ascii2nc_OBJECTS = ascii2nc-ascii2nc.$(OBJEXT) \ ascii2nc_OBJECTS = $(am_ascii2nc_OBJECTS) am__DEPENDENCIES_1 = ascii2nc_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) ascii2nc_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(ascii2nc_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -247,7 +248,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -261,11 +263,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -304,11 +312,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -388,10 +399,12 @@ ascii2nc_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ -lvx_nc_util \ @@ -408,7 +421,7 @@ ascii2nc_LDADD = -lvx_stat_out \ -lvx_cal \ -lvx_math \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas all: all-am diff --git a/src/tools/other/gen_ens_prod/Makefile.am b/src/tools/other/gen_ens_prod/Makefile.am index 4fdce9ab82..75ddde6311 100644 --- a/src/tools/other/gen_ens_prod/Makefile.am +++ b/src/tools/other/gen_ens_prod/Makefile.am @@ -22,13 +22,15 @@ gen_ens_prod_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -41,7 +43,7 @@ gen_ens_prod_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = gen_ens_prod.h \ diff --git a/src/tools/other/gen_ens_prod/Makefile.in b/src/tools/other/gen_ens_prod/Makefile.in index a061b0909d..286a7eb929 100644 --- a/src/tools/other/gen_ens_prod/Makefile.in +++ b/src/tools/other/gen_ens_prod/Makefile.in @@ -106,7 +106,9 @@ am_gen_ens_prod_OBJECTS = gen_ens_prod-gen_ens_prod.$(OBJEXT) \ gen_ens_prod_OBJECTS = $(am_gen_ens_prod_OBJECTS) am__DEPENDENCIES_1 = gen_ens_prod_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) gen_ens_prod_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(gen_ens_prod_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -202,7 +204,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +219,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +268,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -333,13 +345,15 @@ gen_ens_prod_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -352,7 +366,7 @@ gen_ens_prod_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = gen_ens_prod.h \ diff --git a/src/tools/other/gen_vx_mask/Makefile.am b/src/tools/other/gen_vx_mask/Makefile.am index e05a781e0e..c936c2f0f5 100644 --- a/src/tools/other/gen_vx_mask/Makefile.am +++ b/src/tools/other/gen_vx_mask/Makefile.am @@ -18,11 +18,13 @@ gen_vx_mask_LDFLAGS = ${MET_LDFLAGS} gen_vx_mask_LDADD = -lvx_shapedata \ -lvx_analysis_util \ -lvx_data2d_factory \ - -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ -lvx_data2d_nc_met \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_gis \ -lvx_nc_util \ @@ -50,6 +52,7 @@ gen_vx_mask_LDADD = -lvx_shapedata \ -lvx_solar \ -lvx_cal \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = gen_vx_mask.h diff --git a/src/tools/other/gen_vx_mask/Makefile.in b/src/tools/other/gen_vx_mask/Makefile.in index e431f5ff9d..aca0b6911b 100644 --- a/src/tools/other/gen_vx_mask/Makefile.in +++ b/src/tools/other/gen_vx_mask/Makefile.in @@ -104,7 +104,9 @@ PROGRAMS = $(bin_PROGRAMS) am_gen_vx_mask_OBJECTS = gen_vx_mask-gen_vx_mask.$(OBJEXT) gen_vx_mask_OBJECTS = $(am_gen_vx_mask_OBJECTS) am__DEPENDENCIES_1 = -gen_vx_mask_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +gen_vx_mask_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) gen_vx_mask_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(gen_vx_mask_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -199,7 +201,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -213,11 +216,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -256,11 +265,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -324,11 +336,13 @@ gen_vx_mask_LDFLAGS = ${MET_LDFLAGS} gen_vx_mask_LDADD = -lvx_shapedata \ -lvx_analysis_util \ -lvx_data2d_factory \ - -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ -lvx_data2d_nc_met \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_gis \ -lvx_nc_util \ @@ -356,6 +370,7 @@ gen_vx_mask_LDADD = -lvx_shapedata \ -lvx_solar \ -lvx_cal \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = gen_vx_mask.h diff --git a/src/tools/other/gis_utils/Makefile.in b/src/tools/other/gis_utils/Makefile.in index c4ffd9e720..a0fc730d36 100644 --- a/src/tools/other/gis_utils/Makefile.in +++ b/src/tools/other/gis_utils/Makefile.in @@ -213,7 +213,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -227,11 +228,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -270,11 +277,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/tools/other/grid_diag/Makefile.am b/src/tools/other/grid_diag/Makefile.am index d8307b8992..8c55950475 100644 --- a/src/tools/other/grid_diag/Makefile.am +++ b/src/tools/other/grid_diag/Makefile.am @@ -22,10 +22,12 @@ grid_diag_LDADD = -lvx_stat_out \ -lvx_series_data \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -40,6 +42,7 @@ grid_diag_LDADD = -lvx_stat_out \ -lvx_color \ -lvx_log \ -lvx_gsl_prob \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = grid_diag.h \ diff --git a/src/tools/other/grid_diag/Makefile.in b/src/tools/other/grid_diag/Makefile.in index 9ce5481f2c..e2a7bbec83 100644 --- a/src/tools/other/grid_diag/Makefile.in +++ b/src/tools/other/grid_diag/Makefile.in @@ -105,7 +105,9 @@ am_grid_diag_OBJECTS = grid_diag-grid_diag.$(OBJEXT) \ grid_diag-grid_diag_conf_info.$(OBJEXT) grid_diag_OBJECTS = $(am_grid_diag_OBJECTS) am__DEPENDENCIES_1 = -grid_diag_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +grid_diag_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) grid_diag_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(grid_diag_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -201,7 +203,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -215,11 +218,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -258,11 +267,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -332,10 +344,12 @@ grid_diag_LDADD = -lvx_stat_out \ -lvx_series_data \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -350,6 +364,7 @@ grid_diag_LDADD = -lvx_stat_out \ -lvx_color \ -lvx_log \ -lvx_gsl_prob \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = grid_diag.h \ diff --git a/src/tools/other/gsi_tools/Makefile.am b/src/tools/other/gsi_tools/Makefile.am index 214e70657d..54cf2cb4da 100644 --- a/src/tools/other/gsi_tools/Makefile.am +++ b/src/tools/other/gsi_tools/Makefile.am @@ -37,16 +37,17 @@ gsid2mpr_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ - -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ + -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -60,6 +61,7 @@ gsid2mpr_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util gsidens2orank_SOURCES = gsidens2orank.h \ @@ -86,16 +88,17 @@ gsidens2orank_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ - -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ + -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -109,5 +112,6 @@ gsidens2orank_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util diff --git a/src/tools/other/gsi_tools/Makefile.in b/src/tools/other/gsi_tools/Makefile.in index 218e3de140..f4cdb30333 100644 --- a/src/tools/other/gsi_tools/Makefile.in +++ b/src/tools/other/gsi_tools/Makefile.in @@ -108,7 +108,8 @@ am_gsid2mpr_OBJECTS = gsid2mpr-gsi_record.$(OBJEXT) \ gsid2mpr_OBJECTS = $(am_gsid2mpr_OBJECTS) am__DEPENDENCIES_1 = gsid2mpr_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) gsid2mpr_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(gsid2mpr_LDFLAGS) $(LDFLAGS) -o $@ am_gsidens2orank_OBJECTS = gsidens2orank-gsi_record.$(OBJEXT) \ @@ -119,7 +120,9 @@ am_gsidens2orank_OBJECTS = gsidens2orank-gsi_record.$(OBJEXT) \ gsidens2orank-rad_config.$(OBJEXT) gsidens2orank_OBJECTS = $(am_gsidens2orank_OBJECTS) gsidens2orank_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) gsidens2orank_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(gsidens2orank_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -237,7 +240,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -251,11 +255,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -294,11 +304,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -381,16 +394,17 @@ gsid2mpr_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ - -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ + -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -404,6 +418,7 @@ gsid2mpr_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util gsidens2orank_SOURCES = gsidens2orank.h \ @@ -431,16 +446,17 @@ gsidens2orank_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_shapedata \ -lvx_util \ - $(PYTHON_LIBS) \ - -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ + -lvx_statistics \ -lvx_data2d \ - -lvx_seeps \ + -lvx_seeps \ -lvx_nc_util \ -lvx_regrid \ -lvx_grid \ @@ -454,6 +470,7 @@ gsidens2orank_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lvx_util all: all-am diff --git a/src/tools/other/ioda2nc/Makefile.am b/src/tools/other/ioda2nc/Makefile.am index 650b13fffb..d393417c51 100644 --- a/src/tools/other/ioda2nc/Makefile.am +++ b/src/tools/other/ioda2nc/Makefile.am @@ -21,10 +21,12 @@ ioda2nc_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ -lvx_nc_util \ @@ -41,7 +43,7 @@ ioda2nc_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas $(BLIB_NAME) \ $(FLIBS) diff --git a/src/tools/other/ioda2nc/Makefile.in b/src/tools/other/ioda2nc/Makefile.in index 2c23b4f74e..ede39d5e37 100644 --- a/src/tools/other/ioda2nc/Makefile.in +++ b/src/tools/other/ioda2nc/Makefile.in @@ -106,7 +106,9 @@ am_ioda2nc_OBJECTS = ioda2nc-ioda2nc.$(OBJEXT) \ ioda2nc_OBJECTS = $(am_ioda2nc_OBJECTS) am__DEPENDENCIES_1 = ioda2nc_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) ioda2nc_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(ioda2nc_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -214,7 +216,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -228,11 +231,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -271,11 +280,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -344,10 +356,12 @@ ioda2nc_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ -lvx_nc_util \ @@ -364,7 +378,7 @@ ioda2nc_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas $(BLIB_NAME) \ $(FLIBS) diff --git a/src/tools/other/lidar2nc/Makefile.am b/src/tools/other/lidar2nc/Makefile.am index 5cad14876f..5692fe6373 100644 --- a/src/tools/other/lidar2nc/Makefile.am +++ b/src/tools/other/lidar2nc/Makefile.am @@ -24,8 +24,9 @@ lidar2nc_LDADD = -lvx_shapedata \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_nc_obs \ -lvx_nc_util \ @@ -45,13 +46,14 @@ lidar2nc_LDADD = -lvx_shapedata \ -lvx_geodesy \ -lvx_util_math \ -lvx_util \ + $(PYTHON_MET_LIBS) \ -lvx_config \ -lvx_gsl_prob \ -lvx_math \ -lvx_cal \ -lvx_log \ -lvx_util \ - $(PYTHON_LIBS) \ + $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_summary \ -lmfhdf -ldf -ljpeg \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz diff --git a/src/tools/other/lidar2nc/Makefile.in b/src/tools/other/lidar2nc/Makefile.in index fc7814febf..f4c756bc08 100644 --- a/src/tools/other/lidar2nc/Makefile.in +++ b/src/tools/other/lidar2nc/Makefile.in @@ -105,7 +105,9 @@ am_lidar2nc_OBJECTS = lidar2nc-lidar2nc.$(OBJEXT) \ lidar2nc-hdf_utils.$(OBJEXT) lidar2nc-calipso_5km.$(OBJEXT) lidar2nc_OBJECTS = $(am_lidar2nc_OBJECTS) am__DEPENDENCIES_1 = -lidar2nc_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +lidar2nc_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) lidar2nc_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(lidar2nc_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -214,7 +216,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -228,11 +231,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -271,11 +280,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -348,8 +360,9 @@ lidar2nc_LDADD = -lvx_shapedata \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_nc_obs \ -lvx_nc_util \ @@ -369,13 +382,14 @@ lidar2nc_LDADD = -lvx_shapedata \ -lvx_geodesy \ -lvx_util_math \ -lvx_util \ + $(PYTHON_MET_LIBS) \ -lvx_config \ -lvx_gsl_prob \ -lvx_math \ -lvx_cal \ -lvx_log \ -lvx_util \ - $(PYTHON_LIBS) \ + $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lvx_summary \ -lmfhdf -ldf -ljpeg \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz diff --git a/src/tools/other/madis2nc/Makefile.am b/src/tools/other/madis2nc/Makefile.am index 6b1dba74fd..0cfef882c0 100644 --- a/src/tools/other/madis2nc/Makefile.am +++ b/src/tools/other/madis2nc/Makefile.am @@ -20,10 +20,12 @@ madis2nc_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ -lvx_nc_util \ @@ -40,7 +42,7 @@ madis2nc_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = madis2nc.h \ diff --git a/src/tools/other/madis2nc/Makefile.in b/src/tools/other/madis2nc/Makefile.in index 4b821f3bcf..2ce7ad24ce 100644 --- a/src/tools/other/madis2nc/Makefile.in +++ b/src/tools/other/madis2nc/Makefile.in @@ -106,7 +106,8 @@ am_madis2nc_OBJECTS = madis2nc-madis2nc.$(OBJEXT) \ madis2nc_OBJECTS = $(am_madis2nc_OBJECTS) am__DEPENDENCIES_1 = madis2nc_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) madis2nc_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(madis2nc_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -202,7 +203,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +218,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +267,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -330,10 +341,12 @@ madis2nc_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ -lvx_nc_util \ @@ -350,7 +363,7 @@ madis2nc_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = madis2nc.h \ diff --git a/src/tools/other/mode_graphics/Makefile.am b/src/tools/other/mode_graphics/Makefile.am index adda76d68a..e8027d814e 100644 --- a/src/tools/other/mode_graphics/Makefile.am +++ b/src/tools/other/mode_graphics/Makefile.am @@ -26,7 +26,8 @@ plot_mode_field_LDADD = -lvx_config \ -lvx_gsl_prob \ -lvx_plot_util \ -lvx_data2d_nc_met \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_grid \ -lvx_geodesy \ @@ -42,7 +43,9 @@ plot_mode_field_LDADD = -lvx_config \ -lvx_config \ -lvx_cal \ -lvx_math \ - -lcairo -lfreetype -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz + $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ + -lcairo -lfreetype \ + -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz # If we are in development mode, generate the "to_string" files and # clean them up in a "make clean". We don't want to do either of these diff --git a/src/tools/other/mode_graphics/Makefile.in b/src/tools/other/mode_graphics/Makefile.in index d08405212e..ef1c7eedfd 100644 --- a/src/tools/other/mode_graphics/Makefile.in +++ b/src/tools/other/mode_graphics/Makefile.in @@ -110,7 +110,9 @@ am_plot_mode_field_OBJECTS = \ plot_mode_field-mode_nc_output_file.$(OBJEXT) plot_mode_field_OBJECTS = $(am_plot_mode_field_OBJECTS) am__DEPENDENCIES_1 = -plot_mode_field_DEPENDENCIES = $(am__DEPENDENCIES_1) +plot_mode_field_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) plot_mode_field_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(plot_mode_field_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -222,7 +224,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -236,11 +239,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -279,11 +288,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -356,7 +368,8 @@ plot_mode_field_LDADD = -lvx_config \ -lvx_gsl_prob \ -lvx_plot_util \ -lvx_data2d_nc_met \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_grid \ -lvx_geodesy \ @@ -372,7 +385,9 @@ plot_mode_field_LDADD = -lvx_config \ -lvx_config \ -lvx_cal \ -lvx_math \ - -lcairo -lfreetype -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz + $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ + -lcairo -lfreetype \ + -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz all: all-am diff --git a/src/tools/other/mode_time_domain/Makefile.am b/src/tools/other/mode_time_domain/Makefile.am index 2015d82293..93fed7d4bb 100644 --- a/src/tools/other/mode_time_domain/Makefile.am +++ b/src/tools/other/mode_time_domain/Makefile.am @@ -51,10 +51,12 @@ mtd_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -69,6 +71,7 @@ mtd_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz # If we are in development mode, generate the "to_string" files and diff --git a/src/tools/other/mode_time_domain/Makefile.in b/src/tools/other/mode_time_domain/Makefile.in index 0650adc52e..2b529ebdfa 100644 --- a/src/tools/other/mode_time_domain/Makefile.in +++ b/src/tools/other/mode_time_domain/Makefile.in @@ -116,7 +116,9 @@ am_mtd_OBJECTS = mtd-mtd.$(OBJEXT) mtd-mtdfiletype_to_string.$(OBJEXT) \ mtd-mm_engine.$(OBJEXT) mtd_OBJECTS = $(am_mtd_OBJECTS) am__DEPENDENCIES_1 = -mtd_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +mtd_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) mtd_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(mtd_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -240,7 +242,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -254,11 +257,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -297,11 +306,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -401,10 +413,12 @@ mtd_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -419,6 +433,7 @@ mtd_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas -lz all: all-am diff --git a/src/tools/other/modis_regrid/Makefile.am b/src/tools/other/modis_regrid/Makefile.am index 326cdf5870..75b2bfaccc 100644 --- a/src/tools/other/modis_regrid/Makefile.am +++ b/src/tools/other/modis_regrid/Makefile.am @@ -33,9 +33,12 @@ modis_regrid_LDADD = -lvx_pxm \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -50,6 +53,7 @@ modis_regrid_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ -lhdfeos \ -lmfhdf \ diff --git a/src/tools/other/modis_regrid/Makefile.in b/src/tools/other/modis_regrid/Makefile.in index b72e0d8284..ef69b63ba0 100644 --- a/src/tools/other/modis_regrid/Makefile.in +++ b/src/tools/other/modis_regrid/Makefile.in @@ -110,6 +110,8 @@ am_modis_regrid_OBJECTS = modis_regrid-modis_regrid.$(OBJEXT) \ modis_regrid_OBJECTS = $(am_modis_regrid_OBJECTS) am__DEPENDENCIES_1 = modis_regrid_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) modis_regrid_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(modis_regrid_LDFLAGS) $(LDFLAGS) -o $@ @@ -210,7 +212,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -224,11 +227,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -267,11 +276,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -352,9 +364,12 @@ modis_regrid_LDADD = -lvx_pxm \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_nccf \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ + -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -369,6 +384,7 @@ modis_regrid_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ -lhdfeos \ -lmfhdf \ diff --git a/src/tools/other/pb2nc/Makefile.am b/src/tools/other/pb2nc/Makefile.am index 144d4f5ba1..5de5fc4210 100644 --- a/src/tools/other/pb2nc/Makefile.am +++ b/src/tools/other/pb2nc/Makefile.am @@ -38,10 +38,12 @@ pb2nc_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ -lvx_nc_util \ @@ -58,7 +60,7 @@ pb2nc_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas $(BLIB_NAME) \ $(FLIBS) diff --git a/src/tools/other/pb2nc/Makefile.in b/src/tools/other/pb2nc/Makefile.in index 8e07def80d..c8ac862943 100644 --- a/src/tools/other/pb2nc/Makefile.in +++ b/src/tools/other/pb2nc/Makefile.in @@ -109,8 +109,9 @@ pb2nc_OBJECTS = $(am_pb2nc_OBJECTS) am__DEPENDENCIES_1 = @BUFRLIB_NAME_SET_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) pb2nc_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) pb2nc_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(pb2nc_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -230,7 +231,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -244,11 +246,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -287,11 +295,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -372,10 +383,12 @@ pb2nc_LDADD = -lvx_stat_out \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_obs \ -lvx_nc_util \ @@ -392,7 +405,7 @@ pb2nc_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas $(BLIB_NAME) \ $(FLIBS) diff --git a/src/tools/other/plot_data_plane/Makefile.am b/src/tools/other/plot_data_plane/Makefile.am index 24b7dbc16c..5251524faa 100644 --- a/src/tools/other/plot_data_plane/Makefile.am +++ b/src/tools/other/plot_data_plane/Makefile.am @@ -16,10 +16,12 @@ plot_data_plane_CPPFLAGS = ${MET_CPPFLAGS} plot_data_plane_LDFLAGS = ${MET_LDFLAGS} plot_data_plane_LDADD = -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_nc_util \ -lvx_data2d \ @@ -41,4 +43,5 @@ plot_data_plane_LDADD = -lvx_data2d_factory \ -lvx_math \ -lvx_cal \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lz -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas diff --git a/src/tools/other/plot_data_plane/Makefile.in b/src/tools/other/plot_data_plane/Makefile.in index 3e5e862ffa..468e395d3c 100644 --- a/src/tools/other/plot_data_plane/Makefile.in +++ b/src/tools/other/plot_data_plane/Makefile.in @@ -106,6 +106,8 @@ am_plot_data_plane_OBJECTS = \ plot_data_plane_OBJECTS = $(am_plot_data_plane_OBJECTS) am__DEPENDENCIES_1 = plot_data_plane_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) plot_data_plane_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(plot_data_plane_LDFLAGS) $(LDFLAGS) -o $@ @@ -201,7 +203,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -215,11 +218,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -258,11 +267,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -325,10 +337,12 @@ plot_data_plane_CPPFLAGS = ${MET_CPPFLAGS} plot_data_plane_LDFLAGS = ${MET_LDFLAGS} plot_data_plane_LDADD = -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_nc_util \ -lvx_data2d \ @@ -350,6 +364,7 @@ plot_data_plane_LDADD = -lvx_data2d_factory \ -lvx_math \ -lvx_cal \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lz -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas all: all-am diff --git a/src/tools/other/plot_data_plane/plot_data_plane.cc b/src/tools/other/plot_data_plane/plot_data_plane.cc index 890dc1d148..646e51066f 100644 --- a/src/tools/other/plot_data_plane/plot_data_plane.cc +++ b/src/tools/other/plot_data_plane/plot_data_plane.cc @@ -143,6 +143,12 @@ int met_main(int argc, char * argv[]) { exit(1); } + if (FileType_UGrid == met_ptr->file_type()) { + mlog << Error << "\n" << program_name << " -> filetype " + << grdfiletype_to_string(met_ptr->file_type()) << " is not supported\n\n"; + exit(1); + } + var_ptr = v_factory.new_var_info(met_ptr->file_type()); if(!var_ptr) { diff --git a/src/tools/other/plot_point_obs/Makefile.am b/src/tools/other/plot_point_obs/Makefile.am index f34ef23a5a..17dbb404e0 100644 --- a/src/tools/other/plot_point_obs/Makefile.am +++ b/src/tools/other/plot_point_obs/Makefile.am @@ -18,10 +18,12 @@ plot_point_obs_LDFLAGS = ${MET_LDFLAGS} plot_point_obs_LDADD = -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_statistics \ @@ -45,7 +47,7 @@ plot_point_obs_LDADD = -lvx_statistics \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lz -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = plot_point_obs.h \ plot_point_obs_conf_info.h diff --git a/src/tools/other/plot_point_obs/Makefile.in b/src/tools/other/plot_point_obs/Makefile.in index c1f721ef3f..8ec88481fc 100644 --- a/src/tools/other/plot_point_obs/Makefile.in +++ b/src/tools/other/plot_point_obs/Makefile.in @@ -106,7 +106,9 @@ am_plot_point_obs_OBJECTS = plot_point_obs-plot_point_obs.$(OBJEXT) \ plot_point_obs_OBJECTS = $(am_plot_point_obs_OBJECTS) am__DEPENDENCIES_1 = plot_point_obs_DEPENDENCIES = $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) plot_point_obs_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(plot_point_obs_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -202,7 +204,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +219,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +268,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -329,10 +341,12 @@ plot_point_obs_LDFLAGS = ${MET_LDFLAGS} plot_point_obs_LDADD = -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_statistics \ @@ -356,7 +370,7 @@ plot_point_obs_LDADD = -lvx_statistics \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lz -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = plot_point_obs.h \ diff --git a/src/tools/other/plot_point_obs/plot_point_obs.cc b/src/tools/other/plot_point_obs/plot_point_obs.cc index 1a48fba94f..b5d8758161 100644 --- a/src/tools/other/plot_point_obs/plot_point_obs.cc +++ b/src/tools/other/plot_point_obs/plot_point_obs.cc @@ -45,6 +45,7 @@ using namespace std; #include "main.h" #include "plot_point_obs.h" +#include "is_netcdf_file.h" #include "data_plane_plot.h" #include "vx_ps.h" #include "vx_pxm.h" @@ -185,6 +186,20 @@ void process_point_obs(const char *point_obs_filename) { if (use_python) python_compile_error(method_name); #endif { + if (!file_exists(point_obs_filename)) { + mlog << Error << "\n" << method_name + << point_obs_filename << " does not exist.\n\n"; + + exit(1); + } + + if(is_ugrid_file(point_obs_filename)) { + mlog << Error << "\n" << program_name << " -> filetype " + << grdfiletype_to_string(FileType_UGrid) << " is not supported\n\n"; + + exit(1); + } + if(!nc_point_obs.open(point_obs_filename)) { nc_point_obs.close(); diff --git a/src/tools/other/point2grid/Makefile.am b/src/tools/other/point2grid/Makefile.am index 3f332a9d34..17b0987b89 100644 --- a/src/tools/other/point2grid/Makefile.am +++ b/src/tools/other/point2grid/Makefile.am @@ -18,10 +18,12 @@ point2grid_LDFLAGS = ${MET_LDFLAGS} point2grid_LDADD = -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_nc_obs \ @@ -37,5 +39,5 @@ point2grid_LDADD = -lvx_statistics \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas diff --git a/src/tools/other/point2grid/Makefile.in b/src/tools/other/point2grid/Makefile.in index 4d31513f8a..490176b6c8 100644 --- a/src/tools/other/point2grid/Makefile.in +++ b/src/tools/other/point2grid/Makefile.in @@ -106,7 +106,8 @@ am_point2grid_OBJECTS = point2grid-point2grid.$(OBJEXT) \ point2grid_OBJECTS = $(am_point2grid_OBJECTS) am__DEPENDENCIES_1 = point2grid_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) point2grid_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(point2grid_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -214,7 +215,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -228,11 +230,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -271,11 +279,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -341,10 +352,12 @@ point2grid_LDFLAGS = ${MET_LDFLAGS} point2grid_LDADD = -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ -lvx_data2d_nccf \ - $(PYTHON_LIBS) \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_nc_obs \ @@ -360,7 +373,7 @@ point2grid_LDADD = -lvx_statistics \ -lvx_math \ -lvx_cal \ -lvx_log \ - $(PYTHON_LIBS) \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas all: all-am diff --git a/src/tools/other/regrid_data_plane/Makefile.am b/src/tools/other/regrid_data_plane/Makefile.am index 94cd352f65..e6ed355083 100644 --- a/src/tools/other/regrid_data_plane/Makefile.am +++ b/src/tools/other/regrid_data_plane/Makefile.am @@ -17,10 +17,12 @@ regrid_data_plane_LDFLAGS = ${MET_LDFLAGS} regrid_data_plane_LDADD = -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_nc_util \ -lvx_data2d \ @@ -36,4 +38,5 @@ regrid_data_plane_LDADD = -lvx_statistics \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas diff --git a/src/tools/other/regrid_data_plane/Makefile.in b/src/tools/other/regrid_data_plane/Makefile.in index 83f8c1bdd1..dd9d7bbb36 100644 --- a/src/tools/other/regrid_data_plane/Makefile.in +++ b/src/tools/other/regrid_data_plane/Makefile.in @@ -106,6 +106,8 @@ am_regrid_data_plane_OBJECTS = \ regrid_data_plane_OBJECTS = $(am_regrid_data_plane_OBJECTS) am__DEPENDENCIES_1 = regrid_data_plane_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) regrid_data_plane_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(regrid_data_plane_LDFLAGS) $(LDFLAGS) -o $@ @@ -202,7 +204,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +219,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +268,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -327,10 +339,12 @@ regrid_data_plane_LDFLAGS = ${MET_LDFLAGS} regrid_data_plane_LDADD = -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_nc_util \ -lvx_data2d \ @@ -346,6 +360,7 @@ regrid_data_plane_LDADD = -lvx_statistics \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas all: all-am diff --git a/src/tools/other/shift_data_plane/Makefile.am b/src/tools/other/shift_data_plane/Makefile.am index d97ea98b7f..d4854a1f75 100644 --- a/src/tools/other/shift_data_plane/Makefile.am +++ b/src/tools/other/shift_data_plane/Makefile.am @@ -17,10 +17,12 @@ shift_data_plane_LDFLAGS = ${MET_LDFLAGS} shift_data_plane_LDADD = -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_nc_util \ -lvx_data2d \ @@ -36,4 +38,5 @@ shift_data_plane_LDADD = -lvx_statistics \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas diff --git a/src/tools/other/shift_data_plane/Makefile.in b/src/tools/other/shift_data_plane/Makefile.in index 11b93c7f97..4f3e9b6df6 100644 --- a/src/tools/other/shift_data_plane/Makefile.in +++ b/src/tools/other/shift_data_plane/Makefile.in @@ -106,6 +106,8 @@ am_shift_data_plane_OBJECTS = \ shift_data_plane_OBJECTS = $(am_shift_data_plane_OBJECTS) am__DEPENDENCIES_1 = shift_data_plane_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) shift_data_plane_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(shift_data_plane_LDFLAGS) $(LDFLAGS) -o $@ @@ -202,7 +204,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +219,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +268,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -327,10 +339,12 @@ shift_data_plane_LDFLAGS = ${MET_LDFLAGS} shift_data_plane_LDADD = -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_nc_util \ -lvx_data2d \ @@ -346,6 +360,7 @@ shift_data_plane_LDADD = -lvx_statistics \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas all: all-am diff --git a/src/tools/other/wwmca_tool/Makefile.am b/src/tools/other/wwmca_tool/Makefile.am index d8f2701165..73603061ad 100644 --- a/src/tools/other/wwmca_tool/Makefile.am +++ b/src/tools/other/wwmca_tool/Makefile.am @@ -40,10 +40,12 @@ wwmca_regrid_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -58,6 +60,7 @@ wwmca_regrid_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lz -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas wwmca_plot_SOURCES = gridhemisphere_to_string.cc gridhemisphere_to_string.h \ @@ -86,10 +89,12 @@ wwmca_plot_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ @@ -103,6 +108,7 @@ wwmca_plot_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lz -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas # If we are in development mode, generate the "to_string" files and diff --git a/src/tools/other/wwmca_tool/Makefile.in b/src/tools/other/wwmca_tool/Makefile.in index 13bbb9abdf..4cbdc459a0 100644 --- a/src/tools/other/wwmca_tool/Makefile.in +++ b/src/tools/other/wwmca_tool/Makefile.in @@ -113,7 +113,9 @@ am_wwmca_plot_OBJECTS = wwmca_plot-gridhemisphere_to_string.$(OBJEXT) \ wwmca_plot-wwmca_ref.$(OBJEXT) wwmca_plot_OBJECTS = $(am_wwmca_plot_OBJECTS) am__DEPENDENCIES_1 = -wwmca_plot_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +wwmca_plot_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) wwmca_plot_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(wwmca_plot_LDFLAGS) $(LDFLAGS) -o $@ am_wwmca_regrid_OBJECTS = \ @@ -131,6 +133,8 @@ am_wwmca_regrid_OBJECTS = \ wwmca_regrid-nc_output.$(OBJEXT) wwmca_regrid_OBJECTS = $(am_wwmca_regrid_OBJECTS) wwmca_regrid_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) wwmca_regrid_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(wwmca_regrid_LDFLAGS) $(LDFLAGS) -o $@ @@ -260,7 +264,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -274,11 +279,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -317,11 +328,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -407,10 +421,12 @@ wwmca_regrid_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -425,6 +441,7 @@ wwmca_regrid_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lz -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas wwmca_plot_SOURCES = gridhemisphere_to_string.cc gridhemisphere_to_string.h \ @@ -454,10 +471,12 @@ wwmca_plot_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_data2d \ -lvx_nc_util \ -lvx_regrid \ @@ -471,6 +490,7 @@ wwmca_plot_LDADD = -lvx_pxm \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lz -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas all: all-am diff --git a/src/tools/tc_utils/Makefile.in b/src/tools/tc_utils/Makefile.in index 2cd4549d0f..e07ba513ee 100644 --- a/src/tools/tc_utils/Makefile.in +++ b/src/tools/tc_utils/Makefile.in @@ -211,7 +211,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -225,11 +226,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -268,11 +275,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ diff --git a/src/tools/tc_utils/rmw_analysis/Makefile.am b/src/tools/tc_utils/rmw_analysis/Makefile.am index cf27759681..46dfff3df2 100644 --- a/src/tools/tc_utils/rmw_analysis/Makefile.am +++ b/src/tools/tc_utils/rmw_analysis/Makefile.am @@ -22,10 +22,12 @@ rmw_analysis_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -41,6 +43,7 @@ rmw_analysis_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/rmw_analysis/Makefile.in b/src/tools/tc_utils/rmw_analysis/Makefile.in index 409baa5a41..c6dfed0e53 100644 --- a/src/tools/tc_utils/rmw_analysis/Makefile.in +++ b/src/tools/tc_utils/rmw_analysis/Makefile.in @@ -106,6 +106,8 @@ am_rmw_analysis_OBJECTS = rmw_analysis-rmw_analysis.$(OBJEXT) \ rmw_analysis_OBJECTS = $(am_rmw_analysis_OBJECTS) am__DEPENDENCIES_1 = rmw_analysis_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) rmw_analysis_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(rmw_analysis_LDFLAGS) $(LDFLAGS) -o $@ @@ -202,7 +204,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +219,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +268,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -333,10 +345,12 @@ rmw_analysis_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -352,6 +366,7 @@ rmw_analysis_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/tc_diag/Makefile.am b/src/tools/tc_utils/tc_diag/Makefile.am index a877795dca..111277e4e8 100644 --- a/src/tools/tc_utils/tc_diag/Makefile.am +++ b/src/tools/tc_utils/tc_diag/Makefile.am @@ -23,10 +23,12 @@ tc_diag_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -42,6 +44,7 @@ tc_diag_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/tc_diag/Makefile.in b/src/tools/tc_utils/tc_diag/Makefile.in index 67b37ca03f..bfd080342a 100644 --- a/src/tools/tc_utils/tc_diag/Makefile.in +++ b/src/tools/tc_utils/tc_diag/Makefile.in @@ -107,6 +107,8 @@ am_tc_diag_OBJECTS = tc_diag-tc_diag.$(OBJEXT) \ tc_diag_OBJECTS = $(am_tc_diag_OBJECTS) am__DEPENDENCIES_1 = tc_diag_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) tc_diag_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(tc_diag_LDFLAGS) \ $(LDFLAGS) -o $@ @@ -204,7 +206,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -218,11 +221,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -261,11 +270,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -336,10 +348,12 @@ tc_diag_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -355,6 +369,7 @@ tc_diag_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/tc_dland/Makefile.am b/src/tools/tc_utils/tc_dland/Makefile.am index 2321150cf8..25aa19a2b8 100644 --- a/src/tools/tc_utils/tc_dland/Makefile.am +++ b/src/tools/tc_utils/tc_dland/Makefile.am @@ -16,6 +16,7 @@ tc_dland_SOURCES = tc_dland.cc \ tc_dland_CPPFLAGS = ${MET_CPPFLAGS} tc_dland_LDFLAGS = ${MET_LDFLAGS} tc_dland_LDADD = -lvx_tc_util \ + $(UGRID_MET_LIBS) \ -lvx_nc_util \ -lvx_grid \ -lvx_geodesy \ @@ -28,5 +29,6 @@ tc_dland_LDADD = -lvx_tc_util \ -lvx_gsl_prob \ -lvx_cal \ -lvx_math \ + $(UGRID_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/tc_dland/Makefile.in b/src/tools/tc_utils/tc_dland/Makefile.in index c413bf9e16..ac98d5edeb 100644 --- a/src/tools/tc_utils/tc_dland/Makefile.in +++ b/src/tools/tc_utils/tc_dland/Makefile.in @@ -105,7 +105,8 @@ am_tc_dland_OBJECTS = tc_dland-tc_dland.$(OBJEXT) \ tc_dland-tc_poly.$(OBJEXT) tc_dland_OBJECTS = $(am_tc_dland_OBJECTS) am__DEPENDENCIES_1 = -tc_dland_DEPENDENCIES = $(am__DEPENDENCIES_1) +tc_dland_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) tc_dland_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(tc_dland_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -213,7 +214,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -227,11 +229,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -270,11 +278,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -338,6 +349,7 @@ tc_dland_SOURCES = tc_dland.cc \ tc_dland_CPPFLAGS = ${MET_CPPFLAGS} tc_dland_LDFLAGS = ${MET_LDFLAGS} tc_dland_LDADD = -lvx_tc_util \ + $(UGRID_MET_LIBS) \ -lvx_nc_util \ -lvx_grid \ -lvx_geodesy \ @@ -350,6 +362,7 @@ tc_dland_LDADD = -lvx_tc_util \ -lvx_gsl_prob \ -lvx_cal \ -lvx_math \ + $(UGRID_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/tc_gen/Makefile.am b/src/tools/tc_utils/tc_gen/Makefile.am index 61797a8c5d..2cc13426ff 100644 --- a/src/tools/tc_utils/tc_gen/Makefile.am +++ b/src/tools/tc_utils/tc_gen/Makefile.am @@ -23,10 +23,12 @@ tc_gen_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_gis \ -lvx_data2d \ @@ -45,6 +47,7 @@ tc_gen_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/tc_gen/Makefile.in b/src/tools/tc_utils/tc_gen/Makefile.in index 8490e3f8a5..4d7285f578 100644 --- a/src/tools/tc_utils/tc_gen/Makefile.in +++ b/src/tools/tc_utils/tc_gen/Makefile.in @@ -106,6 +106,8 @@ am_tc_gen_OBJECTS = tc_gen-tc_gen.$(OBJEXT) \ tc_gen_OBJECTS = $(am_tc_gen_OBJECTS) am__DEPENDENCIES_1 = tc_gen_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) tc_gen_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(tc_gen_LDFLAGS) \ $(LDFLAGS) -o $@ @@ -202,7 +204,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -216,11 +219,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -259,11 +268,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -334,10 +346,12 @@ tc_gen_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_gis \ -lvx_data2d \ @@ -356,6 +370,7 @@ tc_gen_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/tc_pairs/Makefile.am b/src/tools/tc_utils/tc_pairs/Makefile.am index 6ee78dcd75..c44cd9b3ca 100644 --- a/src/tools/tc_utils/tc_pairs/Makefile.am +++ b/src/tools/tc_utils/tc_pairs/Makefile.am @@ -25,10 +25,12 @@ tc_pairs_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -45,6 +47,7 @@ tc_pairs_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/tc_pairs/Makefile.in b/src/tools/tc_utils/tc_pairs/Makefile.in index 4c12ea4532..ad4a7aa402 100644 --- a/src/tools/tc_utils/tc_pairs/Makefile.in +++ b/src/tools/tc_utils/tc_pairs/Makefile.in @@ -106,6 +106,8 @@ am_tc_pairs_OBJECTS = tc_pairs-tc_pairs.$(OBJEXT) acerr.$(OBJEXT) \ tc_pairs_OBJECTS = $(am_tc_pairs_OBJECTS) am__DEPENDENCIES_1 = tc_pairs_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) tc_pairs_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ $(tc_pairs_LDFLAGS) $(LDFLAGS) -o $@ @@ -226,7 +228,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -240,11 +243,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -283,11 +292,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -360,10 +372,12 @@ tc_pairs_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -380,6 +394,7 @@ tc_pairs_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/tc_rmw/Makefile.am b/src/tools/tc_utils/tc_rmw/Makefile.am index ae3485a3eb..4bb5c11475 100644 --- a/src/tools/tc_utils/tc_rmw/Makefile.am +++ b/src/tools/tc_utils/tc_rmw/Makefile.am @@ -23,10 +23,12 @@ tc_rmw_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -42,6 +44,7 @@ tc_rmw_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/tc_rmw/Makefile.in b/src/tools/tc_utils/tc_rmw/Makefile.in index 0bb8949b79..e931541a69 100644 --- a/src/tools/tc_utils/tc_rmw/Makefile.in +++ b/src/tools/tc_utils/tc_rmw/Makefile.in @@ -107,6 +107,8 @@ am_tc_rmw_OBJECTS = tc_rmw-tc_rmw.$(OBJEXT) \ tc_rmw_OBJECTS = $(am_tc_rmw_OBJECTS) am__DEPENDENCIES_1 = tc_rmw_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) tc_rmw_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(tc_rmw_LDFLAGS) \ $(LDFLAGS) -o $@ @@ -204,7 +206,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -218,11 +221,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -261,11 +270,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -336,10 +348,12 @@ tc_rmw_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_nc_util \ @@ -355,6 +369,7 @@ tc_rmw_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas \ $(FLIBS) diff --git a/src/tools/tc_utils/tc_stat/Makefile.am b/src/tools/tc_utils/tc_stat/Makefile.am index ffe30bc36c..8a53668656 100644 --- a/src/tools/tc_utils/tc_stat/Makefile.am +++ b/src/tools/tc_utils/tc_stat/Makefile.am @@ -25,10 +25,12 @@ tc_stat_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_seeps \ @@ -47,6 +49,7 @@ tc_stat_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = tc_stat_conf_info.h \ diff --git a/src/tools/tc_utils/tc_stat/Makefile.in b/src/tools/tc_utils/tc_stat/Makefile.in index f6ab37bcc8..70ad477f41 100644 --- a/src/tools/tc_utils/tc_stat/Makefile.in +++ b/src/tools/tc_utils/tc_stat/Makefile.in @@ -106,7 +106,9 @@ am_tc_stat_OBJECTS = tc_stat-tc_stat.$(OBJEXT) \ tc_stat-tc_stat_files.$(OBJEXT) tc_stat-tc_stat_job.$(OBJEXT) tc_stat_OBJECTS = $(am_tc_stat_OBJECTS) am__DEPENDENCIES_1 = -tc_stat_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +tc_stat_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) tc_stat_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(tc_stat_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) @@ -204,7 +206,8 @@ FFLAGS = @FFLAGS@ FLIBS = @FLIBS@ GREP = @GREP@ GRIB2CLIB_NAME = @GRIB2CLIB_NAME@ -GRIB2_LIBS = @GRIB2_LIBS@ +GRIB2_DEP_LIBS = @GRIB2_DEP_LIBS@ +GRIB2_MET_LIBS = @GRIB2_MET_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -218,11 +221,17 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ +MET_ATLAS = @MET_ATLAS@ +MET_ATLASINC = @MET_ATLASINC@ +MET_ATLASLIB = @MET_ATLASLIB@ MET_BUFR = @MET_BUFR@ MET_BUFRLIB = @MET_BUFRLIB@ MET_CAIRO = @MET_CAIRO@ MET_CAIROINC = @MET_CAIROINC@ MET_CAIROLIB = @MET_CAIROLIB@ +MET_ECKIT = @MET_ECKIT@ +MET_ECKITINC = @MET_ECKITINC@ +MET_ECKITLIB = @MET_ECKITLIB@ MET_FREETYPE = @MET_FREETYPE@ MET_FREETYPEINC = @MET_FREETYPEINC@ MET_FREETYPELIB = @MET_FREETYPELIB@ @@ -261,11 +270,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ -PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_DEP_LIBS = @PYTHON_DEP_LIBS@ +PYTHON_MET_LIBS = @PYTHON_MET_LIBS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ +UGRID_DEP_LIBS = @UGRID_DEP_LIBS@ +UGRID_MET_LIBS = @UGRID_MET_LIBS@ VERSION = @VERSION@ YACC = @YACC@ YFLAGS = @YFLAGS@ @@ -338,10 +350,12 @@ tc_stat_LDADD = -lvx_stat_out \ -lvx_tc_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_grib $(GRIB2_LIBS) \ + -lvx_data2d_grib \ + $(GRIB2_MET_LIBS) \ -lvx_data2d_nc_pinterp \ - $(PYTHON_LIBS) \ -lvx_data2d_nccf \ + $(UGRID_MET_LIBS) \ + $(PYTHON_MET_LIBS) \ -lvx_statistics \ -lvx_data2d \ -lvx_seeps \ @@ -360,6 +374,7 @@ tc_stat_LDADD = -lvx_stat_out \ -lvx_math \ -lvx_color \ -lvx_log \ + $(GRIB2_DEP_LIBS) $(UGRID_DEP_LIBS) $(PYTHON_DEP_LIBS) \ -lm -lproj -lnetcdf_c++4 -lnetcdf -lgsl -lgslcblas EXTRA_DIST = tc_stat_conf_info.h \ diff --git a/ylwrap b/ylwrap index 5943168da7..e8ec109fa2 100755 --- a/ylwrap +++ b/ylwrap @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # # Written by Tom Tromey . #