From ed440b503a2e6aa62134a1152aa4601aecac6b00 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 11:56:51 -0700 Subject: [PATCH 1/2] Update develop-ref after dtcenter/MET#2758 (#2789) * Store change of sonar.login to sonar.token. * Hotfix to develop, updating aclocal.m4 and config.h.in to what is created when running bootstrap inside the dtcenter/met-base:v3.1 Docker image. Updates autoconf 2.69 output to 2.71. * Adding -lnetcdf to configure_lib_args for NetCDF-CXX compilation * Added eckit and atlas loads and paths * Added atlas and eckit loads and paths * Changing -j to "-j 5" as the recommended value * Update ensemble-stat.rst Fixed incorrect path to obs error table * Updated values for GRIB2CLIB_NAME and BUFRLIB_NAME * Updated for proj, eckit, and atlas * Feature #2761 develop seneca (#2762) * Per #2761, define runtime python version for testing rather than using the default version which no longer exists in /usr/local * Per #2761, fix setting ci-skip-all * Per #2761, patching test_util.R to use the -C command line option for ncdiff. I did test running comp_dir.sh with this change and confirmed that it now runs to completion. * #2652 Added find_var_by_standard_name and separated common codes to find_xy_vars * #2757 Get the email list from the environment variable MET_CRON_EMAIL_LIST__MET (or MET_CRON_EMAIL_LIST_) * #2757 THe SonarQube token and URL are replaced by ujsing the environment variable SONAR_TOKEN_VALUE and SONAR_SERVER_URL * #2757 The SonarQube token and URL are replaced with the pre-defined strings, SONAR_TOKEN_VALUE and SONAR_SERVER_URL * Bugfix #2670 develop --enable-python (#2768) * Update install_met_env.acorn_py3.10 * Update install_met_env.wcoss2_py3.10 * Feature #2776 cleanup (#2777) * Per #2776, delete stale prob_pair_info.h/.cc, wwmca_utils.h/.cc, and rmw_analysis_utils.h/.cc files that were not being compiled by their Makefiles. * Per #2776, update Makefile to compile the test_read_rmw utility. * Per #2776, add Makefile for the vx_python3_utils test utility directory. * add rpath for atlas and eckit lib dirs so dynamic libraries can be found when running on seneca * only set -L and -I arguments for atlas and eckit if the appropriate environment variable is set -- this matches how it is handled for other external library dependencies * Per #2776, just whitespace and capitalization --------- Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com> * Bugfix #2782 develop MASSDEN (#2783) * Per #2782, port over fixes from the bugfix_2782_main_v11.1_MASSDEN branch over to the bugfix branch for develop. Will also add new GRIB2 filtering options in this branch. * Per #2782, add support for 4 new GRIB2 filtering options for GRIB2_aerosol_type, GRIB2_aerosol_interval_type, GRIB2_aerosol_size_lower, and GRIB2_aerosol_size_upper. These are useful in filtering the MASSDEN records in the RRFS smoke output files. * Per #2782, fix aerosol_size_lower() and aersol_size_upper() inline definitions. * Per #2782, add a unit test for GRIB2 table 4.48. * Per #2782, switch from strict equality to using the is_eq() function when checking the GRIB2_aerosol_size_lower and upper values since they're doubles and not ints. * Feature #2701 ismn (#2758) * Add support for ISMN soil moisture data * Per #2701, update ascii2nc.cc with the ismn file option. * Per #2701, update ascii2nc docs * Per #2701, store the depth for precip as 0. * Per #2701, parse the ISMN observation value from the correct column. * Per #2701, every time I run ascii2nc to I see a log message for 'DEBUG 1: Number of NDBC skipped files due to no lookup 0'. This is printed by the NdbcHandler destructor. Update the logic to only print a debug level 3 log message when the number of missing locations is greater than 0, 'DEBUG 3: Skipped 5 NDBC files whose locations are not defined in 'MET_BASE/table_files/ndbc_stations.xml'. Set the MET_NDBC_STATIONS environment variable to override this file.' * Per #2701, as instructed by @anewman89, store the average of the depth values rather than the maximum value. * Per #2701, add a test of processing the ISMN data through ascii2nc. * Per #2701, fix parsing of year and month to subtract 1900 and 1, respectively. * Per #2701, set use_var_id to true for ISMN inputs * Per #2701, even though we're mapping obs data to GRIB code names and units, we want to encode them with use_var_id = true and so we need to keep track of those var_id values. * Per #2701, fix typo in the name of the ascii2nc netcdf output file. --------- Co-authored-by: MET Tools Test Account --------- Co-authored-by: MET Tools Test Account Co-authored-by: root Co-authored-by: Julie Prestopnik Co-authored-by: Christina Kalb Co-authored-by: John Halley Gotway Co-authored-by: Howard Soh Co-authored-by: Howard Soh Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com> Co-authored-by: metplus-bot <97135045+metplus-bot@users.noreply.github.com> --- docs/Users_Guide/reformat_point.rst | 4 +- internal/test_unit/xml/unit_ascii2nc.xml | 13 +- src/tools/other/ascii2nc/Makefile.am | 4 +- src/tools/other/ascii2nc/Makefile.in | 28 ++- src/tools/other/ascii2nc/aeronet_handler.h | 6 +- src/tools/other/ascii2nc/airnow_handler.cc | 2 +- src/tools/other/ascii2nc/airnow_handler.h | 6 +- src/tools/other/ascii2nc/ascii2nc.cc | 27 ++- src/tools/other/ascii2nc/file_handler.h | 6 +- src/tools/other/ascii2nc/ismn_handler.cc | 255 ++++++++++++++++++++ src/tools/other/ascii2nc/ismn_handler.h | 154 ++++++++++++ src/tools/other/ascii2nc/little_r_handler.h | 6 +- src/tools/other/ascii2nc/met_handler.h | 6 +- src/tools/other/ascii2nc/ndbc_handler.cc | 13 +- src/tools/other/ascii2nc/ndbc_handler.h | 4 +- src/tools/other/ascii2nc/surfrad_handler.h | 6 +- src/tools/other/ascii2nc/wwsis_handler.h | 6 +- 17 files changed, 510 insertions(+), 36 deletions(-) create mode 100644 src/tools/other/ascii2nc/ismn_handler.cc create mode 100644 src/tools/other/ascii2nc/ismn_handler.h diff --git a/docs/Users_Guide/reformat_point.rst b/docs/Users_Guide/reformat_point.rst index d21586ebed..31d752a6f3 100644 --- a/docs/Users_Guide/reformat_point.rst +++ b/docs/Users_Guide/reformat_point.rst @@ -456,6 +456,8 @@ While initial versions of the ASCII2NC tool only supported a simple 11 column AS • `National Data Buoy (NDBC) Standard Meteorlogical Data format `_. See the :ref:`MET_NDBC_STATIONS` environment variable. +• `International Soil Moisture Network (ISMN) Data format `_. + • `AErosol RObotic NEtwork (AERONET) versions 2 and 3 format `_ • Python embedding of point observations, as described in :numref:`pyembed-point-obs-data`. See example below in :numref:`ascii2nc-pyembed`. @@ -539,7 +541,7 @@ Required Arguments for ascii2nc Optional Arguments for ascii2nc ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -3. The **-format ASCII_format** option may be set to "met_point", "little_r", "surfrad", "wwsis", "airnowhourlyaqobs", "airnowhourly", "airnowdaily_v2", "ndbc_standard", "aeronet", "aeronetv2", "aeronetv3", or "python". If passing in ISIS data, use the "surfrad" format flag. +3. The **-format ASCII_format** option may be set to "met_point", "little_r", "surfrad", "wwsis", "airnowhourlyaqobs", "airnowhourly", "airnowdaily_v2", "ndbc_standard", "ismn", "aeronet", "aeronetv2", "aeronetv3", or "python". If passing in ISIS data, use the "surfrad" format flag. 4. The **-config file** option is the configuration file for generating time summaries. diff --git a/internal/test_unit/xml/unit_ascii2nc.xml b/internal/test_unit/xml/unit_ascii2nc.xml index 77f445e1c0..2dd9df07e7 100644 --- a/internal/test_unit/xml/unit_ascii2nc.xml +++ b/internal/test_unit/xml/unit_ascii2nc.xml @@ -199,7 +199,16 @@ - - + + &MET_BIN;/ascii2nc + \ + -format ismn \ + &DATA_DIR_OBS;/ismn/SNOTEL/*/*.stm \ + &OUTPUT_DIR;/ascii2nc/ismn_SNOTEL_20220924_20220927.nc + + + &OUTPUT_DIR;/ascii2nc/ismn_SNOTEL_20220924_20220927.nc + + diff --git a/src/tools/other/ascii2nc/Makefile.am b/src/tools/other/ascii2nc/Makefile.am index ae5cf6402c..f4cef08512 100644 --- a/src/tools/other/ascii2nc/Makefile.am +++ b/src/tools/other/ascii2nc/Makefile.am @@ -28,7 +28,9 @@ ascii2nc_SOURCES = ascii2nc.cc \ ndbc_handler.cc ndbc_handler.h \ ndbc_locations.cc ndbc_locations.h \ airnow_locations.cc airnow_locations.h \ - aeronet_handler.cc aeronet_handler.h $(OPT_PYTHON_SOURCES) + aeronet_handler.cc aeronet_handler.h \ + ismn_handler.cc ismn_handler.h \ + $(OPT_PYTHON_SOURCES) ascii2nc_CPPFLAGS = ${MET_CPPFLAGS} -I../../../basic/vx_log ascii2nc_LDFLAGS = ${MET_LDFLAGS} diff --git a/src/tools/other/ascii2nc/Makefile.in b/src/tools/other/ascii2nc/Makefile.in index 00f20b1511..ea6e06e27f 100644 --- a/src/tools/other/ascii2nc/Makefile.in +++ b/src/tools/other/ascii2nc/Makefile.in @@ -110,7 +110,8 @@ am__ascii2nc_SOURCES_DIST = ascii2nc.cc ascii2nc_conf_info.cc \ airnow_handler.h ndbc_handler.cc ndbc_handler.h \ ndbc_locations.cc ndbc_locations.h airnow_locations.cc \ airnow_locations.h aeronet_handler.cc aeronet_handler.h \ - python_handler.h python_handler.cc + ismn_handler.cc ismn_handler.h python_handler.h \ + python_handler.cc @ENABLE_PYTHON_TRUE@am__objects_1 = ascii2nc-python_handler.$(OBJEXT) am__objects_2 = $(am__objects_1) am_ascii2nc_OBJECTS = ascii2nc-ascii2nc.$(OBJEXT) \ @@ -124,7 +125,8 @@ am_ascii2nc_OBJECTS = ascii2nc-ascii2nc.$(OBJEXT) \ ascii2nc-ndbc_handler.$(OBJEXT) \ ascii2nc-ndbc_locations.$(OBJEXT) \ ascii2nc-airnow_locations.$(OBJEXT) \ - ascii2nc-aeronet_handler.$(OBJEXT) $(am__objects_2) + ascii2nc-aeronet_handler.$(OBJEXT) \ + ascii2nc-ismn_handler.$(OBJEXT) $(am__objects_2) ascii2nc_OBJECTS = $(am_ascii2nc_OBJECTS) am__DEPENDENCIES_1 = ascii2nc_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ @@ -153,6 +155,7 @@ am__depfiles_remade = ./$(DEPDIR)/ascii2nc-aeronet_handler.Po \ ./$(DEPDIR)/ascii2nc-ascii2nc.Po \ ./$(DEPDIR)/ascii2nc-ascii2nc_conf_info.Po \ ./$(DEPDIR)/ascii2nc-file_handler.Po \ + ./$(DEPDIR)/ascii2nc-ismn_handler.Po \ ./$(DEPDIR)/ascii2nc-little_r_handler.Po \ ./$(DEPDIR)/ascii2nc-met_handler.Po \ ./$(DEPDIR)/ascii2nc-ndbc_handler.Po \ @@ -387,7 +390,9 @@ ascii2nc_SOURCES = ascii2nc.cc \ ndbc_handler.cc ndbc_handler.h \ ndbc_locations.cc ndbc_locations.h \ airnow_locations.cc airnow_locations.h \ - aeronet_handler.cc aeronet_handler.h $(OPT_PYTHON_SOURCES) + aeronet_handler.cc aeronet_handler.h \ + ismn_handler.cc ismn_handler.h \ + $(OPT_PYTHON_SOURCES) ascii2nc_CPPFLAGS = ${MET_CPPFLAGS} -I../../../basic/vx_log ascii2nc_LDFLAGS = ${MET_LDFLAGS} @@ -514,6 +519,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ascii2nc-ascii2nc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ascii2nc-ascii2nc_conf_info.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ascii2nc-file_handler.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ascii2nc-ismn_handler.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ascii2nc-little_r_handler.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ascii2nc-met_handler.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ascii2nc-ndbc_handler.Po@am__quote@ # am--include-marker @@ -710,6 +716,20 @@ ascii2nc-aeronet_handler.obj: aeronet_handler.cc @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ascii2nc_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ascii2nc-aeronet_handler.obj `if test -f 'aeronet_handler.cc'; then $(CYGPATH_W) 'aeronet_handler.cc'; else $(CYGPATH_W) '$(srcdir)/aeronet_handler.cc'; fi` +ascii2nc-ismn_handler.o: ismn_handler.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ascii2nc_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ascii2nc-ismn_handler.o -MD -MP -MF $(DEPDIR)/ascii2nc-ismn_handler.Tpo -c -o ascii2nc-ismn_handler.o `test -f 'ismn_handler.cc' || echo '$(srcdir)/'`ismn_handler.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ascii2nc-ismn_handler.Tpo $(DEPDIR)/ascii2nc-ismn_handler.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ismn_handler.cc' object='ascii2nc-ismn_handler.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) $(ascii2nc_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ascii2nc-ismn_handler.o `test -f 'ismn_handler.cc' || echo '$(srcdir)/'`ismn_handler.cc + +ascii2nc-ismn_handler.obj: ismn_handler.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ascii2nc_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ascii2nc-ismn_handler.obj -MD -MP -MF $(DEPDIR)/ascii2nc-ismn_handler.Tpo -c -o ascii2nc-ismn_handler.obj `if test -f 'ismn_handler.cc'; then $(CYGPATH_W) 'ismn_handler.cc'; else $(CYGPATH_W) '$(srcdir)/ismn_handler.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ascii2nc-ismn_handler.Tpo $(DEPDIR)/ascii2nc-ismn_handler.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='ismn_handler.cc' object='ascii2nc-ismn_handler.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) $(ascii2nc_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o ascii2nc-ismn_handler.obj `if test -f 'ismn_handler.cc'; then $(CYGPATH_W) 'ismn_handler.cc'; else $(CYGPATH_W) '$(srcdir)/ismn_handler.cc'; fi` + ascii2nc-python_handler.o: python_handler.cc @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ascii2nc_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT ascii2nc-python_handler.o -MD -MP -MF $(DEPDIR)/ascii2nc-python_handler.Tpo -c -o ascii2nc-python_handler.o `test -f 'python_handler.cc' || echo '$(srcdir)/'`python_handler.cc @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ascii2nc-python_handler.Tpo $(DEPDIR)/ascii2nc-python_handler.Po @@ -857,6 +877,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/ascii2nc-ascii2nc.Po -rm -f ./$(DEPDIR)/ascii2nc-ascii2nc_conf_info.Po -rm -f ./$(DEPDIR)/ascii2nc-file_handler.Po + -rm -f ./$(DEPDIR)/ascii2nc-ismn_handler.Po -rm -f ./$(DEPDIR)/ascii2nc-little_r_handler.Po -rm -f ./$(DEPDIR)/ascii2nc-met_handler.Po -rm -f ./$(DEPDIR)/ascii2nc-ndbc_handler.Po @@ -915,6 +936,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/ascii2nc-ascii2nc.Po -rm -f ./$(DEPDIR)/ascii2nc-ascii2nc_conf_info.Po -rm -f ./$(DEPDIR)/ascii2nc-file_handler.Po + -rm -f ./$(DEPDIR)/ascii2nc-ismn_handler.Po -rm -f ./$(DEPDIR)/ascii2nc-little_r_handler.Po -rm -f ./$(DEPDIR)/ascii2nc-met_handler.Po -rm -f ./$(DEPDIR)/ascii2nc-ndbc_handler.Po diff --git a/src/tools/other/ascii2nc/aeronet_handler.h b/src/tools/other/ascii2nc/aeronet_handler.h index ec64202944..e835a91602 100644 --- a/src/tools/other/ascii2nc/aeronet_handler.h +++ b/src/tools/other/ascii2nc/aeronet_handler.h @@ -10,8 +10,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __AERONETHANDLER_H__ -#define __AERONETHANDLER_H__ +#ifndef __AERONET_HANDLER_H__ +#define __AERONET_HANDLER_H__ //////////////////////////////////////////////////////////////////////// @@ -125,7 +125,7 @@ class AeronetHandler : public FileHandler //////////////////////////////////////////////////////////////////////// -#endif /* __AERONETHANDLER_H__ */ +#endif /* __AERONET_HANDLER_H__ */ //////////////////////////////////////////////////////////////////////// diff --git a/src/tools/other/ascii2nc/airnow_handler.cc b/src/tools/other/ascii2nc/airnow_handler.cc index a5542b642c..74525c6139 100644 --- a/src/tools/other/ascii2nc/airnow_handler.cc +++ b/src/tools/other/ascii2nc/airnow_handler.cc @@ -648,7 +648,7 @@ time_t AirnowHandler::_getValidTime(const string &dateStr, const string &timeStr struct tm time_struct; memset(&time_struct, 0, sizeof(time_struct)); - time_struct.tm_year = atoi(year.c_str()) -1900; + time_struct.tm_year = atoi(year.c_str()) - 1900; time_struct.tm_mon = atoi(mon.c_str()) - 1; time_struct.tm_mday = atoi(mday.c_str()); time_struct.tm_hour = atoi(hour.c_str()); diff --git a/src/tools/other/ascii2nc/airnow_handler.h b/src/tools/other/ascii2nc/airnow_handler.h index 9064c5ce70..beef7bf0d5 100644 --- a/src/tools/other/ascii2nc/airnow_handler.h +++ b/src/tools/other/ascii2nc/airnow_handler.h @@ -10,8 +10,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __AIRNOWHANDLER_H__ -#define __AIRNOWHANDLER_H__ +#ifndef __AIRNOW_HANDLER_H__ +#define __AIRNOW_HANDLER_H__ //////////////////////////////////////////////////////////////////////// @@ -198,7 +198,7 @@ class AirnowHandler : public FileHandler //////////////////////////////////////////////////////////////////////// -#endif /* __AERONETHANDLER_H__ */ +#endif /* __AERONET_HANDLER_H__ */ //////////////////////////////////////////////////////////////////////// diff --git a/src/tools/other/ascii2nc/ascii2nc.cc b/src/tools/other/ascii2nc/ascii2nc.cc index 19cfa25549..9caecd0481 100644 --- a/src/tools/other/ascii2nc/ascii2nc.cc +++ b/src/tools/other/ascii2nc/ascii2nc.cc @@ -48,7 +48,8 @@ // 019 07/06/22 Howard Soh METplus-Internal #19 Rename main to met_main // 020 08/26/22 Dave Albo MET #2142 Add AirNow observations // 021 10/03/22 Prestopnik MET #2227 Remove using namespace std from header files -// 022 10/07/22 Dave Albo MET #2276 Add NDBC Buoy data +// 022 10/07/22 Dave Albo MET #2276 Add NDBC buoy data +// 023 11/28/23 Halley Gotway MET #2701 Add ISMN soil moisture data // //////////////////////////////////////////////////////////////////////// @@ -86,6 +87,7 @@ using namespace std; #include "aeronet_handler.h" #include "airnow_handler.h" #include "ndbc_handler.h" +#include "ismn_handler.h" #ifdef ENABLE_PYTHON #include "global_python.h" @@ -113,6 +115,7 @@ enum ASCIIFormat { ASCIIFormat_Airnow_hourlyaqobs, ASCIIFormat_Airnow_hourly, ASCIIFormat_NDBC_standard, + ASCIIFormat_ISMN, ASCIIFormat_Aeronet_v2, ASCIIFormat_Aeronet_v3, ASCIIFormat_Python, @@ -322,6 +325,10 @@ FileHandler *create_file_handler(const ASCIIFormat format, const ConcatString &a return((FileHandler *) handler); } + case ASCIIFormat_ISMN: { + return((FileHandler *) new IsmnHandler(program_name)); + } + case ASCIIFormat_Aeronet_v2: { AeronetHandler *handler = new AeronetHandler(program_name); handler->setFormatVersion(2); @@ -459,9 +466,21 @@ FileHandler *determine_ascii_format(const ConcatString &ascii_filename) { delete ndbc_file; // - // If we get here, we didn't recognize the file contents. + // See if this is an ISMN file. // + f_in.rewind(); + IsmnHandler *ismn_file = new IsmnHandler(program_name); + + if(ismn_file->isFileType(f_in)) { + f_in.close(); + return((FileHandler *) ismn_file); + } + + delete ismn_file; + // + // If we get here, we didn't recognize the file contents. + // mlog << Error << "\ndetermine_ascii_format() -> " << "could not determine file format based on file contents\n\n"; @@ -503,6 +522,7 @@ void usage() { << AirnowHandler::getFormatStringHourlyAqObs() << "\", \"" << AirnowHandler::getFormatStringHourly() << "\", \"" << NdbcHandler::getFormatStringStandard() << "\", \"" + << IsmnHandler::getFormatString() << "\", \"" << AeronetHandler::getFormatString() << "\", \"" << AeronetHandler::getFormatString_v2() << "\", \"" << AeronetHandler::getFormatString_v3() << "\""; @@ -585,6 +605,9 @@ void set_format(const StringArray & a) { else if(NdbcHandler::getFormatStringStandard() == a[0]) { ascii_format = ASCIIFormat_NDBC_standard; } + else if(IsmnHandler::getFormatString() == a[0]) { + ascii_format = ASCIIFormat_ISMN; + } else if(AeronetHandler::getFormatString() == a[0] || AeronetHandler::getFormatString_v2() == a[0]) { ascii_format = ASCIIFormat_Aeronet_v2; diff --git a/src/tools/other/ascii2nc/file_handler.h b/src/tools/other/ascii2nc/file_handler.h index ece575672a..8358411f36 100644 --- a/src/tools/other/ascii2nc/file_handler.h +++ b/src/tools/other/ascii2nc/file_handler.h @@ -10,8 +10,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __FILEHANDLER_H__ -#define __FILEHANDLER_H__ +#ifndef __FILE_HANDLER_H__ +#define __FILE_HANDLER_H__ //////////////////////////////////////////////////////////////////////// @@ -158,7 +158,7 @@ inline void FileHandler::setMessageTypeMap(map m) { //////////////////////////////////////////////////////////////////////// -#endif /* __FILEHANDLER_H__ */ +#endif /* __FILE_HANDLER_H__ */ //////////////////////////////////////////////////////////////////////// diff --git a/src/tools/other/ascii2nc/ismn_handler.cc b/src/tools/other/ascii2nc/ismn_handler.cc new file mode 100644 index 0000000000..0cf8c29042 --- /dev/null +++ b/src/tools/other/ascii2nc/ismn_handler.cc @@ -0,0 +1,255 @@ +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +// ** Copyright UCAR (c) 1992 - 2023 +// ** University Corporation for Atmospheric Research (UCAR) +// ** National Center for Atmospheric Research (NCAR) +// ** Research Applications Lab (RAL) +// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + +//////////////////////////////////////////////////////////////////////// + +using namespace std; + +#include + +#include "vx_log.h" +#include "vx_math.h" +#include "vx_util.h" + +#include "ismn_handler.h" + +const int IsmnHandler::MIN_NUM_HDR_COLS = 8; +const int IsmnHandler::NUM_OBS_COLS = 5; + +// Relevant GRIB codes +static const int PRATE_GRIB_CODE = 59; +static const int SNOD_GRIB_CODE = 66; +static const int SOILW_GRIB_CODE = 144; +static const int SMS_GRIB_CODE = -1; +static const int WEASD_GRIB_CODE = 65; +static const int TMP_GRIB_CODE = 11; +static const int TSOIL_GRIB_CODE = 85; +static const int AVSFT_GRIB_CODE = 148; + +// Mapping of ISMN strings to output variable names +map IsmnObsVarMap = { + { "p", { PRATE_GRIB_CODE, "PRATE" } }, + { "sd", { SNOD_GRIB_CODE, "SNOD" } }, + { "sm", { SOILW_GRIB_CODE, "SOILW" } }, + { "su", { SMS_GRIB_CODE, "SMS" } }, + { "sweq", { WEASD_GRIB_CODE, "WEASD" } }, + { "ta", { TMP_GRIB_CODE, "TMP" } }, + { "ts", { TSOIL_GRIB_CODE, "TSOIL" } }, + { "tsf", { AVSFT_GRIB_CODE, "AVSFT" } } +}; + +//////////////////////////////////////////////////////////////////////// +// +// Code for class IsmnHandler +// +//////////////////////////////////////////////////////////////////////// + +IsmnHandler::IsmnHandler(const string &program_name) : + FileHandler(program_name) { + use_var_id = true; +} + +//////////////////////////////////////////////////////////////////////// + +IsmnHandler::~IsmnHandler() { } + +//////////////////////////////////////////////////////////////////////// + +bool IsmnHandler::isFileType(LineDataFile &ascii_file) const { + + // ISMN files are identified by having a .stm suffix and + // checking the number of header and data columns. + // The header and data lines look like this: + // MAQU MAQU NST_24 33.99908 102.13661 3449.0 0.4000 0.4000 ECH20 EC-TM + // 2014/10/21 07:00 -27.7 G M + + // Initialize using the filename suffix + bool is_file_type = check_prefix_suffix(ascii_file.short_filename(), + nullptr, ".stm"); + + // Read the header line + DataLine dl; + while(dl.n_items() == 0) ascii_file >> dl; + + // Check the minimum number of header columns + if(dl.n_items() < MIN_NUM_HDR_COLS) is_file_type = false; + + // Check the number of data line columns + ascii_file >> dl; + if(dl.n_items() != NUM_OBS_COLS) is_file_type = false; + + return(is_file_type); +} + +//////////////////////////////////////////////////////////////////////// +// Private/Protected methods +//////////////////////////////////////////////////////////////////////// + +bool IsmnHandler::_readObservations(LineDataFile &ascii_file) { + + // Read and save the header information + if(!_readHeaderInfo(ascii_file)) return(false); + + // Get the var_id to use + int var_id = bad_data_int; + if(!_varNames.has(_obsVarInfo._varName, var_id)) return(false); + + // Process the observation lines + DataLine dl; + while(ascii_file >> dl) { + + // Make sure that the line contains the correct number of tokens + if(dl.n_items() != NUM_OBS_COLS) { + mlog << Error << "\nIsmnHandler::_readObservations() -> " + << "unexpected number of columns (" << dl.n_items() + << " != " << NUM_OBS_COLS << ") on line number " + << dl.line_number() << " of ISMN file \"" + << ascii_file.filename() << "\"!\n\n"; + return(false); + } + + // Extract the valid time from the data line + time_t valid_time = _getValidTime(dl); + if(valid_time == 0) return(false); + + // Store the observation value + double obs_value = atof(dl[2]); + + // Handle unit conversion + switch(_obsVarInfo._gribCode) { + + // Convert precip rate in second to hours + case PRATE_GRIB_CODE: + obs_value /= 3600; + break; + + // Convert mm to m + case SNOD_GRIB_CODE: + obs_value /= 1000.0; + break; + + // Convert C to K + case TMP_GRIB_CODE: + case TSOIL_GRIB_CODE: + case AVSFT_GRIB_CODE: + obs_value += 273.15; + break; + + default: + break; + } + + // Store the observation + _addObservations(Observation( + _networkName, _stationId, valid_time, + _stationLat, _stationLon, _stationElv, + dl[3], var_id, bad_data_double, + _depth, obs_value, _obsVarInfo._varName)); + + } // end while + + return(true); +} + +//////////////////////////////////////////////////////////////////////// + +time_t IsmnHandler::_getValidTime(const DataLine &dl) const { + struct tm time_struct; + memset(&time_struct, 0, sizeof(time_struct)); + + // Formatted as YYYY/MM/DD HH:MM + string ymd_str(dl[0]); + string hm_str(dl[1]); + + // Validate the time strings + if(!check_reg_exp("^[0-9]\\{4\\}/[0-9]\\{2\\}/[0-9]\\{2\\}$", dl[0]) || + !check_reg_exp("^[0-9]\\{2\\}:[0-9]\\{2\\}$", dl[1])) { + mlog << Warning << "\nIsmnHandler::_getValidTime() -> " + << "unexpected time stamp format on line number " + << dl.line_number() << " of ISMN input file:\n" + << " " << dl << "\n\n"; + } + else { + + // Parse time components + time_struct.tm_year = stoi(ymd_str.substr(0, 4)) - 1900; + time_struct.tm_mon = stoi(ymd_str.substr(5, 2)) - 1; + time_struct.tm_mday = stoi(ymd_str.substr(8, 2)); + time_struct.tm_hour = stoi( hm_str.substr(0, 2)); + time_struct.tm_min = stoi( hm_str.substr(3, 2)); + } + + return(timegm(&time_struct)); +} + +//////////////////////////////////////////////////////////////////////// + +bool IsmnHandler::_readHeaderInfo(LineDataFile &ascii_file) { + + // The file name is delimited with underscores and the variable name + // is the fourth item + ConcatString cs(ascii_file.short_filename()); + StringArray sa = cs.split("_"); + + // Validate the file name + if(sa.n() < 4) { + mlog << Error << "\nIsmnHandler::_readHeaderInfo() -> " + << "unexpected ISMN file name \"" << ascii_file.filename() + << "\"!\n\n"; + return(false); + } + + // Validate the variable name + if(IsmnObsVarMap.count(sa[3]) == 0) { + mlog << Error << "\nIsmnHandler::_readHeaderInfo() -> " + << "unexpected variable name (" << sa[3] + << ") found in ISMN file name \"" << ascii_file.filename() + << "\"!\n\n"; + return(false); + } + + // Store the observation variable info + _obsVarInfo = IsmnObsVarMap[sa[3]]; + + // Store the output variable name + _varNames.add_uniq(_obsVarInfo._varName); + + // Read the header line + DataLine dl; + while(dl.n_items() == 0) ascii_file >> dl; + + // Check the minimum number of header columns + if(dl.n_items() < MIN_NUM_HDR_COLS) { + mlog << Error << "\nIsmnHandler::_readHeaderInfo() -> " + << "unexpected number of header columns (" + << dl.n_items() << " < " << MIN_NUM_HDR_COLS + << ") in ISMN file \"" << ascii_file.filename() + << "\"!\n\n"; + return(false); + } + + // Store the header information + _networkName = dl[1]; + _stationId = dl[2]; + _stationLat = atof(dl[3]); + _stationLon = atof(dl[4]); + _stationElv = atof(dl[5]); + + // Set the depth for precip as 0 + if(_obsVarInfo._gribCode == PRATE_GRIB_CODE) { + _depth = 0.0; + } + // Otherwise, store the average of the two depths + else { + _depth = (atof(dl[6]) + atof(dl[7]))/2.0; + } + + return(true); +} + +//////////////////////////////////////////////////////////////////////// diff --git a/src/tools/other/ascii2nc/ismn_handler.h b/src/tools/other/ascii2nc/ismn_handler.h new file mode 100644 index 0000000000..05470aedec --- /dev/null +++ b/src/tools/other/ascii2nc/ismn_handler.h @@ -0,0 +1,154 @@ +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* +// ** Copyright UCAR (c) 1992 - 2023 +// ** University Corporation for Atmospheric Research (UCAR) +// ** National Center for Atmospheric Research (NCAR) +// ** Research Applications Lab (RAL) +// ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA +// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* + +//////////////////////////////////////////////////////////////////////// + +#ifndef __ISMN_HANDLER_H__ +#define __ISMN_HANDLER_H__ + +//////////////////////////////////////////////////////////////////////// + +#include +#include + +#include "file_handler.h" + +//////////////////////////////////////////////////////////////////////// + +struct obsVarInfo { + int _gribCode; + string _varName; +}; + +//////////////////////////////////////////////////////////////////////// +// +// International Soil Moisture Network Data +// https://ismn.bafg.de/en/data/header-value-files +// +// Dataset Filename Convention: +// CSE_Network_Station_Variablename_depthfrom_depthto_sensorname_startdate_enddate.ext +// +// - CSE: Continental Scale Experiment (CSE) acronym, if not applicable use Networkname +// - Network: Network abbreviation (e.g., OZNET) +// - Station: Station name (e.g., Widgiewa) +// - Variablename: Name of the variable in the file (e.g., Soil-Moisture) +// - p: preciptation in mm/h +// - Store as GRIB Code 59 (PRATE in kg/m^2/s) +// - Convert from mm/h to kg/m^2/s +// - sd: snow depth in mm +// - Store as GRIB Code 66 (SNOD in m) +// - Convert from mm to m +// - sm: soil moisture in kg^3/kg^3 +// - Store as GRIB Code 144 (SOILW as a fraction) +// - su: soil suction in kPa +// - Store as GRIB Code -1 (undefined, SMS in kPa) +// - sweq: snow water equivalent in mm +// - Store as GRIB Code 65 (WEASD kg/m^2) +// - ta: air temperature in C +// - Store as GRIB Code 11 (TMP in K) +// - Convert from C to K +// - ts: soil temperature in C +// - Store as GRIB Code 85 (TSOIL in K) +// - Convert from C to K +// - tsf: surface temperature in C +// - Store as GRIB Code 148 (AVSFT in K) +// - Convert from C to K +// - depthfrom: Depth in the ground in which the variable was observed (upper boundary) +// - depthto: Depth in the ground in which the variable was observed (lower boundary) +// - sensorname: Name of the sensor used +// - startdate: Date of the first dataset in the file (format YYYYMMDD) +// - enddate: Date of the last dataset in the file (format YYYYMMDD) +// - ext: Extension .stm (Soil Temperature and Soil Moisture Data Set see CEOP standard) +// +// Example: OZNET_OZNET_Widgiewa_Soil-Temperature_0.150000_0.150000_20010103_20090812.stm +// +// Dataset Conents: +// Example: +// REMEDHUS REMEDHUS Zamarron 41.24100 -5.54300 855.00 0.05 0.05 +// 2005/03/16 00:00 10.30 U M +// 2005/03/16 01:00 9.80 U M +// ... +// +// Header Line: +// CSE, Network, Station, +// Latitude (degrees north), Longitude (degrees east), +// Elevation (msl), Depth from, Depth to, +// Sensor name (Note: contains embedded whitespace) +// +// Record Lines: +// YYYY/MM/DD HH:MM, Variable value, +// ISMN Quality Flag, Data Provider Quality Flag +// +//////////////////////////////////////////////////////////////////////// + +class IsmnHandler : public FileHandler { + + public: + + IsmnHandler(const string &program_name); + virtual ~IsmnHandler(); + + virtual bool isFileType(LineDataFile &ascii_file) const; + + static string getFormatString() { return "ismn"; } + + protected: + + ///////////////////////// + // Protected constants + ///////////////////////// + + // The number of columns in the second header line in the file. This line + // is used to determine if this is a ISMN file since the first line has + // an indeterminate number of tokens. + + static const int MIN_NUM_HDR_COLS; + + // The number of columns in the observation lines in the file. + + static const int NUM_OBS_COLS; + + /////////////////////// + // Protected members + /////////////////////// + + // Unchanging file name information + obsVarInfo _obsVarInfo; + + // Store list of unqiue output variable names + StringArray _varNames; + + // Unchanging header information + string _networkName; + string _stationId; + double _stationLat; + double _stationLon; + double _stationElv; + double _depth; + + /////////////////////// + // Protected methods + /////////////////////// + + // Read and save the header information from the given file + bool _readHeaderInfo(LineDataFile &ascii_file); + + // Get the valid time from the observation line + time_t _getValidTime(const DataLine &data_line) const; + + // Read the observations and add them to the + // _observations vector + virtual bool _readObservations(LineDataFile &ascii_file); + +}; + +//////////////////////////////////////////////////////////////////////// + +#endif /* __ISMN_HANDLER_H__ */ + +//////////////////////////////////////////////////////////////////////// diff --git a/src/tools/other/ascii2nc/little_r_handler.h b/src/tools/other/ascii2nc/little_r_handler.h index 897f2416c3..c810a45ee4 100644 --- a/src/tools/other/ascii2nc/little_r_handler.h +++ b/src/tools/other/ascii2nc/little_r_handler.h @@ -10,8 +10,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __LITTLERHANDLER_H__ -#define __LITTLERHANDLER_H__ +#ifndef __LITTLER_HANDLER_H__ +#define __LITTLER_HANDLER_H__ //////////////////////////////////////////////////////////////////////// @@ -64,7 +64,7 @@ class LittleRHandler : public FileHandler //////////////////////////////////////////////////////////////////////// -#endif /* __LITTLERHANDLER_H__ */ +#endif /* __LITTLER_HANDLER_H__ */ //////////////////////////////////////////////////////////////////////// diff --git a/src/tools/other/ascii2nc/met_handler.h b/src/tools/other/ascii2nc/met_handler.h index f8dd880508..51ecf08010 100644 --- a/src/tools/other/ascii2nc/met_handler.h +++ b/src/tools/other/ascii2nc/met_handler.h @@ -10,8 +10,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __METHANDLER_H__ -#define __METHANDLER_H__ +#ifndef __MET_HANDLER_H__ +#define __MET_HANDLER_H__ //////////////////////////////////////////////////////////////////////// @@ -54,7 +54,7 @@ class MetHandler : public FileHandler //////////////////////////////////////////////////////////////////////// -#endif /* __METHANDLER_H__ */ +#endif /* __MET_HANDLER_H__ */ //////////////////////////////////////////////////////////////////////// diff --git a/src/tools/other/ascii2nc/ndbc_handler.cc b/src/tools/other/ascii2nc/ndbc_handler.cc index 9ec04255a2..510984f541 100644 --- a/src/tools/other/ascii2nc/ndbc_handler.cc +++ b/src/tools/other/ascii2nc/ndbc_handler.cc @@ -120,8 +120,15 @@ NdbcHandler::NdbcHandler(const string &program_name) : NdbcHandler::~NdbcHandler() { - mlog << Debug(1) << "Number of NDBC skipped files due to no lookup " << numMissingStations - << "\n"; + + // Log the non-zero number of missing stations + if(numMissingStations > 0) { + mlog << Debug(3) << "Skipped " << numMissingStations + << " NDBC files whose locations are not defined in \"" + << locationsFileName << "\". Set the " << stations_env + << " environment variable to provide an updated " + << "locations file.\n"; + } } @@ -362,7 +369,7 @@ time_t NdbcHandler::_getValidTime(const DataLine &data_line) const struct tm time_struct; memset(&time_struct, 0, sizeof(time_struct)); - time_struct.tm_year = atoi(year.c_str()) -1900; + time_struct.tm_year = atoi(year.c_str()) - 1900; time_struct.tm_mon = atoi(month.c_str()) - 1; time_struct.tm_mday = atoi(day.c_str()); time_struct.tm_hour = atoi(hour.c_str()); diff --git a/src/tools/other/ascii2nc/ndbc_handler.h b/src/tools/other/ascii2nc/ndbc_handler.h index b69b0ca311..d75b2136e5 100644 --- a/src/tools/other/ascii2nc/ndbc_handler.h +++ b/src/tools/other/ascii2nc/ndbc_handler.h @@ -10,8 +10,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __NDBCHANDLER_H__ -#define __NDBCHANDLER_H__ +#ifndef __NDBC_HANDLER_H__ +#define __NDBC_HANDLER_H__ //////////////////////////////////////////////////////////////////////// diff --git a/src/tools/other/ascii2nc/surfrad_handler.h b/src/tools/other/ascii2nc/surfrad_handler.h index 4fe8a3a9bb..ecbe6306e9 100644 --- a/src/tools/other/ascii2nc/surfrad_handler.h +++ b/src/tools/other/ascii2nc/surfrad_handler.h @@ -10,8 +10,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __SURFRADHANDLER_H__ -#define __SURFRADHANDLER_H__ +#ifndef __SURFRAD_HANDLER_H__ +#define __SURFRAD_HANDLER_H__ //////////////////////////////////////////////////////////////////////// @@ -136,7 +136,7 @@ class SurfradHandler : public FileHandler //////////////////////////////////////////////////////////////////////// -#endif /* __SURFRADHANDLER_H__ */ +#endif /* __SURFRAD_HANDLER_H__ */ //////////////////////////////////////////////////////////////////////// diff --git a/src/tools/other/ascii2nc/wwsis_handler.h b/src/tools/other/ascii2nc/wwsis_handler.h index 52d4f8c48b..774dd3ade1 100644 --- a/src/tools/other/ascii2nc/wwsis_handler.h +++ b/src/tools/other/ascii2nc/wwsis_handler.h @@ -12,8 +12,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __WWSISHANDLER_H__ -#define __WWSISHANDLER_H__ +#ifndef __WWSIS_HANDLER_H__ +#define __WWSIS_HANDLER_H__ //////////////////////////////////////////////////////////////////////// @@ -115,7 +115,7 @@ class WwsisHandler : public FileHandler //////////////////////////////////////////////////////////////////////// -#endif /* __WWSISHANDLER_H__ */ +#endif /* __WWSIS_HANDLER_H__ */ //////////////////////////////////////////////////////////////////////// From 464f9a720e5c9801cee102fc16c701785d1a699d Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Fri, 19 Jan 2024 11:29:47 -0700 Subject: [PATCH 2/2] Feature #2547 Read WRF output files natively (#2790) * Per #2547, add the file_type = NETCDF_WRF configuration option. * Per #2547, rename vx_data2d_nc_interp as vx_data2d_nc_wrf and vx_data2d_nccf as vx_data2d_nc_cf. * Per #2547, rename nccf files as nc_cf for consistency throughout * Per #2547, rename Pinterp classes as Wrf * only set -L and -I arguments for atlas and eckit if the appropriate environment variable is set -- this matches how it is handled for other external library dependencies * add rpath for atlas and eckit lib dirs so dynamic libraries can be found when running on seneca * ignore directory automatically created by CLion * rename pinterp variables and classes to Wrf * more rename and fix typos * per #2547, add support for reading WRF files by adding support for different X/Y/Z dimensions, read X/Y/Z dimension names when reading a field instead of storing them per file, track if data is staggered in X/Y/Z dimension (still need to add DataPlane function to destagger data), handle pressure field that also includes time dimension * per #2547, add DataPlane function to handle staggering of grid * per #2547, change file type returned from pinterp to wrf * per #2547, call function to stagger DataPlane if necessary * per #2547, keep store if variable is on pressure levels and only read pressure field if it is * ignore cmake directory * per #2547, support U_PL, U_ZL, U, and U where is an integer in is_u_wind and the same for is_v_wind * change regex to match zero or more instances of a number after U or V instead of 1 or more to include the fields named U and V * error and exit if var with unsupported subgrid dimension is processed * clean up logging * only destagger Z dimension for bottom_top_stag because other _stag Z dimensions don't need to be destaggered, clean up logic to read X/Y/Z dimension info * Per #2547, instead of checking dimensions of all vars in file, check dimensions for the var that is being read. Only read pressure var if the z dimension matches the var to read. Set class variable DimNames instead of local gDimNames so dump function will work as expected * per #2547, support reading variable that corresponds to dimension with different name as dimension and includes a time dimension, e.g. P_PL(Time, num_press_levels_stag) * per #2547, added unit tests to process WRF out data with plot_data_plane and grid_stat * merged develop and resolved conflicts * rename lib from pinterp to wrf * rename lib * fixed incorrect merge changes * fixed broken unit test format * Per #2547, restore the mention of NAK.poly to Appendix B. * Change model to WRF Co-authored-by: John Halley Gotway * change obtype to WRF Co-authored-by: John Halley Gotway * plot higher vertical level to get non-zero output Co-authored-by: John Halley Gotway * indentation Co-authored-by: John Halley Gotway --------- Co-authored-by: John Halley Gotway --- .gitignore | 2 + Make-include | 8 +- configure | 11 +- configure.ac | 6 +- data/config/ConfigConstants | 11 +- docs/Users_Guide/appendixA.rst | 2 +- docs/Users_Guide/config_options.rst | 1 + .../test_unit/config/GridStatConfig_WRF_pres | 288 +++++++++++++++ internal/test_unit/xml/unit_grid_stat.xml | 17 + .../test_unit/xml/unit_plot_data_plane.xml | 84 +++++ internal/test_util/basic/vx_util/Makefile.am | 4 +- internal/test_util/basic/vx_util/Makefile.in | 4 +- internal/test_util/libcode/Makefile.am | 2 +- internal/test_util/libcode/Makefile.in | 2 +- .../libcode/vx_data2d_factory/Makefile.am | 4 +- .../libcode/vx_data2d_factory/Makefile.in | 4 +- .../.gitignore | 0 .../Makefile.am | 2 +- .../Makefile.in | 8 +- .../test_read_nccf.cc | 2 +- .../test_util/libcode/vx_nc_util/Makefile.am | 4 +- .../test_util/libcode/vx_nc_util/Makefile.in | 4 +- .../test_util/libcode/vx_tc_util/Makefile.am | 12 +- .../test_util/libcode/vx_tc_util/Makefile.in | 12 +- .../tools/other/mode_time_domain/Makefile.am | 4 +- .../tools/other/mode_time_domain/Makefile.in | 4 +- src/basic/vx_config/config_constants.h | 1 + src/basic/vx_config/config_util.cc | 2 +- src/basic/vx_config/data_file_type.h | 20 +- src/basic/vx_config/grdfiletype_to_string.cc | 6 +- src/basic/vx_util/data_plane.cc | 87 ++++- src/basic/vx_util/data_plane.h | 3 +- src/libcode/Makefile.am | 4 +- src/libcode/Makefile.in | 4 +- src/libcode/vx_data2d/vx_data2d.h | 1 + .../vx_data2d_factory/data2d_factory.cc | 7 +- .../vx_data2d_factory/data2d_factory_utils.cc | 1 + .../vx_data2d_factory/is_netcdf_file.cc | 38 +- .../vx_data2d_factory/is_netcdf_file.h | 2 + .../vx_data2d_factory/var_info_factory.cc | 7 +- .../.gitignore | 0 src/libcode/vx_data2d_nc_cf/Makefile.am | 20 + .../Makefile.in | 133 +++---- .../data2d_nc_cf.cc} | 2 +- .../data2d_nc_cf.h} | 4 +- .../nc_cf_file.cc} | 2 +- .../nc_cf_file.h} | 6 +- .../var_info_nc_cf.cc} | 4 +- .../var_info_nc_cf.h} | 0 .../vx_data2d_nc_cf.h} | 6 +- src/libcode/vx_data2d_nc_pinterp/Makefile.am | 20 - .../.gitignore | 0 src/libcode/vx_data2d_nc_wrf/Makefile.am | 20 + .../Makefile.in | 165 +++++---- .../data2d_nc_wrf.cc} | 74 ++-- .../data2d_nc_wrf.h} | 26 +- .../get_wrf_grid.cc} | 10 +- .../get_wrf_grid.h} | 10 +- .../var_info_nc_wrf.cc} | 61 +-- .../var_info_nc_wrf.h} | 42 ++- .../vx_data2d_nc_wrf.h} | 14 +- .../wrf_file.cc} | 347 ++++++++++++------ .../wrf_file.h} | 23 +- src/libcode/vx_data2d_nccf/Makefile.am | 20 - src/libcode/vx_nc_util/nc_var_info.cc | 41 ++- src/libcode/vx_nc_util/nc_var_info.h | 6 + src/tools/core/ensemble_stat/Makefile.am | 4 +- src/tools/core/ensemble_stat/Makefile.in | 4 +- src/tools/core/grid_stat/Makefile.am | 4 +- src/tools/core/grid_stat/Makefile.in | 4 +- src/tools/core/mode/Makefile.am | 4 +- src/tools/core/mode/Makefile.in | 4 +- src/tools/core/mode_analysis/Makefile.am | 4 +- src/tools/core/mode_analysis/Makefile.in | 4 +- src/tools/core/pcp_combine/Makefile.am | 4 +- src/tools/core/pcp_combine/Makefile.in | 4 +- src/tools/core/point_stat/Makefile.am | 4 +- src/tools/core/point_stat/Makefile.in | 4 +- src/tools/core/series_analysis/Makefile.am | 4 +- src/tools/core/series_analysis/Makefile.in | 4 +- src/tools/core/stat_analysis/Makefile.am | 4 +- src/tools/core/stat_analysis/Makefile.in | 4 +- .../core/stat_analysis/aggr_stat_line.cc | 2 +- src/tools/core/wavelet_stat/Makefile.am | 4 +- src/tools/core/wavelet_stat/Makefile.in | 4 +- src/tools/dev_utils/Makefile.am | 4 +- src/tools/dev_utils/Makefile.in | 4 +- src/tools/other/ascii2nc/Makefile.am | 4 +- src/tools/other/ascii2nc/Makefile.in | 4 +- src/tools/other/gen_ens_prod/Makefile.am | 4 +- src/tools/other/gen_ens_prod/Makefile.in | 4 +- src/tools/other/gen_vx_mask/Makefile.am | 4 +- src/tools/other/gen_vx_mask/Makefile.in | 4 +- src/tools/other/grid_diag/Makefile.am | 4 +- src/tools/other/grid_diag/Makefile.in | 4 +- src/tools/other/gsi_tools/Makefile.am | 8 +- src/tools/other/gsi_tools/Makefile.in | 8 +- src/tools/other/ioda2nc/Makefile.am | 4 +- src/tools/other/ioda2nc/Makefile.in | 4 +- src/tools/other/lidar2nc/Makefile.am | 2 +- src/tools/other/lidar2nc/Makefile.in | 2 +- src/tools/other/madis2nc/Makefile.am | 4 +- src/tools/other/madis2nc/Makefile.in | 4 +- src/tools/other/mode_time_domain/Makefile.am | 4 +- src/tools/other/mode_time_domain/Makefile.in | 4 +- src/tools/other/modis_regrid/Makefile.am | 6 +- src/tools/other/modis_regrid/Makefile.in | 6 +- src/tools/other/pb2nc/Makefile.am | 4 +- src/tools/other/pb2nc/Makefile.in | 4 +- src/tools/other/plot_data_plane/Makefile.am | 4 +- src/tools/other/plot_data_plane/Makefile.in | 4 +- .../other/plot_data_plane/plot_data_plane.cc | 2 +- src/tools/other/plot_point_obs/Makefile.am | 4 +- src/tools/other/plot_point_obs/Makefile.in | 4 +- src/tools/other/point2grid/Makefile.am | 4 +- src/tools/other/point2grid/Makefile.in | 4 +- src/tools/other/regrid_data_plane/Makefile.am | 4 +- src/tools/other/regrid_data_plane/Makefile.in | 4 +- .../regrid_data_plane/regrid_data_plane.cc | 5 +- src/tools/other/shift_data_plane/Makefile.am | 4 +- src/tools/other/shift_data_plane/Makefile.in | 4 +- .../shift_data_plane/shift_data_plane.cc | 5 +- src/tools/other/wwmca_tool/Makefile.am | 8 +- src/tools/other/wwmca_tool/Makefile.in | 8 +- src/tools/tc_utils/rmw_analysis/Makefile.am | 4 +- src/tools/tc_utils/rmw_analysis/Makefile.in | 4 +- src/tools/tc_utils/tc_diag/Makefile.am | 4 +- src/tools/tc_utils/tc_diag/Makefile.in | 4 +- src/tools/tc_utils/tc_gen/Makefile.am | 4 +- src/tools/tc_utils/tc_gen/Makefile.in | 4 +- src/tools/tc_utils/tc_pairs/Makefile.am | 4 +- src/tools/tc_utils/tc_pairs/Makefile.in | 4 +- src/tools/tc_utils/tc_rmw/Makefile.am | 4 +- src/tools/tc_utils/tc_rmw/Makefile.in | 4 +- src/tools/tc_utils/tc_stat/Makefile.am | 4 +- src/tools/tc_utils/tc_stat/Makefile.in | 4 +- 136 files changed, 1355 insertions(+), 680 deletions(-) create mode 100644 internal/test_unit/config/GridStatConfig_WRF_pres rename internal/test_util/libcode/{vx_data2d_nccf => vx_data2d_nc_cf}/.gitignore (100%) rename internal/test_util/libcode/{vx_data2d_nccf => vx_data2d_nc_cf}/Makefile.am (93%) rename internal/test_util/libcode/{vx_data2d_nccf => vx_data2d_nc_cf}/Makefile.in (99%) rename internal/test_util/libcode/{vx_data2d_nccf => vx_data2d_nc_cf}/test_read_nccf.cc (98%) rename src/libcode/{vx_data2d_nc_pinterp => vx_data2d_nc_cf}/.gitignore (100%) create mode 100644 src/libcode/vx_data2d_nc_cf/Makefile.am rename src/libcode/{vx_data2d_nccf => vx_data2d_nc_cf}/Makefile.in (74%) rename src/libcode/{vx_data2d_nccf/data2d_nccf.cc => vx_data2d_nc_cf/data2d_nc_cf.cc} (99%) rename src/libcode/{vx_data2d_nccf/data2d_nccf.h => vx_data2d_nc_cf/data2d_nc_cf.h} (98%) rename src/libcode/{vx_data2d_nccf/nccf_file.cc => vx_data2d_nc_cf/nc_cf_file.cc} (99%) rename src/libcode/{vx_data2d_nccf/nccf_file.h => vx_data2d_nc_cf/nc_cf_file.h} (98%) rename src/libcode/{vx_data2d_nccf/var_info_nccf.cc => vx_data2d_nc_cf/var_info_nc_cf.cc} (99%) rename src/libcode/{vx_data2d_nccf/var_info_nccf.h => vx_data2d_nc_cf/var_info_nc_cf.h} (100%) rename src/libcode/{vx_data2d_nccf/vx_data2d_nccf.h => vx_data2d_nc_cf/vx_data2d_nc_cf.h} (90%) delete mode 100644 src/libcode/vx_data2d_nc_pinterp/Makefile.am rename src/libcode/{vx_data2d_nccf => vx_data2d_nc_wrf}/.gitignore (100%) create mode 100644 src/libcode/vx_data2d_nc_wrf/Makefile.am rename src/libcode/{vx_data2d_nc_pinterp => vx_data2d_nc_wrf}/Makefile.in (68%) rename src/libcode/{vx_data2d_nc_pinterp/data2d_nc_pinterp.cc => vx_data2d_nc_wrf/data2d_nc_wrf.cc} (78%) rename src/libcode/{vx_data2d_nc_pinterp/data2d_nc_pinterp.h => vx_data2d_nc_wrf/data2d_nc_wrf.h} (72%) rename src/libcode/{vx_data2d_nc_pinterp/get_pinterp_grid.cc => vx_data2d_nc_wrf/get_wrf_grid.cc} (97%) rename src/libcode/{vx_data2d_nc_pinterp/get_pinterp_grid.h => vx_data2d_nc_wrf/get_wrf_grid.h} (77%) rename src/libcode/{vx_data2d_nc_pinterp/var_info_nc_pinterp.cc => vx_data2d_nc_wrf/var_info_nc_wrf.cc} (87%) rename src/libcode/{vx_data2d_nc_pinterp/var_info_nc_pinterp.h => vx_data2d_nc_wrf/var_info_nc_wrf.h} (84%) rename src/libcode/{vx_data2d_nc_pinterp/vx_data2d_nc_pinterp.h => vx_data2d_nc_wrf/vx_data2d_nc_wrf.h} (74%) rename src/libcode/{vx_data2d_nc_pinterp/pinterp_file.cc => vx_data2d_nc_wrf/wrf_file.cc} (63%) rename src/libcode/{vx_data2d_nc_pinterp/pinterp_file.h => vx_data2d_nc_wrf/wrf_file.h} (79%) delete mode 100644 src/libcode/vx_data2d_nccf/Makefile.am diff --git a/.gitignore b/.gitignore index 3f75b8c06f..d26e2e4a32 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ share Makefile make.log make_install.log +.idea +cmake-build-debug diff --git a/Make-include b/Make-include index bdde7b71a4..6b88767ffb 100644 --- a/Make-include +++ b/Make-include @@ -11,9 +11,9 @@ MET_CPPFLAGS = -I${top_builddir}/src/basic/vx_cal \ -I${top_builddir}/src/libcode/vx_data2d_factory \ -I${top_builddir}/src/libcode/vx_data2d_grib \ -I${top_builddir}/src/libcode/vx_data2d_grib2 \ - -I${top_builddir}/src/libcode/vx_data2d_nccf \ -I${top_builddir}/src/libcode/vx_data2d_nc_met \ - -I${top_builddir}/src/libcode/vx_data2d_nc_pinterp \ + -I${top_builddir}/src/libcode/vx_data2d_nc_wrf \ + -I${top_builddir}/src/libcode/vx_data2d_nc_cf \ -I${top_builddir}/src/libcode/vx_data2d_python \ -I${top_builddir}/src/libcode/vx_data2d_ugrid \ -I${top_builddir}/src/libcode/vx_python3_utils \ @@ -58,9 +58,9 @@ MET_LDFLAGS = -L${top_builddir}/src/basic/vx_cal \ -L${top_builddir}/src/libcode/vx_data2d_factory \ -L${top_builddir}/src/libcode/vx_data2d_grib \ -L${top_builddir}/src/libcode/vx_data2d_grib2 \ - -L${top_builddir}/src/libcode/vx_data2d_nccf \ -L${top_builddir}/src/libcode/vx_data2d_nc_met \ - -L${top_builddir}/src/libcode/vx_data2d_nc_pinterp \ + -L${top_builddir}/src/libcode/vx_data2d_nc_wrf \ + -L${top_builddir}/src/libcode/vx_data2d_nc_cf \ -L${top_builddir}/src/libcode/vx_data2d_python \ -L${top_builddir}/src/libcode/vx_data2d_ugrid \ -L${top_builddir}/src/libcode/vx_python3_utils \ diff --git a/configure b/configure index b7d9098c4f..888d197d7d 100755 --- a/configure +++ b/configure @@ -10133,11 +10133,12 @@ fi # Create configured files -ac_config_files="$ac_config_files Makefile scripts/Rscripts/Makefile scripts/Rscripts/include/Makefile scripts/python/Makefile scripts/python/examples/Makefile scripts/python/met/Makefile scripts/python/pyembed/Makefile scripts/python/utility/Makefile scripts/python/tc_diag/Makefile scripts/python/tc_diag/atcf_tools/Makefile scripts/python/tc_diag/config/Makefile scripts/python/tc_diag/diag_lib/Makefile scripts/python/tc_diag/tc_diag_driver/Makefile data/Makefile data/climo/Makefile data/climo/seeps/Makefile data/colortables/Makefile data/colortables/NCL_colortables/Makefile data/config/Makefile data/map/Makefile data/map/admin_by_country/Makefile data/poly/Makefile data/poly/HMT_masks/Makefile data/poly/NCEP_masks/Makefile data/ps/Makefile data/table_files/Makefile data/tc_data/Makefile src/Makefile src/basic/Makefile src/basic/enum_to_string/Makefile src/basic/vx_cal/Makefile src/basic/vx_config/Makefile src/basic/vx_log/Makefile src/basic/vx_math/Makefile src/basic/vx_util/Makefile src/basic/vx_util_math/Makefile src/libcode/Makefile src/libcode/vx_afm/Makefile src/libcode/vx_analysis_util/Makefile src/libcode/vx_color/Makefile src/libcode/vx_data2d/Makefile src/libcode/vx_data2d_factory/Makefile src/libcode/vx_data2d_grib/Makefile src/libcode/vx_data2d_grib2/Makefile src/libcode/vx_data2d_nc_met/Makefile src/libcode/vx_data2d_nc_pinterp/Makefile src/libcode/vx_data2d_nccf/Makefile src/libcode/vx_data2d_ugrid/Makefile src/libcode/vx_geodesy/Makefile src/libcode/vx_gis/Makefile src/libcode/vx_gnomon/Makefile src/libcode/vx_grid/Makefile src/libcode/vx_gsl_prob/Makefile src/libcode/vx_nav/Makefile src/libcode/vx_solar/Makefile src/libcode/vx_nc_obs/Makefile src/libcode/vx_nc_util/Makefile src/libcode/vx_pb_util/Makefile src/libcode/vx_plot_util/Makefile src/libcode/vx_ps/Makefile src/libcode/vx_pxm/Makefile src/libcode/vx_render/Makefile src/libcode/vx_shapedata/Makefile src/libcode/vx_stat_out/Makefile src/libcode/vx_statistics/Makefile src/libcode/vx_time_series/Makefile src/libcode/vx_physics/Makefile src/libcode/vx_series_data/Makefile src/libcode/vx_regrid/Makefile src/libcode/vx_tc_util/Makefile src/libcode/vx_summary/Makefile src/libcode/vx_python3_utils/Makefile src/libcode/vx_data2d_python/Makefile src/libcode/vx_bool_calc/Makefile src/libcode/vx_pointdata_python/Makefile src/libcode/vx_seeps/Makefile src/tools/Makefile src/tools/core/Makefile src/tools/core/ensemble_stat/Makefile src/tools/core/grid_stat/Makefile src/tools/core/mode/Makefile src/tools/core/mode_analysis/Makefile src/tools/core/pcp_combine/Makefile src/tools/core/point_stat/Makefile src/tools/core/series_analysis/Makefile src/tools/core/stat_analysis/Makefile src/tools/core/wavelet_stat/Makefile src/tools/other/Makefile src/tools/other/ascii2nc/Makefile src/tools/other/lidar2nc/Makefile src/tools/other/gen_ens_prod/Makefile src/tools/other/gen_vx_mask/Makefile src/tools/other/gis_utils/Makefile src/tools/other/ioda2nc/Makefile src/tools/other/madis2nc/Makefile src/tools/other/mode_graphics/Makefile src/tools/other/modis_regrid/Makefile src/tools/other/pb2nc/Makefile src/tools/other/plot_data_plane/Makefile src/tools/other/plot_point_obs/Makefile src/tools/other/wwmca_tool/Makefile src/tools/other/gsi_tools/Makefile src/tools/other/regrid_data_plane/Makefile src/tools/other/point2grid/Makefile src/tools/other/shift_data_plane/Makefile src/tools/other/mode_time_domain/Makefile src/tools/other/grid_diag/Makefile src/tools/tc_utils/Makefile src/tools/tc_utils/tc_dland/Makefile src/tools/tc_utils/tc_pairs/Makefile src/tools/tc_utils/tc_stat/Makefile src/tools/tc_utils/tc_gen/Makefile src/tools/tc_utils/rmw_analysis/Makefile src/tools/tc_utils/tc_rmw/Makefile src/tools/tc_utils/tc_diag/Makefile" +ac_config_files="$ac_config_files Makefile scripts/Rscripts/Makefile scripts/Rscripts/include/Makefile scripts/python/Makefile scripts/python/examples/Makefile scripts/python/met/Makefile scripts/python/pyembed/Makefile scripts/python/utility/Makefile scripts/python/tc_diag/Makefile scripts/python/tc_diag/atcf_tools/Makefile scripts/python/tc_diag/config/Makefile scripts/python/tc_diag/diag_lib/Makefile scripts/python/tc_diag/tc_diag_driver/Makefile data/Makefile data/climo/Makefile data/climo/seeps/Makefile data/colortables/Makefile data/colortables/NCL_colortables/Makefile data/config/Makefile data/map/Makefile data/map/admin_by_country/Makefile data/poly/Makefile data/poly/HMT_masks/Makefile data/poly/NCEP_masks/Makefile data/ps/Makefile data/table_files/Makefile data/tc_data/Makefile src/Makefile src/basic/Makefile src/basic/enum_to_string/Makefile src/basic/vx_cal/Makefile src/basic/vx_config/Makefile src/basic/vx_log/Makefile src/basic/vx_math/Makefile src/basic/vx_util/Makefile src/basic/vx_util_math/Makefile src/libcode/Makefile src/libcode/vx_afm/Makefile src/libcode/vx_analysis_util/Makefile src/libcode/vx_color/Makefile src/libcode/vx_data2d/Makefile src/libcode/vx_data2d_factory/Makefile src/libcode/vx_data2d_grib/Makefile src/libcode/vx_data2d_grib2/Makefile src/libcode/vx_data2d_nc_met/Makefile src/libcode/vx_data2d_nc_wrf/Makefile src/libcode/vx_data2d_nc_cf/Makefile src/libcode/vx_data2d_ugrid/Makefile src/libcode/vx_geodesy/Makefile src/libcode/vx_gis/Makefile src/libcode/vx_gnomon/Makefile src/libcode/vx_grid/Makefile src/libcode/vx_gsl_prob/Makefile src/libcode/vx_nav/Makefile src/libcode/vx_solar/Makefile src/libcode/vx_nc_obs/Makefile src/libcode/vx_nc_util/Makefile src/libcode/vx_pb_util/Makefile src/libcode/vx_plot_util/Makefile src/libcode/vx_ps/Makefile src/libcode/vx_pxm/Makefile src/libcode/vx_render/Makefile src/libcode/vx_shapedata/Makefile src/libcode/vx_stat_out/Makefile src/libcode/vx_statistics/Makefile src/libcode/vx_time_series/Makefile src/libcode/vx_physics/Makefile src/libcode/vx_series_data/Makefile src/libcode/vx_regrid/Makefile src/libcode/vx_tc_util/Makefile src/libcode/vx_summary/Makefile src/libcode/vx_python3_utils/Makefile src/libcode/vx_data2d_python/Makefile src/libcode/vx_bool_calc/Makefile src/libcode/vx_pointdata_python/Makefile src/libcode/vx_seeps/Makefile src/tools/Makefile src/tools/core/Makefile src/tools/core/ensemble_stat/Makefile src/tools/core/grid_stat/Makefile src/tools/core/mode/Makefile src/tools/core/mode_analysis/Makefile src/tools/core/pcp_combine/Makefile src/tools/core/point_stat/Makefile src/tools/core/series_analysis/Makefile src/tools/core/stat_analysis/Makefile src/tools/core/wavelet_stat/Makefile src/tools/other/Makefile src/tools/other/ascii2nc/Makefile src/tools/other/lidar2nc/Makefile src/tools/other/gen_ens_prod/Makefile src/tools/other/gen_vx_mask/Makefile src/tools/other/gis_utils/Makefile src/tools/other/ioda2nc/Makefile src/tools/other/madis2nc/Makefile src/tools/other/mode_graphics/Makefile src/tools/other/modis_regrid/Makefile src/tools/other/pb2nc/Makefile src/tools/other/plot_data_plane/Makefile src/tools/other/plot_point_obs/Makefile src/tools/other/wwmca_tool/Makefile src/tools/other/gsi_tools/Makefile src/tools/other/regrid_data_plane/Makefile src/tools/other/point2grid/Makefile src/tools/other/shift_data_plane/Makefile src/tools/other/mode_time_domain/Makefile src/tools/other/grid_diag/Makefile src/tools/tc_utils/Makefile src/tools/tc_utils/tc_dland/Makefile src/tools/tc_utils/tc_pairs/Makefile src/tools/tc_utils/tc_stat/Makefile src/tools/tc_utils/tc_gen/Makefile src/tools/tc_utils/rmw_analysis/Makefile src/tools/tc_utils/tc_rmw/Makefile src/tools/tc_utils/tc_diag/Makefile" if test -n "$MET_DEVELOPMENT"; then - ac_config_files="$ac_config_files src/tools/dev_utils/Makefile src/tools/dev_utils/shapefiles/Makefile internal/test_util/Makefile internal/test_util/basic/Makefile internal/test_util/basic/vx_config/Makefile internal/test_util/basic/vx_log/Makefile internal/test_util/basic/vx_util/Makefile internal/test_util/libcode/Makefile internal/test_util/libcode/vx_data2d/Makefile internal/test_util/libcode/vx_data2d_factory/Makefile internal/test_util/libcode/vx_data2d_grib/Makefile internal/test_util/libcode/vx_data2d_nc_met/Makefile internal/test_util/libcode/vx_data2d_nccf/Makefile internal/test_util/libcode/vx_geodesy/Makefile internal/test_util/libcode/vx_grid/Makefile internal/test_util/libcode/vx_plot_util/Makefile internal/test_util/libcode/vx_ps/Makefile internal/test_util/libcode/vx_tc_util/Makefile internal/test_util/libcode/vx_nc_util/Makefile internal/test_util/libcode/vx_python3_utils/Makefile internal/test_util/libcode/vx_physics/Makefile internal/test_util/libcode/vx_series_data/Makefile internal/test_util/libcode/vx_solar/Makefile internal/test_util/tools/Makefile internal/test_util/tools/other/Makefile internal/test_util/tools/other/mode_time_domain/Makefile" + ac_config_files="$ac_config_files src/tools/dev_utils/Makefile src/tools/dev_utils/shapefiles/Makefile internal/test_util/Makefile internal/test_util/basic/Makefile internal/test_util/basic/vx_config/Makefile internal/test_util/basic/vx_log/Makefile internal/test_util/basic/vx_util/Makefile internal/test_util/libcode/Makefile internal/test_util/libcode/vx_data2d/Makefile internal/test_util/libcode/vx_data2d_factory/Makefile internal/test_util/libcode/vx_data2d_grib/Makefile internal/test_util/libcode/vx_data2d_nc_met/Makefile internal/test_util/libcode/vx_data2d_nc_cf/Makefile internal/test_util/libcode/vx_geodesy/Makefile internal/test_util/libcode/vx_grid/Makefile internal/test_util/libcode/vx_plot_util/Makefile internal/test_util/libcode/vx_ps/Makefile internal/test_util/libcode/vx_tc_util/Makefile internal/test_util/libcode/vx_nc_util/Makefile internal/test_util/libcode/vx_python3_utils/Makefile internal/test_util/libcode/vx_physics/Makefile internal/test_util/libcode/vx_series_data/Makefile internal/test_util/libcode/vx_solar/Makefile internal/test_util/tools/Makefile internal/test_util/tools/other/Makefile internal/test_util/tools/other/mode_time_domain/Makefile" + fi @@ -11065,8 +11066,8 @@ do "src/libcode/vx_data2d_grib/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_grib/Makefile" ;; "src/libcode/vx_data2d_grib2/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_grib2/Makefile" ;; "src/libcode/vx_data2d_nc_met/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_nc_met/Makefile" ;; - "src/libcode/vx_data2d_nc_pinterp/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_nc_pinterp/Makefile" ;; - "src/libcode/vx_data2d_nccf/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_nccf/Makefile" ;; + "src/libcode/vx_data2d_nc_wrf/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_nc_wrf/Makefile" ;; + "src/libcode/vx_data2d_nc_cf/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_nc_cf/Makefile" ;; "src/libcode/vx_data2d_ugrid/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_data2d_ugrid/Makefile" ;; "src/libcode/vx_geodesy/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_geodesy/Makefile" ;; "src/libcode/vx_gis/Makefile") CONFIG_FILES="$CONFIG_FILES src/libcode/vx_gis/Makefile" ;; @@ -11147,7 +11148,7 @@ do "internal/test_util/libcode/vx_data2d_factory/Makefile") CONFIG_FILES="$CONFIG_FILES internal/test_util/libcode/vx_data2d_factory/Makefile" ;; "internal/test_util/libcode/vx_data2d_grib/Makefile") CONFIG_FILES="$CONFIG_FILES internal/test_util/libcode/vx_data2d_grib/Makefile" ;; "internal/test_util/libcode/vx_data2d_nc_met/Makefile") CONFIG_FILES="$CONFIG_FILES internal/test_util/libcode/vx_data2d_nc_met/Makefile" ;; - "internal/test_util/libcode/vx_data2d_nccf/Makefile") CONFIG_FILES="$CONFIG_FILES internal/test_util/libcode/vx_data2d_nccf/Makefile" ;; + "internal/test_util/libcode/vx_data2d_nc_cf/Makefile") CONFIG_FILES="$CONFIG_FILES internal/test_util/libcode/vx_data2d_nc_cf/Makefile" ;; "internal/test_util/libcode/vx_geodesy/Makefile") CONFIG_FILES="$CONFIG_FILES internal/test_util/libcode/vx_geodesy/Makefile" ;; "internal/test_util/libcode/vx_grid/Makefile") CONFIG_FILES="$CONFIG_FILES internal/test_util/libcode/vx_grid/Makefile" ;; "internal/test_util/libcode/vx_plot_util/Makefile") CONFIG_FILES="$CONFIG_FILES internal/test_util/libcode/vx_plot_util/Makefile" ;; diff --git a/configure.ac b/configure.ac index f7b2a73453..2f8159d58c 100644 --- a/configure.ac +++ b/configure.ac @@ -1321,8 +1321,8 @@ AC_CONFIG_FILES([Makefile src/libcode/vx_data2d_grib/Makefile src/libcode/vx_data2d_grib2/Makefile src/libcode/vx_data2d_nc_met/Makefile - src/libcode/vx_data2d_nc_pinterp/Makefile - src/libcode/vx_data2d_nccf/Makefile + src/libcode/vx_data2d_nc_wrf/Makefile + src/libcode/vx_data2d_nc_cf/Makefile src/libcode/vx_data2d_ugrid/Makefile src/libcode/vx_geodesy/Makefile src/libcode/vx_gis/Makefile @@ -1405,7 +1405,7 @@ if test -n "$MET_DEVELOPMENT"; then internal/test_util/libcode/vx_data2d_factory/Makefile internal/test_util/libcode/vx_data2d_grib/Makefile internal/test_util/libcode/vx_data2d_nc_met/Makefile - internal/test_util/libcode/vx_data2d_nccf/Makefile + internal/test_util/libcode/vx_data2d_nc_cf/Makefile internal/test_util/libcode/vx_geodesy/Makefile internal/test_util/libcode/vx_grid/Makefile internal/test_util/libcode/vx_plot_util/Makefile diff --git a/data/config/ConfigConstants b/data/config/ConfigConstants index b9cf21a67a..16954f5467 100644 --- a/data/config/ConfigConstants +++ b/data/config/ConfigConstants @@ -60,11 +60,12 @@ MB_to_PA(p) = HPA_to_PA(p); GRIB1 = 1; GRIB2 = 2; NETCDF_MET = 3; -NETCDF_PINT = 4; -NETCDF_NCCF = 5; -PYTHON_NUMPY = 6; -PYTHON_XARRAY = 7; -NETCDF_UGRID = 8; +NETCDF_WRF = 4; +NETCDF_PINT = 5; +NETCDF_NCCF = 6; +PYTHON_NUMPY = 7; +PYTHON_XARRAY = 8; +NETCDF_UGRID = 9; // Set Logic NONE = 1; diff --git a/docs/Users_Guide/appendixA.rst b/docs/Users_Guide/appendixA.rst index 7d6df54511..83b10c2c32 100644 --- a/docs/Users_Guide/appendixA.rst +++ b/docs/Users_Guide/appendixA.rst @@ -1684,7 +1684,7 @@ Q. Why is the grid upside down? but the data is packed upside down. Try using the "file_type" entry. The "file_type" entry specifies the - input file type (e.g. GRIB1, GRIB2, NETCDF_MET, NETCDF_PINT, NETCDF_NCCF) + input file type (e.g. GRIB1, GRIB2, NETCDF_MET, NETCDF_WRF, NETCDF_PINT, NETCDF_NCCF) rather than letting the code determine it itself. For valid file_type values, see "File types" in the *data/config/ConfigConstants* file. This entry should be defined within the "fcst" or "obs" dictionaries. diff --git a/docs/Users_Guide/config_options.rst b/docs/Users_Guide/config_options.rst index 9ff10893df..f2dc2803ba 100644 --- a/docs/Users_Guide/config_options.rst +++ b/docs/Users_Guide/config_options.rst @@ -950,6 +950,7 @@ to be verified. This dictionary may include the following entries: file_type = GRIB1; GRIB version 1 file_type = GRIB2; GRIB version 2 file_type = NETCDF_MET; NetCDF created by another MET tool + file_type = NETCDF_WRF; NetCDF WRF output. file_type = NETCDF_PINT; NetCDF created by running the p_interp or wrf_interp utility on WRF output. May be used to read unstaggered raw WRF diff --git a/internal/test_unit/config/GridStatConfig_WRF_pres b/internal/test_unit/config/GridStatConfig_WRF_pres new file mode 100644 index 0000000000..10d46e8f94 --- /dev/null +++ b/internal/test_unit/config/GridStatConfig_WRF_pres @@ -0,0 +1,288 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Grid-Stat configuration file. +// +// For additional information, please see the MET User's Guide. +// +//////////////////////////////////////////////////////////////////////////////// + +// +// Output model name to be written +// +model = "WRF"; + +// +// Output description to be written +// May be set separately in each "obs.field" entry +// +desc = "NA"; + +// +// Output observation type to be written +// +obtype = "WRF"; + +//////////////////////////////////////////////////////////////////////////////// + +// +// Verification grid +// May be set separately in each "field" entry +// +regrid = { + to_grid = NONE; + method = NEAREST; + width = 1; + vld_thresh = 0.5; + shape = SQUARE; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// May be set separately in each "field" entry +// +censor_thresh = []; +censor_val = []; +mpr_column = []; +mpr_thresh = []; +cat_thresh = []; +cnt_thresh = [ NA ]; +cnt_logic = UNION; +wind_thresh = [ NA ]; +wind_logic = UNION; +eclv_points = 0.05; +nc_pairs_var_name = ""; +nc_pairs_var_suffix = ""; +hss_ec_value = NA; +rank_corr_flag = FALSE; + +// +// Forecast and observation fields to be verified +// +fcst = { + + field = [ + { + name = "U_PL"; + level = [ "(0,2,*,*)" ]; + cat_thresh = [ >=0.0, >=2.5 ]; + } + ]; + +} +obs = { + + field = [ + { + name = "U_PL"; + level = [ "(0,@50000,*,*)" ]; + cat_thresh = [ >=0.0, >=2.5 ]; + } + ]; + +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Climatology data +// +climo_mean = { + + file_name = []; + field = []; + + regrid = { + method = NEAREST; + width = 1; + vld_thresh = 0.5; + shape = SQUARE; + } + + time_interp_method = DW_MEAN; + day_interval = 31; + hour_interval = 6; +} + +climo_stdev = climo_mean; +climo_stdev = { + file_name = []; +} + +// +// May be set separately in each "obs.field" entry +// +climo_cdf = { + cdf_bins = 1; + center_bins = FALSE; + write_bins = TRUE; + direct_prob = FALSE; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Verification masking regions +// May be set separately in each "obs.field" entry +// +mask = { + grid = [ "FULL" ]; + poly = []; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Confidence interval settings +// May be set separately in each "obs.field" entry +// +ci_alpha = [ 0.05 ]; + +boot = { + interval = PCTILE; + rep_prop = 1.0; + n_rep = 0; + rng = "mt19937"; + seed = ""; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Data smoothing methods +// May be set separately in each "obs.field" entry +// +interp = { + field = BOTH; + vld_thresh = 1.0; + shape = SQUARE; + + type = [ + { + method = NEAREST; + width = 1; + } + ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Neighborhood methods +// May be set separately in each "obs.field" entry +// +nbrhd = { + field = BOTH; + vld_thresh = 1.0; + shape = SQUARE; + width = [ 1 ]; + cov_thresh = [ >=0.5 ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Fourier decomposition +// May be set separately in each "obs.field" entry +// +fourier = { + wave_1d_beg = []; + wave_1d_end = []; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Gradient statistics +// May be set separately in each "obs.field" entry +// +gradient = { + dx = [ 1 ]; + dy = [ 1 ]; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Distance Map statistics +// May be set separately in each "obs.field" entry +// +distance_map = { + baddeley_p = 2; + baddeley_max_dist = NA; + fom_alpha = 0.1; + zhu_weight = 0.5; + beta_value(n) = n * n / 2.0; +} + +//////////////////////////////////////////////////////////////////////////////// + +// +// Threshold for SEEPS p1 (Probability of being dry) +// +seeps_p1_thresh = >=0.1&&<=0.85; + +//////////////////////////////////////////////////////////////////////////////// + +// +// Statistical output types +// May be set separately in each "obs.field" entry +// +output_flag = { + fho = STAT; + ctc = STAT; + cts = STAT; + mctc = STAT; + mcts = STAT; + cnt = STAT; + sl1l2 = STAT; + sal1l2 = NONE; + vl1l2 = NONE; + val1l2 = NONE; + vcnt = NONE; + pct = NONE; + pstd = NONE; + pjc = NONE; + prc = NONE; + eclv = NONE; + nbrctc = NONE; + nbrcts = NONE; + nbrcnt = NONE; + grad = NONE; + dmap = NONE; + seeps = NONE; +} + +// +// NetCDF matched pairs output file +// May be set separately in each "obs.field" entry +// +nc_pairs_flag = { + latlon = TRUE; + raw = TRUE; + diff = TRUE; + climo = TRUE; + climo_cdp = FALSE; + seeps = FALSE; + weight = FALSE; + nbrhd = FALSE; + fourier = FALSE; + gradient = FALSE; + distance_map = FALSE; + apply_mask = TRUE; +} + +//////////////////////////////////////////////////////////////////////////////// + +ugrid_dataset = ""; +ugrid_max_distance_km = 30; +ugrid_coordinates_file = ""; + +//////////////////////////////////////////////////////////////////////////////// + +grid_weight_flag = NONE; +tmp_dir = "/tmp"; +output_prefix = "${OUTPUT_PREFIX}"; +version = "V12.0.0"; + +//////////////////////////////////////////////////////////////////////////////// diff --git a/internal/test_unit/xml/unit_grid_stat.xml b/internal/test_unit/xml/unit_grid_stat.xml index 204e934230..f70f53ad22 100644 --- a/internal/test_unit/xml/unit_grid_stat.xml +++ b/internal/test_unit/xml/unit_grid_stat.xml @@ -311,4 +311,21 @@ + + &MET_BIN;/grid_stat + + OUTPUT_PREFIX WRF_pres + + \ + &DATA_DIR_MODEL;/wrf/wrfout_solarwind_d02_2019-08-31_12:00:00 \ + &DATA_DIR_MODEL;/wrf/wrfout_solarwind_d02_2019-08-31_12:00:00 \ + &CONFIG_DIR;/GridStatConfig_WRF_pres \ + -outdir &OUTPUT_DIR;/grid_stat -v 1 + + + &OUTPUT_DIR;/grid_stat/grid_stat_WRF_pres_120000L_20190831_120000V.stat + &OUTPUT_DIR;/grid_stat/grid_stat_WRF_pres_120000L_20190831_120000V_pairs.nc + + + diff --git a/internal/test_unit/xml/unit_plot_data_plane.xml b/internal/test_unit/xml/unit_plot_data_plane.xml index 86709b0621..2337c7a705 100644 --- a/internal/test_unit/xml/unit_plot_data_plane.xml +++ b/internal/test_unit/xml/unit_plot_data_plane.xml @@ -581,4 +581,88 @@ + + &MET_BIN;/plot_data_plane + \ + &DATA_DIR_MODEL;/wrf/wrfout_solarwind_d02_2019-08-31_12:00:00 \ + &OUTPUT_DIR;/plot_data_plane/wrf_west_east_stag.ps \ + 'name="U"; level="(0,0,*,*)";' \ + -title "X-wind component (staggered)" \ + -v 1 + + + &OUTPUT_DIR;/plot_data_plane/wrf_west_east_stag.ps + + + + + &MET_BIN;/plot_data_plane + \ + &DATA_DIR_MODEL;/wrf/wrfout_solarwind_d02_2019-08-31_12:00:00 \ + &OUTPUT_DIR;/plot_data_plane/wrf_south_north_stag.ps \ + 'name="V"; level="(0,0,*,*)";' \ + -title "Y-wind component (staggered)" \ + -v 1 + + + &OUTPUT_DIR;/plot_data_plane/wrf_south_north_stag.ps + + + + + &MET_BIN;/plot_data_plane + \ + &DATA_DIR_MODEL;/wrf/wrfout_solarwind_d02_2019-08-31_12:00:00 \ + &OUTPUT_DIR;/plot_data_plane/wrf_num_press_levels_stag.ps \ + 'name="RH_PL"; level="(0,@50000,*,*)";' \ + -title "Relative Humidity P50000 (num_press_levels_stag)" \ + -v 1 + + + &OUTPUT_DIR;/plot_data_plane/wrf_num_press_levels_stag.ps + + + + + &MET_BIN;/plot_data_plane + \ + &DATA_DIR_MODEL;/wrf/wrfout_solarwind_d02_2019-08-31_12:00:00 \ + &OUTPUT_DIR;/plot_data_plane/wrf_num_z_levels_stag.ps \ + 'name="RH_ZL"; level="(0,0,*,*)";' \ + -title "Relative Humidity Z-level (num_z_levels_stag)" \ + -v 1 + + + &OUTPUT_DIR;/plot_data_plane/wrf_num_z_levels_stag.ps + + + + + &MET_BIN;/plot_data_plane + \ + &DATA_DIR_MODEL;/wrf/wrfout_solarwind_d02_2019-08-31_12:00:00 \ + &OUTPUT_DIR;/plot_data_plane/wrf_bottom_top.ps \ + 'name="T"; level="(0,0,*,*)";' \ + -title "perturbation potential temperature theta-t0 (bottom_top)" \ + -v 1 + + + &OUTPUT_DIR;/plot_data_plane/wrf_bottom_top.ps + + + + + &MET_BIN;/plot_data_plane + \ + &DATA_DIR_MODEL;/wrf/wrfout_solarwind_d02_2019-08-31_12:00:00 \ + &OUTPUT_DIR;/plot_data_plane/wrf_bottom_top_stag.ps \ + 'name="PH"; level="(0,22,*,*)";' \ + -title "perturbation geopotential (bottom_top_stag)" \ + -v 1 + + + &OUTPUT_DIR;/plot_data_plane/wrf_bottom_top_stag.ps + + + diff --git a/internal/test_util/basic/vx_util/Makefile.am b/internal/test_util/basic/vx_util/Makefile.am index 8717867cda..c39a98ace1 100644 --- a/internal/test_util/basic/vx_util/Makefile.am +++ b/internal/test_util/basic/vx_util/Makefile.am @@ -93,9 +93,9 @@ test_ascii_header_LDADD = -lvx_stat_out \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nc_pinterp \ + -lvx_data2d_nc_wrf \ $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ diff --git a/internal/test_util/basic/vx_util/Makefile.in b/internal/test_util/basic/vx_util/Makefile.in index d904c45e7a..ebbef0522c 100644 --- a/internal/test_util/basic/vx_util/Makefile.in +++ b/internal/test_util/basic/vx_util/Makefile.in @@ -401,9 +401,9 @@ test_ascii_header_LDADD = -lvx_stat_out \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nc_pinterp \ + -lvx_data2d_nc_wrf \ $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ diff --git a/internal/test_util/libcode/Makefile.am b/internal/test_util/libcode/Makefile.am index e05a0595fc..38c5944d79 100644 --- a/internal/test_util/libcode/Makefile.am +++ b/internal/test_util/libcode/Makefile.am @@ -19,7 +19,7 @@ SUBDIRS = vx_data2d \ vx_data2d_grib \ vx_data2d_nc_met \ - vx_data2d_nccf \ + vx_data2d_nc_cf \ vx_data2d_factory \ vx_geodesy \ vx_grid \ diff --git a/internal/test_util/libcode/Makefile.in b/internal/test_util/libcode/Makefile.in index 2f708a52b2..0f56d40950 100644 --- a/internal/test_util/libcode/Makefile.in +++ b/internal/test_util/libcode/Makefile.in @@ -339,7 +339,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -SUBDIRS = vx_data2d vx_data2d_grib vx_data2d_nc_met vx_data2d_nccf \ +SUBDIRS = vx_data2d vx_data2d_grib vx_data2d_nc_met vx_data2d_nc_cf \ vx_data2d_factory vx_geodesy vx_grid vx_ps vx_solar \ vx_plot_util vx_tc_util vx_nc_util vx_physics vx_series_data \ $(am__append_1) diff --git a/internal/test_util/libcode/vx_data2d_factory/Makefile.am b/internal/test_util/libcode/vx_data2d_factory/Makefile.am index 77bd62fff1..ad1ad279e4 100644 --- a/internal/test_util/libcode/vx_data2d_factory/Makefile.am +++ b/internal/test_util/libcode/vx_data2d_factory/Makefile.am @@ -34,8 +34,8 @@ test_factory_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/internal/test_util/libcode/vx_data2d_factory/Makefile.in b/internal/test_util/libcode/vx_data2d_factory/Makefile.in index 7964d3fd22..1d93387de5 100644 --- a/internal/test_util/libcode/vx_data2d_factory/Makefile.in +++ b/internal/test_util/libcode/vx_data2d_factory/Makefile.in @@ -355,8 +355,8 @@ test_factory_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/internal/test_util/libcode/vx_data2d_nccf/.gitignore b/internal/test_util/libcode/vx_data2d_nc_cf/.gitignore similarity index 100% rename from internal/test_util/libcode/vx_data2d_nccf/.gitignore rename to internal/test_util/libcode/vx_data2d_nc_cf/.gitignore diff --git a/internal/test_util/libcode/vx_data2d_nccf/Makefile.am b/internal/test_util/libcode/vx_data2d_nc_cf/Makefile.am similarity index 93% rename from internal/test_util/libcode/vx_data2d_nccf/Makefile.am rename to internal/test_util/libcode/vx_data2d_nc_cf/Makefile.am index 1c9bbbe8e3..ac732919dc 100644 --- a/internal/test_util/libcode/vx_data2d_nccf/Makefile.am +++ b/internal/test_util/libcode/vx_data2d_nc_cf/Makefile.am @@ -15,7 +15,7 @@ noinst_PROGRAMS = test_read_nccf test_read_nccf_SOURCES = test_read_nccf.cc test_read_nccf_CPPFLAGS = ${MET_CPPFLAGS} test_read_nccf_LDFLAGS = -L. ${MET_LDFLAGS} -test_read_nccf_LDADD = -lvx_data2d_nccf \ +test_read_nccf_LDADD = -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ -lvx_nc_util \ -lvx_data2d \ diff --git a/internal/test_util/libcode/vx_data2d_nccf/Makefile.in b/internal/test_util/libcode/vx_data2d_nc_cf/Makefile.in similarity index 99% rename from internal/test_util/libcode/vx_data2d_nccf/Makefile.in rename to internal/test_util/libcode/vx_data2d_nc_cf/Makefile.in index 26689f2e99..52429cc106 100644 --- a/internal/test_util/libcode/vx_data2d_nccf/Makefile.in +++ b/internal/test_util/libcode/vx_data2d_nc_cf/Makefile.in @@ -89,7 +89,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = test_read_nccf$(EXEEXT) -subdir = internal/test_util/libcode/vx_data2d_nccf +subdir = internal/test_util/libcode/vx_data2d_nc_cf ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -329,7 +329,7 @@ MAINTAINERCLEANFILES = Makefile.in test_read_nccf_SOURCES = test_read_nccf.cc test_read_nccf_CPPFLAGS = ${MET_CPPFLAGS} test_read_nccf_LDFLAGS = -L. ${MET_LDFLAGS} -test_read_nccf_LDADD = -lvx_data2d_nccf \ +test_read_nccf_LDADD = -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ -lvx_nc_util \ -lvx_data2d \ @@ -359,9 +359,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign internal/test_util/libcode/vx_data2d_nccf/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign internal/test_util/libcode/vx_data2d_nc_cf/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign internal/test_util/libcode/vx_data2d_nccf/Makefile + $(AUTOMAKE) --foreign internal/test_util/libcode/vx_data2d_nc_cf/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ diff --git a/internal/test_util/libcode/vx_data2d_nccf/test_read_nccf.cc b/internal/test_util/libcode/vx_data2d_nc_cf/test_read_nccf.cc similarity index 98% rename from internal/test_util/libcode/vx_data2d_nccf/test_read_nccf.cc rename to internal/test_util/libcode/vx_data2d_nc_cf/test_read_nccf.cc index f5d2939b54..7b8b5aa660 100644 --- a/internal/test_util/libcode/vx_data2d_nccf/test_read_nccf.cc +++ b/internal/test_util/libcode/vx_data2d_nc_cf/test_read_nccf.cc @@ -19,7 +19,7 @@ using namespace std; #include "vx_log.h" #include "data_class.h" -#include "data2d_nccf.h" +#include "data2d_nc_cf.h" //////////////////////////////////////////////////////////////////////// diff --git a/internal/test_util/libcode/vx_nc_util/Makefile.am b/internal/test_util/libcode/vx_nc_util/Makefile.am index b691fbf392..9ccc5b3438 100644 --- a/internal/test_util/libcode/vx_nc_util/Makefile.am +++ b/internal/test_util/libcode/vx_nc_util/Makefile.am @@ -31,9 +31,9 @@ test_pressure_levels_LDADD = -lvx_stat_out \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nc_pinterp \ + -lvx_data2d_nc_wrf \ $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ diff --git a/internal/test_util/libcode/vx_nc_util/Makefile.in b/internal/test_util/libcode/vx_nc_util/Makefile.in index 826e385c3e..ad865d558f 100644 --- a/internal/test_util/libcode/vx_nc_util/Makefile.in +++ b/internal/test_util/libcode/vx_nc_util/Makefile.in @@ -346,9 +346,9 @@ test_pressure_levels_LDADD = -lvx_stat_out \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nc_pinterp \ + -lvx_data2d_nc_wrf \ $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ diff --git a/internal/test_util/libcode/vx_tc_util/Makefile.am b/internal/test_util/libcode/vx_tc_util/Makefile.am index 6c19dad86e..e24d253119 100644 --- a/internal/test_util/libcode/vx_tc_util/Makefile.am +++ b/internal/test_util/libcode/vx_tc_util/Makefile.am @@ -33,9 +33,9 @@ test_read_LDADD = -lvx_stat_out \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nc_pinterp \ + -lvx_data2d_nc_wrf \ $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ @@ -69,9 +69,9 @@ test_read_prob_LDADD = -lvx_stat_out \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nc_pinterp \ + -lvx_data2d_nc_wrf \ $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ @@ -105,9 +105,9 @@ test_read_rmw_LDADD = -lvx_stat_out \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nc_pinterp \ + -lvx_data2d_nc_wrf \ $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ diff --git a/internal/test_util/libcode/vx_tc_util/Makefile.in b/internal/test_util/libcode/vx_tc_util/Makefile.in index ed6e1a58d6..daf8dce673 100644 --- a/internal/test_util/libcode/vx_tc_util/Makefile.in +++ b/internal/test_util/libcode/vx_tc_util/Makefile.in @@ -364,9 +364,9 @@ test_read_LDADD = -lvx_stat_out \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nc_pinterp \ + -lvx_data2d_nc_wrf \ $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ @@ -400,9 +400,9 @@ test_read_prob_LDADD = -lvx_stat_out \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nc_pinterp \ + -lvx_data2d_nc_wrf \ $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ @@ -436,9 +436,9 @@ test_read_rmw_LDADD = -lvx_stat_out \ -lvx_statistics \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nc_pinterp \ + -lvx_data2d_nc_wrf \ $(PYTHON_MET_LIBS) $(PYTHON_DEP_LIBS) \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib $(GRIB2_MET_LIBS) $(GRIB2_DEP_LIBS) \ -lvx_data2d \ -lvx_nc_util \ diff --git a/internal/test_util/tools/other/mode_time_domain/Makefile.am b/internal/test_util/tools/other/mode_time_domain/Makefile.am index eb52695969..5bbe02612e 100644 --- a/internal/test_util/tools/other/mode_time_domain/Makefile.am +++ b/internal/test_util/tools/other/mode_time_domain/Makefile.am @@ -55,8 +55,8 @@ test_velocity_LDADD = \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/internal/test_util/tools/other/mode_time_domain/Makefile.in b/internal/test_util/tools/other/mode_time_domain/Makefile.in index 265f29603c..3e70894414 100644 --- a/internal/test_util/tools/other/mode_time_domain/Makefile.in +++ b/internal/test_util/tools/other/mode_time_domain/Makefile.in @@ -394,8 +394,8 @@ test_velocity_LDADD = \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/basic/vx_config/config_constants.h b/src/basic/vx_config/config_constants.h index 5794a86336..5985e0ba8e 100644 --- a/src/basic/vx_config/config_constants.h +++ b/src/basic/vx_config/config_constants.h @@ -1245,6 +1245,7 @@ static const char conf_key_cira_diag_flag[] = "cira_diag_flag"; static const char conf_val_grib1 [] = "GRIB1"; static const char conf_val_grib2 [] = "GRIB2"; static const char conf_val_netcdf_met [] = "NETCDF_MET"; +static const char conf_val_netcdf_wrf [] = "NETCDF_WRF"; static const char conf_val_netcdf_pint [] = "NETCDF_PINT"; static const char conf_val_netcdf_nccf [] = "NETCDF_NCCF"; static const char conf_val_netcdf_ugrid [] = "NETCDF_UGRID"; diff --git a/src/basic/vx_config/config_util.cc b/src/basic/vx_config/config_util.cc index 78bff4dadc..3d02ba2aed 100644 --- a/src/basic/vx_config/config_util.cc +++ b/src/basic/vx_config/config_util.cc @@ -24,7 +24,6 @@ using namespace std; /////////////////////////////////////////////////////////////////////////////// static const double default_vld_thresh = 1.0; -//static const char conf_key_prepbufr_map_bad[] = "obs_prefbufr_map"; // for backward compatibility /////////////////////////////////////////////////////////////////////////////// @@ -354,6 +353,7 @@ GrdFileType parse_conf_file_type(Dictionary *dict) { if(v == conf_const.lookup_int(conf_val_grib1)) t = FileType_Gb1; else if(v == conf_const.lookup_int(conf_val_grib2)) t = FileType_Gb2; else if(v == conf_const.lookup_int(conf_val_netcdf_met)) t = FileType_NcMet; + else if(v == conf_const.lookup_int(conf_val_netcdf_wrf)) t = FileType_NcWrf; else if(v == conf_const.lookup_int(conf_val_netcdf_pint)) t = FileType_NcPinterp; else if(v == conf_const.lookup_int(conf_val_netcdf_nccf)) t = FileType_NcCF; else if(v == conf_const.lookup_int(conf_val_netcdf_ugrid)) t = FileType_UGrid; diff --git a/src/basic/vx_config/data_file_type.h b/src/basic/vx_config/data_file_type.h index f9f6fa7c24..376685f7a6 100644 --- a/src/basic/vx_config/data_file_type.h +++ b/src/basic/vx_config/data_file_type.h @@ -29,13 +29,13 @@ enum GrdFileType FileType_Gb2, // GRIB version 2 FileType_NcMet, // NetCDF MET format FileType_General_Netcdf, // NetCDF + FileType_NcWrf, // NetCDF output directly from WRF-ARW FileType_NcPinterp, // NetCDF output of WRF-ARW pinterp tool FileType_NcCF, // NetCDF Climate-Forecast Convention FileType_HdfEos, // Hierarchical Data Format - Earth Observing System FileType_Bufr, // Bufr or PrepBufr format - - FileType_Python_Numpy, // python script using numpy array and attributes dictionary - FileType_Python_Xarray, // python script using xarray dataplane + FileType_Python_Numpy, // Python script using numpy array and attributes dictionary + FileType_Python_Xarray, // Python script using xarray dataplane FileType_UGrid, // Unstructured grid }; @@ -44,6 +44,20 @@ enum GrdFileType /////////////////////////////////////////////////////////////////////////////// +inline bool is_netcdf_grdfiletype(const GrdFileType _t) + +{ + +return ( (_t == FileType_NcMet) || (_t == FileType_General_Netcdf) || + (_t == FileType_NcWrf) || (_t == FileType_NcPinterp) || + (_t == FileType_NcCF) ); + +} + + +/////////////////////////////////////////////////////////////////////////////// + + inline bool is_python_grdfiletype(const GrdFileType _t) { diff --git a/src/basic/vx_config/grdfiletype_to_string.cc b/src/basic/vx_config/grdfiletype_to_string.cc index 0b802b97ab..e82450caf8 100644 --- a/src/basic/vx_config/grdfiletype_to_string.cc +++ b/src/basic/vx_config/grdfiletype_to_string.cc @@ -49,12 +49,13 @@ switch ( t ) { case FileType_NcMet: s = "FileType_NcMet"; break; case FileType_General_Netcdf: s = "FileType_General_Netcdf"; break; + case FileType_NcWrf: s = "FileType_NcWrf"; break; case FileType_NcPinterp: s = "FileType_NcPinterp"; break; case FileType_NcCF: s = "FileType_NcCF"; break; case FileType_HdfEos: s = "FileType_HdfEos"; break; case FileType_Bufr: s = "FileType_Bufr"; break; - case FileType_Python_Numpy: s = "FileType_Python_Numpy"; break; + case FileType_Python_Numpy: s = "FileType_Python_Numpy"; break; case FileType_Python_Xarray: s = "FileType_Python_Xarray"; break; case FileType_UGrid: s = "FileType_UGrid"; break; @@ -83,12 +84,13 @@ else if ( strcmp(text, "FileType_Gb2" ) == 0 ) { t = FileType_Gb2; else if ( strcmp(text, "FileType_NcMet" ) == 0 ) { t = FileType_NcMet; return ( true ); } else if ( strcmp(text, "FileType_General_Netcdf") == 0 ) { t = FileType_General_Netcdf; return ( true ); } +else if ( strcmp(text, "FileType_NcWrf" ) == 0 ) { t = FileType_NcWrf; return ( true ); } else if ( strcmp(text, "FileType_NcPinterp" ) == 0 ) { t = FileType_NcPinterp; return ( true ); } else if ( strcmp(text, "FileType_NcCF" ) == 0 ) { t = FileType_NcCF; return ( true ); } else if ( strcmp(text, "FileType_HdfEos" ) == 0 ) { t = FileType_HdfEos; return ( true ); } else if ( strcmp(text, "FileType_Bufr" ) == 0 ) { t = FileType_Bufr; return ( true ); } -else if ( strcmp(text, "FileType_Python_Numpy" ) == 0 ) { t = FileType_Python_Numpy; return ( true ); } +else if ( strcmp(text, "FileType_Python_Numpy" ) == 0 ) { t = FileType_Python_Numpy; return ( true ); } else if ( strcmp(text, "FileType_Python_Xarray" ) == 0 ) { t = FileType_Python_Xarray; return ( true ); } else if ( strcmp(text, "FileType_UGrid" ) == 0 ) { t = FileType_UGrid; return ( true ); } // diff --git a/src/basic/vx_util/data_plane.cc b/src/basic/vx_util/data_plane.cc index 52d2b72f9e..a6d702f0b6 100644 --- a/src/basic/vx_util/data_plane.cc +++ b/src/basic/vx_util/data_plane.cc @@ -298,7 +298,7 @@ void DataPlane::set_size(int nx, int ny, double v) { } // - // delete exisiting data, if necessary + // delete existing data, if necessary // Nx = nx; @@ -800,6 +800,91 @@ return; } +/////////////////////////////////////////////////////////////////////////////// + + +void DataPlane::destagger(bool x_stag, bool y_stag) +{ + // don't do anything if data is not staggered in x or y dimension + if (!x_stag && !y_stag) return; + + const char *method_name = "DataPlane::destagger(bool, bool) -> "; + + if ( Data.empty() ) { + + mlog << Error << "\n\n " << method_name << " data plane is empty!\n\n"; + exit ( 1 ); + + } + + int nx_new = Nx; + int ny_new = Ny; + int nxy_new; + int weight = 0; + int x, y, index_new; + double total; + vector new_data; + + // set nx and weight based on which dimensions are staggered + + if (x_stag) { + + mlog << Debug(3) << "De-staggering dataplane in X dimension\n"; + nx_new = Nx - 1; + weight += 2; + + } + + if (y_stag) { + + mlog << Debug(3) << "De-staggering dataplane in Y dimension\n"; + ny_new = Ny - 1; + weight += 2; + + } + + // allocate vector to store output data + + nxy_new = nx_new * ny_new; + new_data.resize(nxy_new); + + for (y=0; y < ny_new; y++) { + for (x=0; x < nx_new; x++) { + + index_new = y*nx_new + x; + + // always add data from current grid point + total = Data[two_to_one(x, y)]; + + // add data from neighboring grid points based on staggered dimension + + if (x_stag) { + total += Data[two_to_one(x+1,y)]; + } + if (y_stag) { + total += Data[two_to_one(x,y+1)]; + } + + // add diagonal point if staggered in both dimensions (may not occur) + + if (x_stag && y_stag) { + total += Data[two_to_one(x+1,y+1)]; + } + + // divide the sum of the values by the weight to compute the average + + new_data[index_new] = total / weight; + + } + } + + // replace data vector and size variables + + Data = new_data; + Nx = nx_new; + Ny = ny_new; + Nxy = nxy_new; +} /////////////////////////////////////////////////////////////////////////////// diff --git a/src/basic/vx_util/data_plane.h b/src/basic/vx_util/data_plane.h index 8f203096d8..683701ada3 100644 --- a/src/basic/vx_util/data_plane.h +++ b/src/basic/vx_util/data_plane.h @@ -133,7 +133,8 @@ class DataPlane { MaskPlane mask_plane() const; - void shift_right (int n); + void shift_right (int n); + void destagger (bool x_stag, bool y_stag); void put(const double, const int __x__, const int __y__); diff --git a/src/libcode/Makefile.am b/src/libcode/Makefile.am index e20f67551a..ff98f4df20 100644 --- a/src/libcode/Makefile.am +++ b/src/libcode/Makefile.am @@ -21,8 +21,8 @@ SUBDIRS = vx_grid \ vx_nc_util \ vx_data2d_grib \ vx_data2d_nc_met \ - vx_data2d_nccf \ - vx_data2d_nc_pinterp + vx_data2d_nc_wrf \ + vx_data2d_nc_cf if ENABLE_PYTHON SUBDIRS += vx_python3_utils diff --git a/src/libcode/Makefile.in b/src/libcode/Makefile.in index 4af407ca04..5a7e7eb12d 100644 --- a/src/libcode/Makefile.in +++ b/src/libcode/Makefile.in @@ -154,7 +154,7 @@ am__define_uniq_tagged_files = \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` DIST_SUBDIRS = vx_grid vx_data2d vx_nc_util vx_data2d_grib \ - vx_data2d_nc_met vx_data2d_nccf vx_data2d_nc_pinterp \ + vx_data2d_nc_met vx_data2d_nc_wrf vx_data2d_nc_cf \ vx_python3_utils vx_data2d_python vx_pointdata_python \ vx_data2d_grib2 vx_data2d_ugrid vx_data2d_factory vx_gsl_prob \ vx_gnomon vx_geodesy vx_gis vx_nav vx_pb_util vx_afm vx_color \ @@ -348,7 +348,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = vx_grid vx_data2d vx_nc_util vx_data2d_grib vx_data2d_nc_met \ - vx_data2d_nccf vx_data2d_nc_pinterp $(am__append_1) \ + vx_data2d_nc_wrf vx_data2d_nc_cf $(am__append_1) \ $(am__append_2) $(am__append_3) vx_data2d_factory vx_gsl_prob \ vx_gnomon vx_geodesy vx_gis vx_nav vx_pb_util vx_afm vx_color \ vx_pxm vx_render vx_ps vx_plot_util vx_shapedata vx_statistics \ diff --git a/src/libcode/vx_data2d/vx_data2d.h b/src/libcode/vx_data2d/vx_data2d.h index cffb18e27c..1212aaaf4d 100644 --- a/src/libcode/vx_data2d/vx_data2d.h +++ b/src/libcode/vx_data2d/vx_data2d.h @@ -29,6 +29,7 @@ #include "leveltype_to_string.h" #include "var_info.h" #include "table_lookup.h" +#include "mask_filters.h" //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_factory/data2d_factory.cc b/src/libcode/vx_data2d_factory/data2d_factory.cc index 729b43417e..5461892069 100644 --- a/src/libcode/vx_data2d_factory/data2d_factory.cc +++ b/src/libcode/vx_data2d_factory/data2d_factory.cc @@ -21,8 +21,8 @@ using namespace std; #include "grdfiletype_to_string.h" #include "data2d_grib.h" #include "data2d_nc_met.h" -#include "data2d_nc_pinterp.h" -#include "data2d_nccf.h" +#include "data2d_nc_wrf.h" +#include "data2d_nc_cf.h" #ifdef WITH_UGRID #include "data2d_ugrid.h" #endif @@ -81,8 +81,9 @@ MetPythonDataFile * p = nullptr; mtddf = new MetNcMetDataFile; break; + case FileType_NcWrf: case FileType_NcPinterp: - mtddf = new MetNcPinterpDataFile; + mtddf = new MetNcWrfDataFile; break; case FileType_NcCF: diff --git a/src/libcode/vx_data2d_factory/data2d_factory_utils.cc b/src/libcode/vx_data2d_factory/data2d_factory_utils.cc index 5c6d7e991e..6818aa4098 100644 --- a/src/libcode/vx_data2d_factory/data2d_factory_utils.cc +++ b/src/libcode/vx_data2d_factory/data2d_factory_utils.cc @@ -98,6 +98,7 @@ suffix_type = file_type_by_suffix(filename); if ( is_grib1_file (filename) ) data_type = FileType_Gb1; else if ( is_grib2_file (filename) ) data_type = FileType_Gb2; else if ( is_ncpinterp_file (filename) ) data_type = FileType_NcPinterp; +else if ( is_ncwrf_file (filename) ) data_type = FileType_NcWrf; else if ( is_nccf_file (filename) ) data_type = FileType_NcCF; else if ( is_ncmet_file (filename) ) data_type = FileType_NcMet; else if ( is_bufr_file (filename) ) data_type = FileType_Bufr; diff --git a/src/libcode/vx_data2d_factory/is_netcdf_file.cc b/src/libcode/vx_data2d_factory/is_netcdf_file.cc index f6f0856009..d844d76962 100644 --- a/src/libcode/vx_data2d_factory/is_netcdf_file.cc +++ b/src/libcode/vx_data2d_factory/is_netcdf_file.cc @@ -49,8 +49,9 @@ static const string ugrid_att_value = "UGRID"; static const string ncmet_att_version = "MET_version"; static const string ncmet_att_projection = "Projection"; -static const string ncpinterp_att_name = "TITLE"; +static const string nctitle_att_name = "TITLE"; static const char ncpinterp_att_value [] = "ON PRES LEVELS"; +static const char ncwrf_att_value [] = "OUTPUT FROM WRF"; static const string mesh_spec_att_name = "mesh_spec"; @@ -157,9 +158,40 @@ bool is_ncpinterp_file(const char * filename) if (!IS_INVALID_NC_P(nc_file)) { // Get the global attribute - if (get_global_att(nc_file, ncpinterp_att_name, att_val)) { + if (get_global_att(nc_file, nctitle_att_name, att_val)) { // Check the attribute value for the target string - status = (strstr(att_val.c_str(), ncpinterp_att_value)); + status = (strstr(att_val.c_str(), ncwrf_att_value) && + strstr(att_val.c_str(), ncpinterp_att_value)); + } + } + + delete nc_file; + + }catch(...) { + } + + return status; + +} + + +//////////////////////////////////////////////////////////////////////// + + +bool is_ncwrf_file(const char * filename) +{ + bool status = false; + try { + ConcatString att_val; + NcFile *nc_file = open_ncfile(filename); + + if (!IS_INVALID_NC_P(nc_file)) { + // Get the global attribute + if (get_global_att(nc_file, nctitle_att_name, att_val)) { + // Check the attribute value for the target string + // Distinguish between WRF and PInterp output + status = ( strstr(att_val.c_str(), ncwrf_att_value) && + !strstr(att_val.c_str(), ncpinterp_att_value)); } } diff --git a/src/libcode/vx_data2d_factory/is_netcdf_file.h b/src/libcode/vx_data2d_factory/is_netcdf_file.h index 170a5d4c0f..ddfdbbe1b8 100644 --- a/src/libcode/vx_data2d_factory/is_netcdf_file.h +++ b/src/libcode/vx_data2d_factory/is_netcdf_file.h @@ -29,6 +29,8 @@ extern bool is_ncmet_file(const char * filename); extern bool is_ncpinterp_file(const char * filename); +extern bool is_ncwrf_file(const char * filename); + extern bool is_ugrid_file(const char * filename); //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_factory/var_info_factory.cc b/src/libcode/vx_data2d_factory/var_info_factory.cc index 3ac92b1dd1..4a308c077b 100644 --- a/src/libcode/vx_data2d_factory/var_info_factory.cc +++ b/src/libcode/vx_data2d_factory/var_info_factory.cc @@ -26,9 +26,9 @@ using namespace std; #include "var_info_factory.h" #include "grdfiletype_to_string.h" #include "var_info_grib.h" -#include "var_info_nccf.h" +#include "var_info_nc_cf.h" #include "var_info_nc_met.h" -#include "var_info_nc_pinterp.h" +#include "var_info_nc_wrf.h" #include "var_info_ugrid.h" #ifdef WITH_PYTHON @@ -85,8 +85,9 @@ VarInfo * VarInfoFactory::new_var_info(GrdFileType type) vi = new VarInfoNcMet; break; + case FileType_NcWrf: case FileType_NcPinterp: - vi = new VarInfoNcPinterp; + vi = new VarInfoNcWrf; break; case FileType_Python_Numpy: diff --git a/src/libcode/vx_data2d_nc_pinterp/.gitignore b/src/libcode/vx_data2d_nc_cf/.gitignore similarity index 100% rename from src/libcode/vx_data2d_nc_pinterp/.gitignore rename to src/libcode/vx_data2d_nc_cf/.gitignore diff --git a/src/libcode/vx_data2d_nc_cf/Makefile.am b/src/libcode/vx_data2d_nc_cf/Makefile.am new file mode 100644 index 0000000000..e74394ea78 --- /dev/null +++ b/src/libcode/vx_data2d_nc_cf/Makefile.am @@ -0,0 +1,20 @@ +## @start 1 +## Makefile.am -- Process this file with automake to produce Makefile.in +## @end 1 + +MAINTAINERCLEANFILES = Makefile.in + +# Include the project definitions + +include ${top_srcdir}/Make-include + +# The library + +noinst_LIBRARIES = libvx_data2d_nc_cf.a +libvx_data2d_nc_cf_a_SOURCES = \ + nc_cf_file.cc nc_cf_file.h \ + var_info_nc_cf.cc var_info_nc_cf.h \ + data2d_nc_cf.cc data2d_nc_cf.h \ + vx_data2d_nc_cf.h +libvx_data2d_nc_cf_a_CPPFLAGS = ${MET_CPPFLAGS} + diff --git a/src/libcode/vx_data2d_nccf/Makefile.in b/src/libcode/vx_data2d_nc_cf/Makefile.in similarity index 74% rename from src/libcode/vx_data2d_nccf/Makefile.in rename to src/libcode/vx_data2d_nc_cf/Makefile.in index 881177942a..cd972c6936 100644 --- a/src/libcode/vx_data2d_nccf/Makefile.in +++ b/src/libcode/vx_data2d_nc_cf/Makefile.in @@ -88,7 +88,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -subdir = src/libcode/vx_data2d_nccf +subdir = src/libcode/vx_data2d_nc_cf ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -105,13 +105,13 @@ AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = -libvx_data2d_nccf_a_AR = $(AR) $(ARFLAGS) -libvx_data2d_nccf_a_LIBADD = -am_libvx_data2d_nccf_a_OBJECTS = \ - libvx_data2d_nccf_a-nccf_file.$(OBJEXT) \ - libvx_data2d_nccf_a-var_info_nccf.$(OBJEXT) \ - libvx_data2d_nccf_a-data2d_nccf.$(OBJEXT) -libvx_data2d_nccf_a_OBJECTS = $(am_libvx_data2d_nccf_a_OBJECTS) +libvx_data2d_nc_cf_a_AR = $(AR) $(ARFLAGS) +libvx_data2d_nc_cf_a_LIBADD = +am_libvx_data2d_nc_cf_a_OBJECTS = \ + libvx_data2d_nc_cf_a-nc_cf_file.$(OBJEXT) \ + libvx_data2d_nc_cf_a-var_info_nc_cf.$(OBJEXT) \ + libvx_data2d_nc_cf_a-data2d_nc_cf.$(OBJEXT) +libvx_data2d_nc_cf_a_OBJECTS = $(am_libvx_data2d_nc_cf_a_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -127,9 +127,10 @@ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/libvx_data2d_nccf_a-data2d_nccf.Po \ - ./$(DEPDIR)/libvx_data2d_nccf_a-nccf_file.Po \ - ./$(DEPDIR)/libvx_data2d_nccf_a-var_info_nccf.Po +am__depfiles_remade = \ + ./$(DEPDIR)/libvx_data2d_nc_cf_a-data2d_nc_cf.Po \ + ./$(DEPDIR)/libvx_data2d_nc_cf_a-nc_cf_file.Po \ + ./$(DEPDIR)/libvx_data2d_nc_cf_a-var_info_nc_cf.Po am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -160,8 +161,8 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(libvx_data2d_nccf_a_SOURCES) -DIST_SOURCES = $(libvx_data2d_nccf_a_SOURCES) +SOURCES = $(libvx_data2d_nc_cf_a_SOURCES) +DIST_SOURCES = $(libvx_data2d_nc_cf_a_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -347,14 +348,14 @@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in # The library -noinst_LIBRARIES = libvx_data2d_nccf.a -libvx_data2d_nccf_a_SOURCES = \ - nccf_file.cc nccf_file.h \ - var_info_nccf.cc var_info_nccf.h \ - data2d_nccf.cc data2d_nccf.h \ - vx_data2d_nccf.h - -libvx_data2d_nccf_a_CPPFLAGS = ${MET_CPPFLAGS} +noinst_LIBRARIES = libvx_data2d_nc_cf.a +libvx_data2d_nc_cf_a_SOURCES = \ + nc_cf_file.cc nc_cf_file.h \ + var_info_nc_cf.cc var_info_nc_cf.h \ + data2d_nc_cf.cc data2d_nc_cf.h \ + vx_data2d_nc_cf.h + +libvx_data2d_nc_cf_a_CPPFLAGS = ${MET_CPPFLAGS} all: all-am .SUFFIXES: @@ -368,9 +369,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libcode/vx_data2d_nccf/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libcode/vx_data2d_nc_cf/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/libcode/vx_data2d_nccf/Makefile + $(AUTOMAKE) --foreign src/libcode/vx_data2d_nc_cf/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -392,10 +393,10 @@ $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -libvx_data2d_nccf.a: $(libvx_data2d_nccf_a_OBJECTS) $(libvx_data2d_nccf_a_DEPENDENCIES) $(EXTRA_libvx_data2d_nccf_a_DEPENDENCIES) - $(AM_V_at)-rm -f libvx_data2d_nccf.a - $(AM_V_AR)$(libvx_data2d_nccf_a_AR) libvx_data2d_nccf.a $(libvx_data2d_nccf_a_OBJECTS) $(libvx_data2d_nccf_a_LIBADD) - $(AM_V_at)$(RANLIB) libvx_data2d_nccf.a +libvx_data2d_nc_cf.a: $(libvx_data2d_nc_cf_a_OBJECTS) $(libvx_data2d_nc_cf_a_DEPENDENCIES) $(EXTRA_libvx_data2d_nc_cf_a_DEPENDENCIES) + $(AM_V_at)-rm -f libvx_data2d_nc_cf.a + $(AM_V_AR)$(libvx_data2d_nc_cf_a_AR) libvx_data2d_nc_cf.a $(libvx_data2d_nc_cf_a_OBJECTS) $(libvx_data2d_nc_cf_a_LIBADD) + $(AM_V_at)$(RANLIB) libvx_data2d_nc_cf.a mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -403,9 +404,9 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nccf_a-data2d_nccf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nccf_a-nccf_file.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nccf_a-var_info_nccf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nc_cf_a-data2d_nc_cf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nc_cf_a-nc_cf_file.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nc_cf_a-var_info_nc_cf.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @@ -427,47 +428,47 @@ am--depfiles: $(am__depfiles_remade) @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -libvx_data2d_nccf_a-nccf_file.o: nccf_file.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nccf_a-nccf_file.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nccf_a-nccf_file.Tpo -c -o libvx_data2d_nccf_a-nccf_file.o `test -f 'nccf_file.cc' || echo '$(srcdir)/'`nccf_file.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nccf_a-nccf_file.Tpo $(DEPDIR)/libvx_data2d_nccf_a-nccf_file.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='nccf_file.cc' object='libvx_data2d_nccf_a-nccf_file.o' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_cf_a-nc_cf_file.o: nc_cf_file.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_cf_a-nc_cf_file.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_cf_a-nc_cf_file.Tpo -c -o libvx_data2d_nc_cf_a-nc_cf_file.o `test -f 'nc_cf_file.cc' || echo '$(srcdir)/'`nc_cf_file.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_cf_a-nc_cf_file.Tpo $(DEPDIR)/libvx_data2d_nc_cf_a-nc_cf_file.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='nc_cf_file.cc' object='libvx_data2d_nc_cf_a-nc_cf_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nccf_a-nccf_file.o `test -f 'nccf_file.cc' || echo '$(srcdir)/'`nccf_file.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_cf_a-nc_cf_file.o `test -f 'nc_cf_file.cc' || echo '$(srcdir)/'`nc_cf_file.cc -libvx_data2d_nccf_a-nccf_file.obj: nccf_file.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nccf_a-nccf_file.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nccf_a-nccf_file.Tpo -c -o libvx_data2d_nccf_a-nccf_file.obj `if test -f 'nccf_file.cc'; then $(CYGPATH_W) 'nccf_file.cc'; else $(CYGPATH_W) '$(srcdir)/nccf_file.cc'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nccf_a-nccf_file.Tpo $(DEPDIR)/libvx_data2d_nccf_a-nccf_file.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='nccf_file.cc' object='libvx_data2d_nccf_a-nccf_file.obj' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_cf_a-nc_cf_file.obj: nc_cf_file.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_cf_a-nc_cf_file.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_cf_a-nc_cf_file.Tpo -c -o libvx_data2d_nc_cf_a-nc_cf_file.obj `if test -f 'nc_cf_file.cc'; then $(CYGPATH_W) 'nc_cf_file.cc'; else $(CYGPATH_W) '$(srcdir)/nc_cf_file.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_cf_a-nc_cf_file.Tpo $(DEPDIR)/libvx_data2d_nc_cf_a-nc_cf_file.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='nc_cf_file.cc' object='libvx_data2d_nc_cf_a-nc_cf_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nccf_a-nccf_file.obj `if test -f 'nccf_file.cc'; then $(CYGPATH_W) 'nccf_file.cc'; else $(CYGPATH_W) '$(srcdir)/nccf_file.cc'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_cf_a-nc_cf_file.obj `if test -f 'nc_cf_file.cc'; then $(CYGPATH_W) 'nc_cf_file.cc'; else $(CYGPATH_W) '$(srcdir)/nc_cf_file.cc'; fi` -libvx_data2d_nccf_a-var_info_nccf.o: var_info_nccf.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nccf_a-var_info_nccf.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nccf_a-var_info_nccf.Tpo -c -o libvx_data2d_nccf_a-var_info_nccf.o `test -f 'var_info_nccf.cc' || echo '$(srcdir)/'`var_info_nccf.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nccf_a-var_info_nccf.Tpo $(DEPDIR)/libvx_data2d_nccf_a-var_info_nccf.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_nccf.cc' object='libvx_data2d_nccf_a-var_info_nccf.o' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_cf_a-var_info_nc_cf.o: var_info_nc_cf.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_cf_a-var_info_nc_cf.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_cf_a-var_info_nc_cf.Tpo -c -o libvx_data2d_nc_cf_a-var_info_nc_cf.o `test -f 'var_info_nc_cf.cc' || echo '$(srcdir)/'`var_info_nc_cf.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_cf_a-var_info_nc_cf.Tpo $(DEPDIR)/libvx_data2d_nc_cf_a-var_info_nc_cf.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_nc_cf.cc' object='libvx_data2d_nc_cf_a-var_info_nc_cf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nccf_a-var_info_nccf.o `test -f 'var_info_nccf.cc' || echo '$(srcdir)/'`var_info_nccf.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_cf_a-var_info_nc_cf.o `test -f 'var_info_nc_cf.cc' || echo '$(srcdir)/'`var_info_nc_cf.cc -libvx_data2d_nccf_a-var_info_nccf.obj: var_info_nccf.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nccf_a-var_info_nccf.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nccf_a-var_info_nccf.Tpo -c -o libvx_data2d_nccf_a-var_info_nccf.obj `if test -f 'var_info_nccf.cc'; then $(CYGPATH_W) 'var_info_nccf.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_nccf.cc'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nccf_a-var_info_nccf.Tpo $(DEPDIR)/libvx_data2d_nccf_a-var_info_nccf.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_nccf.cc' object='libvx_data2d_nccf_a-var_info_nccf.obj' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_cf_a-var_info_nc_cf.obj: var_info_nc_cf.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_cf_a-var_info_nc_cf.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_cf_a-var_info_nc_cf.Tpo -c -o libvx_data2d_nc_cf_a-var_info_nc_cf.obj `if test -f 'var_info_nc_cf.cc'; then $(CYGPATH_W) 'var_info_nc_cf.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_nc_cf.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_cf_a-var_info_nc_cf.Tpo $(DEPDIR)/libvx_data2d_nc_cf_a-var_info_nc_cf.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_nc_cf.cc' object='libvx_data2d_nc_cf_a-var_info_nc_cf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nccf_a-var_info_nccf.obj `if test -f 'var_info_nccf.cc'; then $(CYGPATH_W) 'var_info_nccf.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_nccf.cc'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_cf_a-var_info_nc_cf.obj `if test -f 'var_info_nc_cf.cc'; then $(CYGPATH_W) 'var_info_nc_cf.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_nc_cf.cc'; fi` -libvx_data2d_nccf_a-data2d_nccf.o: data2d_nccf.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nccf_a-data2d_nccf.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nccf_a-data2d_nccf.Tpo -c -o libvx_data2d_nccf_a-data2d_nccf.o `test -f 'data2d_nccf.cc' || echo '$(srcdir)/'`data2d_nccf.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nccf_a-data2d_nccf.Tpo $(DEPDIR)/libvx_data2d_nccf_a-data2d_nccf.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='data2d_nccf.cc' object='libvx_data2d_nccf_a-data2d_nccf.o' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_cf_a-data2d_nc_cf.o: data2d_nc_cf.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_cf_a-data2d_nc_cf.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_cf_a-data2d_nc_cf.Tpo -c -o libvx_data2d_nc_cf_a-data2d_nc_cf.o `test -f 'data2d_nc_cf.cc' || echo '$(srcdir)/'`data2d_nc_cf.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_cf_a-data2d_nc_cf.Tpo $(DEPDIR)/libvx_data2d_nc_cf_a-data2d_nc_cf.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='data2d_nc_cf.cc' object='libvx_data2d_nc_cf_a-data2d_nc_cf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nccf_a-data2d_nccf.o `test -f 'data2d_nccf.cc' || echo '$(srcdir)/'`data2d_nccf.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_cf_a-data2d_nc_cf.o `test -f 'data2d_nc_cf.cc' || echo '$(srcdir)/'`data2d_nc_cf.cc -libvx_data2d_nccf_a-data2d_nccf.obj: data2d_nccf.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nccf_a-data2d_nccf.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nccf_a-data2d_nccf.Tpo -c -o libvx_data2d_nccf_a-data2d_nccf.obj `if test -f 'data2d_nccf.cc'; then $(CYGPATH_W) 'data2d_nccf.cc'; else $(CYGPATH_W) '$(srcdir)/data2d_nccf.cc'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nccf_a-data2d_nccf.Tpo $(DEPDIR)/libvx_data2d_nccf_a-data2d_nccf.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='data2d_nccf.cc' object='libvx_data2d_nccf_a-data2d_nccf.obj' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_cf_a-data2d_nc_cf.obj: data2d_nc_cf.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_cf_a-data2d_nc_cf.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_cf_a-data2d_nc_cf.Tpo -c -o libvx_data2d_nc_cf_a-data2d_nc_cf.obj `if test -f 'data2d_nc_cf.cc'; then $(CYGPATH_W) 'data2d_nc_cf.cc'; else $(CYGPATH_W) '$(srcdir)/data2d_nc_cf.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_cf_a-data2d_nc_cf.Tpo $(DEPDIR)/libvx_data2d_nc_cf_a-data2d_nc_cf.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='data2d_nc_cf.cc' object='libvx_data2d_nc_cf_a-data2d_nc_cf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nccf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nccf_a-data2d_nccf.obj `if test -f 'data2d_nccf.cc'; then $(CYGPATH_W) 'data2d_nccf.cc'; else $(CYGPATH_W) '$(srcdir)/data2d_nccf.cc'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_cf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_cf_a-data2d_nc_cf.obj `if test -f 'data2d_nc_cf.cc'; then $(CYGPATH_W) 'data2d_nc_cf.cc'; else $(CYGPATH_W) '$(srcdir)/data2d_nc_cf.cc'; fi` ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique @@ -593,9 +594,9 @@ clean: clean-am clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am distclean: distclean-am - -rm -f ./$(DEPDIR)/libvx_data2d_nccf_a-data2d_nccf.Po - -rm -f ./$(DEPDIR)/libvx_data2d_nccf_a-nccf_file.Po - -rm -f ./$(DEPDIR)/libvx_data2d_nccf_a-var_info_nccf.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_cf_a-data2d_nc_cf.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_cf_a-nc_cf_file.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_cf_a-var_info_nc_cf.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -641,9 +642,9 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/libvx_data2d_nccf_a-data2d_nccf.Po - -rm -f ./$(DEPDIR)/libvx_data2d_nccf_a-nccf_file.Po - -rm -f ./$(DEPDIR)/libvx_data2d_nccf_a-var_info_nccf.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_cf_a-data2d_nc_cf.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_cf_a-nc_cf_file.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_cf_a-var_info_nc_cf.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic diff --git a/src/libcode/vx_data2d_nccf/data2d_nccf.cc b/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.cc similarity index 99% rename from src/libcode/vx_data2d_nccf/data2d_nccf.cc rename to src/libcode/vx_data2d_nc_cf/data2d_nc_cf.cc index d25a1062c7..6a7cfaef48 100644 --- a/src/libcode/vx_data2d_nccf/data2d_nccf.cc +++ b/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.cc @@ -17,7 +17,7 @@ #include -#include "data2d_nccf.h" +#include "data2d_nc_cf.h" #include "vx_math.h" #include "vx_log.h" diff --git a/src/libcode/vx_data2d_nccf/data2d_nccf.h b/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.h similarity index 98% rename from src/libcode/vx_data2d_nccf/data2d_nccf.h rename to src/libcode/vx_data2d_nc_cf/data2d_nc_cf.h index f85ae04259..a53631f44b 100644 --- a/src/libcode/vx_data2d_nccf/data2d_nccf.h +++ b/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.h @@ -19,8 +19,8 @@ #include "data_plane.h" #include "data_class.h" -#include "var_info_nccf.h" -#include "nccf_file.h" +#include "var_info_nc_cf.h" +#include "nc_cf_file.h" #include "two_to_one.h" diff --git a/src/libcode/vx_data2d_nccf/nccf_file.cc b/src/libcode/vx_data2d_nc_cf/nc_cf_file.cc similarity index 99% rename from src/libcode/vx_data2d_nccf/nccf_file.cc rename to src/libcode/vx_data2d_nc_cf/nc_cf_file.cc index a1cd259ee0..3de1882c7a 100644 --- a/src/libcode/vx_data2d_nccf/nccf_file.cc +++ b/src/libcode/vx_data2d_nc_cf/nc_cf_file.cc @@ -29,7 +29,7 @@ using namespace netCDF; #include "vx_cal.h" #include "vx_log.h" -#include "nccf_file.h" +#include "nc_cf_file.h" //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_nccf/nccf_file.h b/src/libcode/vx_data2d_nc_cf/nc_cf_file.h similarity index 98% rename from src/libcode/vx_data2d_nccf/nccf_file.h rename to src/libcode/vx_data2d_nc_cf/nc_cf_file.h index 02d12c6d5a..3348a09347 100644 --- a/src/libcode/vx_data2d_nccf/nccf_file.h +++ b/src/libcode/vx_data2d_nc_cf/nc_cf_file.h @@ -14,8 +14,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __NCCF_FILE_H__ -#define __NCCF_FILE_H__ +#ifndef __NC_CF_FILE_H__ +#define __NC_CF_FILE_H__ //////////////////////////////////////////////////////////////////////// @@ -194,7 +194,7 @@ class NcCfFile { //////////////////////////////////////////////////////////////////////// -#endif /* __NCCF_FILE_H__ */ +#endif /* __NC_CF_FILE_H__ */ //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_nccf/var_info_nccf.cc b/src/libcode/vx_data2d_nc_cf/var_info_nc_cf.cc similarity index 99% rename from src/libcode/vx_data2d_nccf/var_info_nccf.cc rename to src/libcode/vx_data2d_nc_cf/var_info_nc_cf.cc index a77ece6881..3144304014 100644 --- a/src/libcode/vx_data2d_nccf/var_info_nccf.cc +++ b/src/libcode/vx_data2d_nc_cf/var_info_nc_cf.cc @@ -8,7 +8,7 @@ /////////////////////////////////////////////////////////////////////////////// // -// Filename: var_info_nccf.cc +// Filename: var_info_nc_cf.cc // // Description: // @@ -25,7 +25,7 @@ using namespace std; #include #include "var_info.h" -#include "var_info_nccf.h" +#include "var_info_nc_cf.h" #include "vx_math.h" #include "util_constants.h" diff --git a/src/libcode/vx_data2d_nccf/var_info_nccf.h b/src/libcode/vx_data2d_nc_cf/var_info_nc_cf.h similarity index 100% rename from src/libcode/vx_data2d_nccf/var_info_nccf.h rename to src/libcode/vx_data2d_nc_cf/var_info_nc_cf.h diff --git a/src/libcode/vx_data2d_nccf/vx_data2d_nccf.h b/src/libcode/vx_data2d_nc_cf/vx_data2d_nc_cf.h similarity index 90% rename from src/libcode/vx_data2d_nccf/vx_data2d_nccf.h rename to src/libcode/vx_data2d_nc_cf/vx_data2d_nc_cf.h index f16349e38f..de9e7e8051 100644 --- a/src/libcode/vx_data2d_nccf/vx_data2d_nccf.h +++ b/src/libcode/vx_data2d_nc_cf/vx_data2d_nc_cf.h @@ -21,9 +21,9 @@ //////////////////////////////////////////////////////////////////////// -#include "data2d_nccf.h" -#include "var_info_nccf.h" -#include "nccf_file.h" +#include "data2d_nc_cf.h" +#include "var_info_nc_cf.h" +#include "nc_cf_file.h" //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_nc_pinterp/Makefile.am b/src/libcode/vx_data2d_nc_pinterp/Makefile.am deleted file mode 100644 index 7d89511162..0000000000 --- a/src/libcode/vx_data2d_nc_pinterp/Makefile.am +++ /dev/null @@ -1,20 +0,0 @@ -## @start 1 -## Makefile.am -- Process this file with automake to produce Makefile.in -## @end 1 - -MAINTAINERCLEANFILES = Makefile.in - -# Include the project definitions - -include ${top_srcdir}/Make-include - -# The library - -noinst_LIBRARIES = libvx_data2d_nc_pinterp.a -libvx_data2d_nc_pinterp_a_SOURCES = \ - get_pinterp_grid.cc get_pinterp_grid.h \ - pinterp_file.cc pinterp_file.h \ - var_info_nc_pinterp.cc var_info_nc_pinterp.h \ - data2d_nc_pinterp.cc data2d_nc_pinterp.h \ - vx_data2d_nc_pinterp.h -libvx_data2d_nc_pinterp_a_CPPFLAGS = ${MET_CPPFLAGS} diff --git a/src/libcode/vx_data2d_nccf/.gitignore b/src/libcode/vx_data2d_nc_wrf/.gitignore similarity index 100% rename from src/libcode/vx_data2d_nccf/.gitignore rename to src/libcode/vx_data2d_nc_wrf/.gitignore diff --git a/src/libcode/vx_data2d_nc_wrf/Makefile.am b/src/libcode/vx_data2d_nc_wrf/Makefile.am new file mode 100644 index 0000000000..78c1785755 --- /dev/null +++ b/src/libcode/vx_data2d_nc_wrf/Makefile.am @@ -0,0 +1,20 @@ +## @start 1 +## Makefile.am -- Process this file with automake to produce Makefile.in +## @end 1 + +MAINTAINERCLEANFILES = Makefile.in + +# Include the project definitions + +include ${top_srcdir}/Make-include + +# The library + +noinst_LIBRARIES = libvx_data2d_nc_wrf.a +libvx_data2d_nc_wrf_a_SOURCES = \ + get_wrf_grid.cc get_wrf_grid.h \ + wrf_file.cc wrf_file.h \ + var_info_nc_wrf.cc var_info_nc_wrf.h \ + data2d_nc_wrf.cc data2d_nc_wrf.h \ + vx_data2d_nc_wrf.h +libvx_data2d_nc_wrf_a_CPPFLAGS = ${MET_CPPFLAGS} diff --git a/src/libcode/vx_data2d_nc_pinterp/Makefile.in b/src/libcode/vx_data2d_nc_wrf/Makefile.in similarity index 68% rename from src/libcode/vx_data2d_nc_pinterp/Makefile.in rename to src/libcode/vx_data2d_nc_wrf/Makefile.in index 867c42b48a..dbe34976c3 100644 --- a/src/libcode/vx_data2d_nc_pinterp/Makefile.in +++ b/src/libcode/vx_data2d_nc_wrf/Makefile.in @@ -88,7 +88,7 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -subdir = src/libcode/vx_data2d_nc_pinterp +subdir = src/libcode/vx_data2d_nc_wrf ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -105,15 +105,14 @@ AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = -libvx_data2d_nc_pinterp_a_AR = $(AR) $(ARFLAGS) -libvx_data2d_nc_pinterp_a_LIBADD = -am_libvx_data2d_nc_pinterp_a_OBJECTS = \ - libvx_data2d_nc_pinterp_a-get_pinterp_grid.$(OBJEXT) \ - libvx_data2d_nc_pinterp_a-pinterp_file.$(OBJEXT) \ - libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.$(OBJEXT) \ - libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.$(OBJEXT) -libvx_data2d_nc_pinterp_a_OBJECTS = \ - $(am_libvx_data2d_nc_pinterp_a_OBJECTS) +libvx_data2d_nc_wrf_a_AR = $(AR) $(ARFLAGS) +libvx_data2d_nc_wrf_a_LIBADD = +am_libvx_data2d_nc_wrf_a_OBJECTS = \ + libvx_data2d_nc_wrf_a-get_wrf_grid.$(OBJEXT) \ + libvx_data2d_nc_wrf_a-wrf_file.$(OBJEXT) \ + libvx_data2d_nc_wrf_a-var_info_nc_wrf.$(OBJEXT) \ + libvx_data2d_nc_wrf_a-data2d_nc_wrf.$(OBJEXT) +libvx_data2d_nc_wrf_a_OBJECTS = $(am_libvx_data2d_nc_wrf_a_OBJECTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -130,10 +129,10 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = \ - ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.Po \ - ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-get_pinterp_grid.Po \ - ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-pinterp_file.Po \ - ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.Po + ./$(DEPDIR)/libvx_data2d_nc_wrf_a-data2d_nc_wrf.Po \ + ./$(DEPDIR)/libvx_data2d_nc_wrf_a-get_wrf_grid.Po \ + ./$(DEPDIR)/libvx_data2d_nc_wrf_a-var_info_nc_wrf.Po \ + ./$(DEPDIR)/libvx_data2d_nc_wrf_a-wrf_file.Po am__mv = mv -f AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -164,8 +163,8 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(libvx_data2d_nc_pinterp_a_SOURCES) -DIST_SOURCES = $(libvx_data2d_nc_pinterp_a_SOURCES) +SOURCES = $(libvx_data2d_nc_wrf_a_SOURCES) +DIST_SOURCES = $(libvx_data2d_nc_wrf_a_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -351,15 +350,15 @@ top_srcdir = @top_srcdir@ MAINTAINERCLEANFILES = Makefile.in # The library -noinst_LIBRARIES = libvx_data2d_nc_pinterp.a -libvx_data2d_nc_pinterp_a_SOURCES = \ - get_pinterp_grid.cc get_pinterp_grid.h \ - pinterp_file.cc pinterp_file.h \ - var_info_nc_pinterp.cc var_info_nc_pinterp.h \ - data2d_nc_pinterp.cc data2d_nc_pinterp.h \ - vx_data2d_nc_pinterp.h - -libvx_data2d_nc_pinterp_a_CPPFLAGS = ${MET_CPPFLAGS} +noinst_LIBRARIES = libvx_data2d_nc_wrf.a +libvx_data2d_nc_wrf_a_SOURCES = \ + get_wrf_grid.cc get_wrf_grid.h \ + wrf_file.cc wrf_file.h \ + var_info_nc_wrf.cc var_info_nc_wrf.h \ + data2d_nc_wrf.cc data2d_nc_wrf.h \ + vx_data2d_nc_wrf.h + +libvx_data2d_nc_wrf_a_CPPFLAGS = ${MET_CPPFLAGS} all: all-am .SUFFIXES: @@ -373,9 +372,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libcode/vx_data2d_nc_pinterp/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/libcode/vx_data2d_nc_wrf/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/libcode/vx_data2d_nc_pinterp/Makefile + $(AUTOMAKE) --foreign src/libcode/vx_data2d_nc_wrf/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -397,10 +396,10 @@ $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -libvx_data2d_nc_pinterp.a: $(libvx_data2d_nc_pinterp_a_OBJECTS) $(libvx_data2d_nc_pinterp_a_DEPENDENCIES) $(EXTRA_libvx_data2d_nc_pinterp_a_DEPENDENCIES) - $(AM_V_at)-rm -f libvx_data2d_nc_pinterp.a - $(AM_V_AR)$(libvx_data2d_nc_pinterp_a_AR) libvx_data2d_nc_pinterp.a $(libvx_data2d_nc_pinterp_a_OBJECTS) $(libvx_data2d_nc_pinterp_a_LIBADD) - $(AM_V_at)$(RANLIB) libvx_data2d_nc_pinterp.a +libvx_data2d_nc_wrf.a: $(libvx_data2d_nc_wrf_a_OBJECTS) $(libvx_data2d_nc_wrf_a_DEPENDENCIES) $(EXTRA_libvx_data2d_nc_wrf_a_DEPENDENCIES) + $(AM_V_at)-rm -f libvx_data2d_nc_wrf.a + $(AM_V_AR)$(libvx_data2d_nc_wrf_a_AR) libvx_data2d_nc_wrf.a $(libvx_data2d_nc_wrf_a_OBJECTS) $(libvx_data2d_nc_wrf_a_LIBADD) + $(AM_V_at)$(RANLIB) libvx_data2d_nc_wrf.a mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -408,10 +407,10 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nc_pinterp_a-get_pinterp_grid.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nc_pinterp_a-pinterp_file.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nc_wrf_a-data2d_nc_wrf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nc_wrf_a-get_wrf_grid.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nc_wrf_a-var_info_nc_wrf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvx_data2d_nc_wrf_a-wrf_file.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @@ -433,61 +432,61 @@ am--depfiles: $(am__depfiles_remade) @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` -libvx_data2d_nc_pinterp_a-get_pinterp_grid.o: get_pinterp_grid.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_pinterp_a-get_pinterp_grid.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_pinterp_a-get_pinterp_grid.Tpo -c -o libvx_data2d_nc_pinterp_a-get_pinterp_grid.o `test -f 'get_pinterp_grid.cc' || echo '$(srcdir)/'`get_pinterp_grid.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_pinterp_a-get_pinterp_grid.Tpo $(DEPDIR)/libvx_data2d_nc_pinterp_a-get_pinterp_grid.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='get_pinterp_grid.cc' object='libvx_data2d_nc_pinterp_a-get_pinterp_grid.o' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_wrf_a-get_wrf_grid.o: get_wrf_grid.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_wrf_a-get_wrf_grid.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_wrf_a-get_wrf_grid.Tpo -c -o libvx_data2d_nc_wrf_a-get_wrf_grid.o `test -f 'get_wrf_grid.cc' || echo '$(srcdir)/'`get_wrf_grid.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_wrf_a-get_wrf_grid.Tpo $(DEPDIR)/libvx_data2d_nc_wrf_a-get_wrf_grid.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='get_wrf_grid.cc' object='libvx_data2d_nc_wrf_a-get_wrf_grid.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_pinterp_a-get_pinterp_grid.o `test -f 'get_pinterp_grid.cc' || echo '$(srcdir)/'`get_pinterp_grid.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_wrf_a-get_wrf_grid.o `test -f 'get_wrf_grid.cc' || echo '$(srcdir)/'`get_wrf_grid.cc -libvx_data2d_nc_pinterp_a-get_pinterp_grid.obj: get_pinterp_grid.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_pinterp_a-get_pinterp_grid.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_pinterp_a-get_pinterp_grid.Tpo -c -o libvx_data2d_nc_pinterp_a-get_pinterp_grid.obj `if test -f 'get_pinterp_grid.cc'; then $(CYGPATH_W) 'get_pinterp_grid.cc'; else $(CYGPATH_W) '$(srcdir)/get_pinterp_grid.cc'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_pinterp_a-get_pinterp_grid.Tpo $(DEPDIR)/libvx_data2d_nc_pinterp_a-get_pinterp_grid.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='get_pinterp_grid.cc' object='libvx_data2d_nc_pinterp_a-get_pinterp_grid.obj' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_wrf_a-get_wrf_grid.obj: get_wrf_grid.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_wrf_a-get_wrf_grid.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_wrf_a-get_wrf_grid.Tpo -c -o libvx_data2d_nc_wrf_a-get_wrf_grid.obj `if test -f 'get_wrf_grid.cc'; then $(CYGPATH_W) 'get_wrf_grid.cc'; else $(CYGPATH_W) '$(srcdir)/get_wrf_grid.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_wrf_a-get_wrf_grid.Tpo $(DEPDIR)/libvx_data2d_nc_wrf_a-get_wrf_grid.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='get_wrf_grid.cc' object='libvx_data2d_nc_wrf_a-get_wrf_grid.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_pinterp_a-get_pinterp_grid.obj `if test -f 'get_pinterp_grid.cc'; then $(CYGPATH_W) 'get_pinterp_grid.cc'; else $(CYGPATH_W) '$(srcdir)/get_pinterp_grid.cc'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_wrf_a-get_wrf_grid.obj `if test -f 'get_wrf_grid.cc'; then $(CYGPATH_W) 'get_wrf_grid.cc'; else $(CYGPATH_W) '$(srcdir)/get_wrf_grid.cc'; fi` -libvx_data2d_nc_pinterp_a-pinterp_file.o: pinterp_file.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_pinterp_a-pinterp_file.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_pinterp_a-pinterp_file.Tpo -c -o libvx_data2d_nc_pinterp_a-pinterp_file.o `test -f 'pinterp_file.cc' || echo '$(srcdir)/'`pinterp_file.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_pinterp_a-pinterp_file.Tpo $(DEPDIR)/libvx_data2d_nc_pinterp_a-pinterp_file.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='pinterp_file.cc' object='libvx_data2d_nc_pinterp_a-pinterp_file.o' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_wrf_a-wrf_file.o: wrf_file.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_wrf_a-wrf_file.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_wrf_a-wrf_file.Tpo -c -o libvx_data2d_nc_wrf_a-wrf_file.o `test -f 'wrf_file.cc' || echo '$(srcdir)/'`wrf_file.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_wrf_a-wrf_file.Tpo $(DEPDIR)/libvx_data2d_nc_wrf_a-wrf_file.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='wrf_file.cc' object='libvx_data2d_nc_wrf_a-wrf_file.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_pinterp_a-pinterp_file.o `test -f 'pinterp_file.cc' || echo '$(srcdir)/'`pinterp_file.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_wrf_a-wrf_file.o `test -f 'wrf_file.cc' || echo '$(srcdir)/'`wrf_file.cc -libvx_data2d_nc_pinterp_a-pinterp_file.obj: pinterp_file.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_pinterp_a-pinterp_file.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_pinterp_a-pinterp_file.Tpo -c -o libvx_data2d_nc_pinterp_a-pinterp_file.obj `if test -f 'pinterp_file.cc'; then $(CYGPATH_W) 'pinterp_file.cc'; else $(CYGPATH_W) '$(srcdir)/pinterp_file.cc'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_pinterp_a-pinterp_file.Tpo $(DEPDIR)/libvx_data2d_nc_pinterp_a-pinterp_file.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='pinterp_file.cc' object='libvx_data2d_nc_pinterp_a-pinterp_file.obj' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_wrf_a-wrf_file.obj: wrf_file.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_wrf_a-wrf_file.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_wrf_a-wrf_file.Tpo -c -o libvx_data2d_nc_wrf_a-wrf_file.obj `if test -f 'wrf_file.cc'; then $(CYGPATH_W) 'wrf_file.cc'; else $(CYGPATH_W) '$(srcdir)/wrf_file.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_wrf_a-wrf_file.Tpo $(DEPDIR)/libvx_data2d_nc_wrf_a-wrf_file.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='wrf_file.cc' object='libvx_data2d_nc_wrf_a-wrf_file.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_pinterp_a-pinterp_file.obj `if test -f 'pinterp_file.cc'; then $(CYGPATH_W) 'pinterp_file.cc'; else $(CYGPATH_W) '$(srcdir)/pinterp_file.cc'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_wrf_a-wrf_file.obj `if test -f 'wrf_file.cc'; then $(CYGPATH_W) 'wrf_file.cc'; else $(CYGPATH_W) '$(srcdir)/wrf_file.cc'; fi` -libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.o: var_info_nc_pinterp.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.Tpo -c -o libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.o `test -f 'var_info_nc_pinterp.cc' || echo '$(srcdir)/'`var_info_nc_pinterp.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.Tpo $(DEPDIR)/libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_nc_pinterp.cc' object='libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.o' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_wrf_a-var_info_nc_wrf.o: var_info_nc_wrf.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_wrf_a-var_info_nc_wrf.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_wrf_a-var_info_nc_wrf.Tpo -c -o libvx_data2d_nc_wrf_a-var_info_nc_wrf.o `test -f 'var_info_nc_wrf.cc' || echo '$(srcdir)/'`var_info_nc_wrf.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_wrf_a-var_info_nc_wrf.Tpo $(DEPDIR)/libvx_data2d_nc_wrf_a-var_info_nc_wrf.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_nc_wrf.cc' object='libvx_data2d_nc_wrf_a-var_info_nc_wrf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.o `test -f 'var_info_nc_pinterp.cc' || echo '$(srcdir)/'`var_info_nc_pinterp.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_wrf_a-var_info_nc_wrf.o `test -f 'var_info_nc_wrf.cc' || echo '$(srcdir)/'`var_info_nc_wrf.cc -libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.obj: var_info_nc_pinterp.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.Tpo -c -o libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.obj `if test -f 'var_info_nc_pinterp.cc'; then $(CYGPATH_W) 'var_info_nc_pinterp.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_nc_pinterp.cc'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.Tpo $(DEPDIR)/libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_nc_pinterp.cc' object='libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.obj' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_wrf_a-var_info_nc_wrf.obj: var_info_nc_wrf.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_wrf_a-var_info_nc_wrf.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_wrf_a-var_info_nc_wrf.Tpo -c -o libvx_data2d_nc_wrf_a-var_info_nc_wrf.obj `if test -f 'var_info_nc_wrf.cc'; then $(CYGPATH_W) 'var_info_nc_wrf.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_nc_wrf.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_wrf_a-var_info_nc_wrf.Tpo $(DEPDIR)/libvx_data2d_nc_wrf_a-var_info_nc_wrf.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='var_info_nc_wrf.cc' object='libvx_data2d_nc_wrf_a-var_info_nc_wrf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.obj `if test -f 'var_info_nc_pinterp.cc'; then $(CYGPATH_W) 'var_info_nc_pinterp.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_nc_pinterp.cc'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_wrf_a-var_info_nc_wrf.obj `if test -f 'var_info_nc_wrf.cc'; then $(CYGPATH_W) 'var_info_nc_wrf.cc'; else $(CYGPATH_W) '$(srcdir)/var_info_nc_wrf.cc'; fi` -libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.o: data2d_nc_pinterp.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.Tpo -c -o libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.o `test -f 'data2d_nc_pinterp.cc' || echo '$(srcdir)/'`data2d_nc_pinterp.cc -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.Tpo $(DEPDIR)/libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='data2d_nc_pinterp.cc' object='libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.o' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_wrf_a-data2d_nc_wrf.o: data2d_nc_wrf.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_wrf_a-data2d_nc_wrf.o -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_wrf_a-data2d_nc_wrf.Tpo -c -o libvx_data2d_nc_wrf_a-data2d_nc_wrf.o `test -f 'data2d_nc_wrf.cc' || echo '$(srcdir)/'`data2d_nc_wrf.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_wrf_a-data2d_nc_wrf.Tpo $(DEPDIR)/libvx_data2d_nc_wrf_a-data2d_nc_wrf.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='data2d_nc_wrf.cc' object='libvx_data2d_nc_wrf_a-data2d_nc_wrf.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.o `test -f 'data2d_nc_pinterp.cc' || echo '$(srcdir)/'`data2d_nc_pinterp.cc +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_wrf_a-data2d_nc_wrf.o `test -f 'data2d_nc_wrf.cc' || echo '$(srcdir)/'`data2d_nc_wrf.cc -libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.obj: data2d_nc_pinterp.cc -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.Tpo -c -o libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.obj `if test -f 'data2d_nc_pinterp.cc'; then $(CYGPATH_W) 'data2d_nc_pinterp.cc'; else $(CYGPATH_W) '$(srcdir)/data2d_nc_pinterp.cc'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.Tpo $(DEPDIR)/libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='data2d_nc_pinterp.cc' object='libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.obj' libtool=no @AMDEPBACKSLASH@ +libvx_data2d_nc_wrf_a-data2d_nc_wrf.obj: data2d_nc_wrf.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libvx_data2d_nc_wrf_a-data2d_nc_wrf.obj -MD -MP -MF $(DEPDIR)/libvx_data2d_nc_wrf_a-data2d_nc_wrf.Tpo -c -o libvx_data2d_nc_wrf_a-data2d_nc_wrf.obj `if test -f 'data2d_nc_wrf.cc'; then $(CYGPATH_W) 'data2d_nc_wrf.cc'; else $(CYGPATH_W) '$(srcdir)/data2d_nc_wrf.cc'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvx_data2d_nc_wrf_a-data2d_nc_wrf.Tpo $(DEPDIR)/libvx_data2d_nc_wrf_a-data2d_nc_wrf.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='data2d_nc_wrf.cc' object='libvx_data2d_nc_wrf_a-data2d_nc_wrf.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_pinterp_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.obj `if test -f 'data2d_nc_pinterp.cc'; then $(CYGPATH_W) 'data2d_nc_pinterp.cc'; else $(CYGPATH_W) '$(srcdir)/data2d_nc_pinterp.cc'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvx_data2d_nc_wrf_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libvx_data2d_nc_wrf_a-data2d_nc_wrf.obj `if test -f 'data2d_nc_wrf.cc'; then $(CYGPATH_W) 'data2d_nc_wrf.cc'; else $(CYGPATH_W) '$(srcdir)/data2d_nc_wrf.cc'; fi` ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique @@ -613,10 +612,10 @@ clean: clean-am clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am distclean: distclean-am - -rm -f ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.Po - -rm -f ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-get_pinterp_grid.Po - -rm -f ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-pinterp_file.Po - -rm -f ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_wrf_a-data2d_nc_wrf.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_wrf_a-get_wrf_grid.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_wrf_a-var_info_nc_wrf.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_wrf_a-wrf_file.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -662,10 +661,10 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-data2d_nc_pinterp.Po - -rm -f ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-get_pinterp_grid.Po - -rm -f ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-pinterp_file.Po - -rm -f ./$(DEPDIR)/libvx_data2d_nc_pinterp_a-var_info_nc_pinterp.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_wrf_a-data2d_nc_wrf.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_wrf_a-get_wrf_grid.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_wrf_a-var_info_nc_wrf.Po + -rm -f ./$(DEPDIR)/libvx_data2d_nc_wrf_a-wrf_file.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic diff --git a/src/libcode/vx_data2d_nc_pinterp/data2d_nc_pinterp.cc b/src/libcode/vx_data2d_nc_wrf/data2d_nc_wrf.cc similarity index 78% rename from src/libcode/vx_data2d_nc_pinterp/data2d_nc_pinterp.cc rename to src/libcode/vx_data2d_nc_wrf/data2d_nc_wrf.cc index 83872f4614..ef51698ed1 100644 --- a/src/libcode/vx_data2d_nc_pinterp/data2d_nc_pinterp.cc +++ b/src/libcode/vx_data2d_nc_wrf/data2d_nc_wrf.cc @@ -17,54 +17,54 @@ using namespace std; #include #include -#include "data2d_nc_pinterp.h" -#include "get_pinterp_grid.h" +#include "data2d_nc_wrf.h" +#include "get_wrf_grid.h" #include "vx_nc_util.h" #include "vx_math.h" #include "vx_log.h" //////////////////////////////////////////////////////////////////////// // -// Code for class MetNcPinterpDataFile +// Code for class MetNcWrfDataFile // //////////////////////////////////////////////////////////////////////// -MetNcPinterpDataFile::MetNcPinterpDataFile() { +MetNcWrfDataFile::MetNcWrfDataFile() { - nc_pinterp_init_from_scratch(); + nc_wrf_init_from_scratch(); } //////////////////////////////////////////////////////////////////////// -MetNcPinterpDataFile::~MetNcPinterpDataFile() { +MetNcWrfDataFile::~MetNcWrfDataFile() { close(); } //////////////////////////////////////////////////////////////////////// -MetNcPinterpDataFile::MetNcPinterpDataFile(const MetNcPinterpDataFile &) { +MetNcWrfDataFile::MetNcWrfDataFile(const MetNcWrfDataFile &) { - mlog << Error << "\nMetNcPinterpDataFile::MetNcPinterpDataFile(const MetNcPinterpDataFile &) -> " + mlog << Error << "\nMetNcWrfDataFile::MetNcWrfDataFile(const MetNcWrfDataFile &) -> " << "should never be called!\n\n"; exit(1); } //////////////////////////////////////////////////////////////////////// -MetNcPinterpDataFile & MetNcPinterpDataFile::operator=(const MetNcPinterpDataFile &) { +MetNcWrfDataFile & MetNcWrfDataFile::operator=(const MetNcWrfDataFile &) { - mlog << Error << "\nMetNcPinterpDataFile::operator=(const MetNcPinterpDataFile &) -> " + mlog << Error << "\nMetNcWrfDataFile::operator=(const MetNcWrfDataFile &) -> " << "should never be called!\n\n"; exit(1); } //////////////////////////////////////////////////////////////////////// -void MetNcPinterpDataFile::nc_pinterp_init_from_scratch() { +void MetNcWrfDataFile::nc_wrf_init_from_scratch() { - PinterpNc = (PinterpFile *) 0; + WrfNc = (WrfFile *) 0; close(); @@ -73,23 +73,23 @@ void MetNcPinterpDataFile::nc_pinterp_init_from_scratch() { //////////////////////////////////////////////////////////////////////// -void MetNcPinterpDataFile::close() { +void MetNcWrfDataFile::close() { - if(PinterpNc) { delete PinterpNc; PinterpNc = (PinterpFile *) 0; } + if(WrfNc) { delete WrfNc; WrfNc = (WrfFile *) 0; } return; } //////////////////////////////////////////////////////////////////////// -bool MetNcPinterpDataFile::open(const char * _filename) { +bool MetNcWrfDataFile::open(const char * _filename) { close(); - PinterpNc = new PinterpFile; + WrfNc = new WrfFile; - if(!PinterpNc->open(_filename)) { - mlog << Error << "\nMetNcPinterpDataFile::open(const char *) -> " + if(!WrfNc->open(_filename)) { + mlog << Error << "\nMetNcWrfDataFile::open(const char *) -> " << "unable to open NetCDF file \"" << _filename << "\"\n\n"; close(); @@ -100,7 +100,7 @@ bool MetNcPinterpDataFile::open(const char * _filename) { Raw_Grid = new Grid; - (*Raw_Grid) = PinterpNc->grid; + (*Raw_Grid) = WrfNc->grid; Dest_Grid = new Grid; @@ -111,34 +111,34 @@ bool MetNcPinterpDataFile::open(const char * _filename) { //////////////////////////////////////////////////////////////////////// -void MetNcPinterpDataFile::dump(ostream & out, int depth) const { +void MetNcWrfDataFile::dump(ostream & out, int depth) const { - if(PinterpNc) PinterpNc->dump(out, depth); + if(WrfNc) WrfNc->dump(out, depth); return; } //////////////////////////////////////////////////////////////////////// -bool MetNcPinterpDataFile::data_plane(VarInfo &vinfo, DataPlane &plane) { +bool MetNcWrfDataFile::data_plane(VarInfo &vinfo, DataPlane &plane) { bool status = false; double pressure; ConcatString level_str; - VarInfoNcPinterp * vinfo_nc = (VarInfoNcPinterp *) &vinfo; + VarInfoNcWrf * vinfo_nc = (VarInfoNcWrf *) &vinfo; NcVarInfo *info = (NcVarInfo *) 0; // Initialize the data plane plane.clear(); // Read the data - PinterpNc->get_nc_var_info(vinfo_nc->req_name().c_str(), info); + WrfNc->get_nc_var_info(vinfo_nc->req_name().c_str(), info); LongArray dimension = vinfo_nc->dimension(); int dim_count = dimension.n_elements(); for (int k=0; kvar, k)); - NcVarInfo *var_info = find_var_info_by_dim_name(PinterpNc->Var, dim_name, - PinterpNc->Nvars); + NcVarInfo *var_info = find_var_info_by_dim_name(WrfNc->Var, dim_name, + WrfNc->Nvars); if (var_info) { long new_offset = get_index_at_nc_data(var_info->var, vinfo_nc->dim_value(k), @@ -148,8 +148,8 @@ bool MetNcPinterpDataFile::data_plane(VarInfo &vinfo, DataPlane &plane) { } } - status = PinterpNc->data(vinfo_nc->req_name().c_str(), - dimension, plane, pressure, info); + status = WrfNc->data(vinfo_nc->req_name().c_str(), + dimension, plane, pressure, info); // Check that the times match those requested if(status) { @@ -157,7 +157,7 @@ bool MetNcPinterpDataFile::data_plane(VarInfo &vinfo, DataPlane &plane) { // Check that the valid time matches the request if(vinfo.valid() > 0 && vinfo.valid() != plane.valid()) { - mlog << Warning << "\nMetNcPinterpDataFile::data_plane() -> " + mlog << Warning << "\nMetNcWrfDataFile::data_plane() -> " << "for \"" << vinfo.req_name() << "\" variable, the valid " << "time does not match the requested valid time: (" << unix_to_yyyymmdd_hhmmss(plane.valid()) << " != " @@ -168,7 +168,7 @@ bool MetNcPinterpDataFile::data_plane(VarInfo &vinfo, DataPlane &plane) { // Check that the lead time matches the request if(vinfo.lead() > 0 && vinfo.lead() != plane.lead()) { - mlog << Warning << "\nMetNcPinterpDataFile::data_plane() -> " + mlog << Warning << "\nMetNcWrfDataFile::data_plane() -> " << "for \"" << vinfo.req_name() << "\" variable, the lead " << "time does not match the requested lead time: (" << sec_to_hhmmss(plane.lead()) << " != " @@ -196,13 +196,13 @@ bool MetNcPinterpDataFile::data_plane(VarInfo &vinfo, DataPlane &plane) { //////////////////////////////////////////////////////////////////////// -int MetNcPinterpDataFile::data_plane_array(VarInfo &vinfo, +int MetNcWrfDataFile::data_plane_array(VarInfo &vinfo, DataPlaneArray &plane_array) { int i, i_dim, n_level, status, lower, upper; ConcatString level_str; double pressure, min_level, max_level; bool found = false; - VarInfoNcPinterp *vinfo_nc = (VarInfoNcPinterp *) &vinfo; + VarInfoNcWrf *vinfo_nc = (VarInfoNcWrf *) &vinfo; LongArray dim = vinfo_nc->dimension(); NcVarInfo *info = (NcVarInfo *) 0; @@ -241,8 +241,8 @@ int MetNcPinterpDataFile::data_plane_array(VarInfo &vinfo, cur_dim[i_dim] = lower + i; // Read data for the current level - status = PinterpNc->data(vinfo_nc->req_name().c_str(), - cur_dim, cur_plane, pressure, info); + status = WrfNc->data(vinfo_nc->req_name().c_str(), + cur_dim, cur_plane, pressure, info); // Check that the times match those requested if(status) { @@ -250,7 +250,7 @@ int MetNcPinterpDataFile::data_plane_array(VarInfo &vinfo, // Check that the valid time matches the request if(vinfo.valid() > 0 && vinfo.valid() != cur_plane.valid()) { - mlog << Warning << "\nMetNcPinterpDataFile::data_plane_array() -> " + mlog << Warning << "\nMetNcWrfDataFile::data_plane_array() -> " << "for \"" << vinfo.req_name() << "\" variable, the valid " << "time does not match the requested valid time: (" << unix_to_yyyymmdd_hhmmss(cur_plane.valid()) << " != " @@ -261,7 +261,7 @@ int MetNcPinterpDataFile::data_plane_array(VarInfo &vinfo, // Check that the lead time matches the request if(vinfo.lead() > 0 && vinfo.lead() != cur_plane.lead()) { - mlog << Warning << "\nMetNcPinterpDataFile::data_plane_array() -> " + mlog << Warning << "\nMetNcWrfDataFile::data_plane_array() -> " << "for \"" << vinfo.req_name() << "\" variable, the lead " << "time does not match the requested lead time: (" << sec_to_hhmmss(cur_plane.lead()) << " != " @@ -307,7 +307,7 @@ int MetNcPinterpDataFile::data_plane_array(VarInfo &vinfo, //////////////////////////////////////////////////////////////////////// -int MetNcPinterpDataFile::index(VarInfo &vinfo){ +int MetNcWrfDataFile::index(VarInfo &vinfo){ return -1; } diff --git a/src/libcode/vx_data2d_nc_pinterp/data2d_nc_pinterp.h b/src/libcode/vx_data2d_nc_wrf/data2d_nc_wrf.h similarity index 72% rename from src/libcode/vx_data2d_nc_pinterp/data2d_nc_pinterp.h rename to src/libcode/vx_data2d_nc_wrf/data2d_nc_wrf.h index 40ab3f88f0..0ecc8eb112 100644 --- a/src/libcode/vx_data2d_nc_pinterp/data2d_nc_pinterp.h +++ b/src/libcode/vx_data2d_nc_wrf/data2d_nc_wrf.h @@ -10,8 +10,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __MET_VX_DATA_2D_NC_PINTERP_H__ -#define __MET_VX_DATA_2D_NC_PINTERP_H__ +#ifndef __MET_VX_DATA_2D_NC_WRF_H__ +#define __MET_VX_DATA_2D_NC_WRF_H__ //////////////////////////////////////////////////////////////////////// @@ -21,33 +21,33 @@ #include "data_plane.h" #include "data_class.h" -#include "var_info_nc_pinterp.h" -#include "pinterp_file.h" +#include "var_info_nc_wrf.h" +#include "wrf_file.h" #include "two_to_one.h" //////////////////////////////////////////////////////////////////////// -class MetNcPinterpDataFile : public Met2dDataFile { +class MetNcWrfDataFile : public Met2dDataFile { private: - void nc_pinterp_init_from_scratch(); + void nc_wrf_init_from_scratch(); - MetNcPinterpDataFile(const MetNcPinterpDataFile &); - MetNcPinterpDataFile & operator=(const MetNcPinterpDataFile &); + MetNcWrfDataFile(const MetNcWrfDataFile &); + MetNcWrfDataFile & operator=(const MetNcWrfDataFile &); // // NetCDF file // - PinterpFile * PinterpNc; // allocated + WrfFile * WrfNc; // allocated public: - MetNcPinterpDataFile(); - ~MetNcPinterpDataFile(); + MetNcWrfDataFile(); + ~MetNcWrfDataFile(); // // set stuff @@ -87,13 +87,13 @@ class MetNcPinterpDataFile : public Met2dDataFile { //////////////////////////////////////////////////////////////////////// -inline GrdFileType MetNcPinterpDataFile::file_type () const { return ( FileType_NcPinterp ); } +inline GrdFileType MetNcWrfDataFile::file_type () const { return ( FileType_NcWrf ); } //////////////////////////////////////////////////////////////////////// -#endif /* __MET_VX_DATA_2D_NC_PINTERP_H__ */ +#endif /* __MET_VX_DATA_2D_NC_WRF_H__ */ //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_nc_pinterp/get_pinterp_grid.cc b/src/libcode/vx_data2d_nc_wrf/get_wrf_grid.cc similarity index 97% rename from src/libcode/vx_data2d_nc_pinterp/get_pinterp_grid.cc rename to src/libcode/vx_data2d_nc_wrf/get_wrf_grid.cc index eaed12bd01..e94fcec619 100644 --- a/src/libcode/vx_data2d_nc_pinterp/get_pinterp_grid.cc +++ b/src/libcode/vx_data2d_nc_wrf/get_wrf_grid.cc @@ -24,7 +24,7 @@ using namespace netCDF; #include "vx_math.h" #include "vx_nc_util.h" -#include "get_pinterp_grid.h" +#include "get_wrf_grid.h" //////////////////////////////////////////////////////////////////////// @@ -66,15 +66,15 @@ static double mercator_v_to_lat(double v); //////////////////////////////////////////////////////////////////////// -bool get_pinterp_grid(const char * pinterp_filename, Grid & grid) +bool get_wrf_grid(const char * wrf_filename, Grid & grid) { bool status = false; -NcFile nc(pinterp_filename, NcFile::read); +NcFile nc(wrf_filename, NcFile::read); -status = get_pinterp_grid(nc, grid); +status = get_wrf_grid(nc, grid); return ( status ); @@ -85,7 +85,7 @@ return ( status ); //////////////////////////////////////////////////////////////////////// -bool get_pinterp_grid(NcFile & nc, Grid & grid) +bool get_wrf_grid(netCDF::NcFile & nc, Grid & grid) { diff --git a/src/libcode/vx_data2d_nc_pinterp/get_pinterp_grid.h b/src/libcode/vx_data2d_nc_wrf/get_wrf_grid.h similarity index 77% rename from src/libcode/vx_data2d_nc_pinterp/get_pinterp_grid.h rename to src/libcode/vx_data2d_nc_wrf/get_wrf_grid.h index c3c1f45cb8..76f80391e7 100644 --- a/src/libcode/vx_data2d_nc_pinterp/get_pinterp_grid.h +++ b/src/libcode/vx_data2d_nc_wrf/get_wrf_grid.h @@ -14,8 +14,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __GET_PINTERP_GRID_H__ -#define __GET_PINTERP_GRID_H__ +#ifndef __GET_WRF_GRID_H__ +#define __GET_WRF_GRID_H__ //////////////////////////////////////////////////////////////////////// @@ -29,15 +29,15 @@ //////////////////////////////////////////////////////////////////////// -extern bool get_pinterp_grid(const char * pinterp_filename, Grid &); +extern bool get_wrf_grid(const char * wrf_filename, Grid & grid); -extern bool get_pinterp_grid(netCDF::NcFile &, Grid &); +extern bool get_wrf_grid(netCDF::NcFile & nc, Grid & grid); //////////////////////////////////////////////////////////////////////// -#endif /* __GET_PINTERP_GRID_H__ */ +#endif /* __GET_WRF_GRID_H__ */ //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_nc_pinterp/var_info_nc_pinterp.cc b/src/libcode/vx_data2d_nc_wrf/var_info_nc_wrf.cc similarity index 87% rename from src/libcode/vx_data2d_nc_pinterp/var_info_nc_pinterp.cc rename to src/libcode/vx_data2d_nc_wrf/var_info_nc_wrf.cc index f0e01dc6a6..eecf2270cb 100644 --- a/src/libcode/vx_data2d_nc_pinterp/var_info_nc_pinterp.cc +++ b/src/libcode/vx_data2d_nc_wrf/var_info_nc_wrf.cc @@ -8,7 +8,7 @@ /////////////////////////////////////////////////////////////////////////////// // -// Filename: var_info_nc_pinterp.cc +// Filename: var_info_nc_wrf.cc // // Description: // @@ -20,12 +20,13 @@ using namespace std; #include +#include #include #include #include #include "var_info.h" -#include "var_info_nc_pinterp.h" +#include "var_info_nc_wrf.h" #include "vx_math.h" #include "vx_util.h" @@ -33,25 +34,25 @@ using namespace std; /////////////////////////////////////////////////////////////////////////////// // -// Code for class VarInfoNcPinterp +// Code for class VarInfoNcWrf // /////////////////////////////////////////////////////////////////////////////// -VarInfoNcPinterp::VarInfoNcPinterp() { +VarInfoNcWrf::VarInfoNcWrf() { init_from_scratch(); } /////////////////////////////////////////////////////////////////////////////// -VarInfoNcPinterp::~VarInfoNcPinterp() { +VarInfoNcWrf::~VarInfoNcWrf() { clear(); } /////////////////////////////////////////////////////////////////////////////// -VarInfoNcPinterp::VarInfoNcPinterp(const VarInfoNcPinterp &f) { +VarInfoNcWrf::VarInfoNcWrf(const VarInfoNcWrf &f) { init_from_scratch(); @@ -60,7 +61,7 @@ VarInfoNcPinterp::VarInfoNcPinterp(const VarInfoNcPinterp &f) { /////////////////////////////////////////////////////////////////////////////// -VarInfoNcPinterp & VarInfoNcPinterp::operator=(const VarInfoNcPinterp &f) { +VarInfoNcWrf & VarInfoNcWrf::operator=(const VarInfoNcWrf &f) { if ( this == &f ) return ( *this ); @@ -71,7 +72,7 @@ VarInfoNcPinterp & VarInfoNcPinterp::operator=(const VarInfoNcPinterp &f) { /////////////////////////////////////////////////////////////////////////////// -void VarInfoNcPinterp::init_from_scratch() { +void VarInfoNcWrf::init_from_scratch() { // First call the parent's initialization VarInfo::init_from_scratch(); @@ -82,7 +83,7 @@ void VarInfoNcPinterp::init_from_scratch() { /////////////////////////////////////////////////////////////////////////////// -void VarInfoNcPinterp::assign(const VarInfoNcPinterp &v) { +void VarInfoNcWrf::assign(const VarInfoNcWrf &v) { int i; // First call the parent's assign @@ -98,7 +99,7 @@ void VarInfoNcPinterp::assign(const VarInfoNcPinterp &v) { /////////////////////////////////////////////////////////////////////////////// -void VarInfoNcPinterp::clear() { +void VarInfoNcWrf::clear() { // First call the parent's clear VarInfo::clear(); @@ -110,10 +111,10 @@ void VarInfoNcPinterp::clear() { /////////////////////////////////////////////////////////////////////////////// -void VarInfoNcPinterp::dump(ostream &out) const { +void VarInfoNcWrf::dump(ostream &out) const { // Dump out the contents - out << "VarInfoNcPinterp::dump():\n" + out << "VarInfoNcWrf::dump():\n" << " Dimension:\n"; Dimension.dump(out); out << " Is_offset:\n"; @@ -125,7 +126,7 @@ void VarInfoNcPinterp::dump(ostream &out) const { /////////////////////////////////////////////////////////////////////////////// -void VarInfoNcPinterp::add_dimension(int dim, bool as_offset, double dim_value) { +void VarInfoNcWrf::add_dimension(int dim, bool as_offset, double dim_value) { Dimension.add(dim); Is_offset.add(as_offset); Dim_value.add(dim_value); @@ -133,7 +134,7 @@ void VarInfoNcPinterp::add_dimension(int dim, bool as_offset, double dim_value) /////////////////////////////////////////////////////////////////////////////// -void VarInfoNcPinterp::clear_dimension() { +void VarInfoNcWrf::clear_dimension() { Dimension.clear(); Is_offset.clear(); Dim_value.clear(); @@ -141,17 +142,17 @@ void VarInfoNcPinterp::clear_dimension() { /////////////////////////////////////////////////////////////////////////////// -void VarInfoNcPinterp::set_dimension(int i_dim, int dim) { +void VarInfoNcWrf::set_dimension(int i_dim, int dim) { Dimension[i_dim] = dim; return; } /////////////////////////////////////////////////////////////////////////////// -void VarInfoNcPinterp::set_magic(const ConcatString &nstr, const ConcatString &lstr) { +void VarInfoNcWrf::set_magic(const ConcatString &nstr, const ConcatString &lstr) { ConcatString tmp_str; char *ptr = (char *) 0, *ptr2 = (char *) 0, *ptr3 = (char *) 0, *save_ptr = (char *) 0; - const char *method_name = "VarInfoNcPinterp::set_magic() -> "; + const char *method_name = "VarInfoNcWrf::set_magic() -> "; // Store the magic string VarInfo::set_magic(nstr, lstr); @@ -272,7 +273,7 @@ void VarInfoNcPinterp::set_magic(const ConcatString &nstr, const ConcatString &l /////////////////////////////////////////////////////////////////////////////// -void VarInfoNcPinterp::set_dict(Dictionary & dict) { +void VarInfoNcWrf::set_dict(Dictionary & dict) { VarInfo::set_dict(dict); @@ -285,7 +286,7 @@ void VarInfoNcPinterp::set_dict(Dictionary & dict) { /////////////////////////////////////////////////////////////////////////////// -bool VarInfoNcPinterp::is_precipitation() const { +bool VarInfoNcWrf::is_precipitation() const { // // Check set_attrs entry @@ -305,7 +306,7 @@ bool VarInfoNcPinterp::is_precipitation() const { /////////////////////////////////////////////////////////////////////////////// -bool VarInfoNcPinterp::is_specific_humidity() const { +bool VarInfoNcWrf::is_specific_humidity() const { // // Check set_attrs entry @@ -325,7 +326,7 @@ bool VarInfoNcPinterp::is_specific_humidity() const { /////////////////////////////////////////////////////////////////////////////// -bool VarInfoNcPinterp::is_u_wind() const { +bool VarInfoNcWrf::is_u_wind() const { // // Check set_attrs entry @@ -334,6 +335,11 @@ bool VarInfoNcPinterp::is_u_wind() const { return(SetAttrIsUWind != 0); } + // Check if the VarInfo name is U or U where is an integer + if( regex_match (Name.c_str(), regex("^U[0-9]*$") )) { + return true; + } + // // Check to see if the VarInfo name matches any of expected Pinterp // U-component of wind variables. @@ -345,7 +351,7 @@ bool VarInfoNcPinterp::is_u_wind() const { /////////////////////////////////////////////////////////////////////////////// -bool VarInfoNcPinterp::is_v_wind() const { +bool VarInfoNcWrf::is_v_wind() const { // // Check set_attrs entry @@ -354,6 +360,11 @@ bool VarInfoNcPinterp::is_v_wind() const { return(SetAttrIsVWind != 0); } + // Check if the VarInfo name is V or V where is an integer + if( regex_match (Name.c_str(), regex("^V[0-9]*$") )) { + return true; + } + // // Check to see if the VarInfo name matches any of expected Pinterp // V-component of wind variables. @@ -365,7 +376,7 @@ bool VarInfoNcPinterp::is_v_wind() const { /////////////////////////////////////////////////////////////////////////////// -bool VarInfoNcPinterp::is_wind_speed() const { +bool VarInfoNcWrf::is_wind_speed() const { // // Check set_attrs entry @@ -385,7 +396,7 @@ bool VarInfoNcPinterp::is_wind_speed() const { /////////////////////////////////////////////////////////////////////////////// -bool VarInfoNcPinterp::is_wind_direction() const { +bool VarInfoNcWrf::is_wind_direction() const { // // Check set_attrs entry @@ -400,7 +411,7 @@ bool VarInfoNcPinterp::is_wind_direction() const { /////////////////////////////////////////////////////////////////////////////// -bool VarInfoNcPinterp::is_grid_relative() const { +bool VarInfoNcWrf::is_grid_relative() const { // // Check to see if the VarInfo name matches any of expected Pinterp diff --git a/src/libcode/vx_data2d_nc_pinterp/var_info_nc_pinterp.h b/src/libcode/vx_data2d_nc_wrf/var_info_nc_wrf.h similarity index 84% rename from src/libcode/vx_data2d_nc_pinterp/var_info_nc_pinterp.h rename to src/libcode/vx_data2d_nc_wrf/var_info_nc_wrf.h index 61cc0204c0..182ad62d28 100644 --- a/src/libcode/vx_data2d_nc_pinterp/var_info_nc_pinterp.h +++ b/src/libcode/vx_data2d_nc_wrf/var_info_nc_wrf.h @@ -9,8 +9,8 @@ /////////////////////////////////////////////////////////////////////////////// -#ifndef __VAR_INFO_NC_PINTERP_H__ -#define __VAR_INFO_NC_PINTERP_H__ +#ifndef __VAR_INFO_NC_WRF_H__ +#define __VAR_INFO_NC_WRF_H__ /////////////////////////////////////////////////////////////////////////////// @@ -100,7 +100,9 @@ static const int n_pinterp_specific_humidity_names = static const char *pinterp_u_wind_names[] = { "UU", // x-wind component, m s-1 "TS_U", // Surface wind U-component, earth-relative - "UZ0" // U WIND COMPONENT AT ZNT, m s-1 + "UZ0", // U WIND COMPONENT AT ZNT, m s-1 + "U_PL", // x-wind on pressure levels from native WRF out + "U_ZL" // x-wind on z levels from native WRF out }; // @@ -121,7 +123,9 @@ static const int n_pinterp_u_wind_names = static const char *pinterp_v_wind_names[] = { "VV", // y-wind component, m s-1 "TS_V", // Surface wind V-component, earth-relative - "VZ0" // V WIND COMPONENT AT ZNT, m s-1 + "VZ0", // V WIND COMPONENT AT ZNT, m s-1 + "V_PL", // y-wind on pressure levels from native WRF out + "V_ZL" // y-wind on z levels from native WRF out }; // @@ -179,7 +183,7 @@ static const int n_pinterp_wind_speed_names = /////////////////////////////////////////////////////////////////////////////// -class VarInfoNcPinterp : public VarInfo +class VarInfoNcWrf : public VarInfo { private: @@ -192,14 +196,14 @@ class VarInfoNcPinterp : public VarInfo NumArray Dim_value; // Dimension values as float for extracting 2D field void init_from_scratch(); - void assign(const VarInfoNcPinterp &); + void assign(const VarInfoNcWrf &); void clear_dimension(); public: - VarInfoNcPinterp(); - ~VarInfoNcPinterp(); - VarInfoNcPinterp(const VarInfoNcPinterp &); - VarInfoNcPinterp & operator=(const VarInfoNcPinterp &); + VarInfoNcWrf(); + ~VarInfoNcWrf(); + VarInfoNcWrf(const VarInfoNcWrf &); + VarInfoNcWrf & operator=(const VarInfoNcWrf &); void dump(std::ostream &) const; void clear(); @@ -242,17 +246,17 @@ class VarInfoNcPinterp : public VarInfo /////////////////////////////////////////////////////////////////////////////// -inline GrdFileType VarInfoNcPinterp::file_type() const { return(FileType_NcPinterp); } -inline const LongArray & VarInfoNcPinterp::dimension() const { return(Dimension); } -inline int VarInfoNcPinterp::dimension(int i) const { return(Dimension[i]); } -inline int VarInfoNcPinterp::n_dimension() const { return(Dimension.n_elements()); } -inline const NumArray & VarInfoNcPinterp::dim_value() const { return(Dim_value); } -inline double VarInfoNcPinterp::dim_value(int i) const { return(Dim_value[i]); } -inline const BoolArray & VarInfoNcPinterp::is_offset() const { return(Is_offset); } -inline bool VarInfoNcPinterp::is_offset(int i) const { return(Is_offset[i]); } +inline GrdFileType VarInfoNcWrf::file_type() const { return(FileType_NcWrf); } +inline const LongArray & VarInfoNcWrf::dimension() const { return(Dimension); } +inline int VarInfoNcWrf::dimension(int i) const { return(Dimension[i]); } +inline int VarInfoNcWrf::n_dimension() const { return(Dimension.n_elements()); } +inline const NumArray & VarInfoNcWrf::dim_value() const { return(Dim_value); } +inline double VarInfoNcWrf::dim_value(int i) const { return(Dim_value[i]); } +inline const BoolArray & VarInfoNcWrf::is_offset() const { return(Is_offset); } +inline bool VarInfoNcWrf::is_offset(int i) const { return(Is_offset[i]); } /////////////////////////////////////////////////////////////////////////////// -#endif // __VAR_INFO_NC_PINTERP_H__ +#endif // __VAR_INFO_NC_WRF_H__ /////////////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_nc_pinterp/vx_data2d_nc_pinterp.h b/src/libcode/vx_data2d_nc_wrf/vx_data2d_nc_wrf.h similarity index 74% rename from src/libcode/vx_data2d_nc_pinterp/vx_data2d_nc_pinterp.h rename to src/libcode/vx_data2d_nc_wrf/vx_data2d_nc_wrf.h index e8094a0bba..dec1c38acd 100644 --- a/src/libcode/vx_data2d_nc_pinterp/vx_data2d_nc_pinterp.h +++ b/src/libcode/vx_data2d_nc_wrf/vx_data2d_nc_wrf.h @@ -14,23 +14,23 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __VX_DATA2D_NC_PINTERP_H__ -#define __VX_DATA2D_NC_PINTERP_H__ +#ifndef __VX_DATA2D_NC_WRF_H__ +#define __VX_DATA2D_NC_WRF_H__ //////////////////////////////////////////////////////////////////////// -#include "data2d_nc_pinterp.h" -#include "var_info_nc_pinterp.h" -#include "get_pinterp_grid.h" -#include "pinterp_file.h" +#include "data2d_nc_wrf.h" +#include "var_info_nc_wrf.h" +#include "get_wrf_grid.h" +#include "wrf_file.h" //////////////////////////////////////////////////////////////////////// -#endif // __VX_DATA2D_NC_PINTERP_H__ +#endif // __VX_DATA2D_NC_WRF_H__ //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_nc_pinterp/pinterp_file.cc b/src/libcode/vx_data2d_nc_wrf/wrf_file.cc similarity index 63% rename from src/libcode/vx_data2d_nc_pinterp/pinterp_file.cc rename to src/libcode/vx_data2d_nc_wrf/wrf_file.cc index b84aee3a9f..3232887525 100644 --- a/src/libcode/vx_data2d_nc_pinterp/pinterp_file.cc +++ b/src/libcode/vx_data2d_nc_wrf/wrf_file.cc @@ -27,18 +27,26 @@ using namespace netCDF; #include "vx_log.h" #include "vx_nc_util.h" -#include "pinterp_file.h" -#include "get_pinterp_grid.h" +#include "wrf_file.h" +#include "get_wrf_grid.h" //////////////////////////////////////////////////////////////////////// static const char x_dim_name [] = "west_east"; +static const char x_dim_stag_name [] = "west_east_stag"; +static const char x_dim_subgrid_name [] = "west_east_subgrid"; static const char y_dim_name [] = "south_north"; +static const char y_dim_stag_name [] = "south_north_stag"; +static const char y_dim_subgrid_name [] = "south_north_subgrid"; static const char t_dim_name [] = "time"; static const char z_dim_p_interp_name [] = "num_metgrid_levels"; static const char z_dim_wrf_interp_name[] = "vlevs"; +static const char z_dim_wrf_stag_name [] = "bottom_top_stag"; +static const char z_dim_wrf_name [] = "bottom_top"; +static const char z_dim_wrf_pres_name [] = "num_press_levels_stag"; +static const char z_dim_wrf_z_name [] = "num_z_levels_stag"; static const string strl_dim_name = "DateStrLen"; static const char times_var_name [] = "Times"; @@ -51,15 +59,16 @@ static const char second_var_name [] = "second"; static const char pressure_var_p_interp_name [] = "pressure"; static const char pressure_var_wrf_interp_name [] = "LEV"; +static const char pressure_var_wrf_name [] = "P_PL"; static const char pa_units_str [] = "Pa"; static const char hpa_units_str [] = "hPa"; static const string start_time_att_name = "START_DATE"; -static const int max_pinterp_args = 30; +static const int max_wrf_args = 30; -static const double pinterp_missing = 1.0e35; +static const double wrf_missing = 1.0e35; static const char *accum_var_names [] = { "ACGRDFLX", "CUPPT", "RAINC", "RAINNC", @@ -72,7 +81,7 @@ static const int n_accum_var_names = sizeof(accum_var_names)/sizeof(*accu static unixtime parse_init_time(const char *); -static bool is_bad_data_pinterp(double); +static bool is_bad_data_wrf(double); static bool is_accumulation(const char *); @@ -80,14 +89,14 @@ static bool is_accumulation(const char *); // - // Code for class PinterpFile + // Code for class WrfFile // //////////////////////////////////////////////////////////////////////// -PinterpFile::PinterpFile() +WrfFile::WrfFile() { @@ -99,7 +108,7 @@ init_from_scratch(); //////////////////////////////////////////////////////////////////////// -PinterpFile::~PinterpFile() +WrfFile::~WrfFile() { @@ -111,7 +120,7 @@ close(); //////////////////////////////////////////////////////////////////////// -void PinterpFile::init_from_scratch() +void WrfFile::init_from_scratch() { @@ -133,7 +142,7 @@ return; //////////////////////////////////////////////////////////////////////// -void PinterpFile::close() +void WrfFile::close() { @@ -147,7 +156,7 @@ Ndims = 0; DimNames.clear(); -Xdim = Ydim = Zdim = Tdim = (NcDim *) 0; +Tdim = (NcDim *) 0; Nvars = 0; @@ -157,10 +166,6 @@ InitTime = (unixtime) 0; Ntimes = 0; -PressureIndex = -1; - -hPaCF = 1.0; - // // done // @@ -173,7 +178,7 @@ return; //////////////////////////////////////////////////////////////////////// -bool PinterpFile::open(const char * filename) +bool WrfFile::open(const char * filename) { @@ -182,13 +187,13 @@ int month, day, year, hour, minute, second, str_len; char time_str[max_str_len]; string c; NcVar v; -const char *method_name = "PinterpFile::open() -> "; +const char *method_name = "WrfFile::open() -> "; close(); Nc = open_ncfile(filename); mlog << Debug(5) << "\n" << method_name - << "opend \"" << filename << "\".\n\n"; + << "open \"" << filename << "\".\n\n"; if ( IS_INVALID_NC_P(Nc) ) { close(); return ( false ); } @@ -196,7 +201,7 @@ if ( IS_INVALID_NC_P(Nc) ) { close(); return ( false ); } // grid // -if ( ! get_pinterp_grid(*Nc, grid) ) { close(); return ( false ); } +if ( !get_wrf_grid(*Nc, grid) ) { close(); return ( false ); } // // dimensions @@ -204,19 +209,13 @@ if ( ! get_pinterp_grid(*Nc, grid) ) { close(); return ( false ); } Ndims = get_dim_count(Nc); Dim = new NcDim*[Ndims]; -StringArray gDimNames; -get_dim_names(Nc, &gDimNames); +get_dim_names(Nc, &DimNames); for (j=0; j= Ntimes) ) { - mlog << Error << "\nPinterpFile::valid_time(int) const -> " + mlog << Error << "\nWrfFile::valid_time(int) const -> " << "range check error\n\n"; exit ( 1 ); @@ -504,13 +481,13 @@ return ( Time [n] ); //////////////////////////////////////////////////////////////////////// -int PinterpFile::lead_time(int n) const +int WrfFile::lead_time(int n) const { if ( (n < 0) || (n >= Ntimes) ) { - mlog << Error << "\nPinterpFile::lead_time(int) const -> " + mlog << Error << "\nWrfFile::lead_time(int) const -> " << "range check error\n\n"; exit ( 1 ); @@ -527,14 +504,13 @@ return ( (int) dt ); //////////////////////////////////////////////////////////////////////// -double PinterpFile::data(NcVar * var, const LongArray & a) const +double WrfFile::data(NcVar * var, const LongArray & a) const { - +const char *method_name = "WrfFile::data(NcVar *, const LongArray &) const -> "; if ( !args_ok(a) ) { - mlog << Error << "\nPinterpFile::data(NcVar *, const LongArray &) const -> " - << "bad arguments:\n"; + mlog << Error << "\n" << method_name << "bad arguments:\n"; a.dump(cerr); @@ -545,7 +521,7 @@ if ( !args_ok(a) ) { int dim_count = var->getDimCount(); if ( dim_count != a.n_elements() ) { - mlog << Error << "\nPinterpFile::data(NcVar *, const LongArray &) const -> " + mlog << Error << "\n" << method_name << "needed " << (dim_count) << " arguments for variable " << (GET_NC_NAME_P(var)) << ", got " << (a.n_elements()) << "\n\n"; @@ -553,9 +529,9 @@ if ( dim_count != a.n_elements() ) { } -if ( dim_count >= max_pinterp_args ) { +if (dim_count >= max_wrf_args ) { - mlog << Error << "\nPinterpFile::data(NcVar *, const LongArray &) const -> " + mlog << Error << "\n" << method_name << " too may arguments for variable \"" << (GET_NC_NAME_P(var)) << "\"\n\n"; exit ( 1 ); @@ -563,9 +539,6 @@ if ( dim_count >= max_pinterp_args ) { } bool status = false; -int i; -short s; -float f; double fill_value; double d = bad_data_double; double missing_value = get_var_missing_value(var); @@ -575,8 +548,7 @@ status = get_nc_data(var, &d, a); if ( !status ) { - mlog << Error << "\nPinterpFile::data(NcVar *, const LongArray &) const -> " - << " bad status for var->get()\n\n"; + mlog << Error << "\n" << method_name << " bad status for var->get()\n\n"; exit ( 1 ); } @@ -593,14 +565,13 @@ return ( d ); //////////////////////////////////////////////////////////////////////// -bool PinterpFile::data(NcVar * v, const LongArray & a, DataPlane & plane, double & pressure) const +bool WrfFile::data(NcVar * v, const LongArray & a, DataPlane & plane, double & pressure) const { - +const char *method_name = "WrfFile::data(NcVar *, const LongArray &, DataPlane &, double &) const -> "; if ( !args_ok(a) ) { - mlog << Warning << "\nPinterpFile::data(NcVar *, const LongArray &, DataPlane &, double &) const -> " - << "bad arguments:\n"; + mlog << Warning << "\n" << method_name << "bad arguments:\n"; a.dump(cerr); @@ -612,7 +583,7 @@ string var_name = GET_NC_NAME_P(v); int dim_count = v->getDimCount(); if ( dim_count != a.n_elements() ) { - mlog << Warning << "\nPinterpFile::data(NcVar *, const LongArray &, DataPlane &, double &) const -> " + mlog << Warning << "\n" << method_name << "needed " << dim_count << " arguments for variable " << (var_name) << ", got " << (a.n_elements()) << "\n\n"; @@ -620,9 +591,9 @@ if ( dim_count != a.n_elements() ) { } -if ( dim_count >= max_pinterp_args ) { +if (dim_count >= max_wrf_args ) { - mlog << Warning << "\nPinterpFile::data(NcVar *, const LongArray &, DataPlane &, double &) const -> " + mlog << Warning << "\n" << method_name << " too may arguments for variable \"" << (var_name) << "\"\n\n"; return ( false ); @@ -630,14 +601,12 @@ if ( dim_count >= max_pinterp_args ) { } -int j, count; +int j, k, count; int x, y; double value; bool found = false; NcVarInfo * var = (NcVarInfo *) 0; NcVarInfo * P = (NcVarInfo *) 0; -const int Nx = grid.nx(); -const int Ny = grid.ny(); LongArray b = a; pressure = bad_data_double; @@ -646,8 +615,6 @@ pressure = bad_data_double; // find varinfo's // -if ( PressureIndex >= 0 ) P = Var + PressureIndex; - found = false; for (j=0; j " + mlog << Warning << "\n" << method_name << "variable " << (var_name) << " not found!\n\n"; return ( false ); } + // check dimensions + StringArray varDimNames; + get_dim_names(var->var, &varDimNames); + string c, z_name; + for (k=0; k<(var->Ndims); ++k) { + c = to_lower(varDimNames[k]); + + // X dimension + if ( c.compare(x_dim_name) == 0 || + c.compare(x_dim_stag_name) == 0 || + c.compare(x_dim_subgrid_name) == 0) { + + var->x_slot = k; + + // track fields that need to be de-staggered in the X dimension + if ( c.compare(x_dim_stag_name) == 0 ) { + + var->x_stag = true; + + } + + // error if unsupported subgrid + if ( c.compare(x_dim_subgrid_name) == 0 ) { + + mlog << Error << "\n" << method_name + << "X Dimension \"" << x_dim_subgrid_name << "\" is not supported.\n\n"; + return ( false ); + + } + + } + // Y dimension + else if ( c.compare(y_dim_name) == 0 || + c.compare(y_dim_stag_name) == 0 || + c.compare(y_dim_subgrid_name) == 0 ) { + + var->y_slot = k; + + // track fields that need to be de-staggered in the Y dimension + if ( c.compare(y_dim_stag_name) == 0 ) { + + var->y_stag = true; + + } + + // error if unsupported subgrid + if ( c.compare(y_dim_subgrid_name) == 0 ) { + + mlog << Error << "\n" << method_name + << "Y Dimension \"" << y_dim_subgrid_name << "\" is not supported.\n\n"; + return ( false ); + + } + + } + // Z dimension + else if ( c.compare(z_dim_p_interp_name ) == 0 || + c.compare(z_dim_wrf_interp_name) == 0 || + c.compare(z_dim_wrf_name ) == 0 || + c.compare(z_dim_wrf_stag_name) == 0 || + c.compare(z_dim_wrf_pres_name) == 0 || + c.compare(z_dim_wrf_z_name ) == 0 ) { + + var->z_slot = k; + + // track fields that are on pressure levels + if ( c.compare(z_dim_p_interp_name) == 0 || + c.compare(z_dim_wrf_interp_name) == 0 || + c.compare(z_dim_wrf_pres_name) == 0 ) { + + var->is_pressure = true; + z_name = c; + + } + + // track fields that need to be de-staggered in the Z dimension + if ( c.compare(z_dim_wrf_stag_name) == 0 ) { + + var->z_stag = true; + + } + } + // T dimension + else if ( c.compare(t_dim_name) == 0 ) { + + var->t_slot = k; + + } + + } // end if k + + bool time_in_pressure = false; + double pressure_unit_conversion = 1.0; + + // if reading var on pressure, find pressure field that is on the same vertical (z) dimension as the var to read + if (var->is_pressure) { + + StringArray varNames; + get_var_names(Nc, &varNames); + + for (j = 0; j < Nvars; ++j) { + // + // get the pressure variable and store the hPa conversion factor + // + + if (varNames[j] == pressure_var_p_interp_name || + varNames[j] == pressure_var_wrf_interp_name || + varNames[j] == pressure_var_wrf_name) { + + varDimNames.clear(); + get_dim_names(Var[j].var, &varDimNames); + + // check that the z dimension matches the var to read + found = false; + for(k=0; k< Var[j].Ndims; k++){ + if(varDimNames[k] == z_name) { + found = true; + break; + } + } + + if(!found) { + continue; + } + + // set pressure field + P = Var + j; + + if (varNames[j] == pressure_var_wrf_name) { + + time_in_pressure = true; + + } + if (strcasecmp(Var[j].units_att.c_str(), pa_units_str) == 0) pressure_unit_conversion = 0.01; + else if (strcasecmp(Var[j].units_att.c_str(), hpa_units_str) == 0) pressure_unit_conversion = 1.0; + } + } + } + + // + // set nx and ny based on staggering of dimensions of the variable to read + // + const int Nx = var->x_stag ? grid.nx() + 1 : grid.nx(); + const int Ny = var->y_stag ? grid.ny() + 1 : grid.ny(); + // // check x_slot and y_slot // if ( var == nullptr || (var->x_slot < 0) || (var->y_slot < 0) ) { - mlog << Error - << "\nPinterpFile::data(NcVar *, const LongArray &, DataPlane &, double &) const -> " + mlog << Error << "\n" << method_name << "can't find needed dimensions(s) for variable \"" << var_name << "\" ... one of the dimensions may be staggered.\n\n"; @@ -694,8 +805,7 @@ for (j=0; j<(a.n_elements()); ++j) { if ( (j != var->x_slot) && (j != var->y_slot) ) { - mlog << Warning << "\nPinterpFile::data(NcVar *, const LongArray &, DataPlane &, double &) const -> " - << " star found in bad slot\n\n"; + mlog << Warning << "\n" << method_name << " star found in bad slot\n\n"; return ( false ); @@ -707,8 +817,7 @@ for (j=0; j<(a.n_elements()); ++j) { if ( count != 2 ) { - mlog << Warning << "\nPinterpFile::data(NcVar *, const LongArray &, DataPlane &, double &) const -> " - << " bad star count ... " << count << "\n\n"; + mlog << Warning << "\n" << method_name << " bad star count ... " << count << "\n\n"; return ( false ); @@ -724,8 +833,7 @@ const int z_slot = var->z_slot; if ( (x_slot < 0) || (y_slot < 0) ) { - mlog << Warning << "\nPinterpFile::data(NcVar *, const LongArray &, DataPlane &, double &) const -> " - << " bad x|y slot\n\n"; + mlog << Warning << "\n" << method_name << " bad x|y slot\n\n"; return ( false ); @@ -762,7 +870,7 @@ for (x=0; xx_stag, var->y_stag); + // // get the pressure // if ( P && z_slot > 0 ) { + mlog << Debug(3) << "Reading pressure field " << P->name << "\n"; + LongArray c; + if(time_in_pressure) c.add(a[var->t_slot]); + c.add(a[z_slot]); - pressure = data(P->var, c) * hPaCF; + pressure = data(P->var, c) * pressure_unit_conversion; } @@ -798,8 +913,8 @@ return ( true ); //////////////////////////////////////////////////////////////////////// -bool PinterpFile::data(const char * var_name, const LongArray & a, DataPlane & plane, - double & pressure, NcVarInfo *&info) const { +bool WrfFile::data(const char * var_name, const LongArray & a, DataPlane & plane, + double & pressure, NcVarInfo *&info) const { int time_index; bool found = false; @@ -822,7 +937,7 @@ bool PinterpFile::data(const char * var_name, const LongArray & a, DataPlane & p plane.set_lead ( lead_time(time_index) ); // - // since Pinterp files only contain WRF-ARW output, it is always a + // since Pinterp files only contain WRF-ARW output, it is always // a runtime accumulation // @@ -847,7 +962,7 @@ bool PinterpFile::data(const char * var_name, const LongArray & a, DataPlane & p //////////////////////////////////////////////////////////////////////// -bool PinterpFile::get_nc_var_info(const char *var_name, NcVarInfo *&info) const { +bool WrfFile::get_nc_var_info(const char *var_name, NcVarInfo *&info) const { bool found = false; if (nullptr == info) { @@ -911,11 +1026,11 @@ return ( t ); //////////////////////////////////////////////////////////////////////// -bool is_bad_data_pinterp(double v) +bool is_bad_data_wrf(double v) { -if ( v < pinterp_missing ) return ( false ); +if (v < wrf_missing ) return ( false ); else return ( true ); } diff --git a/src/libcode/vx_data2d_nc_pinterp/pinterp_file.h b/src/libcode/vx_data2d_nc_wrf/wrf_file.h similarity index 79% rename from src/libcode/vx_data2d_nc_pinterp/pinterp_file.h rename to src/libcode/vx_data2d_nc_wrf/wrf_file.h index dc5ff86f99..722dc26d01 100644 --- a/src/libcode/vx_data2d_nc_pinterp/pinterp_file.h +++ b/src/libcode/vx_data2d_nc_wrf/wrf_file.h @@ -14,8 +14,8 @@ //////////////////////////////////////////////////////////////////////// -#ifndef __MET_PINTERP_FILE_H__ -#define __MET_PINTERP_FILE_H__ +#ifndef __MET_WRF_FILE_H__ +#define __MET_WRF_FILE_H__ //////////////////////////////////////////////////////////////////////// @@ -34,19 +34,19 @@ //////////////////////////////////////////////////////////////////////// -class PinterpFile { +class WrfFile { private: void init_from_scratch(); - PinterpFile(const PinterpFile &); - PinterpFile & operator=(const PinterpFile &); + WrfFile(const WrfFile &); + WrfFile & operator=(const WrfFile &); public: - PinterpFile(); - ~PinterpFile(); + WrfFile(); + ~WrfFile(); bool open(const char * filename); @@ -80,9 +80,6 @@ class PinterpFile { StringArray DimNames; - netCDF::NcDim * Xdim; // not allocated - netCDF::NcDim * Ydim; // not allocated - netCDF::NcDim * Zdim; // not allocated netCDF::NcDim * Tdim; // not allocated // @@ -93,10 +90,6 @@ class PinterpFile { NcVarInfo * Var; // allocated - int PressureIndex; // index into Var array - - double hPaCF; // pressure to hPa conversion factor - // // Grid // @@ -121,7 +114,7 @@ class PinterpFile { //////////////////////////////////////////////////////////////////////// -#endif /* __MET_PINTERP_FILE_H__ */ +#endif /* __MET_WRF_FILE_H__ */ //////////////////////////////////////////////////////////////////////// diff --git a/src/libcode/vx_data2d_nccf/Makefile.am b/src/libcode/vx_data2d_nccf/Makefile.am deleted file mode 100644 index 4b606a8376..0000000000 --- a/src/libcode/vx_data2d_nccf/Makefile.am +++ /dev/null @@ -1,20 +0,0 @@ -## @start 1 -## Makefile.am -- Process this file with automake to produce Makefile.in -## @end 1 - -MAINTAINERCLEANFILES = Makefile.in - -# Include the project definitions - -include ${top_srcdir}/Make-include - -# The library - -noinst_LIBRARIES = libvx_data2d_nccf.a -libvx_data2d_nccf_a_SOURCES = \ - nccf_file.cc nccf_file.h \ - var_info_nccf.cc var_info_nccf.h \ - data2d_nccf.cc data2d_nccf.h \ - vx_data2d_nccf.h -libvx_data2d_nccf_a_CPPFLAGS = ${MET_CPPFLAGS} - diff --git a/src/libcode/vx_nc_util/nc_var_info.cc b/src/libcode/vx_nc_util/nc_var_info.cc index 834df56ac8..6159316080 100644 --- a/src/libcode/vx_nc_util/nc_var_info.cc +++ b/src/libcode/vx_nc_util/nc_var_info.cc @@ -151,6 +151,10 @@ if ( Dims ) { delete [] Dims; Dims = (NcDim **) 0; } x_slot = y_slot = z_slot = t_slot = -1; +x_stag = y_stag = z_stag = false; + +is_pressure = false; + // // done // @@ -213,10 +217,17 @@ if ( Dims ) { } -out << prefix << "x_slot = " << x_slot << "\n"; -out << prefix << "y_slot = " << y_slot << "\n"; -out << prefix << "z_slot = " << z_slot << "\n"; +out << prefix << "x_slot = " << x_slot; +if (x_stag) out << " (staggered)"; +out << "\n"; +out << prefix << "y_slot = " << y_slot; +if (y_stag) out << " (staggered)"; +out << "\n"; +out << prefix << "z_slot = " << z_slot; +if (z_stag) out << " (staggered)"; +out << "\n"; out << prefix << "t_slot = " << t_slot << "\n"; +out << prefix << "is_pressure = " << (is_pressure ? "true" : "false") << "\n"; // // done @@ -270,6 +281,12 @@ y_slot = i.y_slot; z_slot = i.z_slot; t_slot = i.t_slot; +x_stag = i.x_stag; +y_stag = i.y_stag; +z_stag = i.z_stag; + +is_pressure = i.is_pressure; + if ( i.Dims ) { Dims = new NcDim * [i.Ndims]; @@ -309,18 +326,18 @@ NcVarInfo *find_var_info_by_dim_name(NcVarInfo *vars, const string dim_name, } } + // if dimension variable is not found, find variable that has only dim_name or dim_name and time + int dim_offset = 0; if (!var) { - //StringArray dim_names; for (int i=0; i 2) continue; + dim_offset = vars[i].Ndims == 2 ? 1 : 0; + NcDim dim = get_nc_dim(vars[i].var, dim_offset); + if (IS_VALID_NC(dim) && GET_NC_NAME(dim) == dim_name) { + var = &vars[i]; + break; } + } } diff --git a/src/libcode/vx_nc_util/nc_var_info.h b/src/libcode/vx_nc_util/nc_var_info.h index 3ecc888ed3..04f422cd85 100644 --- a/src/libcode/vx_nc_util/nc_var_info.h +++ b/src/libcode/vx_nc_util/nc_var_info.h @@ -88,6 +88,12 @@ class NcVarInfo { int z_slot; // -1 if not defined int t_slot; // + bool x_stag; // are dimensions staggered + bool y_stag; + bool z_stag; + + bool is_pressure; // is variable on pressure levels + }; //////////////////////////////////////////////////////////////////////// diff --git a/src/tools/core/ensemble_stat/Makefile.am b/src/tools/core/ensemble_stat/Makefile.am index 5d87a3aa4c..d05ad256cc 100644 --- a/src/tools/core/ensemble_stat/Makefile.am +++ b/src/tools/core/ensemble_stat/Makefile.am @@ -24,8 +24,8 @@ ensemble_stat_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/core/ensemble_stat/Makefile.in b/src/tools/core/ensemble_stat/Makefile.in index d2c8c0d798..a960e21483 100644 --- a/src/tools/core/ensemble_stat/Makefile.in +++ b/src/tools/core/ensemble_stat/Makefile.in @@ -345,8 +345,8 @@ ensemble_stat_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/core/grid_stat/Makefile.am b/src/tools/core/grid_stat/Makefile.am index 4df815bed4..db4c9bba80 100644 --- a/src/tools/core/grid_stat/Makefile.am +++ b/src/tools/core/grid_stat/Makefile.am @@ -24,8 +24,8 @@ grid_stat_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/grid_stat/Makefile.in b/src/tools/core/grid_stat/Makefile.in index 2c8b909c39..30cc717d27 100644 --- a/src/tools/core/grid_stat/Makefile.in +++ b/src/tools/core/grid_stat/Makefile.in @@ -344,8 +344,8 @@ grid_stat_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/mode/Makefile.am b/src/tools/core/mode/Makefile.am index 72a35a6175..d8dc507385 100644 --- a/src/tools/core/mode/Makefile.am +++ b/src/tools/core/mode/Makefile.am @@ -43,8 +43,8 @@ mode_LDADD = -lvx_pxm \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/mode/Makefile.in b/src/tools/core/mode/Makefile.in index 249a93d1bb..741c5fea4f 100644 --- a/src/tools/core/mode/Makefile.in +++ b/src/tools/core/mode/Makefile.in @@ -381,8 +381,8 @@ mode_LDADD = -lvx_pxm \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/mode_analysis/Makefile.am b/src/tools/core/mode_analysis/Makefile.am index 1bff9fadc7..a905710fe6 100644 --- a/src/tools/core/mode_analysis/Makefile.am +++ b/src/tools/core/mode_analysis/Makefile.am @@ -26,8 +26,8 @@ mode_analysis_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/mode_analysis/Makefile.in b/src/tools/core/mode_analysis/Makefile.in index ce4e7bc477..334137147a 100644 --- a/src/tools/core/mode_analysis/Makefile.in +++ b/src/tools/core/mode_analysis/Makefile.in @@ -347,8 +347,8 @@ mode_analysis_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/pcp_combine/Makefile.am b/src/tools/core/pcp_combine/Makefile.am index 0206f497ca..189960810f 100644 --- a/src/tools/core/pcp_combine/Makefile.am +++ b/src/tools/core/pcp_combine/Makefile.am @@ -18,8 +18,8 @@ pcp_combine_LDADD = -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/pcp_combine/Makefile.in b/src/tools/core/pcp_combine/Makefile.in index 751ecc5b8a..44b0f69c50 100644 --- a/src/tools/core/pcp_combine/Makefile.in +++ b/src/tools/core/pcp_combine/Makefile.in @@ -335,8 +335,8 @@ pcp_combine_LDADD = -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/point_stat/Makefile.am b/src/tools/core/point_stat/Makefile.am index 39b45fcb1b..bbd9b9c142 100644 --- a/src/tools/core/point_stat/Makefile.am +++ b/src/tools/core/point_stat/Makefile.am @@ -23,8 +23,8 @@ point_stat_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/core/point_stat/Makefile.in b/src/tools/core/point_stat/Makefile.in index ccaa3f8e36..81735f1efb 100644 --- a/src/tools/core/point_stat/Makefile.in +++ b/src/tools/core/point_stat/Makefile.in @@ -343,8 +343,8 @@ point_stat_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/core/series_analysis/Makefile.am b/src/tools/core/series_analysis/Makefile.am index 24f14c90e8..7d57a6db6f 100644 --- a/src/tools/core/series_analysis/Makefile.am +++ b/src/tools/core/series_analysis/Makefile.am @@ -24,8 +24,8 @@ series_analysis_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/series_analysis/Makefile.in b/src/tools/core/series_analysis/Makefile.in index 9c68f8f191..2e26c49701 100644 --- a/src/tools/core/series_analysis/Makefile.in +++ b/src/tools/core/series_analysis/Makefile.in @@ -346,8 +346,8 @@ series_analysis_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/stat_analysis/Makefile.am b/src/tools/core/stat_analysis/Makefile.am index f73b415ca2..1f26904bf5 100644 --- a/src/tools/core/stat_analysis/Makefile.am +++ b/src/tools/core/stat_analysis/Makefile.am @@ -27,8 +27,8 @@ stat_analysis_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/stat_analysis/Makefile.in b/src/tools/core/stat_analysis/Makefile.in index 9d0b3c78ea..168c3da589 100644 --- a/src/tools/core/stat_analysis/Makefile.in +++ b/src/tools/core/stat_analysis/Makefile.in @@ -354,8 +354,8 @@ stat_analysis_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/stat_analysis/aggr_stat_line.cc b/src/tools/core/stat_analysis/aggr_stat_line.cc index 5487b1fd3f..3c8395a09c 100644 --- a/src/tools/core/stat_analysis/aggr_stat_line.cc +++ b/src/tools/core/stat_analysis/aggr_stat_line.cc @@ -52,7 +52,7 @@ using namespace std; #include "vx_log.h" #include "vx_data2d_grib.h" -#include "vx_data2d_nc_pinterp.h" +#include "vx_data2d_nc_wrf.h" #include "aggr_stat_line.h" #include "parse_stat_line.h" diff --git a/src/tools/core/wavelet_stat/Makefile.am b/src/tools/core/wavelet_stat/Makefile.am index 398ce49dcf..89ed171482 100644 --- a/src/tools/core/wavelet_stat/Makefile.am +++ b/src/tools/core/wavelet_stat/Makefile.am @@ -30,8 +30,8 @@ wavelet_stat_LDADD = -lvx_pxm \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/core/wavelet_stat/Makefile.in b/src/tools/core/wavelet_stat/Makefile.in index bb37d28807..96490833a2 100644 --- a/src/tools/core/wavelet_stat/Makefile.in +++ b/src/tools/core/wavelet_stat/Makefile.in @@ -351,8 +351,8 @@ wavelet_stat_LDADD = -lvx_pxm \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/dev_utils/Makefile.am b/src/tools/dev_utils/Makefile.am index 6aa78046a9..b4463c983f 100644 --- a/src/tools/dev_utils/Makefile.am +++ b/src/tools/dev_utils/Makefile.am @@ -126,8 +126,8 @@ gen_climo_bin_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/dev_utils/Makefile.in b/src/tools/dev_utils/Makefile.in index 5ddb1db20b..e9b745a97f 100644 --- a/src/tools/dev_utils/Makefile.in +++ b/src/tools/dev_utils/Makefile.in @@ -580,8 +580,8 @@ gen_climo_bin_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/ascii2nc/Makefile.am b/src/tools/other/ascii2nc/Makefile.am index f4cef08512..0647687561 100644 --- a/src/tools/other/ascii2nc/Makefile.am +++ b/src/tools/other/ascii2nc/Makefile.am @@ -42,8 +42,8 @@ ascii2nc_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/ascii2nc/Makefile.in b/src/tools/other/ascii2nc/Makefile.in index ea6e06e27f..4c364feb94 100644 --- a/src/tools/other/ascii2nc/Makefile.in +++ b/src/tools/other/ascii2nc/Makefile.in @@ -404,8 +404,8 @@ ascii2nc_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/gen_ens_prod/Makefile.am b/src/tools/other/gen_ens_prod/Makefile.am index 75ddde6311..b9b5e8a186 100644 --- a/src/tools/other/gen_ens_prod/Makefile.am +++ b/src/tools/other/gen_ens_prod/Makefile.am @@ -24,8 +24,8 @@ gen_ens_prod_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/gen_ens_prod/Makefile.in b/src/tools/other/gen_ens_prod/Makefile.in index 285f993f59..8586403cb6 100644 --- a/src/tools/other/gen_ens_prod/Makefile.in +++ b/src/tools/other/gen_ens_prod/Makefile.in @@ -345,8 +345,8 @@ gen_ens_prod_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/gen_vx_mask/Makefile.am b/src/tools/other/gen_vx_mask/Makefile.am index c936c2f0f5..cbc2af0337 100644 --- a/src/tools/other/gen_vx_mask/Makefile.am +++ b/src/tools/other/gen_vx_mask/Makefile.am @@ -21,8 +21,8 @@ gen_vx_mask_LDADD = -lvx_shapedata \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/gen_vx_mask/Makefile.in b/src/tools/other/gen_vx_mask/Makefile.in index 638ca649b7..0454fcc726 100644 --- a/src/tools/other/gen_vx_mask/Makefile.in +++ b/src/tools/other/gen_vx_mask/Makefile.in @@ -337,8 +337,8 @@ gen_vx_mask_LDADD = -lvx_shapedata \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/grid_diag/Makefile.am b/src/tools/other/grid_diag/Makefile.am index 8c55950475..59e735bf05 100644 --- a/src/tools/other/grid_diag/Makefile.am +++ b/src/tools/other/grid_diag/Makefile.am @@ -24,8 +24,8 @@ grid_diag_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/grid_diag/Makefile.in b/src/tools/other/grid_diag/Makefile.in index 765eb7ce9c..c93be79561 100644 --- a/src/tools/other/grid_diag/Makefile.in +++ b/src/tools/other/grid_diag/Makefile.in @@ -344,8 +344,8 @@ grid_diag_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/gsi_tools/Makefile.am b/src/tools/other/gsi_tools/Makefile.am index 54cf2cb4da..9afe2e37a1 100644 --- a/src/tools/other/gsi_tools/Makefile.am +++ b/src/tools/other/gsi_tools/Makefile.am @@ -41,8 +41,8 @@ gsid2mpr_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ @@ -92,8 +92,8 @@ gsidens2orank_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/gsi_tools/Makefile.in b/src/tools/other/gsi_tools/Makefile.in index 37a6a37ebf..c7f068cfd9 100644 --- a/src/tools/other/gsi_tools/Makefile.in +++ b/src/tools/other/gsi_tools/Makefile.in @@ -396,8 +396,8 @@ gsid2mpr_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ @@ -448,8 +448,8 @@ gsidens2orank_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/ioda2nc/Makefile.am b/src/tools/other/ioda2nc/Makefile.am index d393417c51..9694454dac 100644 --- a/src/tools/other/ioda2nc/Makefile.am +++ b/src/tools/other/ioda2nc/Makefile.am @@ -23,8 +23,8 @@ ioda2nc_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/ioda2nc/Makefile.in b/src/tools/other/ioda2nc/Makefile.in index a4b16c47aa..37f335deae 100644 --- a/src/tools/other/ioda2nc/Makefile.in +++ b/src/tools/other/ioda2nc/Makefile.in @@ -356,8 +356,8 @@ ioda2nc_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/lidar2nc/Makefile.am b/src/tools/other/lidar2nc/Makefile.am index 5692fe6373..58f35de02a 100644 --- a/src/tools/other/lidar2nc/Makefile.am +++ b/src/tools/other/lidar2nc/Makefile.am @@ -24,7 +24,7 @@ lidar2nc_LDADD = -lvx_shapedata \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/lidar2nc/Makefile.in b/src/tools/other/lidar2nc/Makefile.in index 2f6da2bc07..e5d3703780 100644 --- a/src/tools/other/lidar2nc/Makefile.in +++ b/src/tools/other/lidar2nc/Makefile.in @@ -358,7 +358,7 @@ lidar2nc_LDADD = -lvx_shapedata \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/madis2nc/Makefile.am b/src/tools/other/madis2nc/Makefile.am index 0cfef882c0..28da7d16cb 100644 --- a/src/tools/other/madis2nc/Makefile.am +++ b/src/tools/other/madis2nc/Makefile.am @@ -22,8 +22,8 @@ madis2nc_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/madis2nc/Makefile.in b/src/tools/other/madis2nc/Makefile.in index 7055ee7a03..c6eb822fc3 100644 --- a/src/tools/other/madis2nc/Makefile.in +++ b/src/tools/other/madis2nc/Makefile.in @@ -341,8 +341,8 @@ madis2nc_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/mode_time_domain/Makefile.am b/src/tools/other/mode_time_domain/Makefile.am index 93fed7d4bb..34ad4461ee 100644 --- a/src/tools/other/mode_time_domain/Makefile.am +++ b/src/tools/other/mode_time_domain/Makefile.am @@ -53,8 +53,8 @@ mtd_LDADD = -lvx_pxm \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/mode_time_domain/Makefile.in b/src/tools/other/mode_time_domain/Makefile.in index 332ca93ac2..3f3d8b446a 100644 --- a/src/tools/other/mode_time_domain/Makefile.in +++ b/src/tools/other/mode_time_domain/Makefile.in @@ -413,8 +413,8 @@ mtd_LDADD = -lvx_pxm \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/modis_regrid/Makefile.am b/src/tools/other/modis_regrid/Makefile.am index 75b2bfaccc..0bb3fc7cb5 100644 --- a/src/tools/other/modis_regrid/Makefile.am +++ b/src/tools/other/modis_regrid/Makefile.am @@ -32,11 +32,11 @@ modis_regrid_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/modis_regrid/Makefile.in b/src/tools/other/modis_regrid/Makefile.in index 65c244e36a..68ff194a77 100644 --- a/src/tools/other/modis_regrid/Makefile.in +++ b/src/tools/other/modis_regrid/Makefile.in @@ -361,11 +361,11 @@ modis_regrid_LDADD = -lvx_pxm \ -lvx_analysis_util \ -lvx_data2d_factory \ -lvx_data2d_nc_met \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_cf \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/pb2nc/Makefile.am b/src/tools/other/pb2nc/Makefile.am index 5de5fc4210..f898c62c60 100644 --- a/src/tools/other/pb2nc/Makefile.am +++ b/src/tools/other/pb2nc/Makefile.am @@ -40,8 +40,8 @@ pb2nc_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/pb2nc/Makefile.in b/src/tools/other/pb2nc/Makefile.in index 06d60500ae..05629adb61 100644 --- a/src/tools/other/pb2nc/Makefile.in +++ b/src/tools/other/pb2nc/Makefile.in @@ -383,8 +383,8 @@ pb2nc_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/plot_data_plane/Makefile.am b/src/tools/other/plot_data_plane/Makefile.am index 5251524faa..bbbb6a3672 100644 --- a/src/tools/other/plot_data_plane/Makefile.am +++ b/src/tools/other/plot_data_plane/Makefile.am @@ -18,8 +18,8 @@ plot_data_plane_LDADD = -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/plot_data_plane/Makefile.in b/src/tools/other/plot_data_plane/Makefile.in index eb0af931e5..fcf2a525cf 100644 --- a/src/tools/other/plot_data_plane/Makefile.in +++ b/src/tools/other/plot_data_plane/Makefile.in @@ -337,8 +337,8 @@ plot_data_plane_LDADD = -lvx_data2d_factory \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/plot_data_plane/plot_data_plane.cc b/src/tools/other/plot_data_plane/plot_data_plane.cc index 646e51066f..d5a46be2ee 100644 --- a/src/tools/other/plot_data_plane/plot_data_plane.cc +++ b/src/tools/other/plot_data_plane/plot_data_plane.cc @@ -49,7 +49,7 @@ using namespace std; #include "vx_data2d_factory.h" #include "vx_data2d_grib.h" #include "vx_data2d_nc_met.h" -#include "vx_data2d_nc_pinterp.h" +#include "vx_data2d_nc_wrf.h" #include "vx_util.h" #include "vx_cal.h" #include "vx_grid.h" diff --git a/src/tools/other/plot_point_obs/Makefile.am b/src/tools/other/plot_point_obs/Makefile.am index 17dbb404e0..b4255f71a5 100644 --- a/src/tools/other/plot_point_obs/Makefile.am +++ b/src/tools/other/plot_point_obs/Makefile.am @@ -20,8 +20,8 @@ plot_point_obs_LDADD = -lvx_statistics \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/plot_point_obs/Makefile.in b/src/tools/other/plot_point_obs/Makefile.in index c5e166b45c..18b81a273c 100644 --- a/src/tools/other/plot_point_obs/Makefile.in +++ b/src/tools/other/plot_point_obs/Makefile.in @@ -341,8 +341,8 @@ plot_point_obs_LDADD = -lvx_statistics \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/point2grid/Makefile.am b/src/tools/other/point2grid/Makefile.am index 17b0987b89..4eb9f6e374 100644 --- a/src/tools/other/point2grid/Makefile.am +++ b/src/tools/other/point2grid/Makefile.am @@ -20,8 +20,8 @@ point2grid_LDADD = -lvx_statistics \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/point2grid/Makefile.in b/src/tools/other/point2grid/Makefile.in index 35e9722171..17f72484ab 100644 --- a/src/tools/other/point2grid/Makefile.in +++ b/src/tools/other/point2grid/Makefile.in @@ -352,8 +352,8 @@ point2grid_LDADD = -lvx_statistics \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/regrid_data_plane/Makefile.am b/src/tools/other/regrid_data_plane/Makefile.am index e6ed355083..8d61f70608 100644 --- a/src/tools/other/regrid_data_plane/Makefile.am +++ b/src/tools/other/regrid_data_plane/Makefile.am @@ -19,8 +19,8 @@ regrid_data_plane_LDADD = -lvx_statistics \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/regrid_data_plane/Makefile.in b/src/tools/other/regrid_data_plane/Makefile.in index 1cf17714f2..61c475b1ae 100644 --- a/src/tools/other/regrid_data_plane/Makefile.in +++ b/src/tools/other/regrid_data_plane/Makefile.in @@ -339,8 +339,8 @@ regrid_data_plane_LDADD = -lvx_statistics \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/regrid_data_plane/regrid_data_plane.cc b/src/tools/other/regrid_data_plane/regrid_data_plane.cc index 6b3076b029..a37cda1803 100644 --- a/src/tools/other/regrid_data_plane/regrid_data_plane.cc +++ b/src/tools/other/regrid_data_plane/regrid_data_plane.cc @@ -329,10 +329,7 @@ void process_data_file() { if(VarNameSA.n() == 0) { vname << cs_erase << vinfo->name_attr(); if(vinfo->level().type() != LevelType_Accum && - ftype != FileType_NcMet && - ftype != FileType_General_Netcdf && - ftype != FileType_NcPinterp && - ftype != FileType_NcCF) { + !is_netcdf_grdfiletype(ftype)) { vname << "_" << vinfo->level_attr(); } } diff --git a/src/tools/other/shift_data_plane/Makefile.am b/src/tools/other/shift_data_plane/Makefile.am index d4854a1f75..badfdb6922 100644 --- a/src/tools/other/shift_data_plane/Makefile.am +++ b/src/tools/other/shift_data_plane/Makefile.am @@ -19,8 +19,8 @@ shift_data_plane_LDADD = -lvx_statistics \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/shift_data_plane/Makefile.in b/src/tools/other/shift_data_plane/Makefile.in index 6c53dfcdc4..4eb7b7f50b 100644 --- a/src/tools/other/shift_data_plane/Makefile.in +++ b/src/tools/other/shift_data_plane/Makefile.in @@ -339,8 +339,8 @@ shift_data_plane_LDADD = -lvx_statistics \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/other/shift_data_plane/shift_data_plane.cc b/src/tools/other/shift_data_plane/shift_data_plane.cc index 8402c0d2d8..4ceeaa6a41 100644 --- a/src/tools/other/shift_data_plane/shift_data_plane.cc +++ b/src/tools/other/shift_data_plane/shift_data_plane.cc @@ -313,10 +313,7 @@ void write_netcdf(const DataPlane &dp, const Grid &grid, // Define output variable and attributes cs << cs_erase << vinfo->name_attr(); if(vinfo->level().type() != LevelType_Accum && - ftype != FileType_NcMet && - ftype != FileType_General_Netcdf && - ftype != FileType_NcPinterp && - ftype != FileType_NcCF) { + !is_netcdf_grdfiletype(ftype)) { cs << "_" << vinfo->level_attr(); } diff --git a/src/tools/other/wwmca_tool/Makefile.am b/src/tools/other/wwmca_tool/Makefile.am index 73603061ad..6731f3af4c 100644 --- a/src/tools/other/wwmca_tool/Makefile.am +++ b/src/tools/other/wwmca_tool/Makefile.am @@ -42,8 +42,8 @@ wwmca_regrid_LDADD = -lvx_pxm \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ @@ -91,8 +91,8 @@ wwmca_plot_LDADD = -lvx_pxm \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/other/wwmca_tool/Makefile.in b/src/tools/other/wwmca_tool/Makefile.in index f11d548391..972b3f9255 100644 --- a/src/tools/other/wwmca_tool/Makefile.in +++ b/src/tools/other/wwmca_tool/Makefile.in @@ -421,8 +421,8 @@ wwmca_regrid_LDADD = -lvx_pxm \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ @@ -471,8 +471,8 @@ wwmca_plot_LDADD = -lvx_pxm \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_data2d \ diff --git a/src/tools/tc_utils/rmw_analysis/Makefile.am b/src/tools/tc_utils/rmw_analysis/Makefile.am index 46dfff3df2..2ebbe9a79e 100644 --- a/src/tools/tc_utils/rmw_analysis/Makefile.am +++ b/src/tools/tc_utils/rmw_analysis/Makefile.am @@ -24,8 +24,8 @@ rmw_analysis_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/tc_utils/rmw_analysis/Makefile.in b/src/tools/tc_utils/rmw_analysis/Makefile.in index 96b646a99a..9a89e51057 100644 --- a/src/tools/tc_utils/rmw_analysis/Makefile.in +++ b/src/tools/tc_utils/rmw_analysis/Makefile.in @@ -345,8 +345,8 @@ rmw_analysis_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/tc_utils/tc_diag/Makefile.am b/src/tools/tc_utils/tc_diag/Makefile.am index 111277e4e8..4553fc0c8c 100644 --- a/src/tools/tc_utils/tc_diag/Makefile.am +++ b/src/tools/tc_utils/tc_diag/Makefile.am @@ -25,8 +25,8 @@ tc_diag_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/tc_utils/tc_diag/Makefile.in b/src/tools/tc_utils/tc_diag/Makefile.in index 89c097ddb9..b884c28f85 100644 --- a/src/tools/tc_utils/tc_diag/Makefile.in +++ b/src/tools/tc_utils/tc_diag/Makefile.in @@ -348,8 +348,8 @@ tc_diag_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/tc_utils/tc_gen/Makefile.am b/src/tools/tc_utils/tc_gen/Makefile.am index 2cc13426ff..3d9bc7003e 100644 --- a/src/tools/tc_utils/tc_gen/Makefile.am +++ b/src/tools/tc_utils/tc_gen/Makefile.am @@ -25,8 +25,8 @@ tc_gen_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/tc_utils/tc_gen/Makefile.in b/src/tools/tc_utils/tc_gen/Makefile.in index 263c36b038..97b0b5994f 100644 --- a/src/tools/tc_utils/tc_gen/Makefile.in +++ b/src/tools/tc_utils/tc_gen/Makefile.in @@ -346,8 +346,8 @@ tc_gen_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/tc_utils/tc_pairs/Makefile.am b/src/tools/tc_utils/tc_pairs/Makefile.am index c44cd9b3ca..c4ccfa7d43 100644 --- a/src/tools/tc_utils/tc_pairs/Makefile.am +++ b/src/tools/tc_utils/tc_pairs/Makefile.am @@ -27,8 +27,8 @@ tc_pairs_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/tc_utils/tc_pairs/Makefile.in b/src/tools/tc_utils/tc_pairs/Makefile.in index ef0f4a5583..736cb2afe3 100644 --- a/src/tools/tc_utils/tc_pairs/Makefile.in +++ b/src/tools/tc_utils/tc_pairs/Makefile.in @@ -372,8 +372,8 @@ tc_pairs_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/tc_utils/tc_rmw/Makefile.am b/src/tools/tc_utils/tc_rmw/Makefile.am index 4bb5c11475..d1c8d9dbd1 100644 --- a/src/tools/tc_utils/tc_rmw/Makefile.am +++ b/src/tools/tc_utils/tc_rmw/Makefile.am @@ -25,8 +25,8 @@ tc_rmw_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/tc_utils/tc_rmw/Makefile.in b/src/tools/tc_utils/tc_rmw/Makefile.in index 05d4f518e3..0c5220595a 100644 --- a/src/tools/tc_utils/tc_rmw/Makefile.in +++ b/src/tools/tc_utils/tc_rmw/Makefile.in @@ -348,8 +348,8 @@ tc_rmw_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/tc_utils/tc_stat/Makefile.am b/src/tools/tc_utils/tc_stat/Makefile.am index 8a53668656..5f1661cf5c 100644 --- a/src/tools/tc_utils/tc_stat/Makefile.am +++ b/src/tools/tc_utils/tc_stat/Makefile.am @@ -27,8 +27,8 @@ tc_stat_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \ diff --git a/src/tools/tc_utils/tc_stat/Makefile.in b/src/tools/tc_utils/tc_stat/Makefile.in index 91e9944932..24bba4f72e 100644 --- a/src/tools/tc_utils/tc_stat/Makefile.in +++ b/src/tools/tc_utils/tc_stat/Makefile.in @@ -350,8 +350,8 @@ tc_stat_LDADD = -lvx_stat_out \ -lvx_data2d_nc_met \ -lvx_data2d_grib \ $(GRIB2_MET_LIBS) \ - -lvx_data2d_nc_pinterp \ - -lvx_data2d_nccf \ + -lvx_data2d_nc_wrf \ + -lvx_data2d_nc_cf \ $(UGRID_MET_LIBS) \ $(PYTHON_MET_LIBS) \ -lvx_statistics \