1 SUBROUTINE PASSB5(IDO,L1,CC,CH,WA1,WA2,WA3,WA4) 2C***BEGIN PROLOGUE PASSB5 3C***REFER TO CFFTB 4C***ROUTINES CALLED (NONE) 5C***REVISION HISTORY (YYMMDD) 6C 000330 Modified array declarations. (JEC) 7C 8C***END PROLOGUE PASSB5 9 DIMENSION CC(IDO,5,L1) ,CH(IDO,L1,5) , 10 1 WA1(*) ,WA2(*) ,WA3(*) ,WA4(*) 11 DATA TR11,TI11,TR12,TI12 /.309016994374947,.951056516295154, 12 1-.809016994374947,.587785252292473/ 13C***FIRST EXECUTABLE STATEMENT PASSB5 14 IF (IDO .NE. 2) GO TO 102 15 DO 101 K=1,L1 16 TI5 = CC(2,2,K)-CC(2,5,K) 17 TI2 = CC(2,2,K)+CC(2,5,K) 18 TI4 = CC(2,3,K)-CC(2,4,K) 19 TI3 = CC(2,3,K)+CC(2,4,K) 20 TR5 = CC(1,2,K)-CC(1,5,K) 21 TR2 = CC(1,2,K)+CC(1,5,K) 22 TR4 = CC(1,3,K)-CC(1,4,K) 23 TR3 = CC(1,3,K)+CC(1,4,K) 24 CH(1,K,1) = CC(1,1,K)+TR2+TR3 25 CH(2,K,1) = CC(2,1,K)+TI2+TI3 26 CR2 = CC(1,1,K)+TR11*TR2+TR12*TR3 27 CI2 = CC(2,1,K)+TR11*TI2+TR12*TI3 28 CR3 = CC(1,1,K)+TR12*TR2+TR11*TR3 29 CI3 = CC(2,1,K)+TR12*TI2+TR11*TI3 30 CR5 = TI11*TR5+TI12*TR4 31 CI5 = TI11*TI5+TI12*TI4 32 CR4 = TI12*TR5-TI11*TR4 33 CI4 = TI12*TI5-TI11*TI4 34 CH(1,K,2) = CR2-CI5 35 CH(1,K,5) = CR2+CI5 36 CH(2,K,2) = CI2+CR5 37 CH(2,K,3) = CI3+CR4 38 CH(1,K,3) = CR3-CI4 39 CH(1,K,4) = CR3+CI4 40 CH(2,K,4) = CI3-CR4 41 CH(2,K,5) = CI2-CR5 42 101 CONTINUE 43 RETURN 44 102 IF(IDO/2.LT.L1) GO TO 105 45 DO 104 K=1,L1 46CDIR$ IVDEP 47 DO 103 I=2,IDO,2 48 TI5 = CC(I,2,K)-CC(I,5,K) 49 TI2 = CC(I,2,K)+CC(I,5,K) 50 TI4 = CC(I,3,K)-CC(I,4,K) 51 TI3 = CC(I,3,K)+CC(I,4,K) 52 TR5 = CC(I-1,2,K)-CC(I-1,5,K) 53 TR2 = CC(I-1,2,K)+CC(I-1,5,K) 54 TR4 = CC(I-1,3,K)-CC(I-1,4,K) 55 TR3 = CC(I-1,3,K)+CC(I-1,4,K) 56 CH(I-1,K,1) = CC(I-1,1,K)+TR2+TR3 57 CH(I,K,1) = CC(I,1,K)+TI2+TI3 58 CR2 = CC(I-1,1,K)+TR11*TR2+TR12*TR3 59 CI2 = CC(I,1,K)+TR11*TI2+TR12*TI3 60 CR3 = CC(I-1,1,K)+TR12*TR2+TR11*TR3 61 CI3 = CC(I,1,K)+TR12*TI2+TR11*TI3 62 CR5 = TI11*TR5+TI12*TR4 63 CI5 = TI11*TI5+TI12*TI4 64 CR4 = TI12*TR5-TI11*TR4 65 CI4 = TI12*TI5-TI11*TI4 66 DR3 = CR3-CI4 67 DR4 = CR3+CI4 68 DI3 = CI3+CR4 69 DI4 = CI3-CR4 70 DR5 = CR2+CI5 71 DR2 = CR2-CI5 72 DI5 = CI2-CR5 73 DI2 = CI2+CR5 74 CH(I-1,K,2) = WA1(I-1)*DR2-WA1(I)*DI2 75 CH(I,K,2) = WA1(I-1)*DI2+WA1(I)*DR2 76 CH(I-1,K,3) = WA2(I-1)*DR3-WA2(I)*DI3 77 CH(I,K,3) = WA2(I-1)*DI3+WA2(I)*DR3 78 CH(I-1,K,4) = WA3(I-1)*DR4-WA3(I)*DI4 79 CH(I,K,4) = WA3(I-1)*DI4+WA3(I)*DR4 80 CH(I-1,K,5) = WA4(I-1)*DR5-WA4(I)*DI5 81 CH(I,K,5) = WA4(I-1)*DI5+WA4(I)*DR5 82 103 CONTINUE 83 104 CONTINUE 84 RETURN 85 105 DO 107 I=2,IDO,2 86CDIR$ IVDEP 87 DO 106 K=1,L1 88 TI5 = CC(I,2,K)-CC(I,5,K) 89 TI2 = CC(I,2,K)+CC(I,5,K) 90 TI4 = CC(I,3,K)-CC(I,4,K) 91 TI3 = CC(I,3,K)+CC(I,4,K) 92 TR5 = CC(I-1,2,K)-CC(I-1,5,K) 93 TR2 = CC(I-1,2,K)+CC(I-1,5,K) 94 TR4 = CC(I-1,3,K)-CC(I-1,4,K) 95 TR3 = CC(I-1,3,K)+CC(I-1,4,K) 96 CH(I-1,K,1) = CC(I-1,1,K)+TR2+TR3 97 CH(I,K,1) = CC(I,1,K)+TI2+TI3 98 CR2 = CC(I-1,1,K)+TR11*TR2+TR12*TR3 99 CI2 = CC(I,1,K)+TR11*TI2+TR12*TI3 100 CR3 = CC(I-1,1,K)+TR12*TR2+TR11*TR3 101 CI3 = CC(I,1,K)+TR12*TI2+TR11*TI3 102 CR5 = TI11*TR5+TI12*TR4 103 CI5 = TI11*TI5+TI12*TI4 104 CR4 = TI12*TR5-TI11*TR4 105 CI4 = TI12*TI5-TI11*TI4 106 DR3 = CR3-CI4 107 DR4 = CR3+CI4 108 DI3 = CI3+CR4 109 DI4 = CI3-CR4 110 DR5 = CR2+CI5 111 DR2 = CR2-CI5 112 DI5 = CI2-CR5 113 DI2 = CI2+CR5 114 CH(I-1,K,2) = WA1(I-1)*DR2-WA1(I)*DI2 115 CH(I,K,2) = WA1(I-1)*DI2+WA1(I)*DR2 116 CH(I-1,K,3) = WA2(I-1)*DR3-WA2(I)*DI3 117 CH(I,K,3) = WA2(I-1)*DI3+WA2(I)*DR3 118 CH(I-1,K,4) = WA3(I-1)*DR4-WA3(I)*DI4 119 CH(I,K,4) = WA3(I-1)*DI4+WA3(I)*DR4 120 CH(I-1,K,5) = WA4(I-1)*DR5-WA4(I)*DI5 121 CH(I,K,5) = WA4(I-1)*DI5+WA4(I)*DR5 122 106 CONTINUE 123 107 CONTINUE 124 RETURN 125 END 126