*+
*  Name:
*     NDF_CONST

*  Purpose:
*     Define private (internal) constants for the NDF_ system.

*  Language:
*     Starlink Fortran 77

*  Type of Module:
*     Global constants include file.

*  Description:
*     This file contains definitions of global constants used
*     internally by routines in the NDF_ system, which are not needed
*     by external users of this system.

*  Prior Requirements:
*     The SAE_PAR include file should be included prior to this file, in
*     order to define constants which are needed here.

*  Implementation Deficiencies:
*     The NDF__MXERR constant (and references to it) should be replaced
*     by an equivalent EMS__ constant when this becomes available.

*  Copyright:
*     Copyright (C) 2000 Central Laboratories of the Research Councils

*  Authors:
*     RFWS: R.F. Warren-Smith (STARLINK)
*     DSB: David S. Berry (STARLINK)
*     PWD: Peter W. Draper (STARLINK, Durham University)
*     {enter_new_authors_here}

*  History:
*     22-SEP-1989 (RFWS):
*        Original version.
*     18-MAY-1993 (RFWS):
*        Added constants for history update mode settings.
*     3-JUN-1993 (RFWS):
*        Added the NDF__MXERR constant, as an interim measure.
*     23-JUN-1993 (RFWS):
*        Added the NDF__SZSTA constant.
*     6-SEP-1993 (RFWS):
*        Removed the NDF__NOLOC constant, since DAT__NOLOC is now
*        provided by HDS and serves the same purpose.
*     2-NOV-1993 (RFWS):
*        Added constants to support conversion to/from foreign format
*        files.
*     16-MAR-1994 (RFWS):
*        Added NDF__SZFID value.
*     1-NOV-1994 (RFWS):
*        Added NDF_SZXLS constant.
*     16-JUL-1996 (RFWS):
*        Increased number of allowed foreign file formats to 50.
*     14-JUL-1997 (RFWS):
*        Added constant to support WCS routines.
*     15-JUN-1999 (RFWS):
*        Increased value of NDF__MXDCB and NDF__MXACB.
*     17-JUL-2000 (RFWS):
*        Added NDF__SZFXS.
*     11-MAR-2004 (PWD):
*        Increased NDF__SZCVT to 512 (from 200).
*     {enter_further_changes_here}

*-

*  Global Constants:

*  Common block sizes.
*  ==================

*  Maximum number of entries in the Access Control Block.
      INTEGER NDF__MXACB
      PARAMETER ( NDF__MXACB = 2048 )

*  Maximum number of entries in the Data Control Block.
      INTEGER NDF__MXDCB
      PARAMETER ( NDF__MXDCB = 1024 )

*  Maximum number of foreign data formats which can be recognised.
      INTEGER NDF__MXFMT
      PARAMETER ( NDF__MXFMT = 50 )

*  Maximum number of entries in the Placeholder Control Block.
      INTEGER NDF__MXPCB
      PARAMETER ( NDF__MXPCB = 20 )

*  Common block identifiers.
*  ========================

*  Identifier for the Access Control Block.
      INTEGER NDF__ACB
      PARAMETER ( NDF__ACB = 1 )

*  Identifier for the Data Control Block.
      INTEGER NDF__DCB
      PARAMETER ( NDF__DCB = 2 )

*  Identifier for the Placeholder Control Block.
      INTEGER NDF__PCB
      PARAMETER ( NDF__PCB = 3 )

*  String lengths.
*  ==============

*  Maximum length of a command to be used during foreign data format
*  conversion operations.
      INTEGER NDF__SZCVT
      PARAMETER ( NDF__SZCVT = 512 )

*  Maximum length of a string describing a data object disposal mode,
*  entry in the DCB, e.g. 'DELETE'.
      INTEGER NDF__SZDSP
      PARAMETER ( NDF__SZDSP = 6 )

*  Maximum length of a foreign format file identification code. Note
*  that this is potentially system-dependent, since it depends on how
*  file identification information is encoded. However, using a
*  sufficiently large value means that it is unlikely ever to need
*  changing.
      INTEGER NDF__SZFID
      PARAMETER ( NDF__SZFID = 33 )

*  Maximum length of a string containing the name of an HDS container
*  file (this value is somewhat arbitrary, since the maximum length of
*  a file name is often a rather ill-defined quantity).
      INTEGER NDF__SZFIL
      PARAMETER ( NDF__SZFIL = 255 )

*  Maximum length of a list specifying recognised foreign data formats.
      INTEGER NDF__SZFMT
      PARAMETER ( NDF__SZFMT = 1024 )

