SUBROUTINE W3FT39(VLN,GN,PLN,FL,WORK,TRIGS,RCOS)
C$$$   SUBPROGRAM  DOCUMENTATION  BLOCK
C
C SUBPROGRAM: W3FT39         COMPUTES 2.5X2.5 N. HEMI. GRID-VECTOR
C   AUTHOR: R.E.JONES        ORG: W323       DATE: 84-06-27
C
C ABSTRACT: COMPUTES 2.5 X 2.5 N. HEMI. GRID OF 145 X 37 POINTS
C   FROM SPECTRAL COEFFICIENTS IN A RHOMBOIDAL 30 RESOLUTION
C   REPRESENTING A VECTOR FIELD.
C
C PROGRAM HISTORY LOG:
C   93-07-23  R.E.JONES   NEW VERSION OF W3FT09, TAKES OUT W3FA12
C                         MAKES PLN 3 DIMENSIONS, PLN IS COMPUTED
C                         ONE TIME IN MAIN PROGRAM, TRADES MEMORY
C                         FOR MORE SPEED. W3FA12 USED 70% OF CPU TIME.
C
C USAGE:  CALL W3FT39(VLN,GN,PLN,FL,WORK,TRIGS,RCOS)
C
C   INPUT VARIABLES:
C     NAMES  INTERFACE DESCRIPTION OF VARIABLES AND TYPES
C     ------ --------- -----------------------------------------------
C     VLN    ARG LIST  992 COMPLEX COEFF.
C     PLN    ARG LIST  (32,31,37) REAL SPACE WITH LEGENDRE POLYNOMIALS
C                      COMPUTED BY W3FA12.
C     FL     ARG LIST  31 COMPLEX SPACE FOR FOURIER COEFF.
C     WORK   ARG LIST  144 WORK SPACE FOR SUBR. W3FT12
C     TRIGS  ARG LIST  216 PRECOMPUTED TRIG FUNCS. USED
C                      IN W3FT12, COMPUTED BY W3FA13
C     RCOS   ARG LIST  37 RECIPROCAL COSINE LATITUDES OF
C                      2.5 X 2.5 GRID MUST BE COMPUTED BEFORE
C                      FIRST CALL TO W3FT11 USING SR W3FA13.
C
C   OUTPUT VARIABLES:
C     NAMES  INTERFACE DESCRIPTION OF VARIABLES AND TYPES
C     ------ --------- -----------------------------------------------
C     GN     ARG LIST  (145,37) GRID VALUES.
C                      5365 POINT GRID IS TYPE 29 OR 1D O.N. 84
C
C   SUBPROGRAMS CALLED:
C     NAMES                                                   LIBRARY
C     ------------------------------------------------------- --------
C     AIMAG  CMPLX  REAL                                      SYSTEM
C     W3FT12                                                  W3LIB
C
C WARNING: W3FT09 WAS OPTIMIZED TO RUN IN A SMALL AMOUNT OF
C   MEMORY, IT WAS NOT OPTIMIZED FOR SPEED, 70 PERCENT OF THE TIME WAS
C   USED BY SUBROUTINE W3FA12 COMPUTING THE LEGENDRE POLYNOMIALS. SINCE
C   THE LEGENDRE POLYNOMIALS ARE CONSTANT THEY NEED TO BE COMPUTED
C   ONLY ONCE IN A PROGRAM. BY MOVING W3FA12 TO THE MAIN PROGRAM AND
C   COMPUTING PLN AS A (32,31,37) ARRAY AND CHANGING THIS SUBROUTINE
C   TO USE PLN AS A THREE DIMENSION ARRAY THE RUNNING TIME WAS CUT
C   70 PERCENT. ADD FOLLOWING CODE TO MAIN PROGRAM TO COMPUTE EPS, PLN,
C   TRIGS, AND RCOS ONE TIME IN PROGRAM.
C     
C       DOUBLE PRECISION EPS(992)
C       DOUBLE PRECISION COLRA
C
C       REAL             PLN( 32, 31, 37 )
C       REAL             RCOS(37)
C       REAL             TRIGS(216)
C
C       DATA  PI /3.14159265/
C
C       DRAD = 2.5 * PI / 180.0
C       CALL W3FA11(EPS,30)
C       CALL W3FA13(TRIGS,RCOS)
C       DO LAT = 1,37
C         COLRA = (LAT - 1) * DRAD
C         CALL W3FA12 (PLN(1,1,LAT), COLRA, 30, EPS)
C       END DO
C
C ATTRIBUTES:
C   LANGUAGE: CRAY CFT77 FORTRAN  
C   MACHINE:  CRAY Y-MP8/864, CRAY Y-MP EL2/128
C
C$$$
C
       COMPLEX          FL( 31 )
       COMPLEX          VLN( 32 , 31 )
C
       REAL             GN(145,37)
       REAL             PLN( 32, 31, 37 )
       REAL             RCOS(37)
       REAL             TRIGS(216)
       REAL             WORK(144)
C
       SAVE
C
         DO 400 LAT = 2,37
           LATN  = 38 - LAT
C
           DO 100 L = 1, 31
             FL(L) = (0.,0.)
 100       CONTINUE
C
             DO 300 L = 1, 31
C
               DO 200 I = 1, 32
                 FL(L) = FL(L) + CMPLX(PLN(I,L,LAT) * REAL(VLN(I,L)),
     &           PLN(I,L,LAT) * AIMAG(VLN(I,L)) )
 200           CONTINUE
C
             FL(L)=CMPLX(REAL(FL(L))*RCOS(LAT),AIMAG(FL(L))*RCOS(LAT))
 300         CONTINUE
C
         CALL W3FT12(FL,WORK,GN(1,LATN),TRIGS)
C
 400     CONTINUE
C
C***   POLE ROW=CLOSEST LATITUDE ROW
C
         DO 500 I = 1,145
           GN(I,37) = GN(I,36)
 500     CONTINUE
C
         RETURN
       END