VC0001 -  OUTFORMAT should not appear during a CREATE step unless a
          FORMATTED_OUT file is specified at the beginning of the
          step.

          (Technical: called from NSETP1)

VC0002 -  A format must begin with "(".  Because other errors may
          be present, the program did not attempt to repair this
          error.

          (Technical: called from NSETP1)

VC0003 -  Two formats have appeared at this point without a matching
          INPUT statement.  INPUT and FORMAT statements must be
          paired to indicate their association clearly.

          (Technical: called from NSETP1)

VC0004 -  An apostrophe is unexpected in a FORMAT associated with an
          INPUT statement.  The only expected appearance of an
          apostrophe is in an OUTFORMAT to delimit an output
          character string.

          (Technical: called from NSETP1)

VC0005 -  A 'A' edit descriptor is not expected in a FORMAT/
          OUTFORMAT.  Only F, D, or E descriptors are to be used
          to specify the format for variables.

          (Technical: called from NSETP1)

VC0006 -  An 'I' edit descriptor is not expected in a FORMAT/
          OUTFORMAT.  Only F, D, or E descriptors are to be used
          to specify the format for variables.

          (Technical: called from NSETP1)

VC0007 -  An equal number of '(' and ')' has appeared at this point,
          so the only expected nonblank character should be the
          concluding ';' or '/'

          (Technical: called from NSETP1)

VC0008 -  Runaway apostrophies.  In general, expressions within
          apostrophies must only appear on a single line.  The
          apostrophies on this line are not in balance.

          (Technical: called from NSETP1)

VC0009 -  Normal storage of format has not concluded with expected
          ';', or '/' Check the entire expression.

          (Technical: called from NSETP1)

VC0018 -  Only a single OUTPUT statement may appear in the step.

          (Technical: called from NSETP1)

VC0019 -  The OUTPUT statement in CREATE requires that a FORMATTED_OUT,
          UNF_REAL_OUT, or other output file be specified for the step.

          (Technical: called from NSETP1)

VC0020 -  Appearance of KEEP, DROP, or SELECT standing alone is
          incompatible with the use of BLOCK.  BLOCK statements
          serve to specify which variables are to be kept in each
          block and may be used with / SELECT options.

          (Technical: called from NSETP1)

VC0021 -  Although an output file is specified for this step, no
          OUTPUT statement has appeared to specify the output.

          (Technical: called from NSETP1)

VC0022 -  An OUTFORMAT/FORMAT has not been given for the OUTPUT
          statement.  A format is required for formatted output.
          (It is not necessary when using UNF_REAL_OUT,
          UNF_INTEGER_OUT, or UNF_DOUBLE_OUT.)

          (Technical: called from NSETP1)

VC0023 -  The input VPLX file is structured according to one
          or more BY variables.  So that the linkage may be 
          established at the individual level, the same BY 
          variable(s) must be defined in the step.

          (CONTENTS may be used to find the BY variable(s) on the
          incoming VPLX file, if necessary.)

          (Technical: called from NSETP1)

VC0026 -  The statement is uninterpretable at this point.  Only
          variable lists, /SELECT IF and /CLASS statements are
          expected

          (Technical: called from NSETP1)

VC0029 -  This statement beginning with a key word is not supported
          in the new syntax.

          (Technical: called from NSETP1)

VC0030 -  This INPUT statement follows another INPUT statement for
          which a matching FORMAT statement has not been assigned.
          Each INPUT statement must be accompanied by its own FORMAT.

          (Technical: called from NSETP1)

VC0031 -  No variable names have been identified following the INPUT
          statement.  This is a fatal error.  (INPUT may not be used
          to position a file without reading variables.)

          (Technical: called from NSETP1)

VC0032 -  A variable named in the KEY list was not included on the
          INPUT list.  Each variable following KEY must be read from
          the file.

          (Technical: called from NSETP1)

VC0033 -  A variable named in the KEY list has not been previously
          defined.  Keyed input must link to previously defined
          variables.

          (Technical: called from NSETP1)

VC0034 -  After the variable list, / KEY, / OPTION (/OPTIONS) and
          / FORMAT are the only recognized forms.

          (Technical: called from NSETP1)

VC0036 -  RGENERATE must be followed by a variable list, for example,

          rgenerate repw;

          (Technical: called from NSETP1)

VC0037 -  A single variable must follow /INFLAG.

          (Technical: called from NSETP1)

VC0038 -  The variable named by /INFLAG must not be part of the input
          list.

          (Technical: called from NSETP1)

VC0039 -  The variable named by /INFLAG must be real.

          (Technical: called from NSETP1)

VC0040 -  No valid variable names follow PRINT.

          (Technical: called from NSETP1)

VC0041 -  No valid variable names follow OUTPUT.

          (Technical: called from NSETP1)

VC0042 -  A variable name in the output list has not been defined.

          (Technical: called from NSETP1)

VC0043 -  Neither an INPUT statement nor format has been specified
          for the input file.

          (Technical: called from NSETP1)

VC0044 -  A FORMAT has not been specified for the input file.

          (Technical: called from NSETP1)

VC0045 -  An INPUT statement has not been specified for the input file.

          (Technical: called from NSETP1)

VC0046 -  A variable in the PRINT statement is not defined.

          Note: this error may occur when a missing ";" results
          in an attempt to interpret the next statement as part of the
          print statement.  The specific undefined variable may be
          listed above at the beginning of this step.

          (Technical: called from NSETP1)

VC0047 -  The PRINT statement is uninterpretable at this point.

          (Technical: called from NSETP1)

VC0048 -  The statement is uninterpretable at this point.  Only a
          ';' is expected.

          (Technical: called from NSETP1)

VC0050 -  No valid variable names followed the CLASS declaration

          (Technical: called from NSET1B through NSETP1)

VC0051 -  No valid variable names followed the CAT/CATEGORICAL
          declaration

          (Technical: called from NSET1B through NSETP1)

VC0052 -  No valid variable names followed the CLASS declaration

          (Technical: called from NSET1B through NSETP1)

VC0053 -  No valid variable names followed the MISSING declaration

          (Technical: called from NSET1B through NSETP1)

VC0054 -  Use of SELECT requires the construction .IN. {...} 

          (Technical: called from NSET1B through NSETP1)

VC0055 -  Use of MISSING requires the construction .IN. {...} 

          (Technical: called from NSET1B through NSETP1)

VC0056 -  Use of CLASS or CAT requires the construction ( /  / ) 

          (Technical: called from NSET1B through NSETP1)

VC0057 -  No valid values were found in { }.  This set is not
          allowed to be empty.

          (Technical: called from NSET1B through NSETP1)

VC0058 -  No valid values or ranges were found within (  ). 

          (Technical: called from NSET1B through NSETP1)

VC0059 -  Use of CLASS or CAT should not be placed inside an IF block 

          (Technical: called from NSET1B through NSETP1)

VC0060 -  The appearance of INTO is in the wrong position.  The
          expression is consequently imbalanced.

          As many variables should follow INTO as preceed it
          in this statement. 

          (Technical: called from NSET1B through NSETP1)

VC0061 -  The appearance of FOR is in the wrong position.  Either
          only one variable should follow FOR, or the number of
          variables that follow should match the number in the
          other list(s).

          (Technical: called from NSET1B through NSETP1)

VC0062 -  The appearance of IF is in the wrong position.  Either
          only one variable should follow IF, or the number of
          variables that follow should match the number in the
          other list(s).

          (Technical: called from NSET1B through NSETP1)

VC0063 -  An undefined variable is used in a context requiring
          that it be previously defined.

          (Technical: called from NSET1B through NSETP1)

VC0064 -  The use of a replicate weight or factor in the output list
          of this statement is not allowed.  Replicate weights or
          factors should be real variables.

          (Technical: called from NSET1B through NSETP1)

VC0065 -  This statement should not appear within an IF block.
          If necessary, use if blocks to recode the data as real
          variables and then use CAT or CLASS unconditionally.

          (Technical: called from NSET1B through NSETP1)

VC0066 -  The statement would result in a variable changing type
          within an IF block.  The better stategy is to use IF blocks
          to operate conditionally on real variables and then to 
          use statements such as this thereafter.

          (Technical: called from NSET1B through NSETP1)

VC0067 -  The CLASS or CAT statement included unexpected characters
          following the construction ( /  / ).  Only labels and a
          final semicolon are expected.

          The error may be due to a missing semicolon.

          (Technical: called from NSET1B through NSETP1)

VC0068 -  A file name cannot be used in this context.

          (Technical: called from NSET1B through NSETP1)

VC0070 -  A previous CLASS specification has already appeared in
          this BLOCK statement.

          (Technical: called from NSETP1)

VC0071 -  A variable in a CLASS specification for the BLOCK has not
          been defined.

          Note: this error may occur because of a missing semicolon
          in a BLOCK statement.

          (Technical: called from NSETP1)

VC0072 -  A variable in a CLASS specification is not a CLASS variable.

          (Technical: called from NSETP1)

VC0073 -  No valid variable names follow DECLARE

          (Technical: called from NSET1B through NSETP1)

VC0074 -  Use of DECLARE CLASS requires the construction (ic)
          where ic is an integer constant > 0

          (Technical: called from NSET1B through NSETP1)

VC0075 -  Use of a character variable in this expression is not allowed

          (Technical: called from NSET1B through NSETP1)

VC0076 -  FOR is not allowed with a CLASS or CAT statement.  The allowed
          forms are

            CLASS v1  (....   ) 
            CLASS v1  INTO v2 ( ....)
            CLASS v1 v2 ...  (....   ) 
            CLASS v1 v2 ... INTO v3 v4 ... ( ....)

          (Technical: called from NSET1B through NSETP1).

VC0077 -  A variable defined by a DECLARE CLASS statement may not be
          used in a CLASS statement in this way.  The allowed
          combination is

            DEFINE CLASS class1 ( ) ;

            CLASS v1 into class1 ( ) ;

          where v1 is a real variable.

          (Technical: called from NSET1B through NSETP1).

VC0078 -  Use of a variable defined by a DECLARE CLASS statement is not 
          allowed in this expression.

          (Technical: called from NSET1B through NSETP1).

VC0079 -  When a variable is defined by a DECLARE CLASS statement,
          a subsequent CLASS statement must define a consistent number
          of levels.  The allowed form is 

            DEFINE CLASS class1 (i1 ) ;

            CLASS v1 into class1 ( / / /  ) ;

          where v1 is a real variable, and the range specification for
          the class statement defines i1 levels.

          (Technical: called from NSET1B through NSETP1).

VC0080 -  The variable in the INPUT list is already defined but
          is not of the type REAL WITH MISSING.  Under LINK_MISSING,
          any previously defined variable on the INPUT list must
          be of the type REAL WITH MISSING

          (Technical: called from NSETP1)

VC0081 -  The variable in the INPUT list is already defined but
          is not of the type REAL.  Except under LINK_MISSING,
          any previously defined variable on an INPUT list must
          be of the type REAL.

          (Technical: called from NSETP1)

VC0082 -  A filename is not allowed in the PRINT statement.

          (Technical: called from NSETP1)

VC0083 -  Array, character, or character array variables are not yet
          supported in the PRINT statement.

          (Technical: called from NSETP1)

VC0084 -  A filename is not allowed in the OUTPUT statement.

          (Technical: called from NSETP1)

VC0085 -  A variable defined only by DECLARE CLASS is not allowed in 
          this statement.

          (Technical: called from NSETP1)

VC0086 -  The variable has been previously defined. 

          (Technical: called from NSET1B through NSETP1)

VC0087 -  A class variable from a previous DECLARE CLASS is expected at
          this point. 

          (Technical: called from NSET1B through NSETP1)

VC0088 -  The specification of an ARRAY must not mix the use of declared
          class variables and integer ranges standing by themselves, e.g.,
          if class variables class1 and class2 are declared with

            DECLARE CLASS class1(0:7), class2 (3) ;

          then the following is not allowed:

            DECLARE a ( 3, class1(0:n)) ;

          but

            DECLARE a ( class2, class1(0:n)) ;

            DECLARE a ( class2, class1(0:7)) ;
 
            DECLARE a ( 3, 0:7) ;

          are possible alternatives.

          (Technical: called from NSET1B through NSETP1)

VC0089 -  An integer is expected at this point as part of the
          specification of the dimension.

          (Technical: called from NSET1B through NSETP1)

VC0090 -  The specification of the range of an array must not include
          negative values.

          (Technical: called from NSET1B through NSETP1)

VC0091 -  An integer or 'N' is expected at this point as part of the
          specification of the dimension.

          (Technical: called from NSET1B through NSETP1)

VC0092 -  The specified upper range of the array must agree with the
          upper range of the associated declared class variable.

          (Technical: called from NSET1B through NSETP1)

VC0093 -  Only 0 and 1 are allowed values for the lower range of a
          dimension of an array.

          (Technical: called from NSET1B through NSETP1)

VC0094 -  1:0 is not allowed as the range of the dimension of an array. 

          (Technical: called from NSET1B through NSETP1)

VC0095 -  A concluding ')' is expected at this point in the 
          specification.

          (Technical: called from NSET1B through NSETP1)

VC0096 -  A class variable may not be repeated in the specification
          for an array.

          (Technical: called from NSET1B through NSETP1)

VC0097 -  '(' rather than '[' is required at this point in the
          specification

          (Technical: called from NSET1B through NSETP1)

VC0098 -  Other than ';' or ',', a '(' was expected at this point to
          begin the specification of an array.

          (Technical: called from NSET1B through NSETP1)

VC0099 -  The lower limit of the range of an array may only be 0 or 1.

          (Technical: called from NSET1B through NSETP1)

VC0100 -  This expression was expected to be an equation, but a valid
          variable name was not found on the left hand side.  In other
          words, VPLX expected  var = ... and expected a valid variable
          name at this point.

          (Technical: called from NSETP1)

VC0101 -  The variable on the left hand side of the equation is not a 
          real variable, real with missing variable, weight, or
          replicate weight, which are the only allowed choices here.

          (Technical: called from NSETP1)

VC0102 -  A "=" was expected at this point as part of an equation, but
          an error has occurred.

          (Technical: called from NSETP1)

