 
      CALL SEQUENCE...
      addlev  XIN XOUT INPUT OUTPUT [ -kind VAL1 [VAL2] -N VAL3 -i VAL4 \ 
                                    [ -lv1  VAL5 [VAL6 [VAL7] ] ] ]
 
 
      AUTHOR - B.Dugas, Oct 10/91.
      LAST REVISION: $Header: /home/cvs/RMNLIB/utils/rdiag/lspgm/zadlev.ptn,v 4.19 2015/03/30 22:24:00 dugas Exp $
 
 
      DESCRIPTION...
       THIS PROGRAM EITHER:
       1) ADDS (INTERPOLATES) VERTICAL LEVELS IN A GRID ARRAY.
       2) INTERPOLATES TO A CONSTANT VERTICAL-INCREMENT GRID ARRAY,
          EITHER IN LINEAR- OR LOG-COORDINATE. THE TOP AND
          BOTTOM LEVELS REMAIN THE SAME.
 
 
      INPUT FILE...
       XIN  = ANY SET OF MULTI-LEVEL 'ZONL, 'GRID' OR 'SUBA' ARRAYS.
 
      OUTPUT FILE...
       XOUT = MODIFIED SET OF ARRAYS.
 
 
      INPUT PARAMETERS...
 
       KIND(1) = 0   ==> ADD N LEVELS.
                -1   ==> PRODUCE A N-LEVEL LINEAR-COORDINATE GRID
                -2   ==> PRODUCE A N-LEVEL LOG-COORDINATE GRID
                -5   ==> PRODUCE A N-LEVEL GRID, USING
                         THE LEVELS SPECIFIED BY LEVX
       N       = NUMBER OF LEVELS TO ADD OR PRODUCE IN TARGET ARRAY
                (THE MAXIMUM NUMBER OF LEVELS IS NOW SET AT 999)
                 IF N IS NEGATIVE, EACH -N LEVX VALUES ARE READ WITH
                 A I10 FORMAT OR AN E10.0 IF ITS VALUE CONTAINS A
                 DECIMAL POINT.
       I       = INTERPOLATION TYPE.
                 0 ==> LINEAR (DEFAULT). OTHERWISE ==> CUBIC.
       LEVX    = NEW LEVELS IN ADD MODE. ONLY THREE NEW LEVELS CAN BE
      (lv1)      SPECIFIED IN COMMAND LINE INPUT MODE. THEY MUST BE
                 INCREASING OR DECREASING, AS IN XIN. ALSO IN THIS
                 MODE, LEVX MAY ALSO BE THE REAL DECODED LEVEL VALUES. 
                 IF THAT IS  CASE, THE KIND(2) PARAMETER ABSOLUTELY
                           *** HAS TO BE SPECIFIED ***.
       KIND(2) = VERTICAL LEVEL TYPE. ONLY USE THIS WITH IN RPN STD FILES
                 AND WHEN LEVX CONTAINS DECODED VALUES. FURTHERMORE, THIS
                 PARAMETRE CAN ONLY BE SPECIFIED IN COMMAND-LINE MODE.
                 THE CURRENTLY SUPPORTED VALUES ARE:
                   'HAUTEUR'   , heights (m) with respect to sea level
                   'SIGMA'     , classical terrain following (0.0 -> 1.0)
                   'ETA'       , first version of the GEM ETA coordinate
                   'PRESSION'  , pressure (mb)
                   'ARBITRAIRE', arbitrary level (no units apply)
                   'HAUTEURS'  , heights (M) with respect to the surface
                   'HYBRIDE'   , hybrid GEM coordinate
                   'THETA'     , potential temperature coordinate
                   'GALCHEN'   , GalChen generalized coordinate
 
 
       NOTES: 1) IF N IS ZERO AND KIND IS LESS THAN ZERO (I.E. WE
                 ARE NOT IN ADD MODE), N WILL BE RESET TO 2/3 OF
                 THE NUMBER LATITUDES IN XIN.
              2) ADDLEV AND ZADLEV ARE THE SAME PROGRAM.
              3) IF KIND IS EQUAL TO -5, LEVX IS ALWAYS READ FROM
                 STANDARD INPUT.
 
       READ( 5,5000 ) KIND,N,I
       IF (N.GT.0)
       READ( 5,5010 ) (LEVX(L),L=1,N)
       IF (N.LT.0)
       READ( 5,5020 ) (LEVX(L),L=1,-N)
 5000  FORMAT(10X,3I5)
 5010  FORMAT(16I5)
 5020  FORMAT(8E10.0)
 
 
      EXAMPLE ....
 
  ADDLEV     -1   15    0
 
          123456789012345678901234567890123456789012345678901234567890
         1         2         3         4         5         6         7
 
 
      EXIT CONDITIONS...
        0 NO PROBLEMS
 
      FATAL CONDITIONS...
        1 PROBLEMS READING XIN
        2 FOUND UNSUPPORTED DATA TYPE IN FILE XIN
        3 UNABLE TO READ/UNPACK A COMPLETE SET
        4 MORE THAN ONE SIZE OF ARRAY IN XIN
        5 INTERPOLATION PROCESSING OPTION UNKNOWN
        6 ERROR READING INPUT PARAMETERS (FIRST LINE)
        7 ERROR READING INPUT PARAMETERS (OPTIONAL SECOND LINE)
        8 VERTICAL LEVELS DO NOT VARY MONOTONICALLY
        9 NEW AND OLD VERTICAL LEVELS NOT THE SAME TYPE
       11 INCONSISTENT LEVX VALUES IN INPUT PARAMETERS
 
      NON-FATAL CONDITION... 
      101 KIND PARAMETER VALUE NOT RECOGNIZED
 
