Known Issues and Fixes for METv3.0

All Recommended Updates (Last Updated 11/14/2011)

Retrieve all of the recommended updates for METv3.0 in a tarfile:
  • Download the tarfile METv3.0_patches_20111114.tar.gz
  • Copy it into the top-level METv3.0 directory.
  • Uncompress and untar the file. Please note that the new version of the files in the tarball will overwrite the original version of those files. Any changes you may have made will be lost.
  • Rebuild MET, being sure perform a make clean first.

Summary of Recommended Updates

  • 09/30/2010: Users compiling BUFRLIB with the GNU gfortran compiler should replace "BUFRLIB/nvnwin.f" with nvnwin.f
  • 10/04/2010: Users compiling MET with GNU versions 4.4.3 and later should apply the patches listed above.
  • 10/05/2010: Vertical level matching logic in Point-Stat when using a generic level type (e.g. "RH/L1"). Replace "METv3.0/lib/vx_met_util/pair_data.cc" with METv3.0/lib/vx_met_util/pair_data.cc.
  • 10/06/2010: Corrections to the MET Users Guide.
  • 11/05/2010: Enhancements to ensure that MET uses unique temporary file names.
  • 11/23/2010: Fix for reading a single pressure level from p_interp data.
  • 11/24/2010: Fix for applying valid and lead time search criteria when deriving wind speed and/or direction.
  • 12/15/2010: Fix for parsing the abbreviation string for the pressure GRIB code value of 1.
  • 01/10/2011: Fix for computing normal confidence intervals for categorical statistics when the number of matched pairs is large. Fix for using GRIB files to perform data masking.
  • 01/19/2011: Updates to the MET Users Guide.
  • 02/15/2011: Fix for handling of the event_stack_flag in PB2NC.
  • 03/28/2011: Fix for handling the GRIB bitmap section for all settings of the scanning mode flags in the grid description section.
  • 03/30/2011: Bugfix for probabilistic output in the PJC and PRC line types.
  • 04/19/2011: Bugfix for pcp_combine -add option.
  • 06/01/2011: Bugfix pb2nc -pbfile option for PGI compilers.
  • 06/09/2011: Bugfix for computing standard deviation for values very close to zero.
  • 06/09/2011: Bugfix for parsing MET output from pinterp in the analysis tools.
  • 07/15/2011: Precision error bugfix for thresholding data using strict inequalities, like < and >, when the value and the threshold are exactly equal.
  • 08/25/2011: Change tolerance used to determine when two numbers are equal.
  • 11/14/2011: Bugfix for the pcp_combine -add option in the handling of missing data.

External Libraries

Bug in BUFRLIB for the GNU gfortran compiler
Posted 09/30/2010

Problem: When compiling the external BUFRLIB library using the GNU gfortran compiler, there is a bug in one of the files that will lead to a compilation failure in MET. Users of gfortran should expect to see two warning messages when compiling BUFRLIB from the files nemock.f and stndrd.f. These warning messages cause no problems for MET. However, a third file, nvnwin.f, produces a compilation error in BUFRLIB which leads to a compilation failure in MET.
Solution: The fix is updating the BUFRLIB nvnwin.f source file. Please replace the file "BUFRLIB/nvnwin.f" with the contents of nvnwin.f, rebuild BUFRLIB, and rebuild MET.

Problems building GSL-1.12 (and later) with PGI
Posted 09/30/2010

Problem: GSL-1.12 doesn't build correctly with the PGI compilers.
Solution: A bug report has been submitted to the GSL development team. In the meantime, PGI users should build GSL-1.11 which is also compatible with MET.

MET Libraries

Problem compiling MET with GNU versions 4.4.3 and later.
Posted 10/04/2010

Problem: MET has compilation errors when built with GNU versions 4.4.3 and later.
Solution: The fix is to add in a few more include files.
Update: METv3.0/lib/vx_met_util/grid_output.cc
Update: METv3.0/lib/vx_data_grids/latlon_grid.cc
Update: METv3.0/lib/vx_data_grids/lc_grid.cc
Update: METv3.0/lib/vx_data_grids/merc_grid.cc
And then recompile MET.

Potential problem of non-unique temporary file names.
Posted 11/05/2010