VC0103 -  Valid variable names were not successfully read in the set.
          The expression was expected to be a set equation, but valid
          variable names were not found after the initial {.

          (Technical: called from NSETP1)

VC0104 -  The number of variables in the set did not match the left-hand
          side.
      
          (Technical: called from NSET1E through NSETP1)

VC0105 -  The referenced variable on the VPLX file is cross-classified
          by one or more class variables.  Each class variable must
          be paired with a class or categorical variable of the same
          name defined for the incoming file of observations.  The
          listed variable is defined for the observation file but not
          as a class or categorical variable.
      
          (Technical: called from NSET1E through NSETP1)

VC0106 -  The referenced variable on the VPLX file is cross-classified
          by one or more class variables.  Each class variable must
          be paired with a class or categorical variable of the same
          name defined for the incoming file of observations.  The
          listed variable is defined as a class or categorical variable
          but has a different number of levels.
      
          (Technical: called from NSET1E through NSETP1)

VC0107 -  The set { } references a variable on the VPLX file.  Under
          this circumstance, the referenced variable must be the only
          variable in the set.  This restriction avoids possible 
          ambiguity in aligning the elements of the set with other
          operators.

          (Technical: called from NSET1E through NSETP1)

VC0108 -  A variable used in the expression has not been defined.

          (Technical: called from NSET1E through NSETP1)

VC0109 -  The expected ending ")" for an indexed expression, such as
          repw(i1), was not found.

          (Technical: called from NSET1E through NSETP1)

VC0110 -  Currently, repw( ) is the only supported indexed expression.

          (Technical: called from NSET1E through NSETP1)

VC0111 -  A valid index variable was not identified

          (Technical: called from NSET1E through NSETP1)

VC0112 -  An arithmetic DO must use a single index variable

          (Technical: called from NSET1E through NSETP1)

VC0113 -  The index of an arithmetic DO must be real

          (Technical: called from NSET1E through NSETP1)

VC0114 -  The name of a file cannot appear on the left-hand side of
          an equation.

          (Technical: called from NSETP1)

VC0115 -  The name of a file appears in an inappropriate location in
          this expression.

          (Technical: called from NSET1E through NSETP1)

VC0116 -  Only a file name is permitted within ENDFILE ( ).

          (Technical: called from NSET1E through NSETP1)

VC0117 -  Array subscripts improperly mix class and positional methods.

          Permissible forms:
              x(class1(i), class2(j))
              x( i, j)
          but not
              x(class1(i) , j)

          (Technical: called from NSET1E through NSETP1)

VC0118 -  The specified class variable is not associated with the array.

          (Technical: called from NSET1E through NSETP1)

VC0119 -  The specified class variable is not associated with the array.

          (Technical: called from NSET1E through NSETP1)

VC0120 -  The DERIVED array omits one or more class variables whose range
          begins at 1 rather than 0.  Implicit collapsing, allowed for
          real arrays, is not permitted for DERIVED variables.

          (Technical: called from NSET1E through NSETP1)

VC0121 -  Use of the positional method to specify an array, i.e.,
          x(i1,i2,..) requires the same number of subscripts as in
          the DECLARE statement.

          (Technical: called from NSET1E through NSETP1)

VC0122 -  DECLARE statements must precede all others.

          (Technical: called from NSET1B through NSETP1)

VC0151 -  The combination of array sectors of variable size and /KEY
          in the same INPUT statement is not supported.

          (Technical: called from NSETP1)

VC0152 -  Arithmetic statements involving array sectors of variable size
          are not yet supported.

          (Technical: called from NSETP1)

VC0200 -  Only a single BY statement is allowed within a step.

          (Technical: called from NSET1A through NSETP1)

VC0201 -  No valid variables were read by the BY statement.

          (Technical: called from NSET1A through NSETP1)

VC0202 -  The number of BY variables identified by the BY statement
          does not match the number of variables on the incoming 
          VPLX file.

          (Technical: called from NSET1A through NSETP1)

VC0203 -  A variable in the BY statement is not defined.

          (Technical: called from NSET1A through NSETP1)

VC0204 -  The specification in the BY statement is inconsistent with
          the BY variables in the incoming VPLXIN file.

          CONTENTS may be used to display the BY variables
          on the VPLXIN file.

          (Technical: called from NSET1A through NSETP1)

VC0205 -  The statement ends prematurely, without furnishing the
          required information.

          (Technical: called from NSET1A through NSETP1)

VC0206 -  A HADAMARD specification has already been given.

          (Technical: called from NSET1A through NSETP1)

VC0207 -  This specification conflicts with a specification
          that has already appeared.

          (Technical: called from NSET1A through NSETP1)

VC0208 -  This statement is expected to name only a single variable.

          (Technical: called from NSET1A through NSETP1)

VC0209 -  A variable in the statement is not defined.

          (Technical: called from NSET1A through NSETP1)

VC0210 -  The variable is of the wrong type.  Generally, variables
          should be real in such specifications.

          (Technical: called from NSET1A through NSETP1)

VC0211 -  The specified replication method is not one of the recognized
          methods.  Possibly, this error has occurred because of
          a variant in the spelling that has not been recognized.  Check
          the documentation.

          (Technical: called from NSET1A through NSETP1)

VC0212 -  There is a conflict between the specification UNWEIGHTED and
          a previous specification for a WEIGHT.

          (Technical: called from NSET1A through NSETP1)

VC0213 -  DROP may not be used with KEEP in the same step.

          (Technical: called from NSET1A through NSETP1)

VC0214 -  No valid variable names were read following KEEP.

          (Technical: called from NSET1A through NSETP1)

VC0215 -  This WEIGHT statement is in conflict with a previous WEIGHT
          or UNWEIGHTED statement.

          (Technical: called from NSET1A through NSETP1)

VC0216 -  Specified sizes must be 1 or greater.

          (Technical: called from NSET1A through NSETP1)

VC0217 -  CLUSTER COUNT is a recognized form, but COUNT is inappropriate
          in this instance.

          (Technical: called from NSET1A through NSETP1)

VC0218 -  Specified cluster sizes must be 1 or greater.

          (Technical: called from NSET1A through NSETP1)

VC0219 -  The number of coefficients provided is inconsistent with the
          contents of the incoming VPLXIN file.

          (Technical: called from NSET1A through NSETP1)

VC0220 -  The specified values of one or more of coefficients are
          inconsistent with the contents of the incoming VPLXIN file.

          (Technical: called from NSET1A through NSETP1)

VC0221 -  Coefficients have already been specified.

          (Technical: called from NSET1A through NSETP1)

VC0222 -  Specification of coefficients is inconsistent with FPC1 or
          FPC2.

          (Technical: called from NSET1A through NSETP1)

VC0223 -  Specification of FPC1 or FPC2 is inconsistent with 
          COEFFICIENTS.

          (Technical: called from NSET1A through NSETP1)

VC0224 -  It is not clear whether the specification STRATIFIED JACKKNIFE
          or STRATIFIED RANDOM GROUP is given here.

          (Technical: called from NSET1A through NSETP1)

VC0225 -  The statement has the required information but ends with
          uninterpreted information.

          (Technical: called from NSET1A through NSETP1)

VC0226 -  A replication method has already been specified.

          (Technical: called from NSET1A through NSETP1)

VC0227 -  A replication method has already been specified.  Parsing of the
          statement has stopped here, because the remainder of the statement
          is potentially a conflicting or redundant specification of the
          replication method, although this has not been confirmed.

          (Technical: called from NSET1A through NSETP1)

VC0228 -  This combination of terms is not a valid specification.

          (Technical: called from NSET1A through NSETP1)

VC0230 -  Replicate weights, REPW1, REPW2, ... or replicate factors,
          REPF1, REPF2, ... must be continuously numbered without gaps in
          the series.

          (Technical: called from SETUP2)

VC0231 -  The ultimate sampling units have not been identified.  Unless
          replicate weights or factors are used, either a CLUSTER CODE,
          CLUSTER NUMBER, or REPLICATE NUMBER statement, or a variable
          'cluster' must appear.

          (Technical: called from SETUP2)

VC023x -  A replication method has not been identified.  The replication
          method must be established by an explicit specification
          REPLICATION METHOD  ... or by implicit reference by establishing
          replicate weights and coefficients; cluster and possibly stratm,
          etc.  

          (Technical: called from SETUP2)

VC0232 -  The specification for REPLICATE COUNT/CLUSTER COUNT conflicts 
          with details provided by other components of the variance
          specification.

          (Technical: called from SETUP2)

VC0233 -  Specification of COEFFICIENTS is compatible only with generalized
          replication.

          (Technical: called from SETUP2)

VC0234 -  Specification of stratum or second-stage units conflicts with
          choice of half-sample, simple random group, or generalized
          replication.

          (Technical: called from SETUP2)

VC0235 -  The information provided does not establish the number of
          replicates to use.

          (Technical: called from SETUP2)

VC0236 -  Specification of second-stage finite population corrections is not
          allowed for this replication method.

          (Technical: called from SETUP2)

VC0237 -  Specification of finite population corrections is not
          allowed for this replication method.

          (Technical: called from SETUP2)

VC0238 -  Specification of more than one finite population correction is not
          allowed for the simple random group.

          (Technical: called from SETUP2)

VC0239 -  Half-sample, random group, and generalized replication require either:

          a) specification of replicate weight (repw1, ...) or replicate factor
          (repf1,...) variables, and a corresponding COEFFICIENTS specification

          b) a CLUSTER CODE (or use of a cluster variable) or CLUSTER NUMBER
          or REPLICATE NUMBER declaration

          (Technical: called from SETUP2)

VC0240 -  Specification of FPC2 requires specification of FPC1.

          (Technical: called from SETUP2)

VC0241 -  Specification of FPC2 requires a SECOND-STAGE CODE, NUMBER
          or COUNT.

          (Technical: called from SETUP2)

VC0242 -  The minimum requirements for specifying the simple or stratified
          jackknife or stratified random group have not been met.  Either

          a) specification of cluster code/cluster number

          b) specification of REPW or REPF variables must be given.

          (Technical: called from SETUP2)

VC0243 -  There is a mismatch between the number of specified finite 
          population corrections, FPC1, and the number of implied strata.

          (Technical: called from SETUP2)

VC0244 -  There is a mismatch between the number of specified finite
          population corrections, FPC2, and the number of implied
          secondary sampling units. 

          (Technical: called from SETUP2)

VC0245 -  There is a mismatch between the number of secondary sampling
          units implied by a STRATUM SIZE specification and the number
          of secondary units listed in the SECOND-STAGE SIZE
          statement. 

          (Technical: called from SETUP2)

VC0246 -  When there is only a single (implied) stratum, more than
          one FPC1 cannot be specified. 

          (Technical: called from SETUP2)

VC0247 -  FPC2 cannot be specified without establishing FPC1. 

          (Technical: called from SETUP2)

VC0248 -  There is insufficient information to indentify or form the 
          replicates.

          (Technical: called from SETUP2)

VC0249 -  The number of second stage units is inconsistent with other
          statements. 

          (Technical: called from SETUP2)

VC0250 -  The number of replicates indicated by the stratum sizes 
          statement is inconsistent with other information on the
          number of replicates.

          (Technical: called from SETUP2)

VC0251 -  A specification of COEFFICIENTS is required with generalized
          replication.

          (Technical: called from SETUP2)

VC0252 -  Specification of more than one FPC1 is inconsistent with the
          simple jackknife. 

          (Technical: called from SETUP2)

VC0253 -  Specification of FPC2 is inconsistent with the simple jackknife.

          (Technical: called from SETUP2)

VC0254 -  Specification of more than one stratum is inconsistent with the
          simple jackknife.

          (Technical: called from SETUP2)

VC0255 -  The STRATUM SIZE specification is inconsistent with other
          information.

          (Technical: called from SETUP2)

VC0256 -  One or more BY variables is of the wrong type.  BY variables
          must be real, real with missing, or class.

          (Technical: called from SETUP2)

VC0257 -  An undefined variable is included in a DROP, KEEP, or BLOCK
          statement.

          (Technical: called from SETUP2)

VC0258 -  The variable included in a BLOCK statement is duplicated.

          Variables can only be assigned to a single block.  By creating
          copies of the same information:

            {income_age income_region } = income ;
            block income_age / class age ;
            block income_region / class region ;

          the same information can be associated with more than one block.

          (Technical: called from SETUP2)

VC0259 -  A class or BY variable is included in a KEEP, or BLOCK statement.

          CLASS and BY variables cross-classify other information, but are
          not treated as regular variables.  To be able to display the
          values of a class variable, such as percents, define a categorical
          variable with a different name.  For example,

            cat  age into age_cat (0-17/18-29/30-44/45-64/65-high) ;
            class  age  (0-17/18-29/30-44/45-64/65-high) ;

          (Technical: called from SETUP2)

VC0260 -  KEEP and BLOCK statements must not list the weight variable or
          replicate weights.

          (Technical: called from SETUP2)

VC0261 -  A weight variable cannot also be used as a BY variables.
          BY variables must be real, real with missing, or class.

          (Technical: called from SETUP2)

VC0262 -  A variable used to define the replication method cannot 
          also be used as a BY variables.  BY variables must be real,
          real with missing, or class.

          (Technical: called from SETUP2)

VC0263 -  A variable used to define the replication method cannot 
          appear in a BLOCK definition or in a KEEP list.

          (Technical: called from SETUP2)

VC0264 -  Although replicate weights have been identified, either
          a COEFFICIENTS statement must appear to establish 
          generalized replication, or an explicit REPLICATION
          METHOD must appear to establish the replication method.

          (Technical: called from SETUP2)

VC0265 -  A file name appears in the BY statement.

          (Technical: called from NSET1A through NSETP1)

VC0266 -  A file name may not be used as a weight.

          (Technical: called from NSET1A through NSETP1)

VC0267 -  A file name may not be used in this statement.

          (Technical: called from NSET1A through NSETP1)

VC0268 -  A file name may not be included in a KEEP, or BLOCK  
          statement.

          (Technical: called from NSETP1)

VC0269 -  A character variable may not be included in a KEEP, or BLOCK
          statement.

          (Technical: called from NSETP1)

VC0270 -  The file name duplicates a previous variable.

          (Technical: called from NSETP1)

VC0271 -  The file for this INPUT statement is ambiguous.

          Possibly a LINK statement is missing.

          The ambiguity can be removed by naming one or more files.  
          This may be done with the (NAME = ) syntax for the primary
          input file

          CREATE  IN = file1.dat (NAME = filename) ...

          or LINK statement

                LINK  file2.dat (NAME = filename2) ;

          (The syntax is not case sensitive, but UPPER CASE has been
          used here to denote the key elements of the syntax.)

          (Technical: called from NSETP1)

VC0272 -  Separate FORMAT or OUTFORMAT statements are no longer supported.
          Format specification should be accomplished through /FORMAT in
          the appropriate INPUT or OUTPUT statement.

          (Technical: called from NSETP1)

VC0273 -  Error in attempting to read a file name.  The syntax is

             input ( name )

          or

             output (name ) 

          where name has been previously established for the main file,
          a linked file, or an INPUTFILE or OUTPUTFILE statement.

          (Technical: called from NSETP1)

VC0274 -  Use of a variable defined by a DECLARE CLASS statement is not 
          allowed in this expression.

          (Technical: called from NSET1A through NSETP1)

VC0275 -  During REWEIGHT, only a single OUTPUT statement may appear.
          (This restriction does not apply to CONVERT, CREATE, or REPGEN
          steps.)

          (Technical: called from NSETP1)

VC0276 -  The input and output files may not be assigned the same names.

          (Technical: called from NSETP1)

VC0277 -  The file for this OUTPUT statement is ambiguous.

          Possibly an OUTPUTFILE statement is missing.

          The ambiguity can be removed by naming one or more files.  
          This may be done with the (NAME = ) syntax for the primary
          output file

          CONVERT  IN = file1.dat (NAME = filename) 
		           OUT = file2.dat (NAME = filename2)

          or OUTPUTFILE statement

                OUTPUTFILE  file2.dat (NAME = filename2) ;

          (The syntax is not case sensitive, but UPPER CASE has been
          used here to denote the key elements of the syntax.)

          (Technical: called from NSTOUT)

VC0278 -  Except for REPW( ), functions may not be included in the
          output list.

          (Technical: called from NSTOUT)

VC0279 -  The syntax ARRAY(*) cannot be used at this point.  The syntax
          may only be used if a single array appears on the right-hand
          side of the equation.  For example, correct usage is

             a(classvar) = b(*) ;

          but statements such as

             a = b(*) ;

             {a c} = b(*) ;

          are not permitted.

          (Technical: called from NSETP1)

VC0280 -  VPLX attempted to interpret the '*' at this point as part of
          the syntax array(*), but a link to the array was not
          successfully established.

          For example, correct usage is

             a(classvar) = b(*) ;

          (Technical: called from NSETP1)

VC0281 -  VPLX attempted to interpret the '*' at this point as part of
          the syntax array(*), but there was an apparent attempt to
          combine this with other indexing elements.

          For example, correct usage is

             a(classvar) = b(*) ;

          but

             a(classvar) = b(*,1) ;

          is not supported.

          (Technical: called from NSETP1)

VC0282 -  The array was not previously defined.  Arrays may be declared
          implicitly only in the class indexing form.  For example,

            A(classvar1, classvar2) = ...

          (Technical: called from NSTOUT)

VC0283 -  During REWEIGHT, only a single OUTPUT statement may appear, and
          OUTPUTFILE may not be used to open additional output files.          
          (This restriction does not apply to CONVERT, CREATE, or REPGEN
          steps.)

          (Technical: called from NSETP1)

VC0284 -  The file is assigned for reading.  The file named by the OUTPUT
          statement must be assigned as an output file.

          (Technical: called from NSETP1)

VC0285 -  The file is assigned for writing.  The file named by the INPUT
          statement must be assigned as an input file.

          (Technical: called from NSETP1)

VC0300 -  REPW or REPF has appeared, but the number of replicates has
          not yet been determined.

          During CREATE, the number of replicates can be established by
          a HADAMARD statement or the number of coefficients following
          a COEFFICIENTS statement.

          During REWEIGHT, the number of replicates is usually
          established by the incoming VPLX file.

          (Technical: called from RFADD)

VC0301 -  In an attempt to expand REPW or REPF, the allowed size of the
          work array has been exceeded.

          The size of the work array is governed by the FORTRAN
          parameter MVAR.  Usually, this error would occur only under
          circumstances in which a very large number of replicates is
          implied.

          (Technical: called from RFADD)

VC0302 -  At this point, reference to both replicate factors REPF...
          and replicate weights, REPW... has occurred.  These two
          features cannot be combined in a single step because of
          potential ambiguity.  The step must be changed to refer
          to only one of these two approaches.

          (Technical: called from RFADD)

VC0303 -  There is a maximum of 99,999 replicate factors or weights.

          (Technical: called from RFADD)

VC0304 -  No matching ROW#, COEF# pairs (e.g., ROW1, COEF1) were found
          to generate according to the HADAMARD specification.

          (Technical: called from RFADD)

VC0305 -  The vplxin= file notes that the original replicates were
          based on a weight variable, but this variable has not
          been established on the incoming in= file.

          (Technical: called from RFADD)

