PROGRAM Ableitungen IMPLICIT NONE !_______________________________________________________________________________ #include'fftw3.f' !_______________________________________________________________________________ INTEGER k PARAMETER N=2048 DOUBLE PRECISION:: pi,kvec DOUBLE COMPLEX:: imi DIMENSION kvec(N/2+1) INTEGER*8 plan_hin,plan_her DOUBLE PRECISION:: in DIMENSION in(N) DOUBLE COMPLEX:: out DIMENSION out(N/2 + 1) !_______________________________________________________________________________ imi=(0.0d0,1.0d0) pi=DACOS(-1.0d0) !_______________________________________________________________________________ !Initialisierung des Feldes open(10,File='Funktion.dat') DO k=1,N in(k)=dsin(2.0*pi*(k-1)/real(N))+4.0*dsin(4.0*2.0*pi*(k-1)/real(N))!+dcos(2.0*pi*(k-1)/real(N))+4.0*dcos(4.0*2.0*pi*(k-1)/real(N)) write(10,*) k-1,real(in(k)) END DO close(10) !_______________________________________________________________________________ ! Wellenzahlen initialisieren DO k=1,N/2+1 kvec(k)=k-1 END DO !_______________________________________________________________________________ ! Plaene initialisieren CALL dfftw_plan_dft_r2c_1d(plan_hin,N,in,out,FFTW_ESTIMATE) CALL dfftw_plan_dft_c2r_1d(plan_her,N,out,in,FFTW_ESTIMATE) !_______________________________________________________________________________ ! in den Fourierraum CALL dfftw_execute_dft_r2c(plan_hin, in, out) out=out/DBLE(N)**0.5d0 !_______________________________________________________________________________ !Hochpaß !do k=1,N/2+1 !if(k.gt.2) out(k)=CMPLX(0.0,0.0) !enddo !Tiefpaß do k=1,N/2+1! if(k.lt.4) out(k)=(0.0,0.0) enddo !____________________________________________________________________________ !_______________________________________________________________________________ ! in den Ortsraum CALL dfftw_execute_dft_c2r(plan_her,out,in) in=in/DBLE(N)**0.5d0 open(14,File='Pass.dat') DO k=1,N write(14,*) k-1,real(in(k)) END DO close(14) !_______________________________________________________________________________ !Zerstörung der Plaene CALL dfftw_destroy_plan(plan_hin) CALL dfftw_destroy_plan(plan_her) !_______________________________________________________________________________ END PROGRAM