57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
| program t6
 | |
| 
 | |
|   parameter (MAXFFT=1404)
 | |
|   complex c(0:MAXFFT-1)
 | |
|   real s(0:MAXFFT-1)
 | |
| 
 | |
|   m1=45
 | |
|   m2=67
 | |
|   m3=89
 | |
|   nsym=3*11 + m1 + m2 + m3
 | |
|   nfft=6*nsym
 | |
|   nh=nfft/2
 | |
| 
 | |
|   best=9999.
 | |
| !  do m1=22,67
 | |
| !     do m2=37,97
 | |
|   do m1=30,67
 | |
|      do m2=26,100
 | |
|         m3=201-m2-m1
 | |
|         if(m3.lt.13) cycle
 | |
|         c=0.
 | |
|         n1=6*(11+m1)
 | |
|         n2=n1+6*(11+m2)
 | |
|         c(1:66)=1.
 | |
|         c(1+n1:66+n1)=1.
 | |
|         c(1+n2:66+n2)=1.
 | |
|   
 | |
|         call four2a(c,nfft,1,-1,1)            !c2c FFT
 | |
| 
 | |
|         df=12000.0/nfft
 | |
|         smax=0.
 | |
|         do i=0,nfft-1
 | |
|            s(i)=real(c(i))**2 + aimag(c(i))**2
 | |
|            if(i.ne.0) smax=max(s(i),smax)
 | |
|         enddo
 | |
|         sidelobe=db(smax/s(0))
 | |
|         
 | |
|         if(sidelobe.lt.best) then
 | |
|            write(*,1000) m1,m2,m3,sidelobe
 | |
| 1000       format(3i5,f8.2)
 | |
|            best=sidelobe
 | |
|            s=s/s(0)
 | |
|            rewind 13
 | |
|            do j=0,nfft-1
 | |
|               i=mod(j+nh,nfft)
 | |
|               f=i*df
 | |
|               if(i.gt.nh) f=f-12000.0
 | |
|               write(13,1020) f,s(i)
 | |
| 1020          format(2f12.4)
 | |
|            enddo
 | |
|         endif
 | |
|      enddo
 | |
|   enddo
 | |
|   
 | |
| end program t6
 | |
| 
 | 