VC0306 -  The vplxin= file notes that the original replicates were
          based on one or more variable used to setup the replication,
          (stratum, cluster, random group number, etc.) but one or more
          of these variables have not been established on the incoming
          in= file.

          (Technical: called from RFADD)

VC0310 -  At this point, reference to both replicate factors REPF...
          and replicate weights, REPW... has occurred.  These two
          features cannot be combined in a single step because of
          potential ambiguity.  The step must be changed to refer
          to only one of these two approaches.

          (Technical: called from RFCHCK)

VC0311 -  Reference to REPW0 is only accepted if there is no other
          weight variable.  Generally, reference to REPW0 is not
          encouraged.

          (Technical: called from RFCHCK)

VC0312 -  Two different variables have been assigned to represent
          the replicate weight for some replicate.

          (Technical: called from RFCHCK)

VC4001 -  BY variable(s) must be in increasing order.

          When a BY statement identifies BY variables, the BY variables
          must be the primary sort key for the data.  If the replication
          method also requires sorting, such as the stratum/cluster sort
          required by the stratified jackknife, then the file must be
          sorted by these variables within the same values of the
          BY variables.

          (Technical: called from CREAT2)

VC4002 -  Some replication methods require sorting.  For example, the
          simple jackknife requires sorting by cluster, and the stratified
          jackknife requires sorting by stratum and cluster.

          If the data have been sorted for the replication method, a
          possible reason for this error is that the information is
          being misread through an error in the format.

          (Technical: called from CREAT2)

VC4003 -  There are no valid observations.  This is a fatal error.

          A possible source for this error is that VPLX was unable to
          read the first observation from the primary input file,
          possibly because of a fatal error in the format.

          (Technical: called from CREAT2)

VC5001 -  An error has occurred in attempting to read an appropriate
          record from a linked file according to a /KEY specification
          in the associated INPUT statement.

          The linked file can be identified on the basis of the Fortran
          unit number.  Assignments of linked files to Fortran unit
          numbers are provided in the print file at the beginning of the
          step (new syntax) or with the associated LINK statement (old
          syntax).

          The error message shows an observation number on the linked
          file, and the associated values of the key variables.  In
          this example,
 
          MISMATCH OF KEYS, UNIT 18 OBS #       1
          cluster                   3.0000
          REQUIRED MATCH
          cluster                   1.0000

          a problem occurs because the 1st observation from the linked
          file has an associated value for the key variable, CLUSTER,
          of 3.  The value of cluster for the observation from the 
          primary (IN=) file is 1, however.  Since the linked file must 
          be in sort, no further attempt is made to continue.

          Some possibilities that should be considered are:
          1.  The linked file lacks the observation with the required 
              value of the key variable(s).
          2.  The primary file or the linked file is not in sort with
              respect to the key variable(s).
          3.  The value(s) of the key variable(s) are being misread from
              one of the associated files.

          (Technical: called from RECODX/RECDX2)

VC5002 -  An I/O error has occurred in attempting to read the first
          observation from the primary input file.  Although VPLX
          will treat an I/O error after some observations have been
          read as effectively an end of file, failure to read any
          valid observations is a fatal error.

          A likely source of this error is an inappropriate format
          specification, or possible formatting errors in producing
          the input file.

          (Technical: called from RECODX/RECDX2)

VC5003 -  An I/O error has occurred in attempting to read an 
          observation from a linked file.  At this point, observations
          remain on the primary input file.

          (Technical: called from RECODX/RECDX2)

VC5004 -  An end of file has occurred in attempting to read the first
          observation from the primary input file.  Apparently, the
          file is empty.

          (Technical: called from RECODX/RECDX2)

VC5005 -  An end of file has occurred in attempting to read an
          observation from a linked file.  At this point, observations
          remain on the primary input file.  The linked file may lack
          required data.  Alternatively, inclusion of a /INFLAG 
          specification on the INPUT statement allows the step to
          continue processing.

          (Technical: called from RECODX/RECDX2)

VC5006 -  An error has occurred in attempting to read an appropriate
          record from a linked file according to a /KEY specification
          in the associated INPUT statement.

          The linked file can be identified on the basis of the Fortran
          unit number.  Assignments of linked files to Fortran unit
          numbers are provided in the print file at the beginning of the
          step (new syntax) or with the associated LINK statement (old
          syntax).

          The error message shows the values of the key variables for
          two consecutive observations on the linked file.  In this
          example,
 
          NONASCENDING KEYS ON UNIT 19 OBS #       2
          stratum                   1.0000
          cluster                   1.0000

          PREVIOUS OBSERVATION UNIT 19 OBS #       1
          stratum                   1.0000
          cluster                   1.0000

          a problem occurs because the current observation from the linked
          file has associated value(s) for the key variable(s), that are
          either the same (in this case) or decreasing when compared to
          the previous observation.  Values of the key variables must be,
          when considered together, unique and increasing.

          Some possibilities that should be considered are:
          1.  The values of the key variables are being misread from
              one of the associated files.
          2.  The linked file is not in sort with respect to the key
              variable(s).
          3.  The linkage should be specified with a more detailed
              key variable or more detailed key variables so that
              observations on the linked file will have unique keys. 

          (Technical: called from RECODX/RECDX2)

VC5007 -  An end of file has occurred on the input VPLX file in
          attempting to locate the same values of the BY variables as
          the current observation from the primary input file.

          This match is attempted at the first observation with new
          values of the BY variables.  These new values, which are
          not matched on the VPLX file, are shown above.

          (Technical: called from RECODX/RECDX2)

VC5008 -  An error has occurred in attempting to locate the same values
          of the BY variables on the input VPLX file as the current
          observation.

          This match is attempted at the first observation with new
          values of the BY variables.  The values of the BY variables
          are shown above for the observation followed by values for
          the VPLX file.  The values on the VPLX file are beyond the
          values for the observation, so no match is possible.

          (Technical: called from RECODX/RECDX2)

VC5009 -  Values of ROW1, ROW2, etc. must be integers when using the
          HADAMARD feature.

          (Technical: called from RECODX/RECDX2)

VC5010 -  Index value for REPW(index) was outside the range (1, number
          of replicates)

          (Technical: called from RECODX/RECDX2)

VC5011 -  Index value for REPW(index) was noninteger.

          (Technical: called from RECODX/RECDX2)

VC5012 -  Index value for REPW(index) was computed to be missing.

          (Technical: called from RECODX/RECDX2)

VC5013 -  The increment variable in DO i = start,end,increment
          must be a nonzero integer.

          (Technical: called from RECODX/RECDX2)

VC5014 -  The increment variable in DO i = start,end,increment
          was computed to be missing.

          (Technical: called from RECODX/RECDX2)

VC5015 -  The end variable in DO i = start,end,increment
          must be a nonzero integer.

          (Technical: called from RECODX/RECDX2)

VC5016 -  The end variable in DO i = start,end,increment
          was computed to be missing.

          (Technical: called from RECODX/RECDX2)

VC5017 -  The start variable in DO i = start,end,increment
          must be a nonzero integer.

          (Technical: called from RECODX/RECDX2)

VC5018 -  The start variable in DO i = start,end,increment
          was computed to be missing.

          (Technical: called from RECODX/RECDX2)

VC5019 -  The computed value for an index of an array variable was
          negative or noninteger.

          (Technical: called from RECDX2)

VC5020 -  The value for an index of an array variable exceeds the
          upper bound.

          (Technical: called from RECDX2)

VC5021 -  The value for an index of an array variable is missing.

          (Technical: called from RECDX2)

VC5022 -  The value for an index of an array variable is zero where
          not allowed.

          For a one-dimensional array (i.e., a vector), the array has
          not been specified to have a dimension with a range starting 
          at 0, by a statement such as

            DECLARE a (classvar (0:n)) ;

          or

            DECLARE a (0:n) ;

          so storage into an index value of 0 is not allowed.

          For multidimensional arrays, the same prohibition applies to
          each dimension that is not declared to have a range starting 
          at 0.

          (Technical: called from RECDX2)

VC5023 -  An error has occurred in computing an index.

          An error detected at this point should have been trapped
          earlier in the program flow.  Please refer this problem to
          Bob Fay.

          (Technical: called from RECDX2)

VC5024 -  The value for an index of an array variable is zero where
          not allowed.  The array is DERIVED, so that only those 
          dimensions, if any, which are declared to have a lower bound
          of 0 may be accessed

          For a one-dimensional array (i.e., a vector), the array has
          not been specified to have a dimension with a range starting 
          at 0, by a statement such as

            DECLARE DERIVED a (classvar [0:n]) ;

          or

            DECLARE a (classvar [0:n]) ;

          or

            DECLARE a (0:n) ;

          but not

            DECLARE DERIVED a (classvar) ;

          For multidimensional DERIVEd arrays, the same prohibition 
          applies to each dimension that is not declared to have a 
          range starting at 0.

          (Technical: called from RECDX2)

VC5025 -  The computed value for the indices of an array section are
          inconsistent.  In VPLX, the first index must be less than or
          equal to the second index.

          (Technical: called from RECDX2)

VC5026 -  An operator such as +, -, *, /, etc. was about to be applied
          to sets or array sectors of different sizes.  Either one or
          both must be of length 1, or the lengths must agree.

          (Technical: called from RECDX2)

VC5027 -  At this point, the stack holding the sizes of sets/arrays
          should have been at depth 2.  An internal error has occurred.

          (Technical: called from RECDX2)

VC5028 -  The number of elements in the set/array sector on a
          left-hand side does not match the right-hand side.  (The
          right-hand side is allowed to be of depth 1, instead, but in
          this case, the depth of the r.h.s. > 1.)

          Change arithmetic expressions involving sets/array sectors to 
          obtain consistency.

          (Technical: called from RECDX2)

VC9001 -  Only OPTION (or OPTIONS) is expected at this point.

          (Technical: called from CONTNT) 

VC9002 -  An ending semicolong is expected.

          (Technical: called from CONTNT) 

VC9011 -  Only OPTION (or OPTIONS) is expected at this point.

          (Technical: called from EXPORT) 

VC9012 -  An ending semicolong is expected.

          (Technical: called from EXPORT) 

VI0001 -  A write error occurred while VPLX was performing an
          unformatted write to the primary OUT= output file.
         
          VPLX will attempt to delete the file.

          The FORTRAN implementation gave an error return from a WRITE
          statement.  Specific diagnostic information may be provided
          by a system error message but is not available to VPLX.

          Possible explanations include:

          1) The error may have occurred if the target device for the
          file became full.  Once the file is deleted, however, the
          device may no longer be full, so some of the evidence for
          overflow may be consequently destroyed.  If the program is
          rerun, try to monitor the size of free space on the device and
          see if the free space disappears just before VPLX terminates.
         
          2) There may be a system protection on the file denying
          write access.
         
          3) Less likely, hardware failure.

          (Technical: called from subroutine FWSTOP.)

VI0002 -  A write error occurred while VPLX was performing an
          unformatted write to an output file.
         
          VPLX will attempt to delete both this file and the primary
          output file.
         
          The FORTRAN implementation gave an error return from a WRITE
          statement.  Specific diagnostic information may be provided
          by a system error message but is not available to VPLX.

          Possible explanations include:

          1) The error may have occurred if the target device for the
          file became full.  Once the file is deleted, however, the
          device may no longer be full, so some of the evidence for
          overflow may be consequently destroyed.  If the program is
          rerun, try to monitor the size of free space on the device.
         
          2) There may be a system protection on the file denying
          write access.
         
          3) Less likely, hardware failure.

          (Technical: called from subroutine FWSTOP.)

VI0003 -  A write error occurred while VPLX was performing a formatted
          write to the primary OUT= output file.
         
          VPLX will attempt to delete the file.

          The FORTRAN implementation gave an error return from a WRITE
          statement.  Specific diagnostic information may be provided
          by a system error message but is not available to VPLX.
          
          Possible explanations include:
         
          1) There may be a syntactic error in the format.  The primary
          output file from REWEIGHT is a character data file governed by
          the OUTFORMAT (the format associated with the output
          statement), so this format should be checked carefully if 
          the error occurred during REWEIGHT.
         
          2) VPLX may be trying to output a number requiring more
          characters than allowed by the format.  In some FORTRAN 
          implementations, an execution error occurs.  During REWEIGHT,
          check OUTFORMAT for the space allotted for each field, 
          remembering that FORTRAN always includes the decimal point
          under Fw.d format.  For example, F1.0 will not generally 
          be adequate to write a number from 0-9 -- at least F2.0 is
          instead required, etc.
        
          3) The error may have occurred if the target device for the
          file became full.  Once the file is deleted, however, the
          device may no longer be full, so some of the evidence for
          overflow may be consequently destroyed.  If the program is
          rerun, try to monitor the size of free space on the device.
         
          4) There may be a system protection on the file denying
          write access.
         
          5) Less likely, hardware failure.

          (Technical: called from subroutine FWSTOP.)

VI0004 -  A write error occurred while VPLX was performing a
          formatted write to an output file.
         
          VPLX will attempt to delete both this file and the primary
          output file.
         
          The FORTRAN implementation gave an error return from a WRITE
          statement.  Specific diagnostic information may be provided
          by a system error message but is not available to VPLX.

          Possible explanations include:

          1) There may be a syntactic error in the format.  Try to
          match the unit associated with the error with the 
          "assigned to" statements in the VPLX listing to discover
          which file produced the error.  Check the format associated
          with this file.
         
          2) VPLX may be trying to output a number requiring more
          characters than allowed by the format.  In some FORTRAN 
          implementations, an execution error occurs.  Check the 
          format for the space allotted for each field, remembering
          that FORTRAN always includes the decimal point under Fw.d
          format.  For example, F1.0 will not generally be adequate
          to write a number from 0-9 -- at least F2.0 is instead 
          required, etc.
        
          3) The error may have occurred if the target device for the
          file became full.  Once the file is deleted, however, the
          device may no longer be full, so some of the evidence for
          overflow may be consequently destroyed.  If the program is
          rerun, try to monitor the size of free space on the device.
         
          4) There may be a system protection on the file denying
          write access.
         
          5) Less likely, hardware failure.

          (Technical: called from subroutine FWSTOP.)

VI0101 -  A read error occurred while VPLX was performing an unformatted
          read of the primary IN= input file.
         
          The error may have occurred if the input file did not conform
          to VPLX's expectations at this point.

          (Technical: called from subroutine FRSTOP.)

VI0102 -  A read error occurred while VPLX was performing an unformatted
          read of an input file.
         
          (Technical: called from subroutine FRSTOP.)
          
VI0105 -  Error reading first record of VPLX input file.

          The file appears not to be a VPLX file, which was expected.

          (Technical: called from PREAMB)

VI0106 -  The VPLX file version number, contained in the first record
          of the file, is not one of the recognized values to this
          version of the program.
          
          A typical value of the version number is 9203, i.e. March,
          1992.  Later versions of the file may appear.

          (Technical: called from PREAMB)

VI0107 -  The information for crossed variables is not internally
          consistent, indicating that the incoming VPLX file may be
          damaged, or the previous step of VPLX that created the file
          may have made an error.

          (Technical: called from PREAMB)

VI0108 -  The information for labels for levels is not internally
          consistent, indicating that the incoming VPLX file may be
          damaged, or the previous step of VPLX that created the file
          may have made an error.

          (Technical: called from PREAMB)

VI0109 -  The incoming VPLX file contains an inconsistency between the
          total number of variables and the counts of regular, class,
          variance related, and BY variables.  
          
          Please report this inconsistency to Bob Fay.
          
          (Technical: called from PREAMB)

VI0111 -  The internally stored value for the size of the array holding
          the dimensions of crossed variables disagrees with the 
          recomputed value.
          
          This error indicates an error in the FORTRAN code for VPLX.
          Please report this error.
          
          (Technical: called from PREAMO)
          
VI0112 -  The internally stored value for the size of the array holding
          the level labels of categorical, class, and crossed variables
          disagrees with the recomputed value.
          
          This error indicates an error in the FORTRAN code for VPLX.
          Please report this error.
          
          (Technical: called from PREAMO)
          
VI0200 -  Unable to assign file to a FORTRAN unit number.

          VPLX uses FORTRAN unit numbers 10-17 for specific uses.  It
          attempts to use 8-9, and 18-39 for all other file assignments.
          Too many files are open at once for this strategy.
          
          (Technical: called from IUFIND.)

VI0201 -  File format or positioning error, TRANSFORM step scratch file

          During the execution of the TRANSFORM step, subroutines may
          write information to a file for the full sample and reread the
          information for each replicate.  An error has occurred
          positioning the file.
          
          This error is unusual and would indicate an internal error in
          VPLX.

          (Technical: called from SCPOSN.)

