 
      CALL SEQUENCE...
       ggatim  INFIL OUTFIL MASK INPUT OUTPUT [-dlat1 VAL1 -dlat2 VAL2
                                               -dlon1 VAL3 -dlat2 VAL4 
                                               -kind  VAL5]
 
 
      DESCRIPTION...
       GGATIM  - CONVERT GAUSSIAN GRIDS TO A NUMBER OF TIME SERIES
 
 
      AUTHORS  - F.Zwiers AND B.Dugas, DEC/85.
      LAST REVISION: $Header: /data/armnraid1/cvs/RMNLIB/utils/rdiag/lspgm/ggatim.ptn,v 4.20 2012/08/29 15:51:34 dugas Exp $
 
 
      PURPOSE - TRANSPOSE A FILE OF (REAL OR COMPLEX) GRIDS, ZONAL PROFILES OR
                SPECTRAL ARRAYS TO PRODUCE A FILE OF  TIME SERIES OR TO  PRODUCE
                A TIME SERIES AT A SINGLE POINT IN A GRID, ZONAL PROFILE OR
                SPECTRAL ARRAY.
 
      WARNING - THIS PROGRAM DOES NO TIME SEQUENCE CHECKING.
 
 
      INPUT FILES...
       INFIL = A TIME SERIES OF GRIDS, ZONAL PROFILES OR SPECTRAL ARRAYS
               FOR A REPEATABLE SEQUENCE OF VARIABLES ON THE SAME NUMBER
               OF VERTICAL LEVELS.  IT IS ASSUMED THAT INPUT RECORDS ARE
               ARRANGED IN PROPER TIME/VARIABLE/LEVEL SEQUENCE.
       MASK  = (OPTIONNAL) GEOGRAPHY MASK FILE CONTAINNING THE POSITIONS
                AT WHICH THE TIME SERIES ARE TO BE CONSTRUCTED.
 
      OUTPUT FILE...
       OUTFIL =  A FILE OF TIME SERIES (ONE RECORD FOR EACH POINT)
                 WITH THE STANDARD TIME SERIES LABEL -->
 
                      IBOUT(1) = COEF IF SPECTRAL INPUT. UNCHANGED OTHERWISE
                      IBOUT(2) = LINEAR POSITION IN THE ORIGINAL ARRAY.
                      IBOUT(3) = NAME
                      IBOUT(4) = LEVEL
                      IBOUT(5) = LENGTH OF SERIES
                      IBOUT(6) = 1
                      IBOUT(7) = DIMENSIONS OF ARRAY KHEM (IN FORMAT CCCRRRK,
                                 WHERE CCC IS THE NUMBER OF LONGITUDES AND RRR
                                 IS THE NUMBER OF LATITUDES,  OR  LRLMT)
                      IBOUT(8) = PACKING DENSITY
 
 
       INPUT PARAMETERS...
 
        (dlat1) ILAT1 <= 0                ==> TRANSPOSE THE ENTIRE GRID OR 
                                              ZONAL PROFILE.
        (dlat2) ILAT2 = (dlon2) ILON2 = 0 ==> SELECT THE TIME SERIES AT ROW 
                                              NUMBER ILAT1 AND COLUMN NUMBER 
                                              ILON1.
        (dlat1) ILAT1 = (dlat2) ILAT2   \ 
                AND                      >==> SELECT THE TIME SERIES AT ROW 
        (dlon1) ILON1 = (dlon2) ILON2   /     NUMBER ILAT1 AND COLUMN NUMBER 
                                              ILON2.
 
        (kind) IMASK .NE. 0               ==> READ A MASK FILE OF 0'S OR 1'S 
                                              TO EXTRACTTHE DESIRED TIME SERIES. 
                                              DISREGARD THE OTHER INPUT PARAME-
                                              TERS ON THIS AND ANY OTHER CARD.
                                              THIS PARAMETRE IS ONLY READ ON
                                              THE FIRST INPUT CARD.
 
        ANY OTHER VALUES OF ILAT1, ILON1 AND ILAT2, ILON2 INDICATE THAT
        TIME SERIES ARE TO BE CONSTRUCTED FOR ALL POINTS CONTAINED IN THE
        REGION WHICH HAS POINT (ILAT1, ILON1) AT ITS SOUTH-WEST CORNER
        AND HAS (ILAT2, ILON2) AT ITS NORTH-EAST CORNER.
 
        NOTES - TO CONSTRUCT TIME SERIES IN A REGION WHICH SPANS THE
                GREENWICH MERIDIAN, IT IS NECESSARY TO DIVIDE THE REGION
                INTO TWO PARTS AND TO SUPPLY TWO GGATIM CARDS. A MAXIMUM
                OF NINE CARDS CAN BE READ.
              - 'GGATIM' CARDS ARE READ AND EXECUTED ONE AT A TIME UNTIL
                INPUT IS EXHAUSTED THEREBY ALLOWING THE USER TO SELECT A
                NUMBER OF TIME  SERIES AT VARIOUS  POINTS IN ONE CALL TO
                GGATIM.
              - THE PROGRAM USES SCRATCH FILES TO SEPERATE THE VARIABLES
                AND/OR THE LEVELS. EACH SYSTEM IMPOSES A LIMIT TO THE
                NUMBER OF SUCH FILES. THIS IN TURN IMPOSES A LIMIT ON
                THE NUMBER OF VARIABLES AND/OR LEVELS.
              - IN THE COMPLEX 'CMPL' CASE, THE OPERATION ACTUALLY
                YIELDS THE CONJUGATE TRANSPOSE MATRIX.
              - GGATIM IS THE FUNCTIONAL INVERSE OF TIMAGG.
                
 
       READ( 5,5010 ) ILAT1,ILON1,ILAT2,ILON2,IMASK
 5010  FORMAT(10X,5I5)
 
 
      EXAMPLE OF INPUT CARD...
 
  GGATIM     24   44   27   47    0
 
         0123456789012345678901234567890123456789012345678901234567890
         1         2         3         4         5         6         7
 
 
      EXIT CONDITIONS...
        0 NO PROBLEMS
        1 ILLEGAL DATA TYPE
        2 ILLEGAL BOX COORDINATES
        3 ILLEGAL COORDINATE FOR SINGNE TIME SERIE (TS)
        4 UNABLE TO UNPACK MASK FILE OR MASK HAS WRONG DIMENSIONS
        5 MASK FILE IS FULL OF ZEROES
        6 MEMORY ALLOCATION PROBLEMS
        7 TS TOO LONG (SINGLE TS MODE)
        8 ERROR ABORT READING INPUT
        9 ERROR ABORT READING INFIL
       10 ERROR ABORT READING MASK
       11 ABORT OPENNING SCRATCH FILE
       12 MEMORY ALLOCATION PROBLEMS
       13 UNSOPPORTED INPUT TYPE
