Subject: Fverify for Version 100-2.0 of NASA FITS Standard

From: William Pence <pence at tetra.gsfc.nasa.gov>
Date: Tue, 20 Apr 1999 12:18:42 -0400

New FITS File Conformance Test Program

This is to announce the release of a new version of the FITS file
verification program called 'fverify' that tests any FITS file to see if it
conforms to the FITS Standard in every detail. This new version of fverify
has been completely rewritten by HEASARC programmer Ning Gan to check that
the FITS file meets every requirement in the newly released Version 100-2.0
of the NASA FITS Standard (available at http://fits.gsfc.nasa.gov/).  A list
of all the error and warning conditions fverify will detect is attached at
the end of this message.

Fverify is now available as a stand-alone utility  program for most Unix
platforms from the FTOOLS Web site at 

   http://legacy.gsfc.nasa.gov/ftools/ftools_select.html

It will also be included in the next release of the FTOOLS software package
sometime later this year.  While fverify is designed to exhaustively check
every requirement or recommendation in the new FITS Standard, we cannot
guarantee that it will in fact detect every possible nonconformance.  We
would appreciate receiving reports of any FITS format errors that it does
not detect at ftoolshelp at athena.gsfc.nasa.gov.

  ERROR conditions reported by fverify:
  -------------------------------------

  - Header contains illegal ASCII character (outside ASCII 32-126)
  - Keyword name contains illegal character
  - Keyword value field has illegal format
  - Value and comment fields not separated by a slash character
  - END keyword not blank in columns 9 - 80
  - Required keywords out of order
  - Required keyword duplicated elsewhere in the header
  - Required or reserved keyword with wrong data type
  - Required or reserved keyword with value outside legal range
  - EXTEND not present in the primary array if there are extensions
  - BLOCKED, if present, not in the first 36 keywords in the primary
      array
  - BLANK is present when primary array or Image extension has
      BITPIX < 0
  - XTENSION, EXTNAME, EXTVER, or EXTLEVEL in the primary array
  - TFIELDS, TBCOLn, TFORMn, TSCALn, TZEROn, TNULLn, TTYPEn, TUNITn,
      TDISPn, TDIMn, or THEAP in the primary array or Image extension
  - SIMPLE, EXTEND, or BLOCKED in any extension
  - BSCALE, BZERO, BUNIT, BLANK, DATAMAX, DATAMIN, CTYPEn, CRPIXn,
      CROTAn, CRVALn or CDELTn in an ASCII or Binary table
  - TDIMn or THEAP in an ASCII table
  - TBCOLn in a Binary table
  - XTENSION, TFORMn, TDISPn or TDIMn value contains leading spaces
  - Index on any of the WCS keywords (CRPIXn, CRVALn, CDELTn, CROTAn
      and CTYPEn) greater than NAXIS
  - Index on any of the table column descriptor keywords (TTYPEn,
      TFORMn, etc.) greater than TFIELDS
  - TSCALn or TZEROn present for an ASCII, logical, or Bit column
  - In Binary tables, TNULLn for a column with other than B, I, or  J
      type
  - In Binary tables, THEAP exists and PCOUNT = 0
  - TDISPn with a value that is inconsistent with the column datatype
  - All data values in the image or table have a valid format
  - The number of elements in a row of a variable length array column
      is greater than the maximum number of elements given by TFORMn
  - A value in a variable length array has an address which lies
      outside the data heap
  - The header fill bytes, if any, not all blanks
  - The data file bytes, if any, not all blanks in ASCII tables or
      all zeros in any other type of HDU.
  - Any characters, if any, between defined ASCII table fields with an
      ASCII value > 127
  - Any extra bytes in the file beyond the end of the last HDU

  WARNING conditions reported by fverify:
  ---------------------------------------
    
  - SIMPLE = F
  - use of deprecated keywords BLOCKED or EPOCH    
  - 2 HDUS have identical EXTNAME, EXTVER, and EXTLEVEL values  
  - BSCALE = 0
  - TSCALEn = 0 
  - TNULL < 0 or TNULL > 255 for B column in a Binary table
  - TNULL < -32768 or TNULL > 32767 for I column in a Binary table
  - TFORMn = 'rAw' and r is not a multiple of w
  - DATE = 'dd/mm/yy' and  00 <= yy <= 09
  - duplicated  keyword (except COMMENT, HISTORY, blank, etc.)
  - column name (TTYPEn) does not start with a letter
  - column name has characters other than letter, digit and underscore
  - column names are not unique within the first 16 chars
  - calculated checksum inconsistent with CHECKSUM and DATASUM
  ---------------------------------------------------------------------