VI0202 -  File is already assigned to another unit.

          A file cannot be opened for more than one purpose at the
          same time.  Check the reported unit number by looking back
          to messages "Assigned to unit" in the listing before this 
          point.
          
          (Technical: called from OPENCH.)

VI0203 -  Unable to open scratch file.  The designated file cannot
          be opened for writing as a scratch file.  The file name
          may be invalid, the run may not have permission to write
          the file, or the file system may be full and prevent
          opening of the file.
          
          (Technical: called from SCOPEN.)

VI0204 -  Unable to open file in order to delete it.  This error should
          only occur if the file exists but the user does not have 
          permission to open the file, which VPLX does first before
          deleting it.
          
          (Technical: called from OPENG.)

VI0205 -  Unable to open the designated file for formatted reading.
          The file may not exist, the file name may be invalid, or 
          the run may not have permission to read the file.
          
          (Technical: Error condition set in OPENRF.)

VI0206 -  Unable to open the designated file for unformatted reading.
          The file may not exist, the file name may be invalid, or 
          the run may not have permission to read the file.
          
          (Technical: Error condition set in OPENRU.)

VI0207 -  Unable to open the designated file for formatted writing.
          The file name may be invalid, the run may not have permission 
          to open or write to the file, or the file system may be full,
          preventing opening of the file.
          
          (Technical: Error condition set in OPENWF.)

VI0208 -  Unable to open the designated file for unformatted writing.
          The file name may be invalid, the run may not have permission 
          to open or write to the file, or the file system may be full,
          preventing opening of the file.
          
          (Technical: Error condition set in OPENWU.)

VI0209 -  Unable to open unnamed scratch file.  Because VPLX needed
          one or more scratch files at this point than specified by
          preceding SCRATCH1, etc. statements (if any), it attempted to
          open an unnamed scratch file.  Usually, the Fortran 
          implementation places these files in a default directory.
          Fortran was unable to open the file, possibly because of lack 
          of permission to write to the default directory.

          One approach is to provide SCRATCH1-SCRATCH5 statements
          naming scratch files in directories to which VPLX may write.
          
          (Technical: called from SCOPEN.)

VI0210 -  Unable to open scratch file with STATUS=NEW set.  The file
          already exists.

          In the PC environment, the file option (status=new) prevents
          an existing file from being opened as a scratch file.  The 
          options are:

          1) investigate and delete the file if it's not needed (such 
          as a leftover scratch file not previously deleted)

          2) request a different scratch file

          3) remove the (status=new) option, in which case the existing
          file will be overwritten.

          In a UNIX or VMS environment, (status=new) is the default.
          This error may occur by referencing an existing file, but this
          file may be a scratch file opened by a concurrent VPLX run on
          the system.  In this case, the concurrent run may use the file
          and then delete it, obscurring the situation.

          The options are:

          1) investigate and delete the file if it's not needed, but
          generally only if the file does not belong to another user.

          2) request a different scratch file.  This is the best choice
          if the file is used as a scratch file by another VPLX run.  To
          avoid future conflict, it is better to choose a new name.

          3) run under the (status=unknown) option, in which case the existing
          file will be overwritten.  This is not a good choice if the file
          may be used concurrently by another run.
          
          (Technical: called from SCOPEN.)

VM0001 -  Parameters incorrectly set for MERGE step.  VPLX must be
          recompiled in order for the MERGE step to run. This error
          call was made immediately as the MERGE step began.  This
          problem will continue to occur in any attempt to use the
          MERGE step.
          
          (Technical: called from VMERGE.  When VPLX was compiled, the
          values chosen for several parameters are used to compute the
          parameter MTRSZI.  This parameter must be larger than
          12 * MTRANS, another parameter.  In fact, MTRSZI should be
          much larger since MTRSZI-12*MTRANS is space used for other
          purposes.  Increasing the parameter MSIZEI sufficiently is
          one approach to solve this problem.)
          
VM0002 -  No output file has been identified.  The step requires an
          output file.
          
          (Technical: called from VMERGE.)
          
VM0003 -  A SELECT statement has already been given.  Only one SELECT
          statement may be used in a MERGE step.
          
          (Technical: called from VMERGE/NMERGE.)
          
VM0004 -  An OUTPUT CLASS statement has already been given.  A SELECT
          statement may not be used in combination with an OUTPUT CLASS
          statement in a MERGE step.
          
          (Technical: called from VMERGE/NMERGE.)

VM0005 -  An OUTPUT CLASS statement has already been given.  Only one 
          OUTPUT CLASS statement may be used in a MERGE step. 
          
          (Technical: called from VMERGE/NMERGE.)

          
VM0006 -  Unable to read a variable name from the SELECT or OUTPUT CLASS
          statement.  Check the form of the statement.

          (Technical: called from VMERGE/NMERGE.)

VM0007 -  The SELECT or OUTPUT CLASS statement must name a single class
          variable.

          (Technical: called from VMERGE/NMERGE.)
          
VM0008 -  The variable named is not recognized on the incoming file.

          (Technical: called from VMERGE/NMERGE.)

VM0009 -  The variable named is not a class variable.

          (Technical: called from VMERGE/NMERGE.)
          
VM0010 -  A "(" was expected as part of the specification.

          (Technical: called from VMERGE/NMERGE.)
          
VM0011 -  A valid positive integer value is required as part of the
          specification.

          (Technical: called from VMERGE/NMERGE.)
          
VM0012 -  A integer value given is outside the number of levels for the
          selected class variable.

          (Technical: called from VMERGE/NMERGE.)
          
VM0013 -  A ")" was expected as part of the specification.
          
          (Technical: called from VMERGE/NMERGE.)
          
VM0014 -  A SELECT statement has already been given.  AS may not be
          used with SELECT in this step.
          
          (Technical: called from VMERGE/NMERGE.)
          
VM0015 -  The AS statement is incomplete.

          (Technical: called from VMERGE/NMERGE.)
          
VM0016 -  The AS statement was expected to name a single class variable,
          but more than one variable name was found.

          (Technical: called from VMERGE/NMERGE.)
          
VM0017 -  The variable named does not agree with the previous OUTPUT
          CLASS statement.
          
          (Technical: called from VMERGE/NMERGE.)
          
VM0018 -  The AS statement is expected to indicate the outgoing
          disposition of each level of the class on the incoming file.
          If the class is not represented on the incoming file, then
          only one output level should be specified.
          
          (Technical: called from VMERGE.)

VM0019 -  A SELECT statement has already appeared.  An OUTPUT statement        
          may not be used in combination with a SELECT statement in a
          MERGE step.
          
          (Technical: called from VMERGE/NMERGE.)

VM0020 -  The variable named does not agree with the previous AS
          statement.
          
          (Technical: called from VMERGE/NMERGE.)

VM0021 -  An AS statement has already been given for the VPLX input
          file.  Each input file, named as the IN= file in the MERGE
          statement or in INCORPORATE, should have, at most, a single
          associated AS statement.
          
          (Technical: called from VMERGE/NMERGE.)

VM0022 -  The specification of the disposition of levels in the incoming
          file to the outgoing file is not in the required format.
          
          (Technical: called from VMERGE/NMERGE.)
          
VM0023 -  A range MISSING may not appear in an AS statement.

          (Technical: called from VMERGE/NMERGE.)
          
VM0024 -  The interpretation of an open ended range is not determined.
          Solution: provide a more explicit disposition of each incoming
          class.

          (Technical: called from VMERGE/NMERGE.)

VM0025 -  A VPLX file must be specified with INCORPORATE.
          
          (Technical: called from VMERGE/NMERGE.)
          
VM0026 -  The specified OUTPUT CLASS is used in some but not all of 
          the blocks in the incoming file.  The allowed options are for
          the class to be used in all blocks or none.
          
          (Technical: called from VMERGE/NMERGE.)

VM0027 -  An OUTPUT CLASS or SELECT statement is required.

          (Note: even if an AS statement identifies the output class,
          an OUTPUT CLASS statement is required to specify the number
          of outgoing levels.)
          
          (Technical: called from VMERGE/NMERGE.)
            
VM0028 -  Because the OUTPUT CLASS is found on the incoming file, the
          number of elements in the AS statement must agree with the
          number of levels of the class on the incoming file.
          
          (Technical: called from VMERGE.)

VM0029 -  Because the OUTPUT CLASS is not found on the incoming file,
          the AS statement must specify a single level for the OUTPUT
          class.
          
          (Technical: called from VMERGE.)

VM0030 -  A file was not successfully opened in conjunction with the
          INCORPORATE statement.  The statement must specify an existing
          VPLX file.

          (Technical: called from VMERGE.)

VM0031 -  The AS list specified a level for the outgoing class beyond
          the number of levels specified by the OUTPUT CLASS statement.
          The OUTPUT CLASS statement establishes the size of the output
          class variable.  AS statements may not indicate outgoing
          levels beyond this range.
          
          Note: this error message may not happen immediately following
          the AS statement but is delayed until all specifications for
          the corresponding primary input or INCORPORATEd file (as the
          case may be) have been examined.
          
          (Technical: called from VMERGE/NMERGE.)

VM0032 -  The AS list points to a level on the outgoing file that has 
          already been assigned.  Each outgoing level can be provided
          by only one source.

          (Technical: called from VMERGE/NMERGE.)
          
VM0033 -  The output class does not appear in the incoming file.  A
          specification of "0" is inappropriate for the outgoing level
          in this case.
          
          (Technical: called from VMERGE.)

VM0034 -  An AS statement is not associated with this file, so VPLX will
          attempt to assign all input levels to the output file
          sequentially.  There were insufficient remaining levels on the
          output file.

          (Technical: called from VMERGE.)

VM0035 -  There are no remaining unassigned levels in the output file.
          Solution: check the logic of the program.  If necessary,
          increase the number of levels in the outgoing file by changing
          the OUTPUT class statement.
          
          (Technical: called from VMERGE.)

VM0036 -  The statement begins with a key word not used in the MERGE
          step.

          (Technical: called from NMERGE.)
          
VM0037 -  The statement begins with a key word not used in the EXTRACT
          step.

          (Technical: called from NMERGE.)
          
VM0038 -  A SELECT statement has already been given.  Only one SELECT
          statement may be used in an EXTRACT step.
          
          (Technical: called from NMERGE.)
          
VM0039 -  An INCORPORATE statement may not appear in an EXTRACT step.
          
          (Technical: called from NMERGE.)
          
VM0040 -  An ending semicolon was expected for the statement at this
          point.
          
          (Technical: called from NMERGE.)
          
VM0041 -  STEPOPTION, STEP_OPTION may be used only once and must be
          placed the beginning of the step, before all INCORPORATE
          statements.
          
          (Technical: called from NMERGE.)

VM0042 -  OPTION may not be used with the primary input file.  OPTION
          statements may follow INCORPORATE statements.
          
          (Technical: called from NMERGE.)

VM0043 -  The number of replicates on the INCORPORATED file disagrees
          with the primary file.

          Only the CONSTANTS or FULLSAMPLE options permit merging of
          files with mismatching number of replicates.
          
          (Technical: called from NMERGE.)

VM0044 -  The number of BY groups on the INCORPORATED file disagrees
          with the primary file.

          Only the CONSTANTS or BYREPEAT options permit merging of
          files with mismatching number of BY groups.
          
          (Technical: called from NMERGE.)

VM0045 -  The number of BY variables on the INCORPORATED file disagrees
          with the primary file.

          Only the CONSTANTS, BYREPEAT or NOIDCHECK options permit
          merging of files with mismatching number of BY variables.
          
          (Technical: called from NMERGE.)

VM0046 -  The number of variance IDs on the INCORPORATED file disagrees
          with the primary file.

          Only the CONSTANTS, FULLSAMPLE or NOIDCHECK options permit
          merging of files with mismatching number of variance IDs.
          
          (Technical: called from NMERGE.)

VM0101 -  Mismatch of the number of associated classes for a block.
          When the output class is present on the incoming file, then
          each block on the input file must have the same number of
          associated classes as on the output.
          
          (Technical: called from MRGSET.)
          
VM0102 -  Mismatch of the number of associated classes for a block.
          When the output class is NOT present on the incoming file,
          then each block on the input file must have one fewer
          associated classes as on the output.
          
          (Technical: called from MRGSET.)
          
VM0103 -  Mismatch of the number of associated classes for a block.
          Under SELECT each block on the input file must have one more
          associated classes as on the output for the SELECTed class,
          or have the same number and omit the class.
          
          (Technical: called from MRGSET.)

VM0104 -  The block in question has an associated class variable
          expected to be associated with the corresponding block in
          the input file.
          
          (Technical: called from MRGSET.)

VM0105 -  For the block and class in question, there is a conflict
          between the presence of marginal totals.
          
          (Technical: called from MRGSET.)
          
VM0106 -  For the class in question, there is a conflict between the
          output file and the input file in the number of levels.
          
          (Technical: called from MRGSET.)

VM0107 -  For this variable, there is a conflict between the type on
          the output file and the input file.
          
          (Technical: called from MRGSET.)
          
VM0108 -  For this variable, there is a conflict between the size on
          the output file and the input file.
          
          (Technical: called from MRGSET.)

VM0109 -  For this crossed variable, there is a conflict between the
          dimensions of the crossing between the output file and the
          input file.
          
          (Technical: called from MRGSET.)

VM0110 -  This derived or other nonsummable variable does not have a
          defined marginal on the class variable.  Specification of
          level 0 of a class variable through SELECT classvar (0)
          requires that the margin be defined for nonsummable variables.
            
          (Technical: called from MRGSET.)

VM0200 -  Premature end of file on one of the incoming VPLX files 
          during a MERGE.  The file may have been empty or it did not
          have the required number of repliates.  

          Options for MERGE include CONSTANTS and BYREPEAT, which alter
          the number of records that MERGE expects.

          (Technical: called from VMREAD.)

VM0201 -  Mismatching variance IDs during merging of files.  The IDs
          on the INCORPORATED file do not match the IDs on the primary
          file.

          Mismatching IDs imply some differences between the way
          replicates have been defined and identified on the primary
          and INCORPORATEd files.  For example, each file be based on
          the simple jackknife, but the clusters may be numbered
          differently.  If one file uses the simple jackknife but
          the other uses generalized replication, the two will
          typically not match.

          Solution: confirm the appropriateness of merging the files.
          This error check may then be suppressed with the NOIDCHECK
          option.
          
          (Technical: called from VMREAD.)
         
VM0202 -  Mismatching BY IDs during merging of files.  The IDs on the
          INCORPORATED file do not match the IDs on the primary file.

          Check the values of BY variables on each file.  For example,
          CONTENTS will display these values.  Generally, merging files
          with mismatching BY values would be inappropriate.

          Solution: If merging the files is appropriate, then one of the
          files should be regenerated with BY values consistent with the
          other.  With matching BY values, the merge should then proceed
          successfully.

          Alternatively, the error check may be suppressed with the 
          NOIDCHECK option, if the merging of files is appropriate but
          the ids differ for some reason.
          
          (Technical: called from VMREAD.)
         
VP0001 -  a "*" in a class specification must be used only after the
          name of a class

         (Technical: called from subroutine CLSCAN)

VP0002 -  a "(" in a class specification must be used only after the
          name of a class
         
         (Technical: called from subroutine CLSCAN)

VP0003 -  an expression enclosed in apostrophies "(" ")" was expected to
          include one or more ranges to specify levels of a class
          variable, but no valid ranges were found.
         
          (Technical: called from subroutine CLSCAN)       

VP0004 -  MISSING is not allowed in a level specification for a class
          variable.
         
          (Technical: called from subroutine CLSCAN)

VP0005 -  The specification for the level of the class variable
          referenced a level outside the scope of the class variable,
          such as a negative level, (e.g., AGE(-1)), or an upper end of
          the range  that is too high, (e.g., AGE (0-5), when AGE has
          only 4 levels)  
         
          (Technical: called from subroutine CLSCAN)

VP0006 -  VPLX ran out of space in an internal array attempting to store
          a class specification.
         
          Solution: break the problem down into smaller parts for
          separate processing.
         
          (Technical: called from subroutine CLSCAN, overflow in array
          IA)
         
VP0007 -  An error occurred while attempting to read the name of a class 
          variable.
         
          (Technical: CLSCAN called VNFIND to read the names of one or
          more classes, but VNFIND returned an error condition to
          CLSCAN.)
         
VP0008 -  TOTAL may not be used in a product with other class variables,
          e.g., AGE * TOTAL.
          
          (Technical: called from subroutine CLSCAN)

VP0009 -  Class variable expected here.  The named variable is not a
          class variable.
          
          (Technical: called from subroutine CLSCAN)
          
