*  PRM_PAR -- Machine-precision constants for the Starlink PRIMDAT system.
*  Minimal standalone version for building AST tests without the Starlink PRM library.
*  Values are for IEEE 754 double/single precision (all modern platforms).

*  HDS data type name strings.
      CHARACTER*5 VAL__NAMB
      PARAMETER ( VAL__NAMB = '_BYTE' )
      CHARACTER*6 VAL__NAMUB
      PARAMETER ( VAL__NAMUB = '_UBYTE' )
      CHARACTER*5 VAL__NAMW
      PARAMETER ( VAL__NAMW = '_WORD' )
      CHARACTER*6 VAL__NAMUW
      PARAMETER ( VAL__NAMUW = '_UWORD' )
      CHARACTER*8 VAL__NAMI
      PARAMETER ( VAL__NAMI = '_INTEGER' )
      CHARACTER*6 VAL__NAMK
      PARAMETER ( VAL__NAMK = '_INT64' )
      CHARACTER*5 VAL__NAMR
      PARAMETER ( VAL__NAMR = '_REAL' )
      CHARACTER*7 VAL__NAMD
      PARAMETER ( VAL__NAMD = '_DOUBLE' )

*  Bad values (flag for undefined/missing data).
      INTEGER VAL__BADI
      PARAMETER ( VAL__BADI = -2147483648 )

      INTEGER*8 VAL__BADK
      PARAMETER ( VAL__BADK = -9223372036854775808_8 )

      REAL VAL__BADR
      PARAMETER ( VAL__BADR = -3.40282347E+38 )

      DOUBLE PRECISION VAL__BADD
      PARAMETER ( VAL__BADD = -1.7976931348623157D+308 )

      INTEGER*2 VAL__BADW
      PARAMETER ( VAL__BADW = -32768 )

      INTEGER*2 VAL__BADUW
      PARAMETER ( VAL__BADUW = 65535 )

*  Machine precision (smallest difference from 1.0).
      REAL VAL__EPSR
      PARAMETER ( VAL__EPSR = 1.19209290E-07 )

      DOUBLE PRECISION VAL__EPSD
      PARAMETER ( VAL__EPSD = 2.2204460492503131D-16 )

      INTEGER VAL__EPSI
      PARAMETER ( VAL__EPSI = 1 )

*  Maximum non-bad values.
      INTEGER VAL__MAXI
      PARAMETER ( VAL__MAXI = 2147483647 )

      INTEGER*8 VAL__MAXK
      PARAMETER ( VAL__MAXK = 9223372036854775807_8 )

      REAL VAL__MAXR
      PARAMETER ( VAL__MAXR = 3.40282347E+38 )

      DOUBLE PRECISION VAL__MAXD
      PARAMETER ( VAL__MAXD = 1.7976931348623157D+308 )

*  Minimum (most negative) non-bad values.
      INTEGER VAL__MINI
      PARAMETER ( VAL__MINI = -2147483647 )

      REAL VAL__MINR
      PARAMETER ( VAL__MINR = -3.40282347E+38 )

      DOUBLE PRECISION VAL__MIND
      PARAMETER ( VAL__MIND = -1.7976931348623157D+308 )

*  Minimum positive (non-zero) values.
      REAL VAL__SMLR
      PARAMETER ( VAL__SMLR = 1.17549435E-38 )

      DOUBLE PRECISION VAL__SMLD
      PARAMETER ( VAL__SMLD = 2.2250738585072014D-308 )

*  Numeric (not necessarily non-bad) maximum values.
      INTEGER NUM__MAXI
      PARAMETER ( NUM__MAXI = 2147483647 )

      REAL NUM__MAXR
      PARAMETER ( NUM__MAXR = 3.40282347E+38 )

      DOUBLE PRECISION NUM__MAXD
      PARAMETER ( NUM__MAXD = 1.7976931348623157D+308 )

*  Number of bits (excluding sign).
      INTEGER VAL__NBD
      PARAMETER ( VAL__NBD = 52 )

      INTEGER VAL__NBR
      PARAMETER ( VAL__NBR = 23 )

      INTEGER VAL__NBI
      PARAMETER ( VAL__NBI = 31 )
