NCEPLIBS-w3emc  2.9.2
w3ft39.f
Go to the documentation of this file.
1 C> @file
2 C
3 C> SUBPROGRAM: W3FT39 COMPUTES 2.5X2.5 N. HEMI. GRID-VECTOR
4 C> AUTHOR: R.E.JONES ORG: W323 DATE: 84-06-27
5 C>
6 C> ABSTRACT: COMPUTES 2.5 X 2.5 N. HEMI. GRID OF 145 X 37 POINTS
7 C> FROM SPECTRAL COEFFICIENTS IN A RHOMBOIDAL 30 RESOLUTION
8 C> REPRESENTING A VECTOR FIELD.
9 C>
10 C> PROGRAM HISTORY LOG:
11 C> 93-07-23 R.E.JONES NEW VERSION OF W3FT09, TAKES OUT W3FA12
12 C> MAKES PLN 3 DIMENSIONS, PLN IS COMPUTED
13 C> ONE TIME IN MAIN PROGRAM, TRADES MEMORY
14 C> FOR MORE SPEED. W3FA12 USED 70% OF CPU TIME.
15 C>
16 C> USAGE: CALL W3FT39(VLN,GN,PLN,FL,WORK,TRIGS,RCOS)
17 C>
18 C> INPUT VARIABLES:
19 C> NAMES INTERFACE DESCRIPTION OF VARIABLES AND TYPES
20 C> ------ --------- -----------------------------------------------
21 C> VLN ARG LIST 992 COMPLEX COEFF.
22 C> PLN ARG LIST (32,31,37) REAL SPACE WITH LEGENDRE POLYNOMIALS
23 C> COMPUTED BY W3FA12.
24 C> FL ARG LIST 31 COMPLEX SPACE FOR FOURIER COEFF.
25 C> WORK ARG LIST 144 WORK SPACE FOR SUBR. W3FT12
26 C> TRIGS ARG LIST 216 PRECOMPUTED TRIG FUNCS. USED
27 C> IN W3FT12, COMPUTED BY W3FA13
28 C> RCOS ARG LIST 37 RECIPROCAL COSINE LATITUDES OF
29 C> 2.5 X 2.5 GRID MUST BE COMPUTED BEFORE
30 C> FIRST CALL TO W3FT11 USING SR W3FA13.
31 C>
32 C> OUTPUT VARIABLES:
33 C> NAMES INTERFACE DESCRIPTION OF VARIABLES AND TYPES
34 C> ------ --------- -----------------------------------------------
35 C> GN ARG LIST (145,37) GRID VALUES.
36 C> 5365 POINT GRID IS TYPE 29 OR 1D O.N. 84
37 C>
38 C> SUBPROGRAMS CALLED:
39 C> NAMES LIBRARY
40 C> ------------------------------------------------------- --------
41 C> AIMAG CMPLX REAL SYSTEM
42 C> W3FT12 W3LIB
43 C>
44 C> WARNING: W3FT09 WAS OPTIMIZED TO RUN IN A SMALL AMOUNT OF
45 C> MEMORY, IT WAS NOT OPTIMIZED FOR SPEED, 70 PERCENT OF THE TIME WAS
46 C> USED BY SUBROUTINE W3FA12 COMPUTING THE LEGENDRE POLYNOMIALS. SINCE
47 C> THE LEGENDRE POLYNOMIALS ARE CONSTANT THEY NEED TO BE COMPUTED
48 C> ONLY ONCE IN A PROGRAM. BY MOVING W3FA12 TO THE MAIN PROGRAM AND
49 C> COMPUTING PLN AS A (32,31,37) ARRAY AND CHANGING THIS SUBROUTINE
50 C> TO USE PLN AS A THREE DIMENSION ARRAY THE RUNNING TIME WAS CUT
51 C> 70 PERCENT. ADD FOLLOWING CODE TO MAIN PROGRAM TO COMPUTE EPS, PLN,
52 C> TRIGS, AND RCOS ONE TIME IN PROGRAM.
53 C>
54 C> DOUBLE PRECISION EPS(992)
55 C> DOUBLE PRECISION COLRA
56 C>
57 C> REAL PLN( 32, 31, 37 )
58 C> REAL RCOS(37)
59 C> REAL TRIGS(216)
60 C>
61 C> DATA PI /3.14159265/
62 C>
63 C> DRAD = 2.5 * PI / 180.0
64 C> CALL W3FA11(EPS,30)
65 C> CALL W3FA13(TRIGS,RCOS)
66 C> DO LAT = 1,37
67 C> COLRA = (LAT - 1) * DRAD
68 C> CALL W3FA12 (PLN(1,1,LAT), COLRA, 30, EPS)
69 C> END DO
70 C>
71 C> ATTRIBUTES:
72 C> LANGUAGE: CRAY CFT77 FORTRAN
73 C> MACHINE: CRAY Y-MP8/864, CRAY Y-MP EL2/128
74 C>
75  SUBROUTINE w3ft39(VLN,GN,PLN,FL,WORK,TRIGS,RCOS)
76 C
77  COMPLEX FL( 31 )
78  COMPLEX VLN( 32 , 31 )
79 C
80  REAL GN(145,37)
81  REAL PLN( 32, 31, 37 )
82  REAL RCOS(37)
83  REAL TRIGS(216)
84  REAL WORK(144)
85 C
86  SAVE
87 C
88  DO 400 lat = 2,37
89  latn = 38 - lat
90 C
91  DO 100 l = 1, 31
92  fl(l) = (0.,0.)
93  100 CONTINUE
94 C
95  DO 300 l = 1, 31
96 C
97  DO 200 i = 1, 32
98  fl(l) = fl(l) + cmplx(pln(i,l,lat) * real(vln(i,l)),
99  & pln(i,l,lat) * aimag(vln(i,l)) )
100  200 CONTINUE
101 C
102  fl(l)=cmplx(real(fl(l))*rcos(lat),aimag(fl(l))*rcos(lat))
103  300 CONTINUE
104 C
105  CALL w3ft12(fl,work,gn(1,latn),trigs)
106 C
107  400 CONTINUE
108 C
109 C*** POLE ROW=CLOSEST LATITUDE ROW
110 C
111  DO 500 i = 1,145
112  gn(i,37) = gn(i,36)
113  500 CONTINUE
114 C
115  RETURN
116  END
w3ft12
subroutine w3ft12(COEF, WORK, GRID, TRIGS)
Fast fourier to compute 145 grid values at desired latitude from 31 complex fourier coefficients.
Definition: w3ft12.f:25
w3ft39
subroutine w3ft39(VLN, GN, PLN, FL, WORK, TRIGS, RCOS)
SUBPROGRAM: W3FT39 COMPUTES 2.5X2.5 N.
Definition: w3ft39.f:76