VP0010 -  A class variable is in a product with itself, e.g. AGE * AGE.
          This form of product is not allowed.
          
          (Technical: called from subroutine CLSCAN)
          
VP0011 -  Unidentified variable name.  Variable names must be spelled
          exactly to be recognized (although in any mixture of upper and 
          lower case).  The variable in question was expected to be the
          name of a class variable.
          
          (Technical: called from subroutine CLSCAN)
          
VP0030 -  More constants were specified than the available space.

          Solution: check the syntax of the statement.  More constants
          may be implied than intended.
          
          (Technical: called from subroutine DASCAN.  The array in
          question is governed by the parameter MSIZED.)
          
VP0031 -  Value preceding '*' not an appropriate integer for this
          syntax.
          
          Solution: check the use of the * syntax.  The value preceding
          must be a positive integer and is not allowed to exceed 
          1000000.
          
          (Technical: called from subroutine DASCAN.)
          
VP0032 -  Ambiguity caused by repeated use of * in specifying constants

          (Technical: called from subroutine DASCAN.)
          
VP0035 -  Run-on number - apparent constant longer than VPLX syntax
          allows.  VPLX expects constants to be of length 30 or shorter.
          
          (Technical: called from subroutine DFIND)
          
          
VP0036 -  Error on reading apparent number.
          
          (Technical: called from subroutine DFIND)
          
          
VP0037 -  Error creating number to indicate precision of primary number.
          
          (Technical: called from subroutine DFIND.  DFIND creates a
          second number to measure the precision of the primary number.
          A FORTRAN read error occurred while trying to read this 
          number.)
          
VP0040 -  Run-on integer - apparent constant longer than VPLX syntax
          allows.  VPLX expects integer constants to be of length 9 or
          shorter.
          
          (Technical: called from subroutine IFIND)
          
VP0043 -  An expression KEYWRD = has not been followed by any nonblank
          character.  KEYWRD = must be followed by some specification.
          
          (Technical: called from subroutine EQSCAN)
          
VP0045 -  Key word not matched.  Key words may be spelled in upper or 
          lower case.  Check the intended spelling in the documentation.
          
          This error can occur in one of three ways:
          
          1)  Position 1 begins with a letter.  Under all circumstances,
              VPLX interprets the first letter as the beginning of a 
              key word.  An error occurs either if the key word is not
              recognized as a VPLX key word.
              
          2)  Position 1 begins with an underscore "_" indicating 
              indendation.  In this case, the first nonblank position
              after position 1 is assumed to begin a key word.  If the
              key word is not recognized, the same considerations as
              the previous case apply.  A common mistake while using "_"
              for code indendation is to mistakenly begin continuation
              lines with "_" - continuation lines should always begin
              with a blank in position 1.
              
          3)  Position 1 is blank.  VPLX expected a key word to appear
              here because it believed that the previous line entirely
              completed the information associated with the previous 
              key word.  In other words, the program did not expect a
              continuation line at this point.
              
          (Technical: called from subroutine KYFIND)
          
VP0046 -  An ambiguity exists interpreting the key word because it
          appears to be a shortened form of more than one key word
          recognized by VPLX.  Shortened forms must imply a single
          key word.
          
          (Technical: called from subroutine KYFIND)
          
VP0050 -  During the process of scanning for labels, a line ended with
          an odd number of apostrophes.  Apostrophes are required to
          delimit labels.  An individual label may not be continued from 
          one command line to the next, so each command line must have an
          even number of apostrophes.
          
          To include an apostrophe within a label, place two apostrophes
          next to each other.  For example, the command line
            'Respondent''s age' 
          becomes the label "Respondent's age"
          
          
          (Technical: called from subroutine LEVELR)

VP0055 -  During reading of an option, the expression KEYWRD = has been
          followed by a noninteger.  Only an integer is expected at this
          point.
          
          (Technical: called from OPTNTR)

VP0060 -  A RENAME statement must specify a minimum of one existing
          variable name, "AS" or "INTO", and one new variable name.
          
          (Technical: called from RENAME)
          
VP0061 -  "AS" or "INTO" missing in an appropriate place to complete the
          renaming of variables.
          
          (Technical: called from RENAME)
          
VP0062 -  Placement of "AS" or "INTO" too far near the end to establish
          appropriate balancing of lists.
          
          Solution: RENAME expects lists of equal length to appear
          before and after each occurrence of "AS" or "INTO".  Check
          the statement for this condition.  If necessary for clarity,
          adopt one of the two strategies:
          1) restructure the statement into one list of old variable
          names, a single 'AS' or 'INTO', and a list of equal length 
          of new names, or
          2) rename one at a time, i.e., 
                  oldname1 AS newname1
                  oldname2 AS newname2
          etc.
          
          (Technical: called from RENAME)
          
VP0063 -  At this point, the new name is already in use as the name
          of an existing variable.  The potential ambiguity is not
          allowed.
          
          Solution: If the conflict was unintended, simply use a new
          name.  If the conflict resulted from trying to interchange
          names, break the list into smaller groups, each connected by
          'AS' or 'INTO' (even a one variable at a time strategy), and
          rename variables in such a way that a name does not have two
          uses simultaneously.
          
          (Technical: called from RENAME)
          
VP0065 -  Level array exceeded.  The level array was being used as 
          a scratch array during the reading of variable labels, but
          the number of specified variables exceeded this maximum.
          
          Solution:  Breaking the statement up into single assignments
              var1 'Label 1'
              var2 'Label 2'
          etc., is likely to help, since this approach uses only one 
          element of the scratch array.
          
          (Technical: called from RLABEL.  The limit is governed by the
          parameter MLEVEL in the FORTRAN source.)
          
VP0070 -  Level array exceeded.  The level array overflowed in
          attempting to store the levels.
          
          (Technical: called from RLEVEL.  The limit is governed by the
          parameter MLEVEL in the FORTRAN source.)
          
VP0075 -  A concluding ")" was not encountered to mark the end of range
          specifications.  Either the ")" needs to be added, or there 
          are other errors in specifying the ranges.
          
          (Technical: called from RNSCAN)

VP0076 -  A minus sign "-" was iterpreted to be part of a number, but a
          negative number was not successfully read at this point.
          
          (Technical: called from RNSCAN)

VP0077 -  A string within a range had none of the expected forms.  It 
          was not a valid number, one of the possible delimitors "," 
          etc., nor one of the accepted special words possible at this
          point: LOW, MISSING, RES

          (Technical: called from RNSCAN)

VP0078 -  HIGH and N may be used as the upper end of a range but not at
          this point.

          (Technical: called from RNSCAN)

VP0079 -  A string within a range had none of the expected forms.  It 
          was not a valid number, one of the possible delimitors "," 
          etc., nor one of the accepted special words possible at this
          point: HIGH, N

          (Technical: called from RNSCAN)

VP0080 -  MISSING, LOW, RES may be used as the lower end of a range but
          not at this point.

          (Technical: called from RNSCAN)

VP0081 -  Negative number here is incompatible with previous use of
          blank as a delimitor.
          
          Solution: Use commas to provide a clear delination of ranges.
          
          (Technical: called from RNSCAN)

VP0082 -  Use of blank as a delimitor here is incompatible with previous 
          appearance of a negative number 
          
          Solution: Use commas to provide a clear delination of ranges.
          
          (Technical: called from RNSCAN)

VP0083 -  Unexpected characters here.  Either the error occurred because
          the character string is an unexpected part of a range or
          because a string such as LOW, HIGH, etc. occurs in the wrong
          place.
          
          Solution: Check the syntax.  Possibly, commas may be required
          to provide a clear delination of ranges.
          
          (Technical: called from RNSCAN)

VP0084 -  Range array exceeded.

          Solution:  The number of ranges in use in the step is too 
          great.  If possible, break the step into pieces.
          
          (Technical: called from RNSCAN.  The limit is governed by the
          parameter MRANGE in the FORTRAN source.)
          
VP0085 -  LOW cannot be used alone to specify a range.  Instead, the form
          must be LOW - value, where value can be a number, HIGH, or N.
          
          (Technical: called from RNSCAN.)
          
