1 subroutine r8tx(nxtlt, nthpo, lengt, cr0, cr1, cr2, cr3, cr4, 2 & cr5, cr6, cr7, ci0, ci1, ci2, ci3, ci4, ci5, ci6, ci7) 3c! 4c subroutine: r8tx 5c sous-programme d'iteration en base 8 6c! 7 double precision cr0(*), cr1(*), cr2(*), cr3(*), cr4(*), 8 & cr5(*), cr6(*), cr7(*), ci1(*), ci2(*), ci3(*), ci4(*), 9 & ci5(*), ci6(*), ci7(*), ci0(*) 10 double precision arg,c1,s1,c2,s2,c3,s3,c4,s4,c5,s5,c6,s6,c7,s7, 11 & ar0,ar1,ar2,ar3,ar4,ar5,ar6,ar7,ai0,ai1,ai2,ai3,ai4, 12 & ai5,ai6,ai7,br0,br1,br2,br3,br4,br5,br6,br7,bi0,bi1, 13 & bi2,bi3,bi4,bi5,bi6,bi7,tr,ti,scale,pi2,p7 14c 15 pi2=8.0d+0*atan(1.0d+0) 16 p7=1.0d+0/sqrt(2.0d+0) 17 scale=pi2/dble(lengt) 18 do 30 j=1,nxtlt 19 arg=dble(j-1)*scale 20 c1=cos(arg) 21 s1=sin(arg) 22 c2=c1**2-s1**2 23 s2=c1*s1+c1*s1 24 c3=c1*c2-s1*s2 25 s3=c2*s1+s2*c1 26 c4=c2**2-s2**2 27 s4=c2*s2+c2*s2 28 c5=c2*c3-s2*s3 29 s5=c3*s2+s3*c2 30 c6=c3**2-s3**2 31 s6=c3*s3+c3*s3 32 c7=c3*c4-s3*s4 33 s7=c4*s3+s4*c3 34 do 20 k=j,nthpo,lengt 35 ar0=cr0(k)+cr4(k) 36 ar1=cr1(k)+cr5(k) 37 ar2=cr2(k)+cr6(k) 38 ar3=cr3(k)+cr7(k) 39 ar4=cr0(k)-cr4(k) 40 ar5=cr1(k)-cr5(k) 41 ar6=cr2(k)-cr6(k) 42 ar7=cr3(k)-cr7(k) 43 ai0=ci0(k)+ci4(k) 44 ai1=ci1(k)+ci5(k) 45 ai2=ci2(k)+ci6(k) 46 ai3=ci3(k)+ci7(k) 47 ai4=ci0(k)-ci4(k) 48 ai5=ci1(k)-ci5(k) 49 ai6=ci2(k)-ci6(k) 50 ai7=ci3(k)-ci7(k) 51 br0=ar0+ar2 52 br1=ar1+ar3 53 br2=ar0-ar2 54 br3=ar1-ar3 55 br4=ar4-ai6 56 br5=ar5-ai7 57 br6=ar4+ai6 58 br7=ar5+ai7 59 bi0=ai0+ai2 60 bi1=ai1+ai3 61 bi2=ai0-ai2 62 bi3=ai1-ai3 63 bi4=ai4+ar6 64 bi5=ai5+ar7 65 bi6=ai4-ar6 66 bi7=ai5-ar7 67 cr0(k)=br0+br1 68 ci0(k)=bi0+bi1 69 if(j.le.1)goto 10 70 cr1(k)=c4*(br0-br1)-s4*(bi0-bi1) 71 ci1(k)=c4*(bi0-bi1)+s4*(br0-br1) 72 cr2(k)=c2*(br2-bi3)-s2*(bi2+br3) 73 ci2(k)=c2*(bi2+br3)+s2*(br2-bi3) 74 cr3(k)=c6*(br2+bi3)-s6*(bi2-br3) 75 ci3(k)=c6*(bi2-br3)+s6*(br2+bi3) 76 tr=p7*(br5-bi5) 77 ti=p7*(br5+bi5) 78 cr4(k)=c1*(br4+tr)-s1*(bi4+ti) 79 ci4(k)=c1*(bi4+ti)+s1*(br4+tr) 80 cr5(k)=c5*(br4-tr)-s5*(bi4-ti) 81 ci5(k)=c5*(bi4-ti)+s5*(br4-tr) 82 tr=-p7*(br7+bi7) 83 ti=p7*(br7-bi7) 84 cr6(k)=c3*(br6+tr)-s3*(bi6+ti) 85 ci6(k)=c3*(bi6+ti)+s3*(br6+tr) 86 cr7(k)=c7*(br6-tr)-s7*(bi6-ti) 87 ci7(k)=c7*(bi6-ti)+s7*(br6-tr) 88 goto 20 8910 cr1(k)=br0-br1 90 ci1(k)=bi0-bi1 91 cr2(k)=br2-bi3 92 ci2(k)=bi2+br3 93 cr3(k)=br2+bi3 94 ci3(k)=bi2-br3 95 tr=p7*(br5-bi5) 96 ti=p7*(br5+bi5) 97 cr4(k)=br4+tr 98 ci4(k)=bi4+ti 99 cr5(k)=br4-tr 100 ci5(k)=bi4-ti 101 tr=-p7*(br7+bi7) 102 ti=p7*(br7-bi7) 103 cr6(k)=br6+tr 104 ci6(k)=bi6+ti 105 cr7(k)=br6-tr 106 ci7(k)=bi6-ti 10720 continue 10830 continue 109 return 110 end 111