diff --git a/Make-include b/Make-include
index 5d47052ab8..cf85bcd271 100644
--- a/Make-include
+++ b/Make-include
@@ -39,6 +39,7 @@ MET_CPPFLAGS = -I${top_builddir}/src/basic/vx_cal \
-I${top_builddir}/src/libcode/vx_summary \
-I${top_builddir}/src/libcode/vx_time_series \
-I${top_builddir}/src/libcode/vx_series_data \
+ -I${top_builddir}/src/libcode/vx_seeps \
-I${top_builddir}/src/libcode/vx_tc_util
#-fPIC \
@@ -84,6 +85,7 @@ MET_LDFLAGS = -L${top_builddir}/src/basic/vx_cal \
-L${top_builddir}/src/libcode/vx_summary \
-L${top_builddir}/src/libcode/vx_time_series \
-L${top_builddir}/src/libcode/vx_series_data \
+ -L${top_builddir}/src/libcode/vx_seeps \
-L${top_builddir}/src/libcode/vx_tc_util
ENUM_TO_STRING = ${abs_top_builddir}/src/basic/enum_to_string/enum_to_string
diff --git a/configure b/configure
index bb104922ad..0713ecf0df 100755
--- a/configure
+++ b/configure
@@ -8848,7 +8848,7 @@ done
# Create configured files
-ac_config_files="$ac_config_files Makefile scripts/Rscripts/Makefile scripts/Rscripts/include/Makefile scripts/python/Makefile data/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/wrappers/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/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"
+ac_config_files="$ac_config_files Makefile scripts/Rscripts/Makefile scripts/Rscripts/include/Makefile scripts/python/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/wrappers/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"
if test -n "$MET_DEVELOPMENT"; then
@@ -9737,6 +9737,8 @@ do
"scripts/Rscripts/include/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Rscripts/include/Makefile" ;;
"scripts/python/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/python/Makefile" ;;
"data/Makefile") CONFIG_FILES="$CONFIG_FILES data/Makefile" ;;
+ "data/climo/Makefile") CONFIG_FILES="$CONFIG_FILES data/climo/Makefile" ;;
+ "data/climo/seeps/Makefile") CONFIG_FILES="$CONFIG_FILES data/climo/seeps/Makefile" ;;
"data/colortables/Makefile") CONFIG_FILES="$CONFIG_FILES data/colortables/Makefile" ;;
"data/colortables/NCL_colortables/Makefile") CONFIG_FILES="$CONFIG_FILES data/colortables/NCL_colortables/Makefile" ;;
"data/config/Makefile") CONFIG_FILES="$CONFIG_FILES data/config/Makefile" ;;
@@ -9796,6 +9798,7 @@ do
"src/libcode/vx_data2d_python/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_python/Makefile" ;;
"src/libcode/vx_bool_calc/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_bool_calc/Makefile" ;;
"src/libcode/vx_pointdata_python/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_pointdata_python/Makefile" ;;
+ "src/libcode/vx_seeps/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_seeps/Makefile" ;;
"src/tools/Makefile") CONFIG_FILES="$CONFIG_FILES src/tools/Makefile" ;;
"src/tools/core/Makefile") CONFIG_FILES="$CONFIG_FILES src/tools/core/Makefile" ;;
"src/tools/core/ensemble_stat/Makefile") CONFIG_FILES="$CONFIG_FILES src/tools/core/ensemble_stat/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index e580dcefd7..5414db8913 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1184,6 +1184,8 @@ AC_CONFIG_FILES([Makefile
scripts/Rscripts/include/Makefile
scripts/python/Makefile
data/Makefile
+ data/climo/Makefile
+ data/climo/seeps/Makefile
data/colortables/Makefile
data/colortables/NCL_colortables/Makefile
data/config/Makefile
@@ -1243,6 +1245,7 @@ AC_CONFIG_FILES([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
diff --git a/data/Makefile.am b/data/Makefile.am
index a08e207a13..ac1483ba59 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -17,6 +17,7 @@
## MA 02110-1301, USA.
SUBDIRS = \
+ climo \
colortables \
config \
map \
@@ -24,7 +25,7 @@ SUBDIRS = \
ps \
table_files \
tc_data \
- wrappers
+ wrappers
topdir = $(pkgdatadir)
diff --git a/data/Makefile.in b/data/Makefile.in
index 3d18dbc212..426a2b15bf 100644
--- a/data/Makefile.in
+++ b/data/Makefile.in
@@ -354,6 +354,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = \
+ climo \
colortables \
config \
map \
@@ -361,7 +362,7 @@ SUBDIRS = \
ps \
table_files \
tc_data \
- wrappers
+ wrappers
topdir = $(pkgdatadir)
top_DATA = \
diff --git a/data/climo/Makefile.am b/data/climo/Makefile.am
new file mode 100644
index 0000000000..82178b8020
--- /dev/null
+++ b/data/climo/Makefile.am
@@ -0,0 +1,23 @@
+## Makefile.am -- Process this file with automake to produce Makefile.in
+## Copyright (C) 2000, 2006 Gary V. Vaughan
+##
+## 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
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+## MA 02110-1301, USA.
+
+SUBDIRS = seeps
+
+climodir = $(pkgdatadir)/climo
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/data/climo/Makefile.in b/data/climo/Makefile.in
new file mode 100644
index 0000000000..c612befe6e
--- /dev/null
+++ b/data/climo/Makefile.in
@@ -0,0 +1,640 @@
+# 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 = data/climo
+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 =
+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 =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ distdir distdir-am
+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
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+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_LIBS = @GRIB2_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_BUFR = @MET_BUFR@
+MET_BUFRLIB = @MET_BUFRLIB@
+MET_CAIRO = @MET_CAIRO@
+MET_CAIROINC = @MET_CAIROINC@
+MET_CAIROLIB = @MET_CAIROLIB@
+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_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_LIBS = @PYTHON_LIBS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+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@
+SUBDIRS = seeps
+climodir = $(pkgdatadir)/climo
+MAINTAINERCLEANFILES = Makefile.in
+all: all-recursive
+
+.SUFFIXES:
+$(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 data/climo/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign data/climo/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):
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(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-recursive
+
+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-recursive
+
+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
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+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-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(am__recursive_targets) install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
+ check-am clean clean-generic cscopelist-am ctags ctags-am \
+ distclean 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 installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# 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/data/climo/seeps/Makefile.am b/data/climo/seeps/Makefile.am
new file mode 100644
index 0000000000..0569fd8870
--- /dev/null
+++ b/data/climo/seeps/Makefile.am
@@ -0,0 +1,26 @@
+## Makefile.am -- Process this file with automake to produce Makefile.in
+## Copyright (C) 2000, 2006 Gary V. Vaughan
+##
+## 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
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+## MA 02110-1301, USA.
+
+seepsdir = $(pkgdatadir)/climo/seeps
+
+seeps_DATA = \
+ PPT24_seepsweights.nc
+
+EXTRA_DIST = ${seeps_DATA}
+
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/data/climo/seeps/Makefile.in b/data/climo/seeps/Makefile.in
new file mode 100644
index 0000000000..911a2cbb2b
--- /dev/null
+++ b/data/climo/seeps/Makefile.in
@@ -0,0 +1,518 @@
+# 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 = data/climo/seeps
+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 =
+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 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(seepsdir)"
+DATA = $(seeps_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
+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_LIBS = @GRIB2_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_BUFR = @MET_BUFR@
+MET_BUFRLIB = @MET_BUFRLIB@
+MET_CAIRO = @MET_CAIRO@
+MET_CAIROINC = @MET_CAIROINC@
+MET_CAIROLIB = @MET_CAIROLIB@
+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_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_LIBS = @PYTHON_LIBS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+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@
+seepsdir = $(pkgdatadir)/climo/seeps
+seeps_DATA = \
+ PPT24_seepsweights.nc
+
+EXTRA_DIST = ${seeps_DATA}
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(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 data/climo/seeps/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign data/climo/seeps/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):
+install-seepsDATA: $(seeps_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(seeps_DATA)'; test -n "$(seepsdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(seepsdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(seepsdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(seepsdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(seepsdir)" || exit $$?; \
+ done
+
+uninstall-seepsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(seeps_DATA)'; test -n "$(seepsdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(seepsdir)'; $(am__uninstall_files_from_dir)
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+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 $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(seepsdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+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 mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-seepsDATA
+
+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 Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-seepsDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
+ ctags-am distclean distclean-generic 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-seepsDATA install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am tags-am uninstall uninstall-am \
+ uninstall-seepsDATA
+
+.PRECIOUS: Makefile
+
+
+# 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/data/climo/seeps/PPT24_seepsweights.nc b/data/climo/seeps/PPT24_seepsweights.nc
new file mode 100644
index 0000000000..329c681d22
Binary files /dev/null and b/data/climo/seeps/PPT24_seepsweights.nc differ
diff --git a/data/config/PointStatConfig_default b/data/config/PointStatConfig_default
index a5669867da..f7e60a8e32 100644
--- a/data/config/PointStatConfig_default
+++ b/data/config/PointStatConfig_default
@@ -286,6 +286,8 @@ output_flag = {
rps = NONE; // Only for HiRA.
eclv = NONE;
mpr = NONE;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/data/table_files/met_header_columns_V11.0.txt b/data/table_files/met_header_columns_V11.0.txt
index d57e089cb0..7a448d8d17 100644
--- a/data/table_files/met_header_columns_V11.0.txt
+++ b/data/table_files/met_header_columns_V11.0.txt
@@ -6,6 +6,8 @@ V11.0 : STAT : ISC : VERSION MODEL DESC FCST_LEAD FCST_VALID_BEG FCST_VALID
V11.0 : STAT : MCTC : VERSION MODEL DESC FCST_LEAD FCST_VALID_BEG FCST_VALID_END OBS_LEAD OBS_VALID_BEG OBS_VALID_END FCST_VAR FCST_UNITS FCST_LEV OBS_VAR OBS_UNITS OBS_LEV OBTYPE VX_MASK INTERP_MTHD INTERP_PNTS FCST_THRESH OBS_THRESH COV_THRESH ALPHA LINE_TYPE TOTAL (N_CAT) F[0-9]*_O[0-9]* EC_VALUE
V11.0 : STAT : MCTS : VERSION MODEL DESC FCST_LEAD FCST_VALID_BEG FCST_VALID_END OBS_LEAD OBS_VALID_BEG OBS_VALID_END FCST_VAR FCST_UNITS FCST_LEV OBS_VAR OBS_UNITS OBS_LEV OBTYPE VX_MASK INTERP_MTHD INTERP_PNTS FCST_THRESH OBS_THRESH COV_THRESH ALPHA LINE_TYPE TOTAL N_CAT ACC ACC_NCL ACC_NCU ACC_BCL ACC_BCU HK HK_BCL HK_BCU HSS HSS_BCL HSS_BCU GER GER_BCL GER_BCU HSS_EC HSS_EC_BCL HSS_EC_BCU EC_VALUE
V11.0 : STAT : MPR : VERSION MODEL DESC FCST_LEAD FCST_VALID_BEG FCST_VALID_END OBS_LEAD OBS_VALID_BEG OBS_VALID_END FCST_VAR FCST_UNITS FCST_LEV OBS_VAR OBS_UNITS OBS_LEV OBTYPE VX_MASK INTERP_MTHD INTERP_PNTS FCST_THRESH OBS_THRESH COV_THRESH ALPHA LINE_TYPE TOTAL INDEX OBS_SID OBS_LAT OBS_LON OBS_LVL OBS_ELV FCST OBS OBS_QC CLIMO_MEAN CLIMO_STDEV CLIMO_CDF
+V11.0 : STAT : SEEPS : VERSION MODEL DESC FCST_LEAD FCST_VALID_BEG FCST_VALID_END OBS_LEAD OBS_VALID_BEG OBS_VALID_END FCST_VAR FCST_UNITS FCST_LEV OBS_VAR OBS_UNITS OBS_LEV OBTYPE VX_MASK INTERP_MTHD INTERP_PNTS FCST_THRESH OBS_THRESH COV_THRESH ALPHA LINE_TYPE TOTAL S12 S13 S21 S23 S31 S32 PF1 PF2 PF3 PV1 PV2 PV3 MEAN_FCST MEAN_OBS SEEPS
+V11.0 : STAT : SEEPS_MPR : VERSION MODEL DESC FCST_LEAD FCST_VALID_BEG FCST_VALID_END OBS_LEAD OBS_VALID_BEG OBS_VALID_END FCST_VAR FCST_UNITS FCST_LEV OBS_VAR OBS_UNITS OBS_LEV OBTYPE VX_MASK INTERP_MTHD INTERP_PNTS FCST_THRESH OBS_THRESH COV_THRESH ALPHA LINE_TYPE OBS_SID OBS_LAT OBS_LON FCST OBS OBS_QC FCST_CAT OBS_CAT P1 P2 T1 T2 SEEPS
V11.0 : STAT : NBRCNT : VERSION MODEL DESC FCST_LEAD FCST_VALID_BEG FCST_VALID_END OBS_LEAD OBS_VALID_BEG OBS_VALID_END FCST_VAR FCST_UNITS FCST_LEV OBS_VAR OBS_UNITS OBS_LEV OBTYPE VX_MASK INTERP_MTHD INTERP_PNTS FCST_THRESH OBS_THRESH COV_THRESH ALPHA LINE_TYPE TOTAL FBS FBS_BCL FBS_BCU FSS FSS_BCL FSS_BCU AFSS AFSS_BCL AFSS_BCU UFSS UFSS_BCL UFSS_BCU F_RATE F_RATE_BCL F_RATE_BCU O_RATE O_RATE_BCL O_RATE_BCU
V11.0 : STAT : NBRCTC : VERSION MODEL DESC FCST_LEAD FCST_VALID_BEG FCST_VALID_END OBS_LEAD OBS_VALID_BEG OBS_VALID_END FCST_VAR FCST_UNITS FCST_LEV OBS_VAR OBS_UNITS OBS_LEV OBTYPE VX_MASK INTERP_MTHD INTERP_PNTS FCST_THRESH OBS_THRESH COV_THRESH ALPHA LINE_TYPE TOTAL FY_OY FY_ON FN_OY FN_ON
V11.0 : STAT : NBRCTS : VERSION MODEL DESC FCST_LEAD FCST_VALID_BEG FCST_VALID_END OBS_LEAD OBS_VALID_BEG OBS_VALID_END FCST_VAR FCST_UNITS FCST_LEV OBS_VAR OBS_UNITS OBS_LEV OBTYPE VX_MASK INTERP_MTHD INTERP_PNTS FCST_THRESH OBS_THRESH COV_THRESH ALPHA LINE_TYPE TOTAL BASER BASER_NCL BASER_NCU BASER_BCL BASER_BCU FMEAN FMEAN_NCL FMEAN_NCU FMEAN_BCL FMEAN_BCU ACC ACC_NCL ACC_NCU ACC_BCL ACC_BCU FBIAS FBIAS_BCL FBIAS_BCU PODY PODY_NCL PODY_NCU PODY_BCL PODY_BCU PODN PODN_NCL PODN_NCU PODN_BCL PODN_BCU POFD POFD_NCL POFD_NCU POFD_BCL POFD_BCU FAR FAR_NCL FAR_NCU FAR_BCL FAR_BCU CSI CSI_NCL CSI_NCU CSI_BCL CSI_BCU GSS GSS_BCL GSS_BCU HK HK_NCL HK_NCU HK_BCL HK_BCU HSS HSS_BCL HSS_BCU ODDS ODDS_NCL ODDS_NCU ODDS_BCL ODDS_BCU LODDS LODDS_NCL LODDS_NCU LODDS_BCL LODDS_BCU ORSS ORSS_NCL ORSS_NCU ORSS_BCL ORSS_BCU EDS EDS_NCL EDS_NCU EDS_BCL EDS_BCU SEDS SEDS_NCL SEDS_NCU SEDS_BCL SEDS_BCU EDI EDI_NCL EDI_NCU EDI_BCL EDI_BCU SEDI SEDI_NCL SEDI_NCU SEDI_BCL SEDI_BCU BAGSS BAGSS_BCL BAGSS_BCU
diff --git a/docs/Users_Guide/point-stat.rst b/docs/Users_Guide/point-stat.rst
index d2be7d4701..4d240515b9 100644
--- a/docs/Users_Guide/point-stat.rst
+++ b/docs/Users_Guide/point-stat.rst
@@ -431,6 +431,8 @@ ________________________
rps = BOTH; // Only for HiRA
eclv = BOTH;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
The **output_flag** array controls the type of output that the Point-Stat tool generates. Each flag corresponds to an output line type in the STAT file. Setting the flag to NONE indicates that the line type should not be generated. Setting the flag to STAT indicates that the line type should be written to the STAT file only. Setting the flag to BOTH indicates that the line type should be written to the STAT file as well as a separate ASCII file where the data is grouped by line type. The output flags correspond to the following output line types:
@@ -475,6 +477,10 @@ The **output_flag** array controls the type of output that the Point-Stat tool g
20. **MPR** for Matched Pair data
+21. **SEEPS** for averaged SEEPS (Stable Equitable Error in Probability Space) score
+
+22. **SEEPS_MPR** for SEEPS score of Matched Pair data
+
Note that the FHO and CTC line types are easily derived from each other. Users are free to choose which measures are most desired. The output line types are described in more detail in :numref:`point_stat-output`.
Note that writing out matched pair data (MPR lines) for a large number of cases is generally not recommended. The MPR lines create very large output files and are only intended for use on a small set of cases.
@@ -1447,4 +1453,120 @@ The first set of header columns are common to all of the output files generated
- CLIMO_CDF
- Climatological cumulative distribution function value
+.. _table_PS_format_info_SEEPS_MPR:
+
+.. list-table:: Format information for SEEPS (Stable Equitable Error in Probability Space) of MPR (Matched Pair) output line type.
+ :widths: auto
+ :header-rows: 2
+
+ * - SEEPS_MPR OUTPUT FORMAT
+ -
+ -
+ * - Column Number
+ - SEEPS_MPR Column Name
+ - Description
+ * - 24
+ - SEEPS_MPR
+ - SEEPS Matched Pair line type
+ * - 25
+ - OBS_SID
+ - Station Identifier of observation
+ * - 26
+ - OBS_LAT
+ - Latitude of the observation in degrees north
+ * - 27
+ - OBS_LON
+ - Longitude of the observation in degrees east
+ * - 28
+ - FCST
+ - Forecast value interpolated to the observation location
+ * - 29
+ - OBS
+ - Observation value
+ * - 30
+ - OBS_QC
+ - Quality control flag for observation
+ * - 31
+ - FCST_CAT
+ - Forecast category to 3 by 3 matrix
+ * - 32
+ - OBS_CAT
+ - Observationtegory to 3 by 3 matrix
+ * - 33
+ - P1
+ - Climo-derived probability value for this station (dry)
+ * - 34
+ - P2
+ - Climo-derived probability value for this station (dry + light)
+ * - 35
+ - T1
+ - Threshold 1 for p1
+ * - 36
+ - T2
+ - Threshold 2 for p2
+ * - 37
+ - SEEPS
+ - SEEPS (Stable Equitable Error in Probability Space) score
+
+
+.. _table_PS_format_info_SEEPS:
+
+.. list-table:: Format information for SEEPS (Stable Equitable Error in Probability Space) output line type.
+ :widths: auto
+ :header-rows: 2
+
+ * - SEEPS OUTPUT FORMAT
+ -
+ -
+ * - Column Number
+ - SEEPS Column Name
+ - Description
+ * - 24
+ - SEEPS
+ - SEEPS line type
+ * - 25
+ - TOTAL
+ - Total number of SEEPS matched pairs
+ * - 26
+ - S12
+ - Counts multiplied by the weights for FCST_CAT 1 and OBS_CAT 2
+ * - 27
+ - S13
+ - Counts multiplied by the weights for FCST_CAT 1 and OBS_CAT 3
+ * - 28
+ - S21
+ - Counts multiplied by the weights for FCST_CAT 2 and OBS_CAT 1
+ * - 29
+ - S23
+ - Counts multiplied by the weights for FCST_CAT 2 and OBS_CAT 3
+ * - 30
+ - S31
+ - Counts multiplied by the weights for FCST_CAT 3 and OBS_CAT 1
+ * - 31
+ - S32
+ - Counts multiplied by the weights for FCST_CAT 3 and OBS_CAT 2
+LINE_TYPE TOTAL S12 S13 S21 S23 S31 S32 PV1 PV2 PV3 PF1 PF2 PF3 MEAN_FCST MEAN_OBS SEEPS
+ * - 32
+ - PF1
+ - marginal probabilities of the forecast values (FCST_CAT 1)
+ * - 33
+ - PF2
+ - marginal probabilities of the forecast values (FCST_CAT 2)
+ * - 34
+ - PF3
+ - marginal probabilities of the forecast values (FCST_CAT 3)
+ * - 35
+ - PV1
+ - marginal probabilities of the observed values (OBS_CAT 1)
+ * - 36
+ - PV2
+ - marginal probabilities of the observed values (OBS_CAT 2)
+ * - 37
+ - PV3
+ - marginal probabilities of the observed values (OBS_CAT 3)
+ * - 38
+ - SEEPS
+ - Averaged SEEPS (Stable Equitable Error in Probability Space) score
+
+
The STAT output files described for point_stat may be used as inputs to the Stat-Analysis tool. For more information on using the Stat-Analysis tool to create stratifications and aggregations of the STAT files produced by point_stat, please see :numref:`stat-analysis`.
diff --git a/internal/test_unit/config/PB2NCConfig b/internal/test_unit/config/PB2NCConfig
index 5225ffb9ef..4bce72e3ab 100644
--- a/internal/test_unit/config/PB2NCConfig
+++ b/internal/test_unit/config/PB2NCConfig
@@ -75,7 +75,7 @@ level_category = [];
// BUFR variable names to retain or derive.
// If emtpy, process all available variables.
//
-obs_bufr_var = [ "QOB", "TOB", "ZOB", "UOB", "VOB",
+obs_bufr_var = [ "QOB", "TOB", "ZOB", "UOB", "VOB", "TP24",
"D_DPT", "D_WIND", "D_RH", "D_MIXR" ];
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_APCP b/internal/test_unit/config/PointStatConfig_APCP
index b795c13f2a..d777ae8583 100644
--- a/internal/test_unit/config/PointStatConfig_APCP
+++ b/internal/test_unit/config/PointStatConfig_APCP
@@ -39,6 +39,9 @@ wind_thresh = [ NA ];
wind_logic = UNION;
eclv_points = 0.05;
+cat_thresh = [ >0.254, >0.635, >1.270, >2.540 ];
+message_type = "ADPSFC";
+
fcst = {
sid_inc = [];
sid_exc = [];
@@ -47,10 +50,8 @@ fcst = {
field = [
{
- name = "${FCST_FIELD_NAME}";
- level = "${FCST_FIELD_LEVEL}";
- cat_thresh = [ >0.254, >0.635, >1.270, >2.540 ];
- message_type = "ADPSFC";
+ name = "${FCST_FIELD_NAME}";
+ level = "${FCST_FIELD_LEVEL}";
}
];
@@ -126,6 +127,8 @@ output_flag = {
rps = NONE;
eclv = BOTH;
mpr = NONE;
+ seeps = ${SEEPS_FLAG};
+ seeps_mpr = ${SEEPS_FLAG};
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_APCP_HIRA b/internal/test_unit/config/PointStatConfig_APCP_HIRA
index 44dbd4220b..f45252252a 100644
--- a/internal/test_unit/config/PointStatConfig_APCP_HIRA
+++ b/internal/test_unit/config/PointStatConfig_APCP_HIRA
@@ -129,6 +129,8 @@ output_flag = {
rps = STAT;
eclv = STAT;
mpr = STAT;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_GTG_latlon b/internal/test_unit/config/PointStatConfig_GTG_latlon
index f98475964f..0c7bf07e41 100644
--- a/internal/test_unit/config/PointStatConfig_GTG_latlon
+++ b/internal/test_unit/config/PointStatConfig_GTG_latlon
@@ -148,6 +148,8 @@ output_flag = {
rps = NONE;
eclv = BOTH;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_GTG_lc b/internal/test_unit/config/PointStatConfig_GTG_lc
index b2133e7ee4..67cb871303 100644
--- a/internal/test_unit/config/PointStatConfig_GTG_lc
+++ b/internal/test_unit/config/PointStatConfig_GTG_lc
@@ -156,6 +156,8 @@ output_flag = {
rps = NONE;
eclv = BOTH;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_INTERP_OPTS b/internal/test_unit/config/PointStatConfig_INTERP_OPTS
index eaf7027140..db5d996c24 100644
--- a/internal/test_unit/config/PointStatConfig_INTERP_OPTS
+++ b/internal/test_unit/config/PointStatConfig_INTERP_OPTS
@@ -139,6 +139,8 @@ output_flag = {
rps = NONE;
eclv = NONE;
mpr = STAT;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_LAND_TOPO_MASK b/internal/test_unit/config/PointStatConfig_LAND_TOPO_MASK
index cae0c06dee..6b856fcc1e 100644
--- a/internal/test_unit/config/PointStatConfig_LAND_TOPO_MASK
+++ b/internal/test_unit/config/PointStatConfig_LAND_TOPO_MASK
@@ -179,6 +179,8 @@ output_flag = {
rps = NONE;
eclv = NONE;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_MASK_SID b/internal/test_unit/config/PointStatConfig_MASK_SID
index 4b11f2805e..b8c11030cd 100644
--- a/internal/test_unit/config/PointStatConfig_MASK_SID
+++ b/internal/test_unit/config/PointStatConfig_MASK_SID
@@ -134,6 +134,8 @@ output_flag = {
rps = NONE;
eclv = BOTH;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_PHYS b/internal/test_unit/config/PointStatConfig_PHYS
index cce7b88b95..d93e5391a7 100644
--- a/internal/test_unit/config/PointStatConfig_PHYS
+++ b/internal/test_unit/config/PointStatConfig_PHYS
@@ -135,6 +135,8 @@ output_flag = {
rps = NONE;
eclv = BOTH;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_PHYS_pint b/internal/test_unit/config/PointStatConfig_PHYS_pint
index e9927a2339..d70192a9ae 100644
--- a/internal/test_unit/config/PointStatConfig_PHYS_pint
+++ b/internal/test_unit/config/PointStatConfig_PHYS_pint
@@ -130,6 +130,8 @@ output_flag = {
rps = NONE;
eclv = BOTH;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_WINDS b/internal/test_unit/config/PointStatConfig_WINDS
index 4a7644510e..609814fd4f 100644
--- a/internal/test_unit/config/PointStatConfig_WINDS
+++ b/internal/test_unit/config/PointStatConfig_WINDS
@@ -150,6 +150,8 @@ output_flag = {
orank = NONE;
eclv = NONE;
mpr = NONE;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_aeronet b/internal/test_unit/config/PointStatConfig_aeronet
index d99143041f..bbad04e26c 100644
--- a/internal/test_unit/config/PointStatConfig_aeronet
+++ b/internal/test_unit/config/PointStatConfig_aeronet
@@ -199,6 +199,8 @@ output_flag = {
rps = NONE;
eclv = NONE;
mpr = STAT;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_airnow b/internal/test_unit/config/PointStatConfig_airnow
index 244aeda748..0e4e48d710 100644
--- a/internal/test_unit/config/PointStatConfig_airnow
+++ b/internal/test_unit/config/PointStatConfig_airnow
@@ -229,6 +229,8 @@ output_flag = {
rps = NONE;
eclv = NONE;
mpr = STAT;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_climo b/internal/test_unit/config/PointStatConfig_climo
index b215e9b896..1621e61ec5 100644
--- a/internal/test_unit/config/PointStatConfig_climo
+++ b/internal/test_unit/config/PointStatConfig_climo
@@ -269,6 +269,8 @@ output_flag = {
rps = NONE;
eclv = NONE;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_climo_WMO b/internal/test_unit/config/PointStatConfig_climo_WMO
index 29febac1df..a703ad8266 100644
--- a/internal/test_unit/config/PointStatConfig_climo_WMO
+++ b/internal/test_unit/config/PointStatConfig_climo_WMO
@@ -217,6 +217,8 @@ output_flag = {
rps = BOTH;
eclv = NONE;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_climo_prob b/internal/test_unit/config/PointStatConfig_climo_prob
index b85293f226..8a924ef106 100644
--- a/internal/test_unit/config/PointStatConfig_climo_prob
+++ b/internal/test_unit/config/PointStatConfig_climo_prob
@@ -219,6 +219,8 @@ output_flag = {
rps = NONE;
eclv = BOTH;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_dup b/internal/test_unit/config/PointStatConfig_dup
index 2d72cf364d..efd861241c 100644
--- a/internal/test_unit/config/PointStatConfig_dup
+++ b/internal/test_unit/config/PointStatConfig_dup
@@ -152,6 +152,8 @@ output_flag = {
rps = NONE;
eclv = STAT;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_mpr_thresh b/internal/test_unit/config/PointStatConfig_mpr_thresh
index 5a482ab234..1a3a33851f 100644
--- a/internal/test_unit/config/PointStatConfig_mpr_thresh
+++ b/internal/test_unit/config/PointStatConfig_mpr_thresh
@@ -211,6 +211,8 @@ output_flag = {
rps = NONE;
eclv = NONE;
mpr = NONE;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_obs_summary b/internal/test_unit/config/PointStatConfig_obs_summary
index 3875c81010..e2d6bcef3d 100644
--- a/internal/test_unit/config/PointStatConfig_obs_summary
+++ b/internal/test_unit/config/PointStatConfig_obs_summary
@@ -141,6 +141,8 @@ output_flag = {
rps = NONE;
eclv = STAT;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_obs_summary_all b/internal/test_unit/config/PointStatConfig_obs_summary_all
index 0ab61af959..972fa2dcbe 100644
--- a/internal/test_unit/config/PointStatConfig_obs_summary_all
+++ b/internal/test_unit/config/PointStatConfig_obs_summary_all
@@ -210,6 +210,8 @@ output_flag = {
rps = NONE;
eclv = STAT;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_prob b/internal/test_unit/config/PointStatConfig_prob
index 91ec54e3de..20bd7a217b 100644
--- a/internal/test_unit/config/PointStatConfig_prob
+++ b/internal/test_unit/config/PointStatConfig_prob
@@ -137,6 +137,8 @@ output_flag = {
rps = NONE;
eclv = BOTH;
mpr = NONE;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_python b/internal/test_unit/config/PointStatConfig_python
index ba5ddefd93..8854bf604a 100644
--- a/internal/test_unit/config/PointStatConfig_python
+++ b/internal/test_unit/config/PointStatConfig_python
@@ -207,6 +207,8 @@ output_flag = {
rps = NONE;
eclv = NONE;
mpr = STAT;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_qty_inc_exc b/internal/test_unit/config/PointStatConfig_qty_inc_exc
index 2cdf627cae..8dc3f1413a 100644
--- a/internal/test_unit/config/PointStatConfig_qty_inc_exc
+++ b/internal/test_unit/config/PointStatConfig_qty_inc_exc
@@ -196,6 +196,8 @@ output_flag = {
rps = NONE;
eclv = NONE;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/PointStatConfig_sid_inc_exc b/internal/test_unit/config/PointStatConfig_sid_inc_exc
index 31318d2d18..e20d929374 100644
--- a/internal/test_unit/config/PointStatConfig_sid_inc_exc
+++ b/internal/test_unit/config/PointStatConfig_sid_inc_exc
@@ -142,6 +142,8 @@ output_flag = {
rps = NONE;
eclv = NONE;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/ref_config/PointStatConfig_ADPUPA b/internal/test_unit/config/ref_config/PointStatConfig_ADPUPA
index 63673104be..b88fe591c1 100644
--- a/internal/test_unit/config/ref_config/PointStatConfig_ADPUPA
+++ b/internal/test_unit/config/ref_config/PointStatConfig_ADPUPA
@@ -174,6 +174,8 @@ output_flag = {
ecnt = NONE;
eclv = NONE;
mpr = NONE;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/ref_config/PointStatConfig_ONLYSF b/internal/test_unit/config/ref_config/PointStatConfig_ONLYSF
index fa9363986b..e700666d93 100644
--- a/internal/test_unit/config/ref_config/PointStatConfig_ONLYSF
+++ b/internal/test_unit/config/ref_config/PointStatConfig_ONLYSF
@@ -184,6 +184,8 @@ output_flag = {
ecnt = NONE;
eclv = NONE;
mpr = NONE;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/config/ref_config/PointStatConfig_WINDS b/internal/test_unit/config/ref_config/PointStatConfig_WINDS
index 23cb75b2d6..a0dd7bdb04 100644
--- a/internal/test_unit/config/ref_config/PointStatConfig_WINDS
+++ b/internal/test_unit/config/ref_config/PointStatConfig_WINDS
@@ -167,6 +167,8 @@ output_flag = {
ecnt = NONE;
eclv = NONE;
mpr = NONE;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/internal/test_unit/xml/unit_point_stat.xml b/internal/test_unit/xml/unit_point_stat.xml
index dd607efaff..8eb398fa66 100644
--- a/internal/test_unit/xml/unit_point_stat.xml
+++ b/internal/test_unit/xml/unit_point_stat.xml
@@ -166,6 +166,7 @@
FCST_FIELD_NAME APCP
FCST_FIELD_LEVEL A3
OBS_DICT fcst
+ SEEPS_FLAG NONE
OUTPUT_PREFIX GRIB1_NAM_TRMM
\
@@ -192,6 +193,7 @@
FCST_FIELD_NAME APCP
FCST_FIELD_LEVEL A3
OBS_DICT fcst
+ SEEPS_FLAG NONE
OUTPUT_PREFIX GRIB2_SREF_TRMM
\
@@ -217,13 +219,8 @@
END_DS 1800
FCST_FIELD_NAME APCP_24
FCST_FIELD_LEVEL (*,*)
- OBS_DICT { field = [
- { name = "APCP";
- level = "A24";
- cat_thresh = [ >0.254, >0.635, >1.270, >2.540 ];
- message_type = "ADPSFC";
- }
- ]; }
+ OBS_DICT { field = [ { name = "APCP"; level = "A24"; } ]; }
+ SEEPS_FLAG NONE
OUTPUT_PREFIX NCMET_NAM_HMTGAGE
\
@@ -242,6 +239,35 @@
+
+ &MET_BIN;/point_stat
+
+ BEG_DS -1800
+ END_DS 1800
+ FCST_FIELD_NAME APCP_24
+ FCST_FIELD_LEVEL (*,*)
+ OBS_DICT { field = [ { name = "TP24"; level = "L0"; is_precipitation = TRUE; } ]; }
+ SEEPS_FLAG BOTH
+ OUTPUT_PREFIX NCMET_NAM_NDAS_SEEPS
+
+ \
+ &DATA_DIR_MODEL;/met_nc/nam/nam_2012040900_F036_APCP24.nc \
+ &OUTPUT_DIR;/pb2nc/ndas.20120410.t12z.prepbufr.tm00.nc \
+ &CONFIG_DIR;/PointStatConfig_APCP \
+ -outdir &OUTPUT_DIR;/point_stat -v 1
+
+
+
+
&MET_BIN;/point_stat
@@ -249,13 +275,8 @@
END_DS 150000000
FCST_FIELD_NAME RAINNC
FCST_FIELD_LEVEL (0,*,*)
- OBS_DICT { field = [
- { name = "APCP";
- level = "A3";
- cat_thresh = [ >0.254, >0.635, >1.270, >2.540 ];
- message_type = "ADPSFC";
- }
- ]; }
+ OBS_DICT { field = [ { name = "APCP"; level = "A3"; } ]; }
+ SEEPS_FLAG NONE
OUTPUT_PREFIX NCPINT_TRMM
\
diff --git a/scripts/config/PointStatConfig b/scripts/config/PointStatConfig
index 8a4c18a5f0..b4d26b94b7 100644
--- a/scripts/config/PointStatConfig
+++ b/scripts/config/PointStatConfig
@@ -204,6 +204,8 @@ output_flag = {
rps = NONE; // Only for HiRA
eclv = BOTH;
mpr = BOTH;
+ seeps = NONE;
+ seeps_mpr = NONE;
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/src/basic/vx_config/config_constants.h b/src/basic/vx_config/config_constants.h
index 3cc2fe14e2..e4b4d4d75a 100644
--- a/src/basic/vx_config/config_constants.h
+++ b/src/basic/vx_config/config_constants.h
@@ -121,6 +121,8 @@ enum STATLineType {
stat_pjc,
stat_prc,
stat_mpr,
+ stat_seeps,
+ stat_seeps_mpr,
stat_nbrctc,
stat_nbrcts,
stat_nbrcnt,
@@ -150,41 +152,43 @@ enum STATLineType {
// Corresponding line type strings
//
-static const char stat_sl1l2_str[] = "SL1L2";
-static const char stat_sal1l2_str[] = "SAL1L2";
-static const char stat_vl1l2_str[] = "VL1L2";
-static const char stat_val1l2_str[] = "VAL1L2";
-static const char stat_vcnt_str[] = "VCNT";
-static const char stat_fho_str[] = "FHO";
-static const char stat_ctc_str[] = "CTC";
-static const char stat_cts_str[] = "CTS";
-static const char stat_mctc_str[] = "MCTC";
-static const char stat_mcts_str[] = "MCTS";
-static const char stat_cnt_str[] = "CNT";
-static const char stat_pct_str[] = "PCT";
-static const char stat_pstd_str[] = "PSTD";
-static const char stat_pjc_str[] = "PJC";
-static const char stat_prc_str[] = "PRC";
-static const char stat_eclv_str[] = "ECLV";
-static const char stat_mpr_str[] = "MPR";
-static const char stat_nbrctc_str[] = "NBRCTC";
-static const char stat_nbrcts_str[] = "NBRCTS";
-static const char stat_nbrcnt_str[] = "NBRCNT";
-static const char stat_grad_str[] = "GRAD";
-static const char stat_dmap_str[] = "DMAP";
-static const char stat_isc_str[] = "ISC";
-static const char stat_wdir_str[] = "WDIR";
-static const char stat_ecnt_str[] = "ECNT";
-static const char stat_rps_str[] = "RPS";
-static const char stat_rhist_str[] = "RHIST";
-static const char stat_phist_str[] = "PHIST";
-static const char stat_orank_str[] = "ORANK";
-static const char stat_ssvar_str[] = "SSVAR";
-static const char stat_relp_str[] = "RELP";
-static const char stat_genmpr_str[] = "GENMPR";
-static const char stat_ssidx_str[] = "SSIDX";
-static const char stat_header_str[] = "LINE_TYPE";
-static const char stat_na_str[] = "NA";
+static const char stat_sl1l2_str[] = "SL1L2";
+static const char stat_sal1l2_str[] = "SAL1L2";
+static const char stat_vl1l2_str[] = "VL1L2";
+static const char stat_val1l2_str[] = "VAL1L2";
+static const char stat_vcnt_str[] = "VCNT";
+static const char stat_fho_str[] = "FHO";
+static const char stat_ctc_str[] = "CTC";
+static const char stat_cts_str[] = "CTS";
+static const char stat_mctc_str[] = "MCTC";
+static const char stat_mcts_str[] = "MCTS";
+static const char stat_cnt_str[] = "CNT";
+static const char stat_pct_str[] = "PCT";
+static const char stat_pstd_str[] = "PSTD";
+static const char stat_pjc_str[] = "PJC";
+static const char stat_prc_str[] = "PRC";
+static const char stat_eclv_str[] = "ECLV";
+static const char stat_mpr_str[] = "MPR";
+static const char stat_seeps_str[] = "SEEPS";
+static const char stat_seeps_mpr_str[] = "SEEPS_MPR";
+static const char stat_nbrctc_str[] = "NBRCTC";
+static const char stat_nbrcts_str[] = "NBRCTS";
+static const char stat_nbrcnt_str[] = "NBRCNT";
+static const char stat_grad_str[] = "GRAD";
+static const char stat_dmap_str[] = "DMAP";
+static const char stat_isc_str[] = "ISC";
+static const char stat_wdir_str[] = "WDIR";
+static const char stat_ecnt_str[] = "ECNT";
+static const char stat_rps_str[] = "RPS";
+static const char stat_rhist_str[] = "RHIST";
+static const char stat_phist_str[] = "PHIST";
+static const char stat_orank_str[] = "ORANK";
+static const char stat_ssvar_str[] = "SSVAR";
+static const char stat_relp_str[] = "RELP";
+static const char stat_genmpr_str[] = "GENMPR";
+static const char stat_ssidx_str[] = "SSIDX";
+static const char stat_header_str[] = "LINE_TYPE";
+static const char stat_na_str[] = "NA";
////////////////////////////////////////////////////////////////////////
diff --git a/src/basic/vx_config/config_util.cc b/src/basic/vx_config/config_util.cc
index fa2f777307..5c1778bf39 100644
--- a/src/basic/vx_config/config_util.cc
+++ b/src/basic/vx_config/config_util.cc
@@ -2320,49 +2320,52 @@ const char * statlinetype_to_string(const STATLineType t) {
const char *s = (const char *) 0;
switch(t) {
- case(stat_sl1l2): s = stat_sl1l2_str; break;
- case(stat_sal1l2): s = stat_sal1l2_str; break;
- case(stat_vl1l2): s = stat_vl1l2_str; break;
- case(stat_val1l2): s = stat_val1l2_str; break;
- case(stat_vcnt): s = stat_vcnt_str; break;
-
- case(stat_fho): s = stat_fho_str; break;
- case(stat_ctc): s = stat_ctc_str; break;
- case(stat_cts): s = stat_cts_str; break;
- case(stat_mctc): s = stat_mctc_str; break;
- case(stat_mcts): s = stat_mcts_str; break;
-
- case(stat_cnt): s = stat_cnt_str; break;
- case(stat_pct): s = stat_pct_str; break;
- case(stat_pstd): s = stat_pstd_str; break;
- case(stat_pjc): s = stat_pjc_str; break;
- case(stat_prc): s = stat_prc_str; break;
-
- case(stat_eclv): s = stat_eclv_str; break;
- case(stat_mpr): s = stat_mpr_str; break;
- case(stat_nbrctc): s = stat_nbrctc_str; break;
- case(stat_nbrcts): s = stat_nbrcts_str; break;
- case(stat_nbrcnt): s = stat_nbrcnt_str; break;
-
- case(stat_grad): s = stat_grad_str; break;
- case(stat_dmap): s = stat_dmap_str; break;
- case(stat_isc): s = stat_isc_str; break;
- case(stat_wdir): s = stat_wdir_str; break;
- case(stat_ecnt): s = stat_ecnt_str; break;
-
- case(stat_rps): s = stat_rps_str; break;
- case(stat_rhist): s = stat_rhist_str; break;
- case(stat_phist): s = stat_phist_str; break;
- case(stat_orank): s = stat_orank_str; break;
- case(stat_ssvar): s = stat_ssvar_str; break;
-
- case(stat_relp): s = stat_relp_str; break;
- case(stat_genmpr): s = stat_genmpr_str; break;
- case(stat_ssidx): s = stat_ssidx_str; break;
- case(stat_header): s = stat_header_str; break;
+ case(stat_sl1l2): s = stat_sl1l2_str; break;
+ case(stat_sal1l2): s = stat_sal1l2_str; break;
+ case(stat_vl1l2): s = stat_vl1l2_str; break;
+ case(stat_val1l2): s = stat_val1l2_str; break;
+ case(stat_vcnt): s = stat_vcnt_str; break;
+
+ case(stat_fho): s = stat_fho_str; break;
+ case(stat_ctc): s = stat_ctc_str; break;
+ case(stat_cts): s = stat_cts_str; break;
+ case(stat_mctc): s = stat_mctc_str; break;
+ case(stat_mcts): s = stat_mcts_str; break;
+
+ case(stat_cnt): s = stat_cnt_str; break;
+ case(stat_pct): s = stat_pct_str; break;
+ case(stat_pstd): s = stat_pstd_str; break;
+ case(stat_pjc): s = stat_pjc_str; break;
+ case(stat_prc): s = stat_prc_str; break;
+
+ case(stat_eclv): s = stat_eclv_str; break;
+ case(stat_mpr): s = stat_mpr_str; break;
+ case(stat_seeps): s = stat_seeps_str; break;
+ case(stat_seeps_mpr): s = stat_seeps_mpr_str; break;
+ case(stat_nbrctc): s = stat_nbrctc_str; break;
+
+ case(stat_nbrcts): s = stat_nbrcts_str; break;
+ case(stat_nbrcnt): s = stat_nbrcnt_str; break;
+ case(stat_grad): s = stat_grad_str; break;
+ case(stat_dmap): s = stat_dmap_str; break;
+ case(stat_isc): s = stat_isc_str; break;
+
+ case(stat_wdir): s = stat_wdir_str; break;
+ case(stat_ecnt): s = stat_ecnt_str; break;
+ case(stat_rps): s = stat_rps_str; break;
+ case(stat_rhist): s = stat_rhist_str; break;
+ case(stat_phist): s = stat_phist_str; break;
+
+ case(stat_orank): s = stat_orank_str; break;
+ case(stat_ssvar): s = stat_ssvar_str; break;
+ case(stat_relp): s = stat_relp_str; break;
+ case(stat_genmpr): s = stat_genmpr_str; break;
+ case(stat_ssidx): s = stat_ssidx_str; break;
+
+ case(stat_header): s = stat_header_str; break;
case(no_stat_line_type):
- default: s = stat_na_str; break;
+ default: s = stat_na_str; break;
}
return(s);
@@ -2383,48 +2386,51 @@ void statlinetype_to_string(const STATLineType t, char *out) {
STATLineType string_to_statlinetype(const char *s) {
STATLineType t;
- if(strcasecmp(s, stat_sl1l2_str) == 0) t = stat_sl1l2;
- else if(strcasecmp(s, stat_sal1l2_str) == 0) t = stat_sal1l2;
- else if(strcasecmp(s, stat_vl1l2_str) == 0) t = stat_vl1l2;
- else if(strcasecmp(s, stat_val1l2_str) == 0) t = stat_val1l2;
- else if(strcasecmp(s, stat_vcnt_str) == 0) t = stat_vcnt;
-
- else if(strcasecmp(s, stat_fho_str) == 0) t = stat_fho;
- else if(strcasecmp(s, stat_ctc_str) == 0) t = stat_ctc;
- else if(strcasecmp(s, stat_cts_str) == 0) t = stat_cts;
- else if(strcasecmp(s, stat_mctc_str) == 0) t = stat_mctc;
- else if(strcasecmp(s, stat_mcts_str) == 0) t = stat_mcts;
-
- else if(strcasecmp(s, stat_cnt_str) == 0) t = stat_cnt;
- else if(strcasecmp(s, stat_pct_str) == 0) t = stat_pct;
- else if(strcasecmp(s, stat_pstd_str) == 0) t = stat_pstd;
- else if(strcasecmp(s, stat_pjc_str) == 0) t = stat_pjc;
- else if(strcasecmp(s, stat_prc_str) == 0) t = stat_prc;
-
- else if(strcasecmp(s, stat_eclv_str) == 0) t = stat_eclv;
- else if(strcasecmp(s, stat_mpr_str) == 0) t = stat_mpr;
- else if(strcasecmp(s, stat_nbrctc_str) == 0) t = stat_nbrctc;
- else if(strcasecmp(s, stat_nbrcts_str) == 0) t = stat_nbrcts;
- else if(strcasecmp(s, stat_nbrcnt_str) == 0) t = stat_nbrcnt;
-
- else if(strcasecmp(s, stat_grad_str) == 0) t = stat_grad;
- else if(strcasecmp(s, stat_dmap_str) == 0) t = stat_dmap;
- else if(strcasecmp(s, stat_isc_str) == 0) t = stat_isc;
- else if(strcasecmp(s, stat_wdir_str) == 0) t = stat_wdir;
- else if(strcasecmp(s, stat_ecnt_str) == 0) t = stat_ecnt;
-
- else if(strcasecmp(s, stat_rps_str) == 0) t = stat_rps;
- else if(strcasecmp(s, stat_rhist_str) == 0) t = stat_rhist;
- else if(strcasecmp(s, stat_phist_str) == 0) t = stat_phist;
- else if(strcasecmp(s, stat_orank_str) == 0) t = stat_orank;
- else if(strcasecmp(s, stat_ssvar_str) == 0) t = stat_ssvar;
-
- else if(strcasecmp(s, stat_relp_str) == 0) t = stat_relp;
- else if(strcasecmp(s, stat_genmpr_str) == 0) t = stat_genmpr;
- else if(strcasecmp(s, stat_ssidx_str) == 0) t = stat_ssidx;
- else if(strcasecmp(s, stat_header_str) == 0) t = stat_header;
-
- else t = no_stat_line_type;
+ if(strcasecmp(s, stat_sl1l2_str) == 0) t = stat_sl1l2;
+ else if(strcasecmp(s, stat_sal1l2_str) == 0) t = stat_sal1l2;
+ else if(strcasecmp(s, stat_vl1l2_str) == 0) t = stat_vl1l2;
+ else if(strcasecmp(s, stat_val1l2_str) == 0) t = stat_val1l2;
+ else if(strcasecmp(s, stat_vcnt_str) == 0) t = stat_vcnt;
+
+ else if(strcasecmp(s, stat_fho_str) == 0) t = stat_fho;
+ else if(strcasecmp(s, stat_ctc_str) == 0) t = stat_ctc;
+ else if(strcasecmp(s, stat_cts_str) == 0) t = stat_cts;
+ else if(strcasecmp(s, stat_mctc_str) == 0) t = stat_mctc;
+ else if(strcasecmp(s, stat_mcts_str) == 0) t = stat_mcts;
+
+ else if(strcasecmp(s, stat_cnt_str) == 0) t = stat_cnt;
+ else if(strcasecmp(s, stat_pct_str) == 0) t = stat_pct;
+ else if(strcasecmp(s, stat_pstd_str) == 0) t = stat_pstd;
+ else if(strcasecmp(s, stat_pjc_str) == 0) t = stat_pjc;
+ else if(strcasecmp(s, stat_prc_str) == 0) t = stat_prc;
+
+ else if(strcasecmp(s, stat_eclv_str) == 0) t = stat_eclv;
+ else if(strcasecmp(s, stat_mpr_str) == 0) t = stat_mpr;
+ else if(strcasecmp(s, stat_seeps_str) == 0) t = stat_seeps;
+ else if(strcasecmp(s, stat_seeps_mpr_str) == 0) t = stat_seeps_mpr;
+ else if(strcasecmp(s, stat_nbrctc_str) == 0) t = stat_nbrctc;
+
+ else if(strcasecmp(s, stat_nbrcts_str) == 0) t = stat_nbrcts;
+ else if(strcasecmp(s, stat_nbrcnt_str) == 0) t = stat_nbrcnt;
+ else if(strcasecmp(s, stat_grad_str) == 0) t = stat_grad;
+ else if(strcasecmp(s, stat_dmap_str) == 0) t = stat_dmap;
+ else if(strcasecmp(s, stat_isc_str) == 0) t = stat_isc;
+
+ else if(strcasecmp(s, stat_wdir_str) == 0) t = stat_wdir;
+ else if(strcasecmp(s, stat_ecnt_str) == 0) t = stat_ecnt;
+ else if(strcasecmp(s, stat_rps_str) == 0) t = stat_rps;
+ else if(strcasecmp(s, stat_rhist_str) == 0) t = stat_rhist;
+ else if(strcasecmp(s, stat_phist_str) == 0) t = stat_phist;
+
+ else if(strcasecmp(s, stat_orank_str) == 0) t = stat_orank;
+ else if(strcasecmp(s, stat_ssvar_str) == 0) t = stat_ssvar;
+ else if(strcasecmp(s, stat_relp_str) == 0) t = stat_relp;
+ else if(strcasecmp(s, stat_genmpr_str) == 0) t = stat_genmpr;
+ else if(strcasecmp(s, stat_ssidx_str) == 0) t = stat_ssidx;
+
+ else if(strcasecmp(s, stat_header_str) == 0) t = stat_header;
+
+ else t = no_stat_line_type;
return(t);
}
diff --git a/src/basic/vx_log/concat_string.cc b/src/basic/vx_log/concat_string.cc
index 03669e9e28..6635ecc9e4 100644
--- a/src/basic/vx_log/concat_string.cc
+++ b/src/basic/vx_log/concat_string.cc
@@ -25,6 +25,11 @@ using namespace std;
#include "str_wrappers.h"
+////////////////////////////////////////////////////////////////////////
+
+static StringArray env_name_list;
+static StringArray nested_env_name_list;
+
////////////////////////////////////////////////////////////////////////
@@ -1201,8 +1206,11 @@ if ((ptr = getenv(env_name)) == NULL) return(false);
env_value = ptr;
str = env_value;
-mlog << Debug(10) << method_name
- << " " << env_name << " to " << env_value << "\n";
+if (!env_name_list.has(env_name)) {
+ env_name_list.add(env_name);
+ mlog << Debug(10) << method_name
+ << " " << env_name << " to " << env_value << "\n";
+}
int count_replaced = 0;
string nested_value;
@@ -1241,8 +1249,11 @@ while ((pos = str.find('$', pos)) != string::npos) {
}
nested_value = ptr;
str.replace(pos, (pos_end - pos), nested_value);
- mlog << Debug(7) << method_name << " " << nested_name
- << " to " << nested_value << "\n";
+ if (!nested_env_name_list.has(nested_name)) {
+ nested_env_name_list.add(nested_name);
+ mlog << Debug(7) << method_name << " " << nested_name
+ << " to " << nested_value << "\n";
+ }
count_replaced++;
}
diff --git a/src/basic/vx_util/ascii_header.cc b/src/basic/vx_util/ascii_header.cc
index 9262714746..adf307e47a 100644
--- a/src/basic/vx_util/ascii_header.cc
+++ b/src/basic/vx_util/ascii_header.cc
@@ -127,6 +127,7 @@ void AsciiHeaderLine::clear() {
void AsciiHeaderLine::set_col_names(const char *s) {
ConcatString cs;
StringArray tok;
+ const char *method_name = "AsciiHeaderLine::set_col_names(const char *) -> ";
// Parse the header column names
ColNames.parse_wsss(s);
@@ -139,7 +140,7 @@ void AsciiHeaderLine::set_col_names(const char *s) {
// Can only have one variable index column
if(VarIndexName.nonempty()) {
- mlog << Error << "\nAsciiHeaderLine::set(const char *line) -> "
+ mlog << Error << "\n" << method_name
<< "can't have multiple variable index columns in line:\n"
<< s << "\n\n";
exit(1);
@@ -160,7 +161,7 @@ void AsciiHeaderLine::set_col_names(const char *s) {
// Check that the variable index column has already been set
if(VarIndexName.empty()) {
- mlog << Error << "\nAsciiHeaderLine::set(const char *line) -> "
+ mlog << Error << "\n" << method_name
<< "lines with variable length columns must also "
<< "contain a variable index column:\n"
<< s << "\n\n";
@@ -223,8 +224,8 @@ int AsciiHeaderLine::col_offset(const char *name, const int dim) const {
// Search for column names using regular expressions
for(i=0, match=bad_data_int; i ";
// Range check
if(offset < 0 || offset >= length(dim)) {
- mlog << Error << "\nAsciiHeaderLine::col_name() -> "
+ mlog << Error << "\n" << method_name
<< "range check error for data/line type \""
<< DataType << "/" << LineType << "\" and offset = "
<< offset << "\n\n";
@@ -404,6 +406,7 @@ void AsciiHeader::read(const char *version) {
DataLine line;
AsciiHeaderLine header_line;
LineDataFile in;
+ const char *method_name = "AsciiHeader::read() -> ";
// Set the delimiter for parsing this data
line.set_delimiter(ascii_header_delim);
@@ -419,7 +422,7 @@ void AsciiHeader::read(const char *version) {
// Open the data file
if(!in.open(file_name.c_str())) {
- mlog << Error << "\nAsciiHeader::read() -> "
+ mlog << Error << "\n" << method_name
<< "trouble reading file:\n" << file_name << "\n\n";
exit(1);
}
@@ -432,7 +435,7 @@ void AsciiHeader::read(const char *version) {
// Check for the expected number of tokens
if(line.n_items() != 4) {
- mlog << Error << "\nAsciiHeader::read() -> "
+ mlog << Error << "\n" << method_name
<< "expected 4 tokens but found " << line.n_items()
<< " on line number " << line.line_number()
<< " of file:\n" << file_name << "\n\n";
@@ -462,7 +465,7 @@ void AsciiHeader::read(const char *version) {
const AsciiHeaderLine * AsciiHeader::header(const char *version,
const char *data_type,
const char *line_type) {
-
+ const char *method_name = "AsciiHeader::header() -> ";
ConcatString version_mm(parse_version_major_minor(version));
// Check if the version needs to be loaded
@@ -480,7 +483,7 @@ const AsciiHeaderLine * AsciiHeader::header(const char *version,
// Check for no match
if(it == Headers.end()) {
- mlog << Error << "\nAsciiHeaderLine::header() -> "
+ mlog << Error << "\n" << method_name
<< "can't find header columns for MET version \"" << version
<< "\", data type \"" << data_type << "\", line type \""
<< line_type << "\"!\n\n";
diff --git a/src/basic/vx_util/stat_column_defs.h b/src/basic/vx_util/stat_column_defs.h
index 85273a1397..111829c07a 100644
--- a/src/basic/vx_util/stat_column_defs.h
+++ b/src/basic/vx_util/stat_column_defs.h
@@ -155,7 +155,8 @@ static const char * vcnt_columns [] = {
"SPEED_ABSERR", "SPEED_ABSERR_BCL", "SPEED_ABSERR_BCU",
"DIR_ERR", "DIR_ERR_BCL", "DIR_ERR_BCU",
"DIR_ABSERR", "DIR_ABSERR_BCL", "DIR_ABSERR_BCU",
- "ANOM_CORR", "ANOM_CORR_NCL", "ANOM_CORR_NCU", "ANOM_CORR_BCL", "ANOM_CORR_BCU",
+ "ANOM_CORR", "ANOM_CORR_NCL", "ANOM_CORR_NCU",
+ "ANOM_CORR_BCL", "ANOM_CORR_BCU",
"ANOM_CORR_UNCNTR", "ANOM_CORR_UNCNTR_BCL", "ANOM_CORR_UNCNTR_BCU",
};
@@ -361,6 +362,23 @@ static const char * job_ramp_mpr_columns [] = {
"CATEGORY"
};
+static const char * seeps_mpr_columns [] = {
+ "OBS_SID", "OBS_LAT", "OBS_LON",
+ "FCST", "OBS", "OBS_QC",
+ "FCST_CAT", "OBS_CAT", "P1",
+ "P2", "T1", "T2",
+ "SEEPS"
+};
+
+static const char * seeps_columns [] = {
+ "TOTAL", "S12", "S13",
+ "S21", "S23", "S31",
+ "S32", "PF1", "PF2",
+ "PF3", "PV1", "PV2",
+ "PV3", "MEAN_FCST", "MEAN_OBS",
+ "SEEPS"
+};
+
////////////////////////////////////////////////////////////////////////
static const int max_stat_col = 100;
@@ -380,6 +398,8 @@ static const int n_sal1l2_columns = sizeof(sal1l2_columns)/sizeof(*sal1l2_
static const int n_vl1l2_columns = sizeof(vl1l2_columns)/sizeof(*vl1l2_columns);
static const int n_val1l2_columns = sizeof(val1l2_columns)/sizeof(*val1l2_columns);
static const int n_vcnt_columns = sizeof(vcnt_columns)/sizeof(*vcnt_columns);
+static const int n_seeps_columns = sizeof(seeps_columns)/sizeof(*seeps_columns);
+static const int n_seeps_mpr_columns = sizeof(seeps_mpr_columns)/sizeof(*seeps_mpr_columns);
static const int n_pct_columns = sizeof(pct_columns)/sizeof(*pct_columns);
static const int n_pstd_columns = sizeof(pstd_columns)/sizeof(*pstd_columns);
diff --git a/src/basic/vx_util_math/Makefile.am b/src/basic/vx_util_math/Makefile.am
index 445c312ec3..d1d3fd8da4 100644
--- a/src/basic/vx_util_math/Makefile.am
+++ b/src/basic/vx_util_math/Makefile.am
@@ -8,8 +8,6 @@ MAINTAINERCLEANFILES = Makefile.in
include ${top_srcdir}/Make-include
-OPT_PYTHON_SOURCES =
-
# The library
noinst_LIBRARIES = libvx_util_math.a
diff --git a/src/basic/vx_util_math/Makefile.in b/src/basic/vx_util_math/Makefile.in
index 66ac10cad7..969d375ad2 100644
--- a/src/basic/vx_util_math/Makefile.in
+++ b/src/basic/vx_util_math/Makefile.in
@@ -328,7 +328,6 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
MAINTAINERCLEANFILES = Makefile.in
-OPT_PYTHON_SOURCES =
# The library
noinst_LIBRARIES = libvx_util_math.a
diff --git a/src/libcode/Makefile.am b/src/libcode/Makefile.am
index 7d6f82fb1e..b22ff5ea90 100644
--- a/src/libcode/Makefile.am
+++ b/src/libcode/Makefile.am
@@ -60,6 +60,7 @@ SUBDIRS += vx_data2d_factory \
vx_regrid \
vx_nc_obs \
vx_solar \
- vx_bool_calc
+ vx_bool_calc \
+ vx_seeps
MAINTAINERCLEANFILES = Makefile.in
diff --git a/src/libcode/Makefile.in b/src/libcode/Makefile.in
index 81233c2ca0..631e84600e 100644
--- a/src/libcode/Makefile.in
+++ b/src/libcode/Makefile.in
@@ -162,7 +162,7 @@ DIST_SUBDIRS = vx_grid vx_data2d vx_nc_util vx_data2d_grib \
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_solar vx_bool_calc vx_seeps
am__DIST_COMMON = $(srcdir)/Makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
@@ -341,7 +341,7 @@ SUBDIRS = vx_grid vx_data2d vx_nc_util vx_data2d_grib vx_data2d_nc_met \
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_solar vx_bool_calc vx_seeps
MAINTAINERCLEANFILES = Makefile.in
all: all-recursive
diff --git a/src/libcode/vx_seeps/Makefile.am b/src/libcode/vx_seeps/Makefile.am
new file mode 100644
index 0000000000..2e8bd0f20e
--- /dev/null
+++ b/src/libcode/vx_seeps/Makefile.am
@@ -0,0 +1,16 @@
+## @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_seeps.a
+libvx_seeps_a_SOURCES = \
+ seeps.cc seeps.h
+libvx_seeps_a_CPPFLAGS = ${MET_CPPFLAGS}
diff --git a/src/libcode/vx_seeps/Makefile.in b/src/libcode/vx_seeps/Makefile.in
new file mode 100644
index 0000000000..a8801149e5
--- /dev/null
+++ b/src/libcode/vx_seeps/Makefile.in
@@ -0,0 +1,635 @@
+# 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_seeps
+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_seeps_a_AR = $(AR) $(ARFLAGS)
+libvx_seeps_a_LIBADD =
+am_libvx_seeps_a_OBJECTS = libvx_seeps_a-seeps.$(OBJEXT)
+libvx_seeps_a_OBJECTS = $(am_libvx_seeps_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_seeps_a-seeps.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_seeps_a_SOURCES)
+DIST_SOURCES = $(libvx_seeps_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_LIBS = @GRIB2_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_BUFR = @MET_BUFR@
+MET_BUFRLIB = @MET_BUFRLIB@
+MET_CAIRO = @MET_CAIRO@
+MET_CAIROINC = @MET_CAIROINC@
+MET_CAIROLIB = @MET_CAIROLIB@
+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_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_LIBS = @PYTHON_LIBS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+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_seeps.a
+libvx_seeps_a_SOURCES = \
+ seeps.cc seeps.h
+
+libvx_seeps_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_seeps/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/libcode/vx_seeps/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_seeps.a: $(libvx_seeps_a_OBJECTS) $(libvx_seeps_a_DEPENDENCIES) $(EXTRA_libvx_seeps_a_DEPENDENCIES)
+ $(AM_V_at)-rm -f libvx_seeps.a
+ $(AM_V_AR)$(libvx_seeps_a_AR) libvx_seeps.a $(libvx_seeps_a_OBJECTS) $(libvx_seeps_a_LIBADD)
+ $(AM_V_at)$(RANLIB) libvx_seeps.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_seeps_a-seeps.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_seeps_a-seeps.o: seeps.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_seeps_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_seeps_a-seeps.o -MD -MP -MF $(DEPDIR)/libvx_seeps_a-seeps.Tpo -c -o libvx_seeps_a-seeps.o `test -f 'seeps.cc' || echo '$(srcdir)/'`seeps.cc
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_seeps_a-seeps.Tpo $(DEPDIR)/libvx_seeps_a-seeps.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='seeps.cc' object='libvx_seeps_a-seeps.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_seeps_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_seeps_a-seeps.o `test -f 'seeps.cc' || echo '$(srcdir)/'`seeps.cc
+
+libvx_seeps_a-seeps.obj: seeps.cc
+@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_seeps_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_seeps_a-seeps.obj -MD -MP -MF $(DEPDIR)/libvx_seeps_a-seeps.Tpo -c -o libvx_seeps_a-seeps.obj `if test -f 'seeps.cc'; then $(CYGPATH_W) 'seeps.cc'; else $(CYGPATH_W) '$(srcdir)/seeps.cc'; fi`
+@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_seeps_a-seeps.Tpo $(DEPDIR)/libvx_seeps_a-seeps.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='seeps.cc' object='libvx_seeps_a-seeps.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_seeps_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_seeps_a-seeps.obj `if test -f 'seeps.cc'; then $(CYGPATH_W) 'seeps.cc'; else $(CYGPATH_W) '$(srcdir)/seeps.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_seeps_a-seeps.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_seeps_a-seeps.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_seeps/seeps.cc b/src/libcode/vx_seeps/seeps.cc
new file mode 100644
index 0000000000..fa8ce18715
--- /dev/null
+++ b/src/libcode/vx_seeps/seeps.cc
@@ -0,0 +1,498 @@
+
+
+////////////////////////////////////////////////////////////////////////
+
+
+using namespace std;
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include "file_exists.h"
+
+#include "string_fxns.h"
+#include "vx_log.h"
+#include "nc_utils.h"
+#include "seeps.h"
+
+////////////////////////////////////////////////////////////////////////
+
+bool standalone_debug_seeps = false;
+
+static SeepsClimo *seeps_Climo = 0;
+
+static const char *def_seeps_filename = "MET_BASE/climo/seeps/PPT24_seepsweights.nc";
+
+static const char *var_name_sid = "sid";
+static const char *var_name_lat = "lat";
+static const char *var_name_lon = "lon";
+static const char *var_name_elv = "elv";
+
+////////////////////////////////////////////////////////////////////////
+
+SeepsClimo *get_seeps_climo() {
+ if (! seeps_Climo) seeps_Climo = new SeepsClimo();
+ return seeps_Climo;
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void release_seeps_climo() {
+ if (seeps_Climo) { delete seeps_Climo; seeps_Climo = 0; }
+}
+
+////////////////////////////////////////////////////////////////////////
+
+
+SeepsClimo::SeepsClimo() {
+
+ ConcatString seeps_name= get_seeps_climo_filename();
+ if (file_exists(seeps_name.c_str())) {
+ read_records(seeps_name);
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+
+SeepsClimo::~SeepsClimo() {
+ clear();
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void SeepsClimo::clear() {
+ for (map::iterator it=seeps_score_00_map.begin();
+ it!=seeps_score_00_map.end(); ++it) {
+ delete it->second;
+ }
+
+ for (map::iterator it=seeps_score_12_map.begin();
+ it!=seeps_score_12_map.end(); ++it) {
+ delete it->second;
+ }
+
+ seeps_score_00_map.clear();
+ seeps_score_12_map.clear();
+};
+
+////////////////////////////////////////////////////////////////////////
+
+SeepsClimoRecord *SeepsClimo::create_climo_record(
+ int sid, float lat, float lon, float elv,
+ float *p1, float *p2, float *t1, float *t2, float *scores) {
+ int offset;
+ SeepsClimoRecord *record = new SeepsClimoRecord();
+
+ record->sid = sid;
+ record->lat = lat;
+ record->lon = lon;
+ record->elv = elv;
+ if (standalone_debug_seeps && SAMPLE_STATION_ID == sid) {
+ cout << " sid=" << sid << ", lat=" << lat << ", lon=" << lon << ", elv=" << elv << "\n";
+ }
+ for (int idx=0; idxp1[idx] = p1[idx];
+ record->p2[idx] = p2[idx];
+ record->t1[idx] = t1[idx];
+ record->t2[idx] = t2[idx];
+
+ if (standalone_debug_seeps && SAMPLE_STATION_ID == sid) {
+ cout << str_format("\t%2d: %6.3f %6.3f %6.3f %6.3f ",
+ (idx+1), record->p1[idx], record->p2[idx], record->t1[idx], record->t2[idx]);
+ }
+ for (int idx_m=0; idx_mscores[idx][idx_m] = scores[offset];
+ if (standalone_debug_seeps && SAMPLE_STATION_ID == sid) {
+ cout << str_format(" %.3f", record->scores[idx][idx_m]);
+ }
+ }
+ if (standalone_debug_seeps && SAMPLE_STATION_ID == sid) cout << "\n";
+ }
+
+ return record;
+}
+
+////////////////////////////////////////////////////////////////////////
+
+SeepsRecord *SeepsClimo::get_record(int sid, int month, int hour) {
+ SeepsRecord *record = 0;
+ const char *method_name = "SeepsClimo::get_record() -> ";
+
+ if (seeps_ready) {
+ SeepsClimoRecord *climo_record = 0;
+ map::iterator it;
+ if (hour < 6 || hour >= 18) {
+ it = seeps_score_00_map.find(sid);
+ if (it != seeps_score_00_map.end()) climo_record = it->second;
+ }
+ else {
+ it = seeps_score_12_map.find(sid);
+ if (it != seeps_score_12_map.end()) climo_record = it->second;
+ }
+ if (climo_record) {
+
+ record = new SeepsRecord;
+ record->sid = climo_record->sid;
+ record->lat = climo_record->lat;
+ record->lon = climo_record->lon;
+ record->elv = climo_record->elv;
+ record->month = month;
+ record->p1 = climo_record->p1[month-1];
+ record->p2 = climo_record->p2[month-1];
+ record->t1 = climo_record->t1[month-1];
+ record->t2 = climo_record->t2[month-1];
+ for (int idx=0; idxscores[idx] = climo_record->scores[month-1][idx];
+ }
+ }
+ }
+ else {
+ mlog << Error << "\n" << method_name
+ << "The SEEPS climo data is missing!"
+ << " Turn off SEEPS and SEEPS_MPR to continue\n\n";
+ exit(1);
+ }
+ return record;
+}
+
+////////////////////////////////////////////////////////////////////////
+
+ConcatString SeepsClimo::get_seeps_climo_filename() {
+ ConcatString seeps_filename;
+ const char *method_name = "SeepsClimo::get_seeps_climo_filename() -> ";
+
+ // Use the MET_TMP_DIR environment variable, if set.
+ bool use_env = get_env(MET_ENV_SEEPS_CLIMO_NAME, seeps_filename);
+ if(use_env) {
+ seeps_filename = replace_path(seeps_filename);
+ }
+ else seeps_filename = replace_path(def_seeps_filename);
+
+ if (seeps_ready = file_exists(seeps_filename.c_str())) {
+ mlog << Debug(7) << method_name << "SEEPS climo name=\""
+ << seeps_filename.c_str() << "\"\n";
+ }
+ else {
+ ConcatString message = " ";
+ if (use_env) {
+ message.add("from the env. name ");
+ message.add(MET_ENV_SEEPS_CLIMO_NAME);
+ }
+ mlog << Warning << "\n" << method_name
+ << "The SEEPS climo name \"" << seeps_filename.c_str()
+ << "\"" << message << " does not exist!\n\n";
+ }
+
+ return seeps_filename;
+}
+
+////////////////////////////////////////////////////////////////////////
+
+float SeepsClimo::get_score(int sid, float p_fcst, float p_obs,
+ int month, int hour) {
+ float score = (float)bad_data_double;
+ SeepsRecord *record = get_record(sid, month, hour);
+
+ if (record) {
+ // Determine location in contingency table
+ int ic = (p_obs>record->t1)+(p_obs>record->t2);
+ int jc = (p_fcst>record->t1)+(p_fcst>record->t2);
+
+ score = record->scores[(jc*3)+ic];
+ }
+
+ return score;
+}
+
+////////////////////////////////////////////////////////////////////////
+
+SeepsScore *SeepsClimo::get_seeps_score(int sid, float p_fcst,
+ float p_obs, int month, int hour) {
+ SeepsScore *score = 0;
+ SeepsRecord *record = get_record(sid, month, hour);
+
+ if (record) {
+ score = new SeepsScore();
+ score->p1 = record->p1;
+ score->p2 = record->p1;
+ score->t1 = record->t1;
+ score->t2 = record->t2;
+
+ score->obs_cat = (p_obs>record->t1)+(p_obs>record->t2);
+ score->model_cat = (p_fcst>record->t1)+(p_fcst>record->t2);
+ score->score = record->scores[(score->model_cat*3)+score->obs_cat];
+ }
+
+ return score;
+}
+
+
+////////////////////////////////////////////////////////////////////////
+
+void SeepsClimo::print_all() {
+ const char *method_name = "SeepsClimo::print_all() -> ";
+
+ cout << "\n";
+ cout << "=============== 00Z ===============\n";
+ cout << " sid\tlat\tlon\telv\n";
+ cout << "\tmonth\tp1\tp2\tt1\tt2\tscores (3 by 3 matrix)\n";
+ for (map::iterator it=seeps_score_00_map.begin();
+ it!=seeps_score_00_map.end(); ++it) {
+ print_record(it->second);
+ }
+
+ cout << "\n";
+ cout << "=============== 12Z ===============\n";
+ cout << " sid\tlat\tlon\telv\n";
+ cout << "\tmonth\tp1\tp2\tt1\tt2\tscores (3 by 3 matrix)\n";
+ for (map::iterator it=seeps_score_12_map.begin();
+ it!=seeps_score_12_map.end(); ++it) {
+ print_record(it->second);
+ }
+
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void SeepsClimo::print_record(SeepsClimoRecord *record, bool with_header) {
+ if (with_header) {
+ cout << " sid\tlat\tlon\telv\n";
+ cout << "\tmonth\tp1\tp2\tt1\tt2\tscores (3 by 3 matrix)\n";
+ }
+ cout << " " << record->sid << "\t" << record->lat << "\t" << record->lon
+ << "\t" << record->elv << "\n";
+ for (int idx=0; idxp1[idx] << "\t" << record->p2[idx]
+ << "\t" << record->t1[idx] << "\t" << record->t2[idx];
+ for (int idx2=0; idx2scores[idx][idx2];
+ }
+ cout << "\n";
+ }
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void SeepsClimo::print_record(SeepsRecord *record, bool with_header) {
+ if (with_header) cout << " sid\tlat\tlon\telv\tp1\tp2\tt1\tt2\tscores (3 by 3 matrix)\n";
+
+ cout << " " << record->sid << "\t" << record->lat << "\t" << record->lon
+ << "\t" << record->elv << "\t" << record->p1 << "\t" << record->p2
+ << "\t" << record->t1 << "\t" << record->t2;
+ for (int idx=0; idxscores[idx];
+ }
+ cout << " for month " << record->month << "\n";
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void SeepsClimo::read_records(ConcatString filename) {
+ clock_t clock_time = clock();
+ float p1_00_buf[SEEPS_MONTH];
+ float p2_00_buf[SEEPS_MONTH];
+ float t1_00_buf[SEEPS_MONTH];
+ float t2_00_buf[SEEPS_MONTH];
+ float p1_12_buf[SEEPS_MONTH];
+ float p2_12_buf[SEEPS_MONTH];
+ float t1_12_buf[SEEPS_MONTH];
+ float t2_12_buf[SEEPS_MONTH];
+ float matrix_00_buf[SEEPS_MONTH*SEEPS_MATRIX_SIZE];
+ float matrix_12_buf[SEEPS_MONTH*SEEPS_MATRIX_SIZE];
+ NcFile *nc_file = open_ncfile(filename.c_str());
+ const char *method_name = "SeepsClimo::read_records() -> ";
+
+ // dimensions: month = 12 ; nstn = 5293 ; nmatrix = 9 ;
+ get_dim(nc_file, dim_name_nstn, nstn, true);
+ mlog << Debug(3) << method_name << "dimension nstn = " << nstn << "\n";
+ if (standalone_debug_seeps) cout << "dimension nstn = " << nstn << "\n";
+
+ int *sid_array = new int[nstn];
+ float *lat_array = new float[nstn];
+ float *lon_array = new float[nstn];
+ float *elv_array = new float[nstn];
+ float *p1_00_array = new float[nstn*SEEPS_MONTH];
+ float *p2_00_array = new float[nstn*SEEPS_MONTH];
+ float *t1_00_array = new float[nstn*SEEPS_MONTH];
+ float *t2_00_array = new float[nstn*SEEPS_MONTH];
+ float *p1_12_array = new float[nstn*SEEPS_MONTH];
+ float *p2_12_array = new float[nstn*SEEPS_MONTH];
+ float *t1_12_array = new float[nstn*SEEPS_MONTH];
+ float *t2_12_array = new float[nstn*SEEPS_MONTH];
+ float *matrix_00_array = new float[nstn*SEEPS_MONTH*SEEPS_MATRIX_SIZE];
+ float *matrix_12_array = new float[nstn*SEEPS_MONTH*SEEPS_MATRIX_SIZE];
+
+ NcVar var_sid = get_nc_var(nc_file, var_name_sid);
+ NcVar var_lat = get_nc_var(nc_file, var_name_lat);
+ NcVar var_lon = get_nc_var(nc_file, var_name_lon);
+ NcVar var_elv = get_nc_var(nc_file, var_name_elv);
+ NcVar var_p1_00 = get_nc_var(nc_file, var_name_p1_00);
+ NcVar var_p2_00 = get_nc_var(nc_file, var_name_p2_00);
+ NcVar var_t1_00 = get_nc_var(nc_file, var_name_t1_00);
+ NcVar var_t2_00 = get_nc_var(nc_file, var_name_t2_00);
+ NcVar var_p1_12 = get_nc_var(nc_file, var_name_p1_12);
+ NcVar var_p2_12 = get_nc_var(nc_file, var_name_p2_12);
+ NcVar var_t1_12 = get_nc_var(nc_file, var_name_t1_12);
+ NcVar var_t2_12 = get_nc_var(nc_file, var_name_t2_12);
+ NcVar var_matrix_00 = get_nc_var(nc_file, var_name_matrix_00);
+ NcVar var_matrix_12 = get_nc_var(nc_file, var_name_matrix_12);
+
+ if (IS_INVALID_NC(var_sid) || !get_nc_data(&var_sid, sid_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get sid\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_lat) || !get_nc_data(&var_lat, lat_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get lat\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_lon) || !get_nc_data(&var_lon, lon_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get lon\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_elv) || !get_nc_data(&var_elv, elv_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get elv\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_p1_00) || !get_nc_data(&var_p1_00, p1_00_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get p1_00\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_p2_00) || !get_nc_data(&var_p2_00, p2_00_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get p2_00\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_t1_00) || !get_nc_data(&var_t1_00, t1_00_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get t1_00\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_t2_00) || !get_nc_data(&var_t2_00, t2_00_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get t2_00\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_p1_12) || !get_nc_data(&var_p1_12, p1_12_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get p1_12\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_p2_12) || !get_nc_data(&var_p2_12, p2_12_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get p2_12\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_t1_12) || !get_nc_data(&var_t1_12, t1_12_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get t1_12\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_t2_12) || !get_nc_data(&var_t2_12, t2_12_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get t2_12\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_matrix_00) || !get_nc_data(&var_matrix_00, matrix_00_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get matrix_00\n\n";
+ exit(1);
+ }
+ if (IS_INVALID_NC(var_matrix_12) || !get_nc_data(&var_matrix_12, matrix_12_array)) {
+ mlog << Error << "\n" << method_name
+ << "Did not get matrix_12\n\n";
+ exit(1);
+ }
+
+ SeepsClimoRecord *rec_00;
+ SeepsClimoRecord *rec_12;
+ for (int idx=0; idxclose();
+
+ float duration = (float)(clock() - clock_time)/CLOCKS_PER_SEC;
+ mlog << Debug(4) << method_name << "took " << duration << " seconds\n";
+ if (standalone_debug_seeps) cout << method_name << "took " << duration << " seconds\n";
+
+}
+
+////////////////////////////////////////////////////////////////////////
+
+void SeepsAggScore::init() {
+
+ n_obs = 0;
+ c12 = 0;
+ c13 = 0;
+ c21 = 0;
+ c23 = 0;
+ c31 = 0;
+ c32 = 0;
+ s12 = 0.;
+ s13 = 0.;
+ s21 = 0.;
+ s23 = 0.;
+ s31 = 0.;
+ s32 = 0.;
+ pv1 = 0.;
+ pv2 = 0.;
+ pv3 = 0.;
+ pf1 = 0.;
+ pf2 = 0.;
+ pf3 = 0.;
+ mean_fcst = bad_data_double;
+ mean_obs = bad_data_double;
+ score = bad_data_double;
+
+}
+
+////////////////////////////////////////////////////////////////////////
diff --git a/src/libcode/vx_seeps/seeps.h b/src/libcode/vx_seeps/seeps.h
new file mode 100644
index 0000000000..ad6d52691a
--- /dev/null
+++ b/src/libcode/vx_seeps/seeps.h
@@ -0,0 +1,163 @@
+
+
+////////////////////////////////////////////////////////////////////////
+
+
+#ifndef __SEEPS_H__
+#define __SEEPS_H__
+
+
+////////////////////////////////////////////////////////////////////////
+
+
+#include