VP0086 -  A colon, ':', is not expected here.  Ranges such as "0:n", and 
          "1:3", are valid forms.  ":3" (when not preceded by an integer
          constant, and "0::n" are not valid.
          
          (Technical: called from RNSCAN.)

VP0087 -  A range including a colon, ":", must not begin with "LOW".  
         "0:n" and "1:3", are examples of valid forms.
          
          (Technical: called from RNSCAN.)
          
VP0088 -  A range including a colon, ":", must not end with "HIGH".  
         "0:n" and "1:3", are examples of valid forms.
          
          (Technical: called from RNSCAN.)
          
VP0089 -  A parenthesis "(" is unexpected here.
          
          (Technical: called from RNSCAN.)
          
VP0090 -  A parenthesis "(" is unexpected in combination with ":" as in
          (1:4].  The use of 1:4 indicates the integers 1-4, inclusive,
          and this meaning cannot be modified by "(" or "["
          
          (Technical: called from RNSCAN.)
          
VP0091 -  A bracket "[" is unexpected in combination with ":" as in
          [1:4). The use of 1:4 indicates the integers 1-4, inclusive,
          and this meaning cannot be modified by "(" or "["
          
          (Technical: called from RNSCAN.)
          
VP0092 -  A range beginning with a bracket "[" or parenthesis "(" requires
          an ending ")" or "]", as in "[1,4)" .
          
          (Technical: called from RNSCAN.)
          
VP0100 -  The specification of a file name has become intermixed with
          a continuation line of a substitution based on a SET
          statement.
          
          Solution: break up the complex substitution.  Equate one string
          to the file name and optional characteristics only, without
          including additional information.

          (Technical: called from REFRSH)          

VP0101 -  Substitutions from SET have expanded a single input line of
          80 or fewer characters beyond 240 characters, the maximum 
          buffer for the results of substitutions.
          
          Solution: break up the line to simplify the substitutions.
          If necessary, place each use of &stringname& on separate
          lines.

          (Technical: called from REFRSH)          

VP0102 -  Substition implied by &stringname& not matched to any
          stored name.
          
          Solution: Check the spelling of the stringname.  If it is
          spelled correctly, use a SET statement before this line to
          assign a value to stringname.

          (Technical: called from REFRSH)          

VP0103 -  Substition implied by &stringname& cannot be matched since
          no SET statements have yet appeared.
          
          Solution: Use a SET statement before this line to assign a
          value to stringname.

          (Technical: called from REFRSH)          

VP0104 -  The file named by the INCLUDE statement could not be opened.

          Solution: Check the spelling of the file name.  If the file
          exists, check that VPLX run has read access to the file, since
          the error could occur if the system blocks reading of the file.

          (Technical: called from REFRSH)          

VP0105 -  The maximum depth of INCLUDE files has been exceeded.

          An include file may contain one or more INCLUDE statements
          pointing to another alternative file.  The maximum depth
          of pointing has a maximum allowed value, which is set when
          VPLX is compiled.  
         
          Solution: Simply the INCLUDE structure by one level, or
          recompile VPLX.

          (Technical: called from REFRSH.  The depth is governed by the
          parameter MAXALT.)          

VP0106 -  The file could not be opened for use as a scratch file.

          An error occurred in trying to open the file for writing.
          The file name may be inappropriate for the host system or
          point to a disk or file system that the user does not have
          the ability to write to.  A new name must be provided.

          (Technical: called from REFRSH)          

VP0107 -  The file could not be opened for use by MACROWRITE.

          An error occurred in trying to open the file for writing.
          The file name may be inappropriate for the host system or
          point to a disk or file system that the user does not have
          the ability to write to.  A new name must be provided.

          (Technical: called from REFRSH)          

VP0108 -  Maximum number of substitution strings exceeded.
   
          Solution: simplify the number of set statements in the
          application. 

          (Technical: called from REFRSH.  Storage has exceeded the
          allowance governed by MAXSUB.)          

VP0109 -  Maximum number of lines allotted for substitution strings
          exceeded.
   
          Solution: simplify the number of set statements in the
          application. 

          (Technical: called from REFRSH.  Storage has exceeded the
          allowance governed by MAXSBL.)          

VP0110 -  Maximum number of characters alloted for substitution
          strings exceeded.
   
          Solution: simplify the number of set statements in the
          application. 

          (Technical: called from REFRSH.  Storage has exceeded the
          allowance governed by MAXSBC.)          

VP0111 -  Name of a substitution string must begin with an underscore
          or letter.
          
          (Technical: called from REFRSH)

VP0112 -  Name of a substitution string must not exceed 12 characters.
          
          (Technical: called from REFRSH)

VP0113 -  The file could not be opened for use by MACROIMPLEMENT.

          An error occurred in trying to open the file for writing.
          The file name may be inappropriate for the host system or
          point to a disk or file system that the user does not have
          the ability to write to.  A new name must be provided.

          (Technical: called from REFRSH)          

VP0114 -  Nesting of MACROIMPLEMENT statements is not allowed.  Each
          MACROIMPLEMENT statement must be balanced by a 
          MACROIMPLEMENTEND before another MACROIMPLEMENT statement
          may appear.

          (Technical: called from REFRSH)          

VP0115 -  Output line would have exceeded 80 characters in 
          MACROIMPLEMENT.

          (Technical: called from REFRSH)          

VP0116 -  Error in writing to the file used by MACROIMPLEMENT.

          An error occurred in trying to write to the MACROIMPLEMENT
          file.  The file system may have been full.

          (Technical: called from REFRSH)

VP0117 -  Nonblank character detected beyond position 80 in input file.

          Positions 81-100 are read on input and scanned by VPLX for
          nonblank characters.  The program is not designed to
          successfully interpret any information that might be in
          these columns.

          In almost all cases, long input command lines can be
          broken into continuation lines.

          Set statements may also be used, although this should be
          rarely necessary.  The input command line is restricted
          to 80 characters, but the result of substitutions may
          expand to up to 240.
                    
          (Technical: called from REFRSH)

VP0140 -  Variable name is too long.  A variable name must be limited
          to 12 characters.
          
          (Technical: called from VNFIND.)
          
VP0141 -  A minus/dash is not expected here.  Variable names are
          expected at this point. "-" or "--" may be used to denote
          ranges of variables, but must occur between two names.

          (Technical: called from VNFIND.)
          
VP0142 -  Overflow in variable name array.
          
          Too many variable names are now in use.  Attempt to simplify
          the application to reduce the number of variables.

          (Technical: called from VNFIND.  Controlled by parameter
          MVAR.)
          
VP0143 -  In specifying a range of the form VARA -- VARB, both VARA 
          and VARB must be previously defined.
          
          Solution: check the spelling of the variable names.  It may
          be necessary to name the variables in another way.
          
          (Technical: called from VNFIND.)
          
VP0144 -  A range of the form VARA -- VARB is not expected here, since
          both VARA and VARB must be previously defined to use this
          syntax, and new or primarily new variables are expected at
          this point.
          
          Solution: Explicitly list all variables or use a single "-"
          to indicate ranges of variables ending in digits.

          (Technical: called from VNFIND.)

VP0145 -  A range of the form VARn1 - VARn2, where n1 and n2 are both
          numbers, requires that they share the same stem.

          (Technical: called from VNFIND.)
          

VP0146 -  For a range of the form VARn1 - VARn2, difficulty determining
          n1 or n2.

          Both VARn1 and VARn2 must end with digits indicating a number
          in each case.

          (Technical: called from VNFIND.)
          
VP0147 -  For a range of the form VARn1 - VARn2, n1 > n2 not allowed.

          (Technical: called from VNFIND.)
          
VP0170 -  The number of variables being scanned exceeds the work array.

          Solution: simplify problem by breaking it into segments.
          
          (Technical: called from VTSCAN.  VPLX reports the size of a
          temporary array.  This size of this array is governed by the 
          FORTRAN parameter MVAR.)
          
VP0200 -  Overflow in the double precision array.  This array is used
          for most calculations, and the usage of this array is reported
          at the end of VPLX runs.  The size of the array is set by the
          FORTRAN parameter MSIZED.
          
          Solution: either reduce the size of the problem or increase
          the parameter and recompile VPLX.
          
          Consider whether the specification of the problem may have
          required much more storage than necessary.  As an example,
          use of several variables and several class statements in the
          CREATE step, if not accompanied by one or more block
          statements, asks VPLX to cross-classify all analytic variables
          by all class variables.
          
          (Technical: called from ROOMD.)

VP0201 -  Overflow in the general integer array.  This array has varying
          size depending on the step, but is governed by the value of
          the FORTRAN parameter MSIZEI.
          
          Solution: either reduce the size of the problem or increase
          the parameter and recompile VPLX.
          
          (Technical: called from RCHECK.)

VP0202 -  Maximum number of variables exceeded.  There is an attempt to
          define more variables than permitted by the FORTRAN parameter
          MVAR.
          
          Solution: either reduce the size of the problem or increase
          the parameter and recompile VPLX.
          
          (Technical: called from RCHECK.)

VP0203 -  Maximum number of variance identifies and by variables
          exceeded.  Variables defining the replication, such as
          CLUSTER and STRATUM, and by variables affect the size of
          a number of internal arrays.  The specification of the problem
          now uses more of these variables than permitted by the FORTRAN
          parameter MAXIDS.
          
          Solution: either reduce the size of the problem or increase
          the parameter and recompile VPLX.
          
          (Technical: called from RCHECK.)

VP0204 -  Recode arrays exceeded.  The arrays are governed by the FORTRAN
          parameter MRECOD.

          During CREATE and related steps, recode arrays hold
          information related to each executable statement, INPUT, ADD
          IF, etc.  The number of such operations now exceeds the
          allotted space.
          
          During TRANSFORM, recode arrays hold information on each
          variable passed to subroutines.
          
          Solution: either reduce the size of the problem or increase
          the parameter and recompile VPLX.
          
          (Technical: called from RCHECK.)

VP0205 -  Maximum number of ranges exceeded.  There is an attempt to
          employ more ranges than permitted by the FORTRAN parameter
          MRANGE.
          
          As an example, the statement
          
            cat quest1 (1/2-3/4,5-9/10/res)
          
          results in 6 ranges: 1; 2-3; 4; 5-9; 10; res
          
          Solution: either reduce the size of the problem or increase
          the parameter and recompile VPLX.  Look for syntax that
          might reduce the number of ranges in use.  For example,
          
            cat quest1 - quest100 (1/2) 'Yes' 'No'
          
          recodes 100 variables while only requiring the storage of 
          2 ranges
          
          (Technical: called from RCHECK.)

VP0206 -  Maximum number of sets of ranges exceeded.  There is an 
          attempt to employ more sets of ranges than permitted by the
          FORTRAN parameter MRNSET.
          
          As an example, the statement
          
            cat quest1 (1/2-3/4,5-9/10/res)
          
          results in 6 ranges: 1; 2-3; 4; 5-9; 10; res; but represents
          a single set of ranges.
          
          Solution: either reduce the size of the problem or increase
          the parameter and recompile VPLX.  Look for syntax that
          might reduce the number of sets of ranges in use.  For
          example,
          
            cat quest1 - quest100 (1/2) 'Yes' 'No'
          
          recodes 100 variables while only requiring the storage of 
          1 set of ranges
          
          (Technical: called from RCHECK.)

VP0207 -  Maximum number of levels exceeded.  Each level of a class
          or categorical variable has an associated level.  The
          total number of such levels is governed by the FORTRAN
          parameter MLEVEL.
          
          Solution: either reduce the size of the problem or increase
          the parameter and recompile VPLX.
          
          (Technical: called from RCHECK.)

VP0208 -  Maximum number of blocks exceeded.  The total number of 
          allowed blocks is governed by the FORTRAN parameter MCLBLK.
          
          Solution: either reduce the size of the problem or increase
          the parameter and recompile VPLX.  
          
          (Technical: called from RCHECK.)

VP0209 -  Maximum number of class specifications for blocks exceeded.
          Arrays hold information for each class variable associated
          with each block.  The dimension of these arrays is governed
          by the FORTRAN parameter MCLBAR.
          
          Solution: either reduce the size of the problem or increase
          the parameter and recompile VPLX.  
          
          (Technical: called from RCHECK.)

VP0210 -  An integer array to hold information for crossed variables
          (crossed real, crossed categorical, and crossed derived) is
          full.  The dimension of this array is governed by the FORTRAN
          parameter MCRSSD.
          
          Solution: either reduce the size of the problem or increase
          the parameter and recompile VPLX.  Consider alternatives to
          crossed variables, such as the use of blocking and class 
          variables.  
          
          (Technical: called from RCHECK.)

VP0211 -  Maximum storage for formats and other long strings exceeded.
          The total number of strings, each of 128 characters, is
          governed by the FORTRAN parameter MAXFMT.
          
          Solution: Formats can be shortened by use of multipliers -
          for example, f3.0,f3.0,f3.0, can be shortened to 3f3.0, etc.
            
          (Technical: called from RCHECK.)
          
VP0212 -  Maximum number of TRANSFORM step subroutines exceeded.  The
          total number of subroutines is governed by the FORTRAN
          parameter MTRANS.
          
          Solution: Long TRANSFORM steps can be broken into separate
          TRANSFORM steps, with the output of one shortened step 
          fed directly into the next.  
          
          (Technical: called from RCHECK.  Simply increasing MTRANS,
           however, may have other consequences, since the space to
           handle subroutines comes out of the general integer array
           governed by MSIZEI.  The relationship among parameters is
           described in TSET1.)

VP0213 -  Maximum storage for temporary names exceeded.  The array in
          question is used in two ways: to hold variable names
          temporarily during parsing of statements and to hold
          variable names associated with the components of CROSSED
          REAL, CROSSED CAT or CROSSED DERIVED variables.  This space
          is governed by the FORTRAN parameter MVAR.
          
          Solution: The temporary space may be inadequate because the
          number of defined variables at this point may be close to
          the allowed maximum MVAR.
            
          (Technical: called from RCHECK.)

VP0250 -  A variable name may not be used because of syntactic
          restrictions.

          The restricted names are: AS, BLOCK, BY, CLASS, FOR, IF, INTO
          KEY, MEAN, MEANS, N, OPTION, OPTIONS, PERCENT, PERCENTS,
          PERCENT1, PERCENT2, PROPORTION, PROPORTIONS, PROPORTION1,
          THEN, TOTAL, TOTALS, and TOTAL1.

          Solution: Choose another variable name. Except for adding a
          final 's' in some cases listed above, such as MEAN and MEANS,
          one approach is to extend the name, such as 'AS' to 'AS1' etc.

          (Technical: called from VNCHCK.)

VP0251 -  The variable name already exists as a regular variable (that
          is, real, derived, etc., but excluding CLASS and BY variables)
          on the incoming VPLX file.   It may not be redefined by other 
          statements during REWEIGHT.

          Note: The exception for CLASS and BY variables is important.
          The specifications during REWEIGHT should reestablish the CLASS
          and BY variables necessary to link the incoming observations 
          with the corresponding information.

          During the REWEIGHT step, reference may be made to variables
          on the incoming VPLX file, but the values of these variables
          cannot be redefined by INPUT statements, arithmetic statements,
          etc.
          
          Solution: Choose another variable name.

          (Technical: called from VNCHK2.)

VP0300 -  A file name is expected here, but no characters remain on 
          this record.
          
          (Technical: called from FNFIND.)                 

VP0301 -  During the reading of a file name, an unexpected apostrophe
          has been encountered.
          
          (Technical: called from FNFIND.)

VP0302 -  During the reading of a file name, the file name has exceeded
          80 characters, the maximum allowed.

          Solution: consider the use of default directories or other
          devices to shorten the spelling of the file name.
                    
          (Technical: called from FNFIND.)

VP0303 -  An unexpected "(" appears here while trying to read a file
          name.
          
          When not enclosed in parenthesis, a "(" may be used to set 
          off optional file parameters, after the name of the file has
          been given.  VPLX expected a file name here instead of "(".
          
          (Technical: called from FNRD2.)             
          
VP0304 -  An unexpected ")" appears here while reading a file name.
          
          When not enclosed in parenthesis, a ")" may be used to set 
          off optional file parameters, after the name of the file has
          been given and followed by a "(".  The appearance here of ")"
          is unexpected.
          
          (Technical: called from FNRD2.)            
          
VP0305 -  Unclear whether named file is input or output.

          Solution: use IN = or OUT = syntax.
          
          (Technical: called from FNRD2.)            
          
VP0306 -  Unsuccesful attempt to find file name.

          Solution: A file name is expected here.  Check spelling and 
          syntax.
          
          (Technical: called from FNRD2.)
          
VP0307 -  During attempt to read a file name, the construction KEYWORD =
          was encountered, but KEYWORD was not IN, OUT, VPLXIN, VPLXOUT,
          UNF_INTEGER_IN, UNF_INTEGER_OUT, UNF_REAL_IN, UNF_REAL_OUT,
          UNF_DOUBLE_IN, UNF_DOUBLE_OUT, FORMATTED_IN or FORMATTED_OUT
          as expected.
          
          (Technical: called from FNRD2.)

VP0308 -  During attempt to read optional parameters associated with a
          file, the required construction KEYWORD = value was not
          followed as expected.
          
          (Technical: called from FNRD2.)
          
VP0309 -  During attempt to read optional parameters associated with a
          file, the key word in a KEYWORD = value construction was not
          one of the expected forms.
          
          Solution: Check spelling of the key word.  As of version
          95.07, the expected forms are UNIT, VOL, VOLSER, RECL, LRECL,
          TRK, MAXREC, SECOND and BLKSIZE.
          
          (Technical: called from FNRD2.)
          
VP0310 -  During attempt to read optional parameters associated with a
          file, the required construction KEYWORD = VALUE had a longer
          than anticipated length.
          
          (Technical: called from FNRD2.)

VP0311 -  During attempt to read optional parameters associated with a
          file, the required construction KEYWORD = VALUE required VALUE
          to be an integer.
          
          (Technical: called from FNRD2.)
          
VP0312 -  During attempt to read optional parameters associated with a
          file, the required construction KEYWORD = VALUE, value was
          outside the expected range.
          
          (Technical: called from FNRD2.)

VP0313 -  More than one input file has been defined, where only one is
          expected. (Excluding a VPLXIN = file, if any.)

          Note: this error may appear if a file specification runs into
          a subsequent statement, possibly because of a missing
          semicolon or other syntactic error.
          
          (Technical: called from FNRD2.)          

VP0314 -  More than one output file has been defined, where only one is
          expected.
          
          (Technical: called from FNRD2.)          

VP0315 -  More than one VPLXIN= file has been defined, where only one is
          expected.
          
          (Technical: called from FNRD2.)          

VP0316 -  The IN= file does not exist.

          According to the host system, the file does not exist.  Check
          the spelling of the file name, the use of directories.  This 
          message may occur if the file exists but the run does not
          have read access to the file because of file protections.
          
          (Technical: called from FNRD2.)          

VP0317 -  The VPLXIN= file does not exist.

          According to the host system, the file does not exist.  Check
          the spelling of the file name, the use of directories.  This 
          message may occur if the file exists but the run does not
          have read access to the file because of file protections.
          
          (Technical: called from FNRD2.)          

VP0318 -  A VPLXIN= file is required for this step but has not been
          defined.
          
          (Technical: called from FNRD2)

VP0319 -  An IN= file is required for this step but has not been
          defined.
          
          (Technical: called from FNRD2)

VP0320 -  An input file is required for this step but has not been
          defined.
          
          (Technical: called from FNRD2)

VP0321 -  An output file is required for this step but has not been
          defined.
          
          (Technical: called from FNRD2)

VP0322 -  An unformatted file has been selected, but it has been
          designated to replace a VPLX file.  The unformatted files
          should only be used in place of character (ASCII) files.
          
          (Technical: called from FNRD2)

VP0323 -  A formatted (ASCII) file has been selected, but it has been
          designated to replace a VPLX file.
          
          (Technical: called from FNRD2)

VP0324 -  The stem name is too long.  It should be no more than 75
          characters.
          
          (Technical: called from REFRSH)

VP0325 -  During attempt to read optional parameters associated with a
          file, the required construction NAME = name, name was found
          not to be a valid VPLX variable name.
          
          (Technical: called from FNRD2.)

VP0330 -  Unrecognized key word, key word out of order, or incorrect
          format.

          This error can occur in one of three ways:
          
          1)  Position 1 begins with a letter.  Under all circumstances,
              VPLX interprets the first letter as the beginning of a 
              key word.  An error occurs either if the key word is not
              recognized at all or if the key word appears in an
              inappropriate step.
              
          2)  Position 1 begins with an underscore "_" indicating 
              indendation.  In this case, the first nonblank position
              after position 1 is assumed to begin a key word.  If the
              key word is not recognized, the same considerations as
              the previous case apply.  A common mistake while using "_"
              for code indendation is to mistakenly begin continuation
              lines with "_" - continuation lines should always begin
              with a blank in position 1.
              
          3)  Position 1 is blank.  VPLX expected a key word to appear
              here because it believed that the previous line entirely
              completed the information associated with the previous 
              key word.  In other words, the program did not expect a
              continuation line at this point.
              
          (Technical: called from the main program.)

VP1000 -  Illegal statement after COMPUTE

          (Temporary error message)

VP1001 -  Statement ends prematurely.  A statement beginning with a
          key word CALL, IF, ELSE IF, ELSE, END IF, DO, END DO, or
          DECLARE is not completed.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1002 -  Unexpected parenthesis. Except for a statement beginning with a
          key word, CALL, ELSE, END IF, DO, END DO, or DECLARE, a
          "(" is not expected at this point. 

          (Technical: called from CMPAR1 (through CMPRNT))

VP1003 -  Unexpected appearance of "IF" here.  ??

          (Technical: called from CMPAR1 (through CMPRNT))

VP1004 -  Unexpected appearance of "DO" here.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1005 -  Unbalanced parentheses in this statement.  The number of
          right parentheses, ")", exceeds the number of left
          parentheses, "(", at this point. 

          (Technical: called from CMPAR1 (through CMPRNT))

VP1006 -  Unbalanced apostrophes in this statement.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1007 -  Unbalanced parentheses in this statement.  The number of
          left parentheses, "(", and braces "[" exceeds the number
          of right versions, ")" and "]" at this point. 

          (Technical: called from CMPAR1 (through CMPRNT))

VP1008 -  Unexpected appearance of "WHILE" here. 

          (Technical: called from CMPAR1 (through CMPRNT))

VP1009 -  Unable to interpret statement.

          The statement begins with either END or ELSE but is not
          completed in one of the syntactically acceptable forms.
    
          (Technical: called from CMPAR1 (through CMPRNT))

