#-----------------------------------------------------------------------------
# WCSLIB 8.7 - an implementation of the FITS WCS standard.
# Copyright (C) 1995-2026, Mark Calabretta
#
# This file is part of WCSLIB.
#
# WCSLIB is free software: you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
# more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with WCSLIB.  If not, see http://www.gnu.org/licenses.
#
# Author: Mark Calabretta, Australia Telescope National Facility, CSIRO.
# http://www.atnf.csiro.au/computing/software/wcs
# $Id: fitshdr.keyrec,v 8.7 2026/05/11 12:01:10 mcalabre Exp $
#-----------------------------------------------------------------------------
#
# FITS header keyrecords used for testing by tfitshdr.
#
# Use 'tofits' (supplied) to convert this file to proper FITS format via
#
#     tofits < fitshdr.keyrec > fitshdr.fits
#
# Lines in this file beginning with '#' are ignored by tofits.
#
#-----------------------------------------------------------------------------
SIMPLE  =                    F / Conforms to FITS standard?  NO!
BITPIX  =                  -32 / IEEE single precision floating point
NAXIS   =                    0 / No image data

CRPIX1A =                513.0 / Pixel coordinate of reference point
CRPIX2A =                513.0 / Pixel coordinate of reference point
CRPIX3A =               1025.0 / Pixel coordinate of reference point
CRPIX4A =                  1.0 / Pixel coordinate of reference point
PC1_1A  =          0.866025404 / Linear transformation matrix element
PC1_2A  =          0.500000000 / Linear transformation matrix element
PC2_1A  =         -0.500000000 / Linear transformation matrix element
PC2_2A  =          0.866025404 / Linear transformation matrix element

CDELT1A =                -0.10 / [deg] x-scale
CUNIT1A = 'deg'                / Degree units are required
CTYPE1A = 'RA---SZP'           / Right ascension in slant zenithal projection
CRVAL1A =                150.0 / [deg] Right ascension at the reference point
CNAME1A = 'Right ascension (J2000)' / Axis name for labelling purposes
CDELT2A =                 0.10 / [deg] y-scale
CUNIT2A = 'deg'                / Degree units are required
CTYPE2A = 'DEC--SZP'           / Declination in a slant zenithal projection
CRVAL2A =                -30.0 / [deg] Declination at the reference point
CNAME2A = 'Declination (J2000)' / Axis name for labelling purposes
PV1_1A  =                  0.0 / [deg] Native longitude of the reference point
PV1_2A  =                 90.0 / [deg] Native latitude  of the reference point
PV1_3A  =                195.0 / [deg] LONPOLEa by another name (precedence)
PV1_4A  =                999.0 / [deg] LATPOLEa by another name (precedence)
PV2_1A  =                  0.0 / SZP distance, in spherical radii
PV2_2A  =                180.0 / [deg] SZP P-longitude
PV2_3A  =                 45.0 / [deg] SZP P-latitude
LONPOLEA=                195.0 / [deg] Native longitude of the NCP
LATPOLEA=                999.0 / [deg] Native latitude of the NCP
RADESYSA= 'FK5'                / Mean equatorial coordinates, IAU 1984 system
EQUINOXA=               2000.0 / [yr] Equinox of equatorial coordinates

CDELT3A =      -9.635265432e-6 / [m] Wavelength scale
CUNIT3A = 'm'                  / Wavelength units
CTYPE3A = 'WAVE-F2W'           / Frequency axis expressed as wavelength
CRVAL3A =          0.214982042 / [m] Reference wavelength
CNAME3A = 'Wavelength'         / Axis name for labelling purposes
CRDER3A =              1.0e-11 / [m] Wavelength calibration, random error
CSYER3A =              1.0e-12 / [m] Wavelength calibration, systematic error
RESTFRQA=         1.42040575e9 / [Hz] HI rest frequency
RESTWAVA=          0.211061141 / [m] HI rest wavelength
SPECSYSA= 'BARYCENT'           / Reference frame of spectral coordinates
SSYSOBSA= 'TOPOCENT'           / Reference frame of observation
VELOSYSA=               1500.0 / [m/s] Bary-topo velocity towards the source
SSYSSRCA= 'LSRK'               / Reference frame of source redshift
ZSOURCEA=               0.0025 / Redshift of the source

