1C Copyright 1981-2016 ECMWF. 2C 3C This software is licensed under the terms of the Apache Licence 4C Version 2.0 which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 5C 6C In applying this licence, ECMWF does not waive the privileges and immunities 7C granted to it by virtue of its status as an intergovernmental organisation 8C nor does it submit to any jurisdiction. 9C 10 11 SUBROUTINE SET99(TRIGS,IFAX,N) 12 DIMENSION TRIGS(N),IFAX(10),JFAX(10),LFAX(7) 13C----> 14C 15C SUBROUTINE 'SET99' - COMPUTES FACTORS OF N & TRIGONOMETRIC 16C FUNCTIONS REQUIRED BY FFT99 & FFT991 17C 18C----< 19#include "jparams.h" 20C 21 DATA LFAX/6,8,5,4,3,2,1/ 22 IXXX=1 23C 24 DEL= (2.0*PPI)/FLOAT(N) 25 NIL=0 26 NHL=(N/2)-1 27 DO 10 K=NIL,NHL 28 ANGLE=FLOAT(K)*DEL 29 TRIGS(2*K+1)=COS(ANGLE) 30 TRIGS(2*K+2)=SIN(ANGLE) 31 10 CONTINUE 32C 33C FIND FACTORS OF N (8,6,5,4,3,2; ONLY ONE 8 ALLOWED) 34C LOOK FOR SIXES FIRST, STORE FACTORS IN DESCENDING ORDER 35 NU=N 36 IFAC=6 37 K=0 38 L=1 39 20 CONTINUE 40 IF (MOD(NU,IFAC).NE.0) GO TO 30 41 K=K+1 42 JFAX(K)=IFAC 43 IF (IFAC.NE.8) GO TO 25 44 IF (K.EQ.1) GO TO 25 45 JFAX(1)=8 46 JFAX(K)=6 47 25 CONTINUE 48 NU=NU/IFAC 49 IF (NU.EQ.1) GO TO 50 50 IF (IFAC.NE.8) GO TO 20 51 30 CONTINUE 52 L=L+1 53 IFAC=LFAX(L) 54 IF (IFAC.GT.1) GO TO 20 55C 56 WRITE(6,40) N 57 40 FORMAT(4H1N =,I4,27H - CONTAINS ILLEGAL FACTORS) 58 RETURN 59C 60C NOW REVERSE ORDER OF FACTORS 61 50 CONTINUE 62 NFAX=K 63 IFAX(1)=NFAX 64 DO 60 I=1,NFAX 65 IFAX(NFAX+2-I)=JFAX(I) 66 60 CONTINUE 67 IFAX(10)=N 68 RETURN 69 END 70