Problem: When running many instances of the Point-Stat tool simultaneously, one user reported potential conflicts caused by non-unique temporary file names. The MET tools embed the process id (pid) in each temporary file name but that logic may not be sufficient for uniqueness on all systems.
Solution: The solution requires a more robust naming convention that checks for uniqueness before creating new temporary files.
Update: METv3.0/src/pb2nc/pb2nc.cc
Update: METv3.0/src/stat_analysis/stat_analysis.cc
Update: METv3.0/lib/vx_met_util/compute_ci.cc
Update: METv3.0/lib/vx_util/Makefile
Update: METv3.0/lib/vx_util/vx_util.h
ADD NEW: METv3.0/lib/vx_util/temp_file.h
ADD NEW: METv3.0/lib/vx_util/temp_file.cc
And then recompile MET.

Deriving wind speed and direction while requesting a specific lead and/or valid time.
Posted 11/24/2010

Problem: When deriving records for wind speed and direction from the U and V components, the command line arguments for requesting specific lead and/or valid times were being ignored.
Solution: The solution requires adding two additional arguments to specify the requested lead and/or valid time.
Update: METv3.0/lib/vx_met_util/read_grib.h
Update: METv3.0/lib/vx_met_util/read_grib.cc
And then recompile MET.

Problem parsing the abbreviation string for the pressure GRIB code value of 1.
Posted 12/15/2010

Problem: When verifying pressure, whose GRIB code value is 1, an abbreviation of MISSING was being used instead of PRES.
Solution: The solution requires updating a single file.
Update: METv3.0/lib/vx_grib_classes/grib_strings.cc
And then recompile MET.

Problem computing normal confidence intervals for large numbers of matched pairs.
Posted 01/10/2011

Problem: When computing confidence intervals for categorical statistics over a large number of matched pairs, variable overflow may occur resulting in confidence limits of -inf and inf.
Solution: The solution requires updating a single file.
Update: METv3.0/lib/vx_met_util/compute_ci.cc
And then recompile MET.

Problem performing data masking using GRIB files.
Posted 01/10/2011

Problem: When using GRIB files to perform data masking, an incorrect GRIB parameter table version number is used causing an error message.
Solution: The solution requires updating a single file.
Update: METv3.0/lib/vx_met_util/apply_mask.cc
And then recompile MET.

Handling the GRIB bitmap section for all settings of the scanning mode flags in the grid description section.
Posted 03/28/2011

Problem: When a bitmap section is present in a GRIB record, MET was not reading the data correctly for all possible combinations of th e scanning mode flags which are set in the grid description section.
Solution: The fix is to handle the bitmap section by parsing the GRIB data values into a temporary array prior to handling the scannin g mode flags.
Update: METv3.0/lib/vx_met_util/read_grib.cc
And then recompile MET.

Bug for the probabilistic output in the PJC and PRC line types.
Posted 03/30/2011

Problem: Two problems were found in the probabilistic output computed by the Point-Stat and Grid-Stat tools. First, in the PJC line type, the columns of data for CALIBRATION and REFINEMENT were transposed in the output. Second, in the PRC line type, the values listed for PODY and POFD were incorrect. The correct values are really 1 minus the values listed.
Solution: The fix is to update a single file in the vx_contable library.
Update: METv3.0/lib/vx_contable/vx_nx2.cc
And then recompile MET.

Bug when computing standard deviation for values very close to zero.
Posted 06/09/2011

Problem: When computing the standard deviation for values very close to zero, MET was writing out a standard deviation value of 0 rather than the actual value.
Solution: The fix is to remove the unnecessary check for closeness to zero from the computation of standard deviation.
Update: METv3.0/lib/vx_met_util/met_stats.cc
And then recompile MET.

Precision error bug when thresholding using strict inequalities.
Posted 07/15/2011

Problem: When using strict inequalities, like < and >, to threshold data, if the value and the threshold are exactly equal, precision error can cause the strict inequality to evaluate to true when it should evaluate to false.
Solution: The fix is to add more checks into the routine that performs thresholding to ensure that strict inequalities evaluate to false when the two values being compared are within precision error of one another.
Update: METv3.0/lib/vx_util/threshold.cc
And then recompile MET.

Change tolerance used to determine when two numbers are equal.
Posted 08/25/2011

