NCEPLIBS-w3emc  2.9.2
w3ft38.f
Go to the documentation of this file.
1 C> @file
2 C
3 C> SUBPROGRAM: W3FT38 COMPUTES 2.5 X 2.5 N. HEMI. GRID-SCALER
4 C> AUTHOR: R.E.JONES ORG: W323 DATE: 93-07-23
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 SCALER FIELD.
9 C>
10 C> PROGRAM HISTORY LOG:
11 C> 93-07-23 R.E.JONES NEW VERSION OF W3FT08, 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 W3FT38(FLN,GN,PLN,FL,WORK,TRIGS)
17 C>
18 C> INPUT VARIABLES:
19 C> NAMES INTERFACE DESCRIPTION OF VARIABLES AND TYPES
20 C> ------ --------- -----------------------------------------------
21 C> FLN ARG LIST 961 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 REAL WORK SPACE FOR SUBR. W3FT12
26 C> TRIGS ARG LIST 216 PRECOMPUTED TRIG FUNCS. USED
27 C> IN W3FT12, COMPUTED BY W3FA13
28 C>
29 C> OUTPUT VARIABLES:
30 C> NAMES INTERFACE DESCRIPTION OF VARIABLES AND TYPES
31 C> ------ --------- -----------------------------------------------
32 C> GN ARG LIST (145,37) GRID VALUES.
33 C> 5365 POINT GRID IS TYPE 29 OR 1D HEX O.N. 84
34 C>
35 C> SUBPROGRAMS CALLED:
36 C> NAMES LIBRARY
37 C> ------------------------------------------------------- --------
38 C> AIMAG CMPLX REAL SYSTEM
39 C> W3FT12 W3LIB
40 C>
41 C> WARNING: W3FT08 WAS OPTIMIZED TO RUN IN A SMALL AMOUNT OF
42 C> MEMORY, IT WAS NOT OPTIMIZED FOR SPEED, 70 PERCENT OF THE TIME WAS
43 C> USED BY SUBROUTINE W3FA12 COMPUTING THE LEGENDRE POLYNOMIALS. SINCE
44 C> THE LEGENDRE POLYNOMIALS ARE CONSTANT THEY NEED TO BE COMPUTED
45 C> ONLY ONCE IN A PROGRAM. BY MOVING W3FA12 TO THE MAIN PROGRAM AND
46 C> COMPUTING PLN AS A (32,31,37) ARRAY AND CHANGING THIS SUBROUTINE
47 C> TO USE PLN AS A THREE DIMENSION ARRAY THE RUNNING TIME WAS CUT
48 C> 70 PERCENT. ADD FOLLOWING CODE TO MAIN PROGRAM TO COMPUTE EPS, PLN,
49 C> TRIGS, AND RCOS ONE TIME IN PROGRAM.
50 C>
51 C> DOUBLE PRECISION EPS(992) (REAL ON CRAY)
52 C> DOUBLE PRECISION COLRA (REAL ON CRAY)
53 C>
54 C> REAL PLN( 32, 31, 37 )
55 C> REAL RCOS(37)
56 C> REAL TRIGS(216)
57 C>
58 C> DATA PI /3.14159265/
59 C>
60 C> DRAD = 2.5 * PI / 180.0
61 C> CALL W3FA11(EPS,30)
62 C> CALL W3FA13(TRIGS,RCOS)
63 C> DO LAT = 1,37
64 C> COLRA = (LAT - 1) * DRAD
65 C> CALL W3FA12 (PLN(1,1,LAT), COLRA, 30, EPS)
66 C> END DO
67 C>
68 C> ATTRIBUTES:
69 C> LANGUAGE: CRAY CFT77 FORTRAN
70 C> MACHINE: CRAY Y-MP8/864, CRAY Y-MP EL2/128
71 C>
72  SUBROUTINE w3ft38(FLN,GN,PLN,FL,WORK,TRIGS)
73 C
74  COMPLEX FL( 31 )
75  COMPLEX FLN( 31 , 31 )
76 C
77  REAL GN(145,37)
78  REAL PLN( 32, 31, 37 )
79  REAL TRIGS(216)
80  REAL WORK(144)
81 C
82  SAVE
83 C
84  DO 400 lat = 1,37
85  latn = 38 - lat
86 C
87  DO 100 l = 1, 31
88  fl(l) = (0.,0.)
89  100 CONTINUE
90 C
91  DO 300 l = 1, 31
92  DO 200 i = 1, 31
93  fl(l) = fl(l) + cmplx(pln(i,l,lat) * real(fln(i,l)) ,
94  & pln(i,l,lat) * aimag(fln(i,l)) )
95  200 CONTINUE
96 C
97  300 CONTINUE
98 C
99  CALL w3ft12(fl,work,gn(1,latn),trigs)
100 C
101  400 CONTINUE
102 C
103  RETURN
104  END
w3ft38
subroutine w3ft38(FLN, GN, PLN, FL, WORK, TRIGS)
SUBPROGRAM: W3FT38 COMPUTES 2.5 X 2.5 N.
Definition: w3ft38.f:73
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