00001 subroutine passb3 (ido,l1,cc,ch,wa1,wa2) 00002 dimension cc(ido,3,l1) ,ch(ido,l1,3) , 00003 1 wa1(1) ,wa2(1) 00004 data taur,taui /-.5,.866025403784439/ 00005 if (ido .ne. 2) go to 102 00006 do 101 k=1,l1 00007 tr2 = cc(1,2,k)+cc(1,3,k) 00008 cr2 = cc(1,1,k)+taur*tr2 00009 ch(1,k,1) = cc(1,1,k)+tr2 00010 ti2 = cc(2,2,k)+cc(2,3,k) 00011 ci2 = cc(2,1,k)+taur*ti2 00012 ch(2,k,1) = cc(2,1,k)+ti2 00013 cr3 = taui*(cc(1,2,k)-cc(1,3,k)) 00014 ci3 = taui*(cc(2,2,k)-cc(2,3,k)) 00015 ch(1,k,2) = cr2-ci3 00016 ch(1,k,3) = cr2+ci3 00017 ch(2,k,2) = ci2+cr3 00018 ch(2,k,3) = ci2-cr3 00019 101 continue 00020 return 00021 102 do 104 k=1,l1 00022 do 103 i=2,ido,2 00023 tr2 = cc(i-1,2,k)+cc(i-1,3,k) 00024 cr2 = cc(i-1,1,k)+taur*tr2 00025 ch(i-1,k,1) = cc(i-1,1,k)+tr2 00026 ti2 = cc(i,2,k)+cc(i,3,k) 00027 ci2 = cc(i,1,k)+taur*ti2 00028 ch(i,k,1) = cc(i,1,k)+ti2 00029 cr3 = taui*(cc(i-1,2,k)-cc(i-1,3,k)) 00030 ci3 = taui*(cc(i,2,k)-cc(i,3,k)) 00031 dr2 = cr2-ci3 00032 dr3 = cr2+ci3 00033 di2 = ci2+cr3 00034 di3 = ci2-cr3 00035 ch(i,k,2) = wa1(i-1)*di2+wa1(i)*dr2 00036 ch(i-1,k,2) = wa1(i-1)*dr2-wa1(i)*di2 00037 ch(i,k,3) = wa2(i-1)*di3+wa2(i)*dr3 00038 ch(i-1,k,3) = wa2(i-1)*dr3-wa2(i)*di3 00039 103 continue 00040 104 continue 00041 return 00042 end