📄 fftstp.f90
字号:
zout(2,j,nout4) = r + s4101 continue do 4100,ia=2,after ias=ia-1 if (2*ias.eq.after) then nin1=ia-after nout1=ia-atn do 4110,ib=1,before nin1=nin1+after nin2=nin1+atb nin3=nin2+atb nin4=nin3+atb nout1=nout1+atn nout2=nout1+after nout3=nout2+after nout4=nout3+after do 4110,j=1,n1dfft r1=zin(1,j,nin1) s1=zin(2,j,nin1) r=zin(1,j,nin2) s=zin(2,j,nin2) r2=(r + s)*rt2i s2=(s - r)*rt2i r3=zin(2,j,nin3) s3=zin(1,j,nin3) r=zin(1,j,nin4) s=zin(2,j,nin4) r4=(s - r)*rt2i s4=(r + s)*rt2i r=r1 + r3 s=r2 + r4 zout(1,j,nout1) = r + s zout(1,j,nout3) = r - s r=r1 - r3 s=s2 + s4 zout(1,j,nout2) = r + s zout(1,j,nout4) = r - s r=s1 - s3 s=s2 - s4 zout(2,j,nout1) = r + s zout(2,j,nout3) = r - s r=s1 + s3 s=r2 - r4 zout(2,j,nout2) = r - s zout(2,j,nout4) = r + s4110 continue else itt=ias*before itrig=itt+1 cr2=trig(1,itrig) ci2=trig(2,itrig) itrig=itrig+itt cr3=trig(1,itrig) ci3=trig(2,itrig) itrig=itrig+itt cr4=trig(1,itrig) ci4=trig(2,itrig) nin1=ia-after nout1=ia-atn do 4120,ib=1,before nin1=nin1+after nin2=nin1+atb nin3=nin2+atb nin4=nin3+atb nout1=nout1+atn nout2=nout1+after nout3=nout2+after nout4=nout3+after do 4120,j=1,n1dfft r1=zin(1,j,nin1) s1=zin(2,j,nin1) r=zin(1,j,nin2) s=zin(2,j,nin2) r2=r*cr2 - s*ci2 s2=r*ci2 + s*cr2 r=zin(1,j,nin3) s=zin(2,j,nin3) r3=r*cr3 - s*ci3 s3=r*ci3 + s*cr3 r=zin(1,j,nin4) s=zin(2,j,nin4) r4=r*cr4 - s*ci4 s4=r*ci4 + s*cr4 r=r1 + r3 s=r2 + r4 zout(1,j,nout1) = r + s zout(1,j,nout3) = r - s r=r1 - r3 s=s2 - s4 zout(1,j,nout2) = r + s zout(1,j,nout4) = r - s r=s1 + s3 s=s2 + s4 zout(2,j,nout1) = r + s zout(2,j,nout3) = r - s r=s1 - s3 s=r2 - r4 zout(2,j,nout2) = r - s zout(2,j,nout4) = r + s4120 continue endif4100 continue endif else if (now.eq.8) then if (isign.eq.-1) then ia=1 nin1=ia-after nout1=ia-atn do 8120,ib=1,before nin1=nin1+after nin2=nin1+atb nin3=nin2+atb nin4=nin3+atb nin5=nin4+atb nin6=nin5+atb nin7=nin6+atb nin8=nin7+atb nout1=nout1+atn nout2=nout1+after nout3=nout2+after nout4=nout3+after nout5=nout4+after nout6=nout5+after nout7=nout6+after nout8=nout7+after do 8120,j=1,n1dfft r1=zin(1,j,nin1) s1=zin(2,j,nin1) r2=zin(1,j,nin2) s2=zin(2,j,nin2) r3=zin(1,j,nin3) s3=zin(2,j,nin3) r4=zin(1,j,nin4) s4=zin(2,j,nin4) r5=zin(1,j,nin5) s5=zin(2,j,nin5) r6=zin(1,j,nin6) s6=zin(2,j,nin6) r7=zin(1,j,nin7) s7=zin(2,j,nin7) r8=zin(1,j,nin8) s8=zin(2,j,nin8) r=r1 + r5 s=r3 + r7 ap=r + s am=r - s r=r2 + r6 s=r4 + r8 bp=r + s bm=r - s r=s1 + s5 s=s3 + s7 cp=r + s cm=r - s r=s2 + s6 s=s4 + s8 dp=r + s dm=r - s zout(1,j,nout1) = ap + bp zout(2,j,nout1) = cp + dp zout(1,j,nout5) = ap - bp zout(2,j,nout5) = cp - dp zout(1,j,nout3) = am + dm zout(2,j,nout3) = cm - bm zout(1,j,nout7) = am - dm zout(2,j,nout7) = cm + bm r=r1 - r5 s=s3 - s7 ap=r + s am=r - s r=s1 - s5 s=r3 - r7 bp=r + s bm=r - s r=s4 - s8 s=r2 - r6 cp=r + s cm=r - s r=s2 - s6 s=r4 - r8 dp=r + s dm=r - s r = ( cp + dm)*rt2i s = ( dm - cp)*rt2i cp= ( cm + dp)*rt2i dp = ( cm - dp)*rt2i zout(1,j,nout2) = ap + r zout(2,j,nout2) = bm + s zout(1,j,nout6) = ap - r zout(2,j,nout6) = bm - s zout(1,j,nout4) = am + cp zout(2,j,nout4) = bp + dp zout(1,j,nout8) = am - cp zout(2,j,nout8) = bp - dp8120 continue do 8000,ia=2,after ias=ia-1 itt=ias*before itrig=itt+1 cr2=trig(1,itrig) ci2=trig(2,itrig) itrig=itrig+itt cr3=trig(1,itrig) ci3=trig(2,itrig) itrig=itrig+itt cr4=trig(1,itrig) ci4=trig(2,itrig) itrig=itrig+itt cr5=trig(1,itrig) ci5=trig(2,itrig) itrig=itrig+itt cr6=trig(1,itrig) ci6=trig(2,itrig) itrig=itrig+itt cr7=trig(1,itrig) ci7=trig(2,itrig) itrig=itrig+itt cr8=trig(1,itrig) ci8=trig(2,itrig) nin1=ia-after nout1=ia-atn do 8020,ib=1,before nin1=nin1+after nin2=nin1+atb nin3=nin2+atb nin4=nin3+atb nin5=nin4+atb nin6=nin5+atb nin7=nin6+atb nin8=nin7+atb nout1=nout1+atn nout2=nout1+after nout3=nout2+after nout4=nout3+after nout5=nout4+after nout6=nout5+after nout7=nout6+after nout8=nout7+after do 8020,j=1,n1dfft r1=zin(1,j,nin1) s1=zin(2,j,nin1) r=zin(1,j,nin2) s=zin(2,j,nin2) r2=r*cr2 - s*ci2 s2=r*ci2 + s*cr2 r=zin(1,j,nin3) s=zin(2,j,nin3) r3=r*cr3 - s*ci3 s3=r*ci3 + s*cr3 r=zin(1,j,nin4) s=zin(2,j,nin4) r4=r*cr4 - s*ci4 s4=r*ci4 + s*cr4 r=zin(1,j,nin5) s=zin(2,j,nin5) r5=r*cr5 - s*ci5 s5=r*ci5 + s*cr5 r=zin(1,j,nin6) s=zin(2,j,nin6) r6=r*cr6 - s*ci6 s6=r*ci6 + s*cr6 r=zin(1,j,nin7) s=zin(2,j,nin7) r7=r*cr7 - s*ci7 s7=r*ci7 + s*cr7 r=zin(1,j,nin8) s=zin(2,j,nin8) r8=r*cr8 - s*ci8 s8=r*ci8 + s*cr8 r=r1 + r5 s=r3 + r7 ap=r + s am=r - s r=r2 + r6 s=r4 + r8 bp=r + s bm=r - s r=s1 + s5 s=s3 + s7 cp=r + s cm=r - s r=s2 + s6 s=s4 + s8 dp=r + s dm=r - s zout(1,j,nout1) = ap + bp zout(2,j,nout1) = cp + dp zout(1,j,nout5) = ap - bp zout(2,j,nout5) = cp - dp zout(1,j,nout3) = am + dm zout(2,j,nout3) = cm - bm zout(1,j,nout7) = am - dm zout(2,j,nout7) = cm + bm r=r1 - r5 s=s3 - s7 ap=r + s am=r - s r=s1 - s5 s=r3 - r7 bp=r + s bm=r - s r=s4 - s8 s=r2 - r6 cp=r + s cm=r - s r=s2 - s6 s=r4 - r8 dp=r + s dm=r - s r = ( cp + dm)*rt2i s = ( dm - cp)*rt2i cp= ( cm + dp)*rt2i dp = ( cm - dp)*rt2i zout(1,j,nout2) = ap + r zout(2,j,nout2) = bm + s zout(1,j,nout6) = ap - r zout(2,j,nout6) = bm - s zout(1,j,nout4) = am + cp zout(2,j,nout4) = bp + dp zout(1,j,nout8) = am - cp zout(2,j,nout8) = bp - dp8020 continue8000 continue else ia=1 nin1=ia-after nout1=ia-atn do 8121,ib=1,before nin1=nin1+after nin2=nin1+atb nin3=nin2+atb nin4=nin3+atb nin5=nin4+atb nin6=nin5+atb nin7=nin6+atb nin8=nin7+atb nout1=nout1+atn nout2=nout1+after nout3=nout2+after nout4=nout3+after nout5=nout4+after nout6=nout5+after nout7=nout6+after nout8=nout7+after do 8121,j=1,n1dfft r1=zin(1,j,nin1) s1=zin(2,j,nin1) r2=zin(1,j,nin2) s2=zin(2,j,nin2) r3=zin(1,j,nin3) s3=zin(2,j,nin3) r4=zin(1,j,nin4) s4=zin(2,j,nin4) r5=zin(1,j,nin5) s5=zin(2,j,nin5) r6=zin(1,j,nin6) s6=zin(2,j,nin6) r7=zin(1,j,nin7) s7=zin(2,j,nin7) r8=zin(1,j,nin8)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -