Merge branch 'master' into devel
[wrffire.git] / wrfv2_fire / external / fftpack / fftpack5 / cost1i.F
blob0bc0971e3f409e8d1495cea2cff1c7d307891545
1 !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
2 !                                                                       
3 !   FFTPACK 5.0                                                         
4 !                                                                       
5 !   Authors:  Paul N. Swarztrauber and Richard A. Valent                
6 !                                                                       
7 !   $Id: cost1i.f,v 1.2 2004/06/15 21:14:57 rodney Exp $                
8 !                                                                       
9 !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
10                                                                         
11       SUBROUTINE COST1I (N, WSAVE, LENSAV, IER) 
12       INTEGER    N, LENSAV, IER 
13       REAL       WSAVE(LENSAV) 
14 !                                                                       
15       IER = 0 
16 !                                                                       
17       IF (LENSAV .LT. 2*N + INT(LOG(REAL(N))) +4) THEN 
18         IER = 2 
19         CALL XERFFT ('COST1I', 3) 
20         GO TO 300 
21       ENDIF 
22 !                                                                       
23       IF (N .LE. 3) RETURN 
24       NM1 = N-1 
25       NP1 = N+1 
26       NS2 = N/2 
27       PI = 4.*ATAN(1.) 
28       DT = PI/FLOAT(NM1) 
29       FK = 0. 
30       DO 101 K=2,NS2 
31          KC = NP1-K 
32          FK = FK+1. 
33          WSAVE(K) = 2.*SIN(FK*DT) 
34          WSAVE(KC) = 2.*COS(FK*DT) 
35   101 END DO 
36       LNSV = NM1 + INT(LOG(REAL(NM1))) +4 
37       CALL RFFT1I (NM1, WSAVE(N+1), LNSV, IER1) 
38       IF (IER1 .NE. 0) THEN 
39         IER = 20 
40         CALL XERFFT ('COST1I',-5) 
41       ENDIF 
42   300 CONTINUE 
43       RETURN 
44       END