Problem: The bugfix posted on 20110715 revealed the use of a tolerance value that is too generous when considering whether two values are equal or not. This caused the the improper handling thresholding of some data when applying <= or >= threshold types.
Solution: The fix is to tighten down that tolerance to require that two numbers be within 10E-10 of eachother to be considered equal, rather than 10E-5, as was used previously.
Update: METv3.0/lib/vx_math/is_bad_data.h
And then recompile MET.

PCP-Combine Tool

Bug when using the -add command line option.
Posted 04/19/2011

Problem: When passing multiple input files to PCP-Combine using the -add command line option, the output only contains the values for the last input file listed.
Solution: An incorrectly placed bracket is the source of this bug. The fix is to move the section of code that does the summation inside the loop for the input files.
Update: METv3.0/src/pcp_combine/pcp_combine.cc
And then recompile MET.

Bug in the handling of missing data when using the -add command line option.
Posted 11/14/2011

Problem: When adding values together, PCP-Combine was checking to see if the new value was bad data but failing to check if the existing value was bad data. This led to spurious values in the output close to -9999, which is the internal storage value for missing data.
Solution: The fix is to add in that missing check for bad data.
Update: METv3.0/src/pcp_combine/pcp_combine.cc
And then recompile MET.

PB2NC Tool

Bug in handling the event_stack_flag.
Posted 02/15/2011

Problem: The logic for handling the event_stack_flag for the PB2NC config file is reversed. The comments in the config file indicate that the default value of 1 will yield the most recent, up to date observations at the top of the event stack. However, the opposite behavior is occurring.
Solution: The fix is to correct the logic in the PB2NC source code. Users verifying against PREPBUFR observations should rerun their data through PB2NC so that the intended observation values can be used.
Update: METv3.0/src/pb2nc/pb2nc.cc
And then recompile MET.

Bug when using the -pbfile command line option for PB2NC compiled with PGI compilers.
Posted 06/01/2011

Problem: When passing multiple input PREPBUFR files to PB2NC compiled with PGI using the -pbfile command line opti PGFIO-F-207/OPEN/unit=12/file is already connected to another unit.
Solution: Prior to reading additional PREPBUFR files, add in a call to close the open file descriptor.
Update: METv3.0/src/pb2nc/Makefile
Update: METv3.0/src/pb2nc/pb2nc.cc
ADD NEW: METv3.0/src/pb2nc/closepb.f
And then recompile MET.

Point-Stat Tool

Vertical level matching logic when using a generic level type.
Posted 10/05/2010

Problem: When verifying generic level type data (e.g. "RH/L1") against a surface observation message type (e.g. "ADPSFC"), Point-Stat was finding zero matched pairs.
Solution: The fix is to no longer enforce that the observation level value exactly match the forecast level value when verifying against surface observation message types. This makes the behavior in METv3.0 match that of METv2.0.
Update: METv3.0/lib/vx_met_util/pair_data.cc
And then recompile MET.

Reading data for a single pressure level from p_interp files.
Posted 11/23/2010

Problem: When Point-Stat is configured to read data for a single pressure level (e.g. "TT(0,5,*,*)") from the NetCDF output of the p_interp tool, it errors out.
Solution: The fix is to modify the library routine that extracts this data to allow a single field to be read.
Update: METv3.0/lib/vx_met_util/read_gridded_data.cc
And then recompile MET.

STAT-Analysis and MODE-Analysis Tools

Bug parsing strings beginning with "NA" in the MET output.
Posted 10/01/2010

Problem: The code that parses model names from the MET output files is incorrectly interpreting model names beginning with "NA" (such as "NAM") as bad data values.
Solution: The fix is to modify the string comparison calls in several places.
Update: METv3.0/lib/vx_analysis_util/stat_line.cc
Update: METv3.0/lib/vx_analysis_util/mode_line.cc
Update: METv3.0/lib/vx_util/threshold.cc
Update: METv3.0/src/stat_analysis/stat_analysis_job.cc
And then recompile MET.

Bug parsing MET output from pinterp in the analysis tools.
Posted 06/09/2011

Problem: The code that parses variable names from the MET output files attempts to convert those variable names to GRIB codes. This step often fails when reading the MET output from pinterp data.
Solution: The fix is to no longer exit when the string cannot be converted.
Update: METv3.0/lib/vx_grib_classes/grib_strings.cc
And then recompile MET.