*  Maximum length of a list specifying NDF extension names to be
*  recognised during format conversion.
      INTEGER NDF__SZXLS
      PARAMETER ( NDF__SZXLS = 1024 )

*  Maximum length of a string describing an initialisation option
*  appended to an NDF array component mapping mode specification, e.g.
*  'ZERO'.
      INTEGER NDF__SZIOP
      PARAMETER ( NDF__SZIOP = 4 )

*  Maximum length of a string describing a data object access mode
*  entry in the DCB, e.g. 'UPDATE'.
      INTEGER NDF__SZMOD
      PARAMETER ( NDF__SZMOD = 6 )

*  Maximum length of a parameter system character string value.
      INTEGER NDF__SZPAR
      PARAMETER ( NDF__SZPAR = 200 )

*  Maximum length of a string containing the path name of an HDS data
*  object (this value is somewhat arbitrary, since the maximum depth of
*  nesting of HDS objects is in principle unlimited).
      INTEGER NDF__SZPTH
      PARAMETER ( NDF__SZPTH = 255 )

*  Maximum length of a string describing the state of an NDF, e.g.
*  'UNKNOWN'.
      INTEGER NDF__SZSTA
      PARAMETER ( NDF__SZSTA = 7 )

*  Maximum length of a string describing a sub-structure within a 
*  foreign format file (e.g. a FITS extension), including the enclosing
*  square brackets. This includes the length of the file specification.
      INTEGER NDF__SZFXS
      PARAMETER ( NDF__SZFXS = NDF__SZFIL + 100 )

*  Access control.
*  ==============

*  Number of access control flags maintained in the ACB, which
*  determines the number of types of NDF access over which control can
*  be exercised.
      INTEGER NDF__MXACC
      PARAMETER ( NDF__MXACC = 5 )

*  Identifier for the BOUNDS access control flag.
      INTEGER NDF__BOUND
      PARAMETER ( NDF__BOUND = 1 )

*  Identifier for the DELETE access control flag.
      INTEGER NDF__DELET
      PARAMETER ( NDF__DELET = 2 )

*  Identifier for the SHIFT access control flag.
      INTEGER NDF__SHIFT
      PARAMETER ( NDF__SHIFT = 3 )

*  Identifier for the TYPE access control flag.
      INTEGER NDF__TYPE
      PARAMETER ( NDF__TYPE = 4 )

*  Identifier for the WRITE access control flag.
      INTEGER NDF__WRITE
      PARAMETER ( NDF__WRITE = 5 )

*  NDF components.
*  ===============

*  Minimum number of characters in a component name abbreviation.
      INTEGER NDF__MINAB
      PARAMETER ( NDF__MINAB = 3 )

*  Number of character component names.
      INTEGER NDF__MXCCN
      PARAMETER ( NDF__MXCCN = 3 )

*  Identifier for LABEL component.
      INTEGER NDF__LABEL
      PARAMETER ( NDF__LABEL = 1 )

*  Identifier for TITLE component
      INTEGER NDF__TITLE
      PARAMETER ( NDF__TITLE = 2 )

*  Identifier for UNITS component.
      INTEGER NDF__UNITS
      PARAMETER ( NDF__UNITS = 3 )

*  NDF axis components.
*  ===================

*  Number of axis character components.
      INTEGER NDF__MXACN
      PARAMETER ( NDF__MXACN = 2 )

*  Identifier for axis label component.
      INTEGER NDF__ALAB
      PARAMETER ( NDF__ALAB = 1 )

*  Identifier for axis units component.
      INTEGER NDF__AUNI
      PARAMETER ( NDF__AUNI = 2 )

*  Component propagation.
*  =====================

*  Maximum number of extension names in a component propagation list
*  (and also in a list of extensions to be considered during foreign
*  format conversion operations).
      INTEGER NDF__MXEXT
      PARAMETER ( NDF__MXEXT = 32 )

*  Number of component propagation flags.
      INTEGER NDF__MXCPF
      PARAMETER ( NDF__MXCPF = 9 )

*  AXIS component propagation flag.
      INTEGER NDF__ACPF
      PARAMETER ( NDF__ACPF = 1 )

*  DATA component propagation flag.
      INTEGER NDF__DCPF
      PARAMETER ( NDF__DCPF = 2 )

*  HISTORY component propagation flag.
      INTEGER NDF__HCPF
      PARAMETER ( NDF__HCPF = 3 )

*  LABEL component propagation flag.
      INTEGER NDF__LCPF
      PARAMETER ( NDF__LCPF = 4 )

