      SUBROUTINE GGAST (SC,LSR,LM,LA, GG,ILG1,ILAT,ILEV,SL,WL,
     1                  ALP,EPSI,WRKS,TRANCHE,TRIGS,IFAX,MAXL)
C 
C     * JUL 14/92 - E. CHAN (ADD REAL*8 DECLARATIONS)
C     * AUG 13/90 - M.LAZARE. CHANGE HARD-COAT OF IFAX FROM 10 TO 1,
C     *                       SINCE IS PASSED IN CALL.
C     * JAN 26/84 - B.DUGAS.
C 
C     * PRODUCES GLOBAL SPECTRAL COEFF SET SC(LA,ILEV)
C     * FROM GLOBAL GAUSSIAN GRID SET GG(ILG1,ILAT,ILEV). 
C     * LSR CONTAINS ROW LENGTH INFO FOR ALP,EPSI,SC. 
C     * TRIGS AND IFAX CONTAIN THE INFO FOR THE CRAY FFT'S. 
C     * EPSI = PRECOMPUTED CONSTANTS. 
C     * SL = SIN(LATITUDE) OF GAUSSIAN ROWS FROM S.POLE TO N.POLE.
C     * WLP = LEGENDRE POLYNOMIALS NORMALIZED BY GAUSSIAN WEIGHT. 
C 
C     * LEVEL 2,GG,SC,ALP,EPSI
      IMPLICIT REAL (A-H,O-Z),
     +INTEGER (I-N)
      COMPLEX SC(LA,ILEV) 
      REAL GG(ILG1,ILAT,ILEV) 
      REAL*8 SL(1),WL(1),ALP(1),EPSI(1),WLJ
      REAL   TRIGS(1),WRKS(1),TRANCHE(MAXL,1)
      INTEGER LSR(2,1),IFAX(10) 
C-------------------------------------------------------------------- 
      ILG=ILG1-1
      ILH=MAXL/2
      ILH2=MAXL 
      MAXF=LM-1 
      NP=LSR(1,LM+1)-1
      DO 110 L=1,ILEV 
      DO 110 N=1,NP 
  110 SC(N,L)=(0.E0,0.E0) 
C 
      DO 230 J=1,ILAT 
         CALL ALPST2 (ALP,LSR ,LM,SL(J),EPSI) 
         WLJ=WL(J)
         DO 200 L=1,ILEV
            DO 200 I=1,ILG
               TRANCHE(I,L)=GG(I,J,L) 
  200    CONTINUE 
         CALL FFWFG (TRANCHE,ILH,TRANCHE,ILH2,MAXF,ILG,WRKS,
     1               ILEV,IFAX,TRIGS) 
         DO 215 L=1,LA+LM 
            ALP(L)=ALP(L)*WLJ 
  215    CONTINUE 
         CALL FAST (SC,TRANCHE,LSR,LM,LA,ILH,ILEV,ALP)
  230 CONTINUE
C 
      RETURN
      END 
