 
      CALL SEQUENCE...
       gsapzl  GSPHI GSPHIS GSLNSP GPPHI GPTEMP INPUT OUTPUT \ 
                   [ -plv VAL1 -a VAL2 -b    VAL3 -c VAL4 \ 
                     -d   VAL5 -i VAL6 -kind VAL7 -def [VAL8] ]
 
 
      DESCRIPTION...
       gsapzl  - CALCULATES T & PHI ON PRESSURE LEVELS FROM PHI ON ETA
                (SIGMA/HYBRID) LEVELS
 
 
      AUTHOR  - R. Laprise, FEB 29/88.
      LAST REVISION: $Header: /home/cvs/RMNLIB/utils/rdiag/lspgm/gsapzl.ptn,v 4.31 2014/09/25 20:20:49 dugas Exp $
 
 
      PURPOSE - CALCULATES T AND PHI ON PRESSURE LEVELS FROM "PHI" OR
                "TEMP" ON MODEL LEVELS.
      NOTES A)  THE FOLLOWINGS ARE THE NECESSARY STEPS TO BE TAKEN
                IF TEMP IS USED INSTEAD OF PHI AS INPUT AND COORD
                IS 'SIG' OR 'ETA':
 
                1) INPUT FILE... GETEMP, INSTEAD OF GSPHI.
                2) READ-IN LAYERING PARAMETER LAY.
                3) FILEV RETURNS SH, TEMPERATURE MID LAYER POSITION,
                4) BASCAL COMPUTES SHB (LAYER BASES) FROM SH AND LAY.
                5) COORDAB COMPUTES PARAMETERS A AND B (ETA COORD)
                   FROM SHB.
                6) MODIFY ETAPHI TO EXTRAPOLATE UPWARD USING UPPERMOST
                   TEMPERATURE.
            B)  If COORD is any type of GEM coordinates, the procedure
                should receive virtual temperatures, but will still
                continue if it receives temperatures.
 
 
      INPUT FILES...
       GSPHI  = IF COORD = 'SIG'/'ETA',
                 SETS OF "PHI" ON MODEL LEVELS, DEFINED AS
                  "PHI"=PHIS + INT(R*T*D LN ETA)  IN PAKGCMH
                IF COORD = 'GEM?",
                 SETS OF 'VT' or 'TT' ON MODEL LEVELS.
       GSPHIS = MOUNTAINS (SURFACE GEOPOTENTIAL). The variables's
                name should be 'PHIS','MT' (in gm) or 'ME' (in m)
       GSLNSP = SET OF LN(SURFACE PRESSURE). The variable's name
                should be 'LP' or 'LNSP', with units in hPa.
 
      OUTPUT FILES...
       GPPHI  = PRESSURE LEVEL GEOPOTENTIALS.
       GPTEMP = PRESSURE LEVEL TEMPERATURES.
 
 
      INPUT PARAMETERS...
 
       NPL    (plv)  = NUMBER OF PRESSURE LEVELS, ((DEF 16, MAX 999).
                       IF NPL IS NEGATIVE, EACH -NPL LEVP VALUES ARE
                       READ WITH A I10 FORMAT OR AN E10.0 IF ITS
                       VALUE CONTAINS A DECIMAL POINT.
       RLUP   (a)    = DT/D LN(P) FOR TEMP EXTRAP UPWARDS (DEF=0.0)
       GAMMA  (b)    = DT/D LN(P) FOR TEMP,PHI EXTRAP DOWNWARD (DEF=6.5E-3)
       PTOIT  (c)    = PRESSURE (PA) OF LID AT TOP OF MODEL.
       COORD  (kind) = 'SIG'/'ETA' OR 'GEM'/'GEM2'/'GEM3'/'GEM4' FOR
                       SIGMA, ETA AND FOUR VARIANTS OF THE GEM VERTICAL
                       COORDINATES, RESPECTIVELY. THE FILE CONTENTS IS USED TO
                       DETERMINE THE RPN DEFAULTS ('GEM2','GEM3' OR 'GEM4').
       PREF   (d)    = REF PRESSURE USED WHEN COORD='GEM2' OR 'GEM3' (DEF 80000 PA).
       R      (i)    = EXPONENT USED ONLY WHEN COORD='GEM2' OR 'GEM3' (DEF 1.0)
 
       LP            = PRESSURE LEVELS (MB).  THE DEFAULTS
                       ARE AS SPECIFIED IN THE EXAMPLE BELOW.
 
       Notes: 1) Units for RLUP are that of D(GSPHI)/D(LN PRES)
              2) RLUP is ignored when COORD='GEM','GEM2' or 'GEM3'
              3) The first input line is NOT read if any
                 command-line parameters are passed.
              4) Furthermore, the second line will not be read either
                 if the -def defaults processing mode is requested.
              5) 'GEM' is the original gem coordinate, while 'GEM2' is the
                 original hybrid coordinate as implemented by Edouard &
                 Gravel in GEM/DM v2.2.0. 'GEM3' is the normalized version
                 that was implemented in the v2.3.1 GEM/DM. 'GEM4' is the
                 coordinate version of GEM/DM from v4.0.6.
              6) The default value of COORD is determined by the file type
                 and the program will also try to determine it by the
                 (internal) coding used for the coordinate itself.
              7) Specifying "-def AABB" will force the attempt to read
                 a text file called aabb.nml, containing a FORTRAN
                 namelist AABB_NML, which in turns will hold two arrays,
                 AG and BG such that the local pressure at level K, PL(K),
                 can be calculated as "AG(K)+BG(K)*PS". This then by-passes
                 all of the normal COORD-related calculations for PL(K).
 
       READ( 5,5010 ) NPL,RLUP,GAMMA,COORD,PTOIT,PREF,R
       IF (NPL.GT.0)
       READ( 5,5020 ) (LEVP(I),I=1,NPL)
       IF (NPL.LT.0)
       READ( 5,5030 ) (LEVP(I),I=1,-NPL)
 5010  FORMAT(10X,I5,2E10.0,1X,A4,3E10.0)
 5020  FORMAT(16I5)
 5030  FORMAT(8E10.0)
 
 
      EXAMPLE OF INPUT CARDS...
 
  GSAPZL.    16        0.    6.5E-3  ETA      0.01
   10   20   30   50   70  100  150  200  250  300  400  500  700  850  925 1000
 
         01234567890123456789012345678901234567890123456789012345678901234567890
         1         2         3         4         5         6         7
 
 
      EXIT CONDITIONS...
        0 NO PROBLEMS
        1 NUMBER OF PRESSURE LEVELS GREATER THAN MAXLEV
        2 PRESSURE OR MODEL LEVELS NOT MONOTONIC/INCREASING
        3 ERROR READING FIRST SET IN GSLNSP
        4 ERROR READING SURFACE GEOPOTENTIAL
        5 ERROR READING FIRST SET IN GSPHI
        6 GSPHI,GSPHIS,GSLNSP NOT THE SAME HORIZONTAL SIZE
        7 FOUND NAME OTHER THAN PHI OR GZ IN GSPHI
        8 MORE THAN ONE VERTICAL SIZE IN GSPHI
        9 MISSING GSLNSP RECORD
       10 ERROR ABORT READING INPUT CARD 1
       11 ERROR ABORT READING INPUT CARD 2
       12 GSPHI/GSPHIS/GSLNSP NAME PROBLEM
       13 LP DOES NOT CONTAIN PRESSURE DATA
       14 UNSUPPORTED VERTICAL COORDINATE IN GSPHI
       15 UNABLE TO ALLOCATE WORKING MEMORY
       16 COORD PARAMETRE AND GSPHI DATA MISMATCH
       17 MORE THAN ONE VERTICAL COORDINATE IN GSPHI
       18 PTOIT GREATER THAN TOP MODEL LEVEL (=ETA(TOP)*PREF)
       19 AABB OPTION INCOMPATIBLE WITH GEM4 INPUT
       20 UNABLE TO READ AABB NAMELIST
       21 WRONG NUMBER OF AG,BG IN AABB
 