VP1010 -  Unbalanced set { in this statement.  The number of
          left "{", exceeds the number of right "}" 

          (Technical: called from CMPAR1 (through CMPRNT))

VP1011 -  The statement was assumed to be an arithmetic
          assignment statement but lacks an "=".

          (Technical: called from CMPAR1 (through CMPRNT))

VP1012 -  Unbalanced set } in this statement.  The number of
          right }, exceeds the number of left { at this point.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1013 -  Unbalanced vector < in this statement. 

          (Technical: called from CMPAR1 (through CMPRNT))

VP1014 -  Nesting of vector < not permitted.  At this point,
          the nesting of < is 2 deep, probably because of a
          missing > 

          (Technical: called from CMPAR1 (through CMPRNT))

VP1015 -  Vector > in this statement is not paired with > at
          this point.  Probably, a preceeding < has been omitted.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1016 -  Statement ends without a final ;.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1017 -  Unbalanced parentheses before =.  The number of
          left parentheses, "(", and braces "[" exceeds the number
          of right versions, ")" and "]" at this point. 

          (Technical: called from CMPAR1 (through CMPRNT))

VP1018 -  Unbalanced set { before =.  The number of left "{", exceeds
          the number of right "}" 

          (Technical: called from CMPAR1 (through CMPRNT))

VP1019 -  Unbalanced vector < before =. 

          (Technical: called from CMPAR1 (through CMPRNT))

VP1020 -  Runaway apostrophes.  Continuation of character strings
          delineated by apostrophes is not allowed between lines.
          A line with an odd number of apostrophes has been 
          encountered.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1021 -  END IF not matching previous IF.  IF, DO, or WHILE
          must be properly nested.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1022 -  END DO not matching previous DO.  IF, DO, or WHILE
          must be properly nested.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1023 -  END WHILE not matching previous WHILE.  IF, DO, or WHILE
          must be properly nested.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1024 -  ELSE or ELSE IF not matching previous IF.  IF, DO, or
          WHILE must be properly nested.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1025 -  ELSE IF following ELSE is not allowed.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1026 -  ELSE following ELSE is not allowed.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1027 -  Multiple problems in nesting.  The most immediate
          problem is the absence of END IF to close the current
          IF block, but additional blocks are also open.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1028 -  Multiple problems in nesting.  The most immediate
          problem is the absence of END DO to close the current
          DO block, but additional blocks are also open.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1029 -  Multiple problems in nesting.  The most immediate
          problem is the absence of END WHILE to close the current
          WHILE block, but additional blocks are also open.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1030 -  An END IF to close the current IF block is missing.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1031 -  An END DO to close the current DO block is missing.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1032 -  An END WHILE to close the current WHILE block is missing.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1033 -  More than one '=' has been encountered in the statement.
          This syntax is not supported.

          (This restriction applies to single '=' as in 
          a = b = c; which is not accepted.  Double
          '==' is accepted as part of a logical expression.)

          (Technical: called from CMPAR1 (through CMPRNT))

VP1034 -  For unblocked if statements of the form

          IF condition THEN statement ;

          the statement can only be an arithmetic assignment
          (a=b;) set assignment ({a b} = c:), CALL, or
          key word statements such as PRINT.

          The statement is not permitted to be DO, WHILE, or
          another IF statement.  For these, a blocked IF
          construct must be used.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1035 -  EXIT should appear within the bounds of a DO or WHILE
          block.

          (Technical: called from CMPAR1 (through CMPRNT))

VP1036 -  Too many terms in an arithmetic DO statement.  The allowed
          forms are:

          do i = a, b ;
          do i = a, b, c ;
          do i = a to b ;
          do i = a to b by c;

          (Technical: called from CMPAR1 (through CMPRNT))

VP1037 -  Incomplete arithmetic DO statement.  The allowed forms are:

          do i = a, b ;
          do i = a, b, c ;
          do i = a to b ;
          do i = a to b by c;

          (Technical: called from CMPAR1 (through CMPRNT))

VP1040 -  The maximum depth of INCLUDE files has been exceeded.

          VPLX implements the COMPUTE statements by adding additional
          depth to the stack of INCLUDED files.  The combination of
          the depth of INCLUDED files already in use with the
          requirements of COMPUTE has exceeded the maximum resources.

          An include file may contain one or more INCLUDE statements
          pointing to another alternative file.  The maximum depth
          of pointing has a maximum allowed value, which is set when
          VPLX is compiled.  
         
          Solution: Simply the INCLUDE structure by one level, or
          recompile VPLX with a higher value of MAXALT.

          (Technical: called from CMPAR1.  The depth is governed by the
          parameter MAXALT.)          

VP1100 -  Unsuccessful attempt to read a variable name here.

          (Technical: called from RPOLSH.)

VP1102 -  Unsuccessful attempt to read a constant value here.

          (Technical: called from RPOLSH.)

VP1111 -  The formula was too complex for the current depth of
          stack.  Break the overall expression into 2 or more
          simpler formulas.

          (Technical: called from RPOLSH.)

VP1112 -  Unsuccessful attempt to parse expression.  The program
          logic indicates an empty parenthetical expression, which
          may in turn reflect a misinterpretation of content.

          (Technical: called from RPOLSH.)

VP1113 -  There is a missing operator (+,-,*, etc.) or comma.  Two 
          adjacent terms in the expression require a separating operator.

          (Technical: called from RPOLSH.)

VP1114 -  A second term was expected to follow the operator at this point.

          (Technical: called from RPOLSH.)

VP1115 -  A second term is marked as already in the stack, which represents
          an error in logic at this point.

          (Technical: called from RPOLSH.)

VP1116 -  An internal error has occurred in managing the stack.  Both items
          are in the stack, but they are not marked as adjacent.

          (Technical: called from RPOLSH.)

VP1117 -  An unexpected character has been encountered in the expression.

          (Technical: called from RPOLSH.)

VP1118 -  A "(" is unexpected at this point.

          (Technical: called from RPOLSH.)

VP1119 -  A variable or constant was expected at this point.

          (Technical: called from RPOLSH.)

VP1120 -  Expressions of the form a**b**c are not allowed.  The order of
          operations must be indicated by parentheses, i.e., (a**b)**c
          or a**(b**c)

          (Technical: called from RPOLSH.)

VP1121 -  A left parenthesis "(" was expected at this point.

          (Technical: called from RPOLSH.)

VP1122 -  The variable, although defined, is not an array.

          (Technical: called from RPOLSH.)

VP1123 -  The apparent array or function reference is not defined.

          (Technical: called from RPOLSH.)

VP1124 -  A variable or constant was expected at this point.

          (Technical: called from RPOLSH.)

VP1125 -  Currently, '.' is not allowed in logical expressions to denote
          the missing value.  '.' may be only used in arithmetic
          assignment statements such as

            a = .;

          The function MISSING is instead available to test whether a
          variable or expression is missing.  For example,

            if missing (a) then ;

          tests whether a is missing.

          (Technical: called from STMTBN.)

VT0001 -  Parameters incorrectly set for TRANSFORM step.  VPLX must be
          recompiled.  This error call was made immediately as the 
          TRANSFORM step began and does not depend on the user's
          specific application.
          
          (Technical: called from TSET1.  When VPLX was compiled, the
          values chosen for several parameters are used to compute the
          parameter MTRSZI.  This parameter must be larger than
          12 * MTRANS, another parameter.  In fact, MTRSZI must be much
          larger since MTRSZI-12*MTRANS is space used for other purposes
          Increasing the parameter MSIZEI sufficiently is one approach
          to solve this problem.)
          
VT0002 -  No output file has been identified.  The TRANSFORM step
          requires an output file.
          
          (Technical: called from TSET1.)
          
VT0003 -  No file has been identified.  This subroutine requires that a
          file be specified.
          
          (Technical: called from TSET1.)
          
VT0004 -  This statement is out of order.  A statement of this type must
          follow the appearance of a subroutine name.  A subroutine has 
          not yet been named.
          
          (Technical: called from TSET1.)

VT0005 -  A valid variable name was expected at this point, but VPLX was
          unable to find one.  Specify one or more valid variable names
          here.
          
          (Technical: called from TSET1.)

VT0006 -  A valid variable name was expected, but VPLX was unable to
          find one.  Specify one or more valid variable names as part of
          this statement.
          
          (Technical: called from TSET1.)

VT0007 -  After specifying COUNT, n(block#) must follow, where block#
          denotes an integer constant.  For example,
            COUNT  n(2)
                    
          (Technical: called from TSET1.)
          
VT0008 -  The variable has been previously defined.  Only names of new 
          variables are expected at this point.
          
          Solution: If the duplication with a previous name is
          accidental then the new name should be changed.  If the
          duplication is deliberate, then MODIFY may be a more
          appropriate choice, here.
          
          (Technical: called from TSET1.
          
VT0009 -  Expected additional information to follow "(".  Presumably,
          additional information was intended as part of the
          specification.
          
          (Technical: called from TSET1.)
          
VT0010 -  Either a "(" or a "/" was expected here.

          (Technical: called from TSET1.)
          
VT0011 -  The block number must be explicitly given for COUNT.  For
          example:
            COUNT  N(2)
          to establish a block count for block 2.
          
          (Technical: called from TSET1.)

VT0012 -  The number of levels must be explicitly given for CLASS in the
          TRANSFORM step.  For example:
            CLASS  age_class (5)
          to establish that age_class has 5 levels.  Level labels follow
          this first part of the statement.
         
          (Technical: called from TSET1.)
          
VT0013 -  The specification of a CAT, CROSSED CAT, CROSSED REAL, or
          CROSSED DERIVED variable has followed the syntax for the
          default option (taking the number of levels from the matching
          OLD variable in the list of OLD variables), but there is no
          matching OLD variable in this case.
          
          Solution: Decide whether the default option is appropriate.
          If so, arrange the order of the statements so that the OLD
          variables are defined before introducing the new variables
          that reference their characteristics.  If not, provide the
          required information.  For example.
            cat  newcat (3)
          
          (Technical: called from TSET1.)
 
VT0014 -  The specification of a CAT, CROSSED CAT, CROSSED REAL, or
          CROSSED DERIVED variable has followed the syntax for the
          default option (taking the number of levels from the matching
          OLD variable in the list of OLD variables), but the matching
          OLD variable in this case is N(block), which is not allowed.
          
          Solution: Decide whether the default option is appropriate.
          If so, arrange the order of the statements so that the OLD
          variables are defined before introducing the new variables
          that reference their characteristics.  If not, provide the
          required information.  For example:
            cat  newcat (3)
          
          (Technical: called from TSET1.)
 
VT0015 -  The specification of a CAT or single-dimensional CROSSED
          DERIVED variable has followed the syntax for the default
          option (taking the number of levels from the matching OLD
          variable in the list of OLD variables), but the matching OLD
          variable in this case is of the form N(crossed cat),
          N(crossed real) or value(crossed real).  In each case, the
          matching old variable must be of dimension 2 for the default
          option.
          
          Solution: Decide whether the default option is appropriate.
          If so, arrange the order of the statements so that the OLD
          variables are defined before introducing the new variables
          that reference their characteristics.  If not, provide the
          required information.  For example:
            cat  newcat (3)
          
          (Technical: called from TSET1.)

          
VT0016 -  The specification of a CAT or single-dimensional CROSSED
          DERIVED variable has followed the syntax for the default
          option (taking the number of levels from the matching OLD
          variable in the list of OLD variables), but the matching OLD
          variable in this case is not one of the allowed forms.

          Solution: Decide whether the default option is appropriate.
          If so, arrange the order of the statements so that the OLD
          variables are defined before introducing the new variables
          that reference their characteristics.  If not, provide the
          required information.  For example:
            cat  newcat (3)
          
          (Technical: called from TSET1.)

VT0017 -  The specification of a CROSSED CAT, or CROSSED DERIVED 
          variable has followed the syntax for the default option 
          (taking the number of levels from the matching OLD variable
          in the list of OLD variables).  The matching OLD variable
          is also CROSSED CAT or CROSSED DERIVED, but the function
          applied to the OLD variable is not one of the allowed forms.
          
          Solution: Decide whether the default option is appropriate.
          If so, arrange the order of the statements so that the OLD
          variables are defined before introducing the new variables
          that reference their characteristics.  If not, provide the
          required information.  For example:
            crossed derived  newderived (3,2)
          
          (Technical: called from TSET1.)
 
VT0018 -  The specification of a CROSSED CAT, or CROSSED DERIVED 
          variable has followed the syntax for the default option 
          (taking the number of levels from the matching OLD variable
          in the list of OLD variables).  The matching OLD variable is
          CROSSED real, where the real variable is crossed by a single
          categorical dimension.  Consequently, the dimensions cannot
          be transferred to the new variable.
          
          Solution: Decide whether the default option is appropriate.
          If so, arrange the order of the statements so that the OLD
          variables are defined before introducing the new variables
          that reference their characteristics.  If not, provide the
          required information.  For example:
            crossed derived  newderived (3,2)
          
          (Technical: called from TSET1.)
 
VT0019 -  The specification of a CROSSED CAT, or CROSSED DERIVED 
          variable has followed the syntax for the default option 
          (taking the number of levels from the matching OLD variable
          in the list of OLD variables).  The matching OLD variable is
          CROSSED real, but the transformation applied to the OLD 
          variable is inappropriate to transfer the dimensions to the
          new variable.
          
          Solution: Decide whether the default option is appropriate.
          If so, arrange the order of the statements so that the OLD
          variables are defined before introducing the new variables
          that reference their characteristics.  If not, provide the
          required information.  For example:
            crossed derived  newderived (3,2)
          
          (Technical: called from TSET1.)
 
          
VT0020 -  The specification of a CROSSED CAT, or CROSSED DERIVED 
          variable has followed the syntax for the default option 
          (taking the number of levels from the matching OLD variable
          in the list of OLD variables).  The matching OLD variable is
          not one of the possible types: CROSSED CAT, CROSSED DERIVED,
          or CROSSED REAL.
          
          Solution: Decide whether the default option is appropriate.
          If so, arrange the order of the statements so that the OLD
          variables are defined before introducing the new variables
          that reference their characteristics.  If not, provide the
          required information.  For example:
            crossed derived  newderived (3,2)
          
          (Technical: called from TSET1.)
 
VT0021 -  The specification of a CROSSED REAL variable has followed the
          syntax for the default option (taking the number of levels
          from the matching OLD variable in the list of OLD variables).
          The matching OLD variable must also be CROSSED REAL and not
          have any functions (MEAN, etc.) applied.
          
          Solution: Decide whether the default option is appropriate.
          If so, arrange the order of the statements so that the OLD
          variables are defined before introducing the new variables
          that reference their characteristics.  If not, provide the
          required information.  For example:
            crossed real  newcrossed (3,2)
          
          (Technical: called from TSET1.)

VT0022 -  At this point, the specification for the dimensions of a CAT,
          CROSSED CAT, CROSSED REAL, or CROSSED DERIVED variable was
          expected to follow the "(", but a valid specification was not
          found.
          
          (Technical: called from TSET1.)

VT0023 -  The specification for the N of a block did not follow the
          expected form, which is:
          
            count   n(#block) 
          
          where #block is a positive integer, for example
          
            count   n(4)
            
          (Technical: called from TSET1.)

VT0024 -  The CROSSED DERIVED variable was assumed to be of a single
          dimension, but the specification did not follow the expected
          form, which is:
          
            crossed derived   vname (size) 
          
          where size is a positive integer, for example
          
            crossed derived   ratio (4)
            
          Note: crossed derived variables of multiple dimensions are also
          allowed, for example
          
            crossed derived   ratio_matrix (4,7)
            
          (Technical: called from TSET1.)
          
VT0025 -  The specification of a CAT or CLASS variable did not follow
          the expected form, which is:
          
            cat   vname (size) 
          
          where size is a positive integer, for example
          
            cat   marital_stat (5)
            
          (Technical: called from TSET1.)
          
VT0026 -  A CROSSED CAT variable requires the specification of at least
          two levels, for example
          
            crossed cat   vname (3,7) 
            
          (Technical: called from TSET1.)
          
VT0027 -  Each of the specified dimensions of a CROSSED CAT, CROSSED
          REAL, or CROSSED DERIVED variable must be a positive integer,
          for example:

            crossed cat   vname (3,7) 
            
          (Technical: called from TSET1.)
          
VT0028 -  A "/" was expected here as part of a / CLASS or / BLOCK
          specification.  The character encountered was not 
          successfully interpreted.
          
          (Technical: called from TSET1.)

VT0029 -  Either CLASS or BLOCK was expected here as part of a 
          / CLASS or / BLOCK specification.
          
          (Technical: called from TSET1.)
          
VT0030 -  A second / CLASS specification has followed an earlier one.
          There should be only a single / CLASS specification
          associated with this statement.
          
          (Technical: called from TSET1.)          

VT0031 -  In attempting to scan a / CLASS specification, there was
          insufficient room in the array used to store the result.
          
          Solution: Attempt to simplify the problem by breaking it down
          into smaller steps.  Alternatively, the FORTRAN source can be
          recompiled by making the changes described in the technical 
          note.
          
          (Technical: called from TSET1.  The available size is
          determined by the FORTRAN parameter MTRSZI, which is derived
          from the values of several other parameters, including MSIZEI.
          The recommended approach is to increase MSIZEI.)

VT0032 -  In attempting to scan a / CLASS specification, there was
          insufficient room in the array used to store the result.
          
          Solution: Attempt to simplify the problem by breaking it down
          into smaller steps.  Alternatively, the FORTRAN source can be
          recompiled by making the changes described in the technical 
          note.
          
          (Technical: called from TSET1.  The available size is
          determined by the FORTRAN parameter MRECOD)

VT0033 -  A class specification in the TRANSFORM step must be in the
          form of a single product.  In other words, class variables
          must be joined by *, e.g.,
             / class age * sex * tenure
          
          A class specification not following this form, for example,
             / class age * sex  tenure
          is acceptable during the DISPLAY step but not the TRANSFORM
          step.
          
          (Technical: called from TSET1.)

VT0034 -  The class specification contained a duplicate reference to
          a class variable, which is not allowed.
          
          (Technical: called from TSET1.)

VT0035 -  A previous / BLOCK specification has already been given.  Only
          one /BLOCK specification is allowed.
          
          (Technical: called from TSET1.)

VT0036 -  An integer was expected here as part of the / BLOCK
          specification.
          
          (Technical: called from TSET1.)

VT0037 -  A /CLASS or /BLOCK specification was expected, but neither
          key word was found.
          
          (Technical: called from TSET1.)

VT0038 -  The /BLOCK specification gives a block number beyond the
          current range.  Blocks must be created in order, although new
          variables may be added to existing blocks.
          
          Solution: The /BLOCK specification should point to an existing
          block or to the next higher block that has not yet been
          defined.
          
          (Technical: called from TSET1.)

VT0039 -  The /BLOCK specification points to an existing block.  The
          /CLASS specification given here is not compatible with the
          existing block however.  Either the existing block does not
          have any associated class variables or the associated class
          variables differ.  Possible differences include the issue of
          defined margins, that is, the distinction between AGE (0-N)
          and AGE (or AGE (1-n))
          
          (Technical: called from TSET1.)

VT0040 -  The /BLOCK specification points to an existing block.  No 
          /CLASS specification was given here but the existing block
          has one or more associated class variables.
          
          Solution: Assign the results to a different block or give
          a compatible /CLASS specification.
          
          (Technical: called from TSET1.)

VT0041 -  Both KEEP and DROP statements have been provided.  This
          combination is not allowed.

          Solution: Specify the variables on the outgoing VPLX file
          with only one method.  KEEP is the more standard usage.

          (Technical: called from TSET1.)

VT0042 -  The format of the KEEP or DROP statement is in error.  No 
          variable names were successfully read.

          Solution:  The KEEP or DROP statement must be followed with
          a valid list of variables.

          (Technical: called from TSET1.)

VT0043 -  During processing of a KEEP or DROP statement, the list of
          variables ends prematurely.  Unexpected punctuation or
          other characters interrupt the variable list.

          (Technical: called from TSET1.)

VT0044 -  An OLD or MODIFY list contained an unrecognized variable name.
          All variables in the list must be previously defined.
          
          (Technical: called from TSET1, based on a code returned by
          VTSCAN.)

VT0045 -  A syntactic error occurred while processing the OLD or MODIFY
          list of variables.
          
          (Technical: called from TSET1, based on a code returned by
          VTSCAN.)

VT0046 -  No variables were successfully identified in the OLD or MODIFY
          list of variables.
          
          (Technical: called from TSET1, based on a code returned by
          VTSCAN.)

VT0047 -  N(BLOCK#) may be included in the OLD or MODIFY list of
          variables only if BLOCK# is a valid integer denoting the
          number of an existing block.
          
          (Technical: called from TSET1.)

VT0048 -  MODIFY does not recognize any form of transformation of the
          variable, such as mean, percent, etc.
          
          (Technical: called from TSET1.)
          
VT0049 -  OLD permits the MEAN of a real variable, but only if a
          (weighted) N already exists for the block.  The variable
          does not have an associated N.
          
          (Technical: called from TSET1.)

VT0050 -  A "/" was expected here as part of a / CLASS specification.
          The character encountered was not successfully interpreted.
          
          (Technical: called from TSET1.)

VT0051 -  CLASS was expected here as part of a / CLASS specification.
          
          (Technical: called from TSET1.)
          
VT0052 -  BLOCK was expected here as part of a REMOVE BLOCK statement.
          
          (Technical: called from TSET1.)

VT0053 -  The REMOVE BLOCK statement was incomplete.  Either a number
          must be supplied, for example,
            REMOVE BLOCK 3
          or a range
            REMOVE BLOCK (1-3)
          
          (Technical: called from TSET1.)

VT0054 -  The block number given is outside the valid range.

          (Technical: called from TSET1.)
          
VT0055 -  Extraneous information specified beyond the block number.
          Either a single number must be supplied, for example,
            REMOVE BLOCK 3
          or a range
            REMOVE BLOCK (1-3)
          
          (Technical: called from TSET1.)
          
VT0056 -  The REMOVE BLOCK statement appeared to be of the form
            REMOVE BLOCK (range)
          but a valid range was not given.

          (Technical: called from TSET1.)

VT0057 -  The REMOVE BLOCK statement can specify a single block number,
          for example,
            REMOVE BLOCK 3
          or a range
            REMOVE BLOCK (1-3)
          Neither form was detected.
          
          (Technical: called from TSET1.)

VT0058 -  Only one CONSTANTS statement may appear per subroutine.

          (Technical: called from TSET1.)

VT0059 -  Specification of INTEGER CONSTANTS not allowed for this
          subroutine.

          (Technical: called from TSET1.)

VT0060 -  Only one INTEGER CONSTANTS statement may appear per
          subroutine.

          (Technical: called from TSET1.)

VT0061 -  No valid values were read.

          (Technical: called from TSET1, on the basis of N returned
          by DASCAN.)

VT0062 -  STRINGS are limited to 128 characters, including a single
          inserted blank between each line.  FORMATS and LONGSTRINGS
          are able to accommodate longer lengths.
          
          (Technical: called from TSET1.)          
          
VT0063 -  Options for the subroutine have been established already, 
          and new ones are not accepted here because of potential 
          conflicts.

          (Technical: called from TSET1.)

VT0064 -  There are no established options for this subroutine.

          (Technical: called from TSET1.)
                    
VT0065 -  No variables have been associated with the subroutine.
          Each subroutine must have one or more associated variables.
          
          Note:  This message may have been generated at a point at
          which an unexpected keyword, not associated with the TRANSFORM
          step, has been encountered.

          (Technical: called from TSET1.)
                    
VT0066 -  ADD, SUBTRACT, MULTIPLY, or DIVIDE was expected to follow
          PAIRED.
          
          (Technical: called from TSET1.)
          
VT0067 -  A valid file name must be specified with this subroutine.

          (Technical: called from TSET1.)          

VT0068 -  In attempting to process an OLD or MODIFY statement, there
          was insufficient room in the array used to store the result.
          
          Solution: Attempt to simplify the problem by breaking it down
          into smaller steps.  Alternatively, the FORTRAN source can be
          recompiled by making the changes described in the technical 
          note.
          
          (Technical: called from TSET1.  The available size is
          determined by the FORTRAN parameter MRECOD.)

VT0069 -  STEPOPTION, STEP_OPTION may be used only once and must be placed
          the beginning of the TRANSFORM step before any subroutines.
          
          (Technical: called from TSET1.)

VT0070 -  OPTION or OPTIONS was expected to follow STEP.

          STEP OPTION, STEP OPTIONS, STEPOPTION, STEPOPTIONS, 
          STEP_OPTION, and STEP_OPTIONS are all accepted means to
          specify options for the step (case insensitive).  Use one
          of these spellings.

          (Technical: called from TSET1 or NMERGE.)

VT0071 -  APPEND was expected to follow VPLX.

          VPLX APPEND, VPLXAPPEND, and VPLX_APPEND are all accepted
          means to identify this subroutine (case insensitive).  Use
          one of these spellings.

          (Technical: called from TSET1.)

VT0072 -  Further information was expected after this key word.

          Complete the specification begun with the key word.
          
          (Technical: called from TSET1.)
          
VT0073 -  This statement may not be used as part of a VPLX_APPEND
          specification.

          (Technical: called from TSET1.)

VT0101 -  A class variable has appeared more than once in the / CLASS
          specification, which is not allowed.
          
          Solution: Revise the / CLASS specification into the required
          form.
          
          (Technical: called from CLFORM.)

VT0102 -  / CLASS specifications for new variables or blocks may
          contain class ranges in the form (0-n) and (1-n), but
          no other variations are permitted.

          Solution: Revise the / CLASS specification into the required
          form.
          
          (Technical: called from CLFORM.)

VT0103 -  / CLASS specifications for new variables or blocks may
          contain class ranges in the form (0-n) or (1-n), but
          the + operator is not permitted in the range.

          Solution: Revise the / CLASS specification into the required
          form.
          
          (Technical: called from CLFORM.)

VT0104 -  / CLASS specifications for new variables or blocks may
          contain class ranges in the form (0-n) or (1-n), but
          the given specification references too many levels for the
          class variable.

          Solution: Revise the / CLASS specification into the required
          form.
          
          (Technical: called from CLFORM.)

VT0105 -  / CLASS specifications for new variables or blocks may
          contain class ranges in the form (0-n) or (1-n), but
          the upper end of the specification did not include the
          full number of levels of the class variable.

          Solution: Revise the / CLASS specification into the required
          form.
          
          (Technical: called from CLFORM.)

VT0110 -  The MODIFY statement includes a / CLASS specification for
          a variable in a block with no associated classes.
          
          (Technical: called from CLCHK3.)

VT0111 -  The / CLASS specification includes a class variable not 
          associated with the block.
          
          (Technical: called from CLCHK3.)

VT0112 -  The / CLASS specification for a MODIFY variable referenced
          a margin of a class variable, but the variable is summable
          and its margins therefore cannot be modified.  (Only
          modification of the individual cells is allowed for summable
          variables).
          
          (Technical: called from CLCHK3.)

VT0113 -  The / CLASS specification for a MODIFY variable referenced
          a margin of a class variable, but the margin was not
          previously defined.
          
          (Technical: called from CLCHK3.)

VT0114 -  The / CLASS specification for a MODIFY variable included
          a "+" summation over classes, but modification of sums of
          this sort is not permitted.
          
          (Technical: called from CLCHK3.)

VT0115 -  The / CLASS specification for a MODIFY variable referenced
          a class variable more than once.  In general, repetition of
          class variables is not allowed in / CLASS specifications
          in the TRANSFORM step.
          
          (Technical: called from CLCHK3.)

VT0120 -  The file version of the appended VPLX file is not supported.

          Solution: Regenerate the VPLX file that is being appended with
          a current version of the VPLX program.
          
          (Technical: called from PREAMD.)
          
VT0121 -  Unexpected end of appended VPLX file.  The file appears to be
          damaged.

          Solution: Investigate the appended VPLX file by performing a
          CONTENTS and attempting to DISPLAY the file.  If similar
          difficulties are encountered, regenerate the appended VPLX
          file.
          
          (Technical: called from PREAMD.)

VT0122 -  Pointers for crossed variables are inconsistent on appended
          file.  The file appears to be damaged.

          Solution: Investigate the appended VPLX file by performing a
          CONTENTS and attempting to DISPLAY the file.  If similar
          difficulties are encountered, regenerate the appended VPLX
          file.
          
          (Technical: called from PREAMD.)

VT0130 -  A class variable on the appended file has the same name as
          an existing variable, but the existing variable is not a 
          class variable.
          
          Solution:  Change the name of one of the variables to remove
          the conflict.  To rename an existing variable, use RENAME.  To
          rename the class variable on the incoming file, use EXTRACT.
          
          (Technical: called from VAPSET.) 

VT0131 -  A class variable on the appended file has the same name as
          an existing class variable, but the existing variable has a
          different number of levels.
          
          Solution:  Change the name of one of the variables to remove
          the conflict.  To rename an existing variable, use RENAME.  To
          rename the class variable on the incoming file, use EXTRACT.
          
          (Technical: called from VAPSET.) 

VT0300 -  The KEEP or DROP list includes a variable name that was not
          defined.
          
          (Technical: called from TCREA1.)

VT0501 -  MODIFY and new variables (REAL, DERIVED, etc.) cannot be used
          simultaneously with this subroutine.

          Either specify all of the outputs as MODIFY or as new 
          variables.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS)

VT0502 -  This subroutine requires that at least one MODIFY or new
          variable be specified.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0503 -  When CONSTANTS are included in the specification to 
          this subroutine (ADD, SUBTRACT, MULTIPLY, DIVIDE, POWER, 
          RMULTIPLY or COLLAPSE), the number of OLD variables specified
          must agree with the number of output variables (MODIFY or new
          variables).
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0504 -  When CONSTANTS are not present in the specification to this 
          subroutine (ADD, SUBTRACT, MULTIPLY, DIVIDE, POWER, RMULTIPLY 
          or COLLAPSE), at lease one OLD variable must be specified.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0505 -  When CONSTANTS are not present in the specification to 
          this subroutine (ADD, SUBTRACT, MULTIPLY, DIVIDE, POWER, 
          RMULTIPLY or COLLAPSE) and only one OLD variable is specified,
          the other variable(s) must be MODIFY, not new.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0506 -  When CONSTANTS are not present in the specification to 
          this subroutine (ADD, SUBTRACT, MULTIPLY, DIVIDE, POWER, 
          RMULTIPLY or COLLAPSE) and more than one OLD variable is 
          specified, the number of output variable(s) (MODIFY or new)
          must be one less than the number of OLD.  The last OLD
          variable operates on each of the other OLD variables.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0507 -  When OLD variables are specification to LOG or RECIPROCAL,
          the number of output (MODIFY, new) variables must agree with
          the number of OLD variables.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0508 -  When OLD variables are not specified for LOG or RECIPROCAL,  
          new variables cannot be created -- MODIFY must be used.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0509 -  For FLAGMISS, FLAGZERO, FLAGNEG, and FLAGNONPOS, the number of
          OLD variables must agree with the number of MODIFY or new
          variables.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0510 -  The number of specified MODIFY variables must agree with the
          number of OLD variables with PAIRED ADD, PAIRED SUBTRACT,
          PAIRED MULTIPLY or PAIRED DIVIDE.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0511 -  With PAIRED ADD, PAIRED SUBTRACT, PAIRED MULTIPLY or 
          PAIRED DIVIDE, the number of specified OLD variables must be
          twice the number of specified new variables.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0512 -  With PAIRED ADD, PAIRED SUBTRACT, PAIRED MULTIPLY, 
          PAIRED DIVIDE, LOG, FLAGMISS, FLAGZERO, FLAGNEG, and FLAGNONPOS,
          no constants may be specified.
          
          (Technical: called from ARITHM, which implements ADD,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0513 -  With FLAGMISS, FLAGZERO, FLAGNEG, or FLAGNONPOS, one or more
          old variables must be specified.
          
          (Technical: called from ARITHM, which implements ADD,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0514 -  CHANGEMISS, CHANGEZERO, CHANGENEG, AND CHANGENONPOS do not
          create new variables, but use only MODIFY in combination with
          OLD or CONSTANTS.
          
          (Technical: called from ARITHM, which implements ADD,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0515 -  CHANGEMISS, CHANGEZERO, CHANGENEG, and CHANGENONPOS do not
          permit the combination of OLD with CONSTANTS.
          
          (Technical: called from ARITHM, which implements ADD,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0516 -  For CHANGEMISS, CHANGEZERO, CHANGENEG, or CHANGENONPOS, if
          more than one OLD variable is specified, the number of OLD
          variables must agree with the number of MODIFY variables.
          
          (Technical: called from ARITHM, which implements ADD,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0517 -  Based on the corresponding OLD variable, the expected size for
          the target output variable (MODIFY, new) does not agree with its
          actual size.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS)

VT0518 -  CHANGEMISS, CHANGEZERO, CHANGENEG, and CHANGENONPOS require
          specification of CONSTANTS or one or more OLD variables to
          provide the values to be used in changing the MODIFY
          variable(s).
          
          (Technical: called from ARITHM, which implements ADD,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT0519 -  The size of the second variable (OLD or CONSTANTS) is required to
          divide evenly into the size of the primary variable determining the
          output size.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS)

VT0520 -  For COLLAPSE, the size of the second variable (OLD or CONSTANTS) 
          must agree with the size of the primary variable determining the
          output size.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS)

VT0521 -  For COLLAPSE, the specification of the collapsing in the second
          variable (OLD or CONSTANTS) must contain only integers.
          0's indicate no collapsing, positive x's indicate cells to be
          collapsed together in the usual fashion, and negative -x's mark
          cells that are not themselves to be changed but which are to be 
          added to cells marked with positive x.  The specification must
          use integers.
          
          (Technical: called from ARITHM, which implements ADD, SUBTRACT,
          SUBTRACT, MULTIPLY, RMULTIPLY, DIVIDE, POWER, LOG, PAIRED ADD,
          PAIRED SUBTRACT, PAIRED MULTIPLY, PAIRED DIVIDE, COLLAPSE,
          CHANGEMISS, CHANGEZERO, CHANGENEG, CHANGENONPOS, FLAGMISS,
          FLAGZERO, FLAGNEG, FLAGNONPOS.)

VT1001 -  VPLXAPPEND statements, when used, must appear at the beginning
          of the TRANSFORM step.
          
          (Technical: called from TRNNEW.)

VT1002 -  Error in opening file for VPLXAPPEND.  Check both the syntax of
          the statement and that the file is correctly specified.
          
          (Technical: called from TRNNEW.)

VT1003 -  A variable on the VPLXAPPEND file has already been defined.
          Except for class variables, the variables on the VPLXAPPEND
          file must not duplicate existing variables.
          
          (Technical: called from TRNNEW.)

VT1004 -  A class variable on the VPLXAPPEND file has already been with
          a different size.
          
          (Technical: called from TRNNEW.)

VT1005 -  The new syntax does not supported CROSSED variables.
          
          (Technical: called from TRNNEW.)

VT1006 -  Options associated with VPLXAPPEND must immediately follow the
          associated VPLXAPPEND statement.  OPTIONS cannot appear, before
          the first VPLXAPPEND statement, since the options have no
          clear use with respect to the input VPLX file to the step.
          
          (Technical: called from TRNNEW.)

VT1007 -  The outgoing file has been specified to be empty.
          
          (Technical: called from TR2NEW.)

VT1008 -  The outgoing block has been specified to be empty.   Currently,
          outgoing blocks must be nonempty and sequential.
          
          (Technical: called from TR2NEW.)

VT1009 -  More than one block N has been specified for the outgoing block. 
          
          (Technical: called from TR2NEW.)