*+
*  Name:
*     PRM_PAR

*  Type of Module:
*     Fortran include file.

*  Purpose:
*     Define public constants for the PRIMDAT system.

*  Description:
*     This file defines machine-dependent public constants for the
*     PRIMDAT system.

*  Machine-specific features used:
*     This version is specific to DECstation (MIPS) systems.

*  Authors:
*     RFWS: R.F. Warren-Smith (STARLINK, RAL)
*     {enter_new_authors_here}

*  History:
*     29-OCT-1991 (RFWS):
*        Original version, copied from the equivalent SUN4 file.
*     5-NOV-1991 (RFWS):
*        Corrected error in NUM__MAXUB and NUM__MINI values.
*     {enter_further_changes_here}

*  Bugs:
*     {note_any_bugs_here}

*-

*  Bad value, used for flagging undefined data.
*  ===========================================

      BYTE VAL__BADUB
      PARAMETER ( VAL__BADUB = 'FF'X )

      BYTE VAL__BADB
      PARAMETER ( VAL__BADB = '80'X )

      INTEGER*2 VAL__BADUW
      PARAMETER ( VAL__BADUW = 'FFFF'X )

      INTEGER*2 VAL__BADW
      PARAMETER ( VAL__BADW = '8000'X )

      INTEGER VAL__BADI
      PARAMETER ( VAL__BADI = '80000000'X )

      REAL VAL__BADR
      PARAMETER ( VAL__BADR = 'FF7FFFFF'X )

      DOUBLE PRECISION VAL__BADD
      PARAMETER ( VAL__BADD = 'FFEFFFFFFFFFFFFF'X )


*  Machine precision.
*  =================

      BYTE VAL__EPSUB
      PARAMETER ( VAL__EPSUB = 1 )

      BYTE VAL__EPSB
      PARAMETER ( VAL__EPSB = 1 )

      INTEGER*2 VAL__EPSUW
      PARAMETER ( VAL__EPSUW = 1 )

      INTEGER*2 VAL__EPSW
      PARAMETER ( VAL__EPSW = 1 )

      INTEGER VAL__EPSI
      PARAMETER ( VAL__EPSI = 1 )

      REAL VAL__EPSR
      PARAMETER ( VAL__EPSR = '34000000'X )

      DOUBLE PRECISION VAL__EPSD
      PARAMETER ( VAL__EPSD = '3CB0000000000000'X )


*  Maximum (most positive) non-bad value.
*  =====================================

      BYTE VAL__MAXUB
      PARAMETER ( VAL__MAXUB = 'FE'X )

      BYTE VAL__MAXB
      PARAMETER ( VAL__MAXB = '7F'X )

      INTEGER*2 VAL__MAXUW
      PARAMETER ( VAL__MAXUW = 'FFFE'X )

      INTEGER*2 VAL__MAXW
      PARAMETER ( VAL__MAXW = '7FFF'X )

      INTEGER VAL__MAXI
      PARAMETER ( VAL__MAXI = '7FFFFFFF'X )

      REAL VAL__MAXR
      PARAMETER ( VAL__MAXR = '7F7FFFFF'X )

      DOUBLE PRECISION VAL__MAXD
      PARAMETER ( VAL__MAXD = '7FEFFFFFFFFFFFFF'X )


*  Maximum (most positive) number.
*  ==============================

      BYTE NUM__MAXUB
      PARAMETER ( NUM__MAXUB = 'FF'X )

      BYTE NUM__MAXB
      PARAMETER ( NUM__MAXB = '7F'X )

      INTEGER*2 NUM__MAXUW
      PARAMETER ( NUM__MAXUW = 'FFFF'X )

      INTEGER*2 NUM__MAXW
      PARAMETER ( NUM__MAXW = '7FFF'X )

      INTEGER NUM__MAXI
      PARAMETER ( NUM__MAXI = '7FFFFFFF'X )

      REAL NUM__MAXR
      PARAMETER ( NUM__MAXR = '7F7FFFFF'X )

      DOUBLE PRECISION NUM__MAXD
      PARAMETER ( NUM__MAXD = '7FEFFFFFFFFFFFFF'X )