*  QUALITY component propagation flag.
      INTEGER NDF__QCPF
      PARAMETER ( NDF__QCPF = 5 )

*  TITLE component propagation flag.
      INTEGER NDF__TCPF
      PARAMETER ( NDF__TCPF = 6 )

*  UNITS component propagation flag.
      INTEGER NDF__UCPF
      PARAMETER ( NDF__UCPF = 7 )

*  VARIANCE component propagation flag.
      INTEGER NDF__VCPF
      PARAMETER ( NDF__VCPF = 8 )

*  WCS component propagation flag.
      INTEGER NDF__WCPF
      PARAMETER ( NDF__WCPF = 9 )

*  Numeric types.
*  =============

*  Number of numeric types.
      INTEGER NDF__MXTYP
      PARAMETER ( NDF__MXTYP = 7 )

*  Unsigned byte type code.
      INTEGER NDF__TYPUB
      PARAMETER ( NDF__TYPUB = 1 )

*  Byte type code.
      INTEGER NDF__TYPB
      PARAMETER ( NDF__TYPB = 2 )

*  Unsigned word type code.
      INTEGER NDF__TYPUW
      PARAMETER ( NDF__TYPUW = 3 )

*  Word type code.
      INTEGER NDF__TYPW
      PARAMETER ( NDF__TYPW = 4 )

*  Integer type code.
      INTEGER NDF__TYPI
      PARAMETER ( NDF__TYPI = 5 )

*  Real type code.
      INTEGER NDF__TYPR
      PARAMETER ( NDF__TYPR = 6 )

*  Double precision type code.
      INTEGER NDF__TYPD
      PARAMETER ( NDF__TYPD = 7 )

*  History update mode settings.
*  ============================

*  History updating disabled.
      INTEGER NDF__HDISA
      PARAMETER ( NDF__HDISA = -2 )

*  History updating quiet.
      INTEGER NDF__HQUIE
      PARAMETER ( NDF__HQUIE = -1 )

*  History updating normal.
      INTEGER NDF__HNORM
      PARAMETER ( NDF__HNORM = 0 )

*  History updating verbose.
      INTEGER NDF__HVERB
      PARAMETER ( NDF__HVERB = 1 )

*  File Name Formats.
*  =================

*  Use VMS file name format.
      INTEGER NDF__VMS
      PARAMETER ( NDF__VMS = 1 )

*  Use POSIX file name format.
      INTEGER NDF__POSIX
      PARAMETER ( NDF__POSIX = 2 )

*  Fortran I/O units.
*  =================

*  First Fortran I/O unit number to search when looking for a free
*  unit.
      INTEGER NDF__UNIT1
      PARAMETER ( NDF__UNIT1 = 0 )

*  Last Fortran I/O unit number to search when looking for a free unit.
      INTEGER NDF__UNIT2
      PARAMETER ( NDF__UNIT2 = 255 )

*  Error Logging.
*  =============

*  Maximum number of pending error messages that can be logged for
*  recording in NDF history records. N.B. This number should not be
*  less than the maximum number of pending messages allowed by EMS (see
*  SSN/4), otherwise error messages may get lost. It should be replaced
*  by an appropriate EMS__ constant when this is provided.
      INTEGER NDF__MXERR
      PARAMETER ( NDF__MXERR = 32 )

*  World Coordinate Systems.
*  ========================

*  Length of _CHAR array elements used to store AST data in HDS.
      INTEGER NDF__SZAST
      PARAMETER ( NDF__SZAST = 32 )

*  Number of _CHAR array elements initially created when storing AST
*  data in HDS (i.e. an initial guess at the number of lines of data to
*  be stored). The array is expanded if this proves insufficient. It is
*  always truncated after the data have been written.
      INTEGER NDF__INAST
      PARAMETER ( NDF__INAST = 64 )

*  Minimum length of _CHAR array elements accepted as valid when
*  reading AST data that has been stored in HDS.
      INTEGER NDF__MLAST
      PARAMETER ( NDF__MLAST = 16 )

*  Maximum number of continuation lines (i.e. array elements of size
*  NDF__SZAST) to be used when storing a single line of AST data in
*  HDS.  Continuation lines are indicated by a '+' as the first
*  character (normally this is a space). AST data lines which are still
*  too long to be accommodated will cause an error.
      INTEGER NDF__MXACL
      PARAMETER ( NDF__MXACL = 64 )

*  Miscellaneous.
*  =============

*  Unique NDF_ system facility number.
      INTEGER NDF__FACNO
      PARAMETER ( NDF__FACNO = 1506 )

*.