CDELT4A =                  1.0 / [s] Time scale
CUNIT4A = 's'                  / Time units
CTYPE4A = 'TIME''x'''          / String value and comment containing quotes (')
CRVAL4A =                 -2e3 / [s] Time at the reference point
CNAME4A = 'Time offset'        / Axis name for labelling purposes
PS4_0A  = 'UTC'                / Time measurement system

UNDEF   =                      / Undefined keyvalue
TRUE    =                    T / Logical
FALSE   =                    F / Logical
INT32   =          00000012345 / Not a 64-bit integer
INT32   =     -000000123456789 / Not a 64-bit integer
INT32   =          -2147483648 / Not a 64-bit integer (INT_MIN)
INT32   =           2147483647 / Not a 64-bit integer (INT_MAX)
INT32   =    0000000000000000000000000000000000012345 / Not a very long integer
INT32   =       -000000000000000000000000000123456789 / Not a very long integer
INT64   =          -2147483649 / 64-bit integer (INT_MIN - 1)
INT64   =          +2147483648 / 64-bit integer (INT_MAX + 1)
INT64   =  +100000000000000000 / 64-bit integer
INT64   =  -876543210987654321 / 64-bit integer
INT64   = -9223372036854775808 / Not a very long integer (LONG_MIN)
INT64   = +9223372036854775807 / Not a very long integer (LONG_MAX)
INT64   = -000000000000000000000000000000876543210987654321 / 64-bit integer
INTVL   = -9223372036854775809 / Very long integer (LONG_MIN - 1)
INTVL   = +9223372036854775808 / Very long integer (LONG_MAX + 1)
INTVL   = -100000000000000000000000000000876543210987654321 / Very-long integer
INTVL   = +123456789012345678901234567890123456789012345678901234567890123456789
INTVL   = 1234567890123456789012345678901234567890123456789012345678901234567890
FLOAT   =        3.14159265358 / Floating point
FLOAT   =     1.602176565e-19  / Floating point, lower-case exp allowed
FLOAT   =      2.99792458E8    / Floating point
FLOAT   =       6.62606957d-34 / Floating point, lower-case exp allowed
FLOAT   =        6.02214129D23 / Floating point
COMPLEX =            (137, -1) / An integer complex keyvalue
COMPLEX =         (10e5, -0.1) / A floating point complex keyvalue
GOODSTR =     '"G''DAY"  '     / A valid string keyvalue
BLANKS  =   '              '   / An all-blank string equals a single blank
LONGSTR = 'The loooooongest possible non-continued string value, 68 characters.'
CONTSTR = 'The quick brown & ' / Continued string, with & (will be stripped off)
CONTINUE  'fox jumps over the'   Relaxed handling of invalid keycomment
CONTINUE      ' lazy dog'
PI      =  3.14159265358929323 / [!?] is not a valid units specification
CONTINUE      'Not a valid string continuation'

COMMENT  -----------------------------------------------------------------------
COMMENT  The following are all deliberate syntax errors:
COMMENT  -----------------------------------------------------------------------

BADREC =                     1 / Illegal, "= " not in columns 9-10
BADREC   =                   1 / Illegal, "= " not in columns 9-10
BADREC  =1                     / Illegal, "= " not in columns 9-10
BADREC                       1 / Illegal, "= " not in columns 9-10
BadKey  =                  111 / Example of a syntax error, invalid keyword
BADKEY! =                  222 / Example of a syntax error, invalid keyword
BAD KEY =                  333 / Example of a syntax error, invalid keyword
BADVAL  =                  BAD / Example of a syntax error, invalid keyvalue
BADVAL  =                "BAD" / Example of a syntax error, invalid keyvalue
BADVAL  =          'BAD' 'STR' / Example of a syntax error, invalid keyvalue
BADVAL  =              49 + 94 / Example of a syntax error, invalid keyvalue
BADVAL  =             1934-638 / Example of a syntax error, invalid keyvalue
BADVAL  =                1.2.3 / Example of a syntax error, invalid keyvalue
BADVAL  =            12h34m56s / Example of a syntax error, invalid keyvalue
BADVAL  =                 0xFF / Example of a syntax error, invalid keyvalue
BADVAL  =              58 - 21 / Example of a syntax error, invalid keyvalue
BADVAL  =                J2000 / Example of a syntax error, invalid keyvalue
BADVAL  =              B1950.0 / Example of a syntax error, invalid keyvalue
BADVAL  =            180:00:00 / Example of a syntax error, invalid keyvalue
BADVAL  =                $9.99 / Example of a syntax error, invalid keyvalue
BADCOMM =                    1   Example of a syntax error, invalid keycomment
BADCOMM =                    1   1/8 = 0.125

END     =            'ILLEGAL' / Illegal END keyrecord
END

DANGLE1  Keyrecords following the END keyrecord should be flagged.
DANGLE2  
DANGLE3