*  Minimum (most negative) non-bad value.
*  =====================================

      BYTE VAL__MINUB
      PARAMETER ( VAL__MINUB = 0 )

      BYTE VAL__MINB
      PARAMETER ( VAL__MINB = '81'X )

      INTEGER*2 VAL__MINUW
      PARAMETER ( VAL__MINUW = 0 )

      INTEGER*2 VAL__MINW
      PARAMETER ( VAL__MINW = '8001'X )

      INTEGER VAL__MINI
      PARAMETER ( VAL__MINI = '80000001'X )

      REAL VAL__MINR
      PARAMETER ( VAL__MINR = 'FF7FFFFE'X )

      DOUBLE PRECISION VAL__MIND
      PARAMETER ( VAL__MIND = 'FFEFFFFFFFFFFFFE'X )


*  Minimum (most negative) number.
*  ==============================

      BYTE NUM__MINUB
      PARAMETER ( NUM__MINUB = 0 )

      BYTE NUM__MINB
      PARAMETER ( NUM__MINB = '80'X )

      INTEGER*2 NUM__MINUW
      PARAMETER ( NUM__MINUW = 0 )

      INTEGER*2 NUM__MINW
      PARAMETER ( NUM__MINW = '8000'X )

      INTEGER NUM__MINI
      PARAMETER ( NUM__MINI = '80000000'X )

      REAL NUM__MINR
      PARAMETER ( NUM__MINR = 'FF7FFFFF'X )

      DOUBLE PRECISION NUM__MIND
      PARAMETER ( NUM__MIND = 'FFEFFFFFFFFFFFFF'X )


*  Number of basic machine units (bytes) used by a value.
*  =====================================================

      INTEGER VAL__NBUB
      PARAMETER ( VAL__NBUB = 1 )

      INTEGER VAL__NBB
      PARAMETER ( VAL__NBB = 1 )

      INTEGER VAL__NBUW
      PARAMETER ( VAL__NBUW = 2 )

      INTEGER VAL__NBW
      PARAMETER ( VAL__NBW = 2 )

      INTEGER VAL__NBI
      PARAMETER ( VAL__NBI = 4 )

      INTEGER VAL__NBR
      PARAMETER ( VAL__NBR = 4 )

      INTEGER VAL__NBD
      PARAMETER ( VAL__NBD = 8 )


*  Smallest positive value.
*  =======================

      BYTE VAL__SMLUB
      PARAMETER ( VAL__SMLUB = 1 )

      BYTE VAL__SMLB
      PARAMETER ( VAL__SMLB = 1 )

      INTEGER * 2 VAL__SMLUW
      PARAMETER ( VAL__SMLUW = 1 )

      INTEGER * 2 VAL__SMLW
      PARAMETER ( VAL__SMLW = 1 )

      INTEGER VAL__SMLI
      PARAMETER ( VAL__SMLI = 1 )

      REAL VAL__SMLR
      PARAMETER ( VAL__SMLR = '00000001'X )

      DOUBLE PRECISION VAL__SMLD
      PARAMETER ( VAL__SMLD = '0000000000000001'X )


*  Number of characters required to format value as decimal string.
*  ===============================================================

      INTEGER VAL__SZUB
      PARAMETER ( VAL__SZUB = 3 )

      INTEGER VAL__SZB
      PARAMETER ( VAL__SZB = 4 )

      INTEGER VAL__SZUW
      PARAMETER ( VAL__SZUW = 5 )

      INTEGER VAL__SZW
      PARAMETER ( VAL__SZW = 6 )

      INTEGER VAL__SZI
      PARAMETER ( VAL__SZI = 11 )

      INTEGER VAL__SZR
      PARAMETER ( VAL__SZR = 16 )

      INTEGER VAL__SZD
      PARAMETER ( VAL__SZD = 24 )

*.
