switchreal_cent.f90

来自「基于linux操作下的fortran快速付立变换的程序」· F90 代码 · 共 65 行

F90
65
字号
 	subroutine switchreal_cent(includelast,n1dfft,max2,n2,lot,n1zt,lzt,zt,zw)	implicit real*8 (a-h,o-z)	dimension zw(2,lot,n2),zt(2,lzt,n1zt)        if(includelast==1)then!        Compute symmetric and antisymmetric combinations         do j=1,n1dfft          zw(1,j,1)=zt(1,1,2*j-1)          zw(2,j,1)=zt(1,1,2*j  )         enddo         do i=2,max2+1          do j=1,n1dfft           zw(1,j,i)=      zt(1,i,2*j-1)-zt(2,i,2*j)           zw(2,j,i)=      zt(2,i,2*j-1)+zt(1,i,2*j)           zw(1,j,n2+2-i)= zt(1,i,2*j-1)+zt(2,i,2*j)           zw(2,j,n2+2-i)=-zt(2,i,2*j-1)+zt(1,i,2*j)          enddo         enddo         if(max2+1<n2-max2)then          do i=max2+2,n2-max2           do j=1,n1dfft             zw(1,j,i)=0.d0            zw(2,j,i)=0.d0           enddo          enddo         endif        else!        Compute symmetric and antisymmetric combinations         do j=1,n1dfft-1          zw(1,j,1)=zt(1,1,2*j-1)          zw(2,j,1)=zt(1,1,2*j  )         enddo         zw(1,n1dfft,1)=zt(1,1,2*n1dfft-1)         zw(2,n1dfft,1)=0.0d0!        endif         do i=2,max2+1          do j=1,n1dfft-1           zw(1,j,i)=      zt(1,i,2*j-1)-zt(2,i,2*j)           zw(2,j,i)=      zt(2,i,2*j-1)+zt(1,i,2*j)           zw(1,j,n2+2-i)= zt(1,i,2*j-1)+zt(2,i,2*j)           zw(2,j,n2+2-i)=-zt(2,i,2*j-1)+zt(1,i,2*j)          enddo          zw(1,n1dfft,i)=      zt(1,i,2*n1dfft-1)          zw(2,n1dfft,i)=      zt(2,i,2*n1dfft-1)          zw(1,n1dfft,n2+2-i)= zt(1,i,2*n1dfft-1)          zw(2,n1dfft,n2+2-i)=-zt(2,i,2*n1dfft-1)         enddo         if(max2+1<n2-max2)then          do i=max2+2,n2-max2           do j=1,n1dfft            zw(1,j,i)=0.d0            zw(2,j,i)=0.d0           enddo          enddo         endif        endif        end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?