C-----------------------------------------------------------------------
C	Define the BUFRLIB build types.

#define NORMAL		1
#define SUPERSIZE	2
#define C32BITS		3
C-----------------------------------------------------------------------
C	Maximum number of BUFR files that can be connected to the
C	BUFRLIB software (for reading or writing) at any one time.
C	(NOTE: This parameter must also be identically defined 
C	       within "bufrlib.h" for use by several C routines!)

#if BUILD == C32BITS
	PARAMETER ( NFILES = 10 )
#else
	PARAMETER ( NFILES = 32 )
#endif
C-----------------------------------------------------------------------
C	Maximum length (in bytes) of a BUFR message that can be
C	read or written by the BUFRLIB software.

#if BUILD == SUPERSIZE
	PARAMETER ( MXMSGL = 2500000 )
#else
	PARAMETER ( MXMSGL = 600000 )
#endif
	PARAMETER ( MXMSGLD4 = MXMSGL/4 )
C-----------------------------------------------------------------------
C	Maximum number of Section 3 FXY descriptors that can be
C	written into a BUFR message by the BUFRLIB software.
C	(NOTE: This parameter must also be identically defined 
C	       within "bufrlib.h" for use by several C routines!)

	PARAMETER ( MAXNC = 600 )
C-----------------------------------------------------------------------
C	Maximum number of default Section 0 or Section 1 values
C	that can be overwritten within a BUFR message by the
C	BUFRLIB software.

	PARAMETER ( MXS01V = 10 )
C-----------------------------------------------------------------------
C	Maximum number of data values that can be read from or written
C	into a subset by the BUFRLIB software.

#if BUILD == SUPERSIZE
	PARAMETER ( MAXSS = 120000 )
#else
	PARAMETER ( MAXSS = 80000 )
#endif
C-----------------------------------------------------------------------
C	Maximum number of data values that can be written into a subset
C	of a compressed BUFR message by the BUFRLIB software.

#if BUILD == SUPERSIZE
	PARAMETER ( MXCDV = 50000 )
#elif BUILD == C32BITS
        PARAMETER ( MXCDV = 1000 )
#else
	PARAMETER ( MXCDV = 3000 )
#endif
C-----------------------------------------------------------------------
C	Maximum number of subsets that can be written into a compressed
C	BUFR message by the BUFRLIB software.

#if BUILD == C32BITS
        PARAMETER ( MXCSB = 2000 )
#else
	PARAMETER ( MXCSB = 4000 )
#endif
C-----------------------------------------------------------------------
C	Maximum length of a character string that can be written into a
C	compressed BUFR message by the BUFRLIB software.

#if BUILD == SUPERSIZE
	PARAMETER ( MXLCC = 12 )
#elif BUILD == C32BITS
        PARAMETER ( MXLCC = 24 )
#else
	PARAMETER ( MXLCC = 32 )
#endif
C-----------------------------------------------------------------------
C	Maximum number of entries in the internal BUFR Table A for each
C	BUFR file that is connected to the BUFRLIB software.

	PARAMETER ( MAXTBA = 150 )
C-----------------------------------------------------------------------
C	Maximum number of entries in the internal BUFR Table B for each
C	BUFR file that is connected to the BUFRLIB software.

	PARAMETER ( MAXTBB = 500 )
C-----------------------------------------------------------------------
C	Maximum number of entries in the internal BUFR Table D for each
C	BUFR file that is connected to the BUFRLIB software.

	PARAMETER ( MAXTBD = 500 )
C-----------------------------------------------------------------------
C	Maximum number of entries in the master BUFR Table B.
C	(NOTE: This parameter must also be identically defined
C	       within "bufrlib.h" for use by several C routines!)

	PARAMETER ( MXMTBB = 4000 )
C-----------------------------------------------------------------------
C	Maximum number of entries in the master BUFR Table D.
C	(NOTE: This parameter must also be identically defined
C	       within "bufrlib.h" for use by several C routines!)

	PARAMETER ( MXMTBD = 1000 )
C-----------------------------------------------------------------------
C	Maximum number of child descriptors that can be included
C       within the sequence definition of a Table D descriptor.
C	(NOTE: This value does *not* need to take into account
C	       the recursive resolution of any child descriptors
C	       which may themselves be Table D descriptors!)
C	(NOTE: This parameter must also be identically defined
C	       within "bufrlib.h" for use by several C routines!)

	PARAMETER ( MAXCD = 250 )
C-----------------------------------------------------------------------
C	Maximum number of entries in the internal jump/link table.

#if BUILD == SUPERSIZE
	PARAMETER ( MAXJL = NFILES*4000 )
#else
	PARAMETER ( MAXJL = NFILES*3000 )
#endif
C-----------------------------------------------------------------------
C	Maximum number of entries in the internal string cache.

	PARAMETER ( MXS = 1000 )
C-----------------------------------------------------------------------
C	Maximum number of entries in the internal descriptor list cache.

	PARAMETER ( MXCNEM = MAXTBA*3 )
C-----------------------------------------------------------------------
C	Maximum number of "long" character strings (i.e. greater than
C       8 bytes) which can be read from a subset of a compressed BUFR
C	message.

#if BUILD == SUPERSIZE
	PARAMETER ( MXRST = 500 )
#else
	PARAMETER ( MXRST = 50 )
#endif
C-----------------------------------------------------------------------
C	Maximum number of BUFR messages that can be stored within
C	internal memory.

#if BUILD == C32BITS
        PARAMETER ( MAXMSG = 20000 )
#else
	PARAMETER ( MAXMSG = 200000 )
#endif
C-----------------------------------------------------------------------
C	Maximum number of bytes that can be used to store BUFR
C	messages within internal memory.

#if BUILD == SUPERSIZE
	PARAMETER ( MAXMEM = 75000000 )
#elif BUILD == C32BITS
        PARAMETER ( MAXMEM = 400000 )
#else
	PARAMETER ( MAXMEM = 50000000 )
#endif
C-----------------------------------------------------------------------
C	Maximum number of jump/link table entries which can be used to
C	store new reference values (as defined using the 2-03 operator).

	PARAMETER ( MXNRV = 12 )
C-----------------------------------------------------------------------
C	Maximum number of 2-04 associated fields that can be in effect
C	at the same time for any given Table B descriptor.

	PARAMETER ( MXNAF = 3 )
C-----------------------------------------------------------------------
C	Maximum number of dictionary tables that can be stored for use
C	with BUFR messages in internal memory.

	PARAMETER ( MXDXTS = 200 )
C-----------------------------------------------------------------------
C	Maximum number of dictionary messages that can be stored for use
C	with BUFR messages in internal memory.

	PARAMETER ( MXDXM = MXDXTS*3 )

	PARAMETER ( MXDXW = MXDXM*MXMSGLD4)
C-----------------------------------------------------------------------
C	Maximum number of bytes that can be copied between BUFR
C	messages within internal memory.

#if BUILD == SUPERSIZE
	PARAMETER ( MXIMB = 750000 )
#else
	PARAMETER ( MXIMB = 400000 )
#endif
C-----------------------------------------------------------------------
C	BUFRLIB "missing" value.  The default value for BMISS is set
C	within subroutine BFRINI, but it can be modified by the user via
C	a subsequent call to subroutine SETBMISS.

	COMMON /BUFRBMISS/ BMISS
	REAL*8  BMISS
C-----------------------------------------------------------------------