| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  | subroutine spec(brightness,contrast,ngain,nspeed,a,a2)
 | 
					
						
							| 
									
										
										
										
											2005-12-23 17:07:54 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-06-29 14:45:15 +00:00
										 |  |  |   parameter (NX=750,NY=130,NTOT=NX*NY)
 | 
					
						
							| 
									
										
										
										
											2005-12-23 17:07:54 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ! Input:
 | 
					
						
							|  |  |  |   integer brightness,contrast   !Display parameters
 | 
					
						
							|  |  |  |   integer ngain                 !Digital gain for input audio
 | 
					
						
							|  |  |  |   integer nspeed                !Scrolling speed index
 | 
					
						
							| 
									
										
										
										
											2007-01-12 17:57:41 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-12-23 17:07:54 +00:00
										 |  |  | ! Output:
 | 
					
						
							| 
									
										
										
										
											2007-01-09 17:46:02 +00:00
										 |  |  |   integer*2 a(NTOT)             !Pixel values for NX x NY array
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  |   integer*2 a2(NTOT)            !Pixel values for NX x NY array
 | 
					
						
							| 
									
										
										
										
											2005-12-23 17:07:54 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-12 19:56:45 +00:00
										 |  |  |   logical first
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  |   integer nstep(5)
 | 
					
						
							| 
									
										
										
										
											2005-12-23 17:07:54 +00:00
										 |  |  |   integer b0,c0
 | 
					
						
							| 
									
										
										
										
											2007-06-29 14:45:15 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-17 17:50:59 +00:00
										 |  |  | !  Could save memory by doing the averaging-by-7 (or 10?) of ss5 in symspec.
 | 
					
						
							| 
									
										
										
										
											2007-06-29 14:45:15 +00:00
										 |  |  |   include 'spcom.f90'
 | 
					
						
							|  |  |  |   real s(NFFT,NY)
 | 
					
						
							| 
									
										
										
										
											2005-12-23 17:07:54 +00:00
										 |  |  |   include 'gcom1.f90'
 | 
					
						
							|  |  |  |   include 'gcom2.f90'
 | 
					
						
							|  |  |  |   include 'gcom3.f90'
 | 
					
						
							|  |  |  |   include 'gcom4.f90'
 | 
					
						
							| 
									
										
										
										
											2007-01-12 19:56:45 +00:00
										 |  |  |   data first/.true./
 | 
					
						
							| 
									
										
										
										
											2007-01-14 16:53:10 +00:00
										 |  |  |   data nstep/28,20,14,10,7/       !Integration limits
 | 
					
						
							| 
									
										
										
										
											2005-12-23 17:07:54 +00:00
										 |  |  |   save
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-12 19:56:45 +00:00
										 |  |  |   if(first) then
 | 
					
						
							|  |  |  |      df=96000.0/nfft
 | 
					
						
							|  |  |  |      call zero(a,NX*NY/2)
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  |      call zero(a2,NX*NY/2)
 | 
					
						
							| 
									
										
										
										
											2007-01-12 19:56:45 +00:00
										 |  |  |      first=.false.
 | 
					
						
							|  |  |  |   endif
 | 
					
						
							| 
									
										
										
										
											2007-01-12 17:57:41 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   nadd=nstep(nspeed)
 | 
					
						
							|  |  |  |   nlines=322/nadd
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  |   call zero(s,NFFT*NY)
 | 
					
						
							| 
									
										
										
										
											2007-01-12 19:56:45 +00:00
										 |  |  |   k=0
 | 
					
						
							| 
									
										
										
										
											2007-06-29 23:50:55 +00:00
										 |  |  |   fselect=mousefqso + 1.6
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  |   imid=nint(1000.0*(fselect-125.0+48.0)/df)
 | 
					
						
							|  |  |  |   ia=imid-374
 | 
					
						
							|  |  |  |   ib=ia+749
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-14 16:53:10 +00:00
										 |  |  |   do j=1,nlines
 | 
					
						
							|  |  |  |      do n=1,nadd
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  |         k=k+1
 | 
					
						
							|  |  |  |         do i=1,NFFT
 | 
					
						
							| 
									
										
										
										
											2007-01-17 17:50:59 +00:00
										 |  |  |            s(i,j)=s(i,j) + ss5(k,i)
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  |         enddo
 | 
					
						
							| 
									
										
										
										
											2006-03-22 13:51:17 +00:00
										 |  |  |      enddo
 | 
					
						
							| 
									
										
										
										
											2007-01-12 19:56:45 +00:00
										 |  |  |   enddo
 | 
					
						
							| 
									
										
										
										
											2005-12-23 17:07:54 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-12 19:56:45 +00:00
										 |  |  |   newpts=NX*nlines
 | 
					
						
							|  |  |  |   do i=newpts+1,NX*NY
 | 
					
						
							|  |  |  |      a(i)=a(i-newpts)
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  |      a2(i)=a2(i-newpts)
 | 
					
						
							| 
									
										
										
										
											2007-01-12 19:56:45 +00:00
										 |  |  |   enddo
 | 
					
						
							| 
									
										
										
										
											2007-01-12 17:57:41 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-12 19:56:45 +00:00
										 |  |  |   gain=40*sqrt(nstep(nspeed)/5.0) * 5.0**(0.01*contrast)
 | 
					
						
							|  |  |  |   gamma=1.3 + 0.01*contrast
 | 
					
						
							|  |  |  |   offset=(brightness+64.0)/2
 | 
					
						
							|  |  |  |   k=0
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  |   fac=20.0/nadd
 | 
					
						
							|  |  |  |   nbpp=NFFT/NX                        !Bins per pixel in wide waterfall
 | 
					
						
							| 
									
										
										
										
											2007-01-14 16:53:10 +00:00
										 |  |  |   do j=nlines,1,-1                    !Reverse order so last will be on top
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  |      do i=1,NX
 | 
					
						
							| 
									
										
										
										
											2007-01-12 19:56:45 +00:00
										 |  |  |         k=k+1
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-12 17:57:41 +00:00
										 |  |  |         n=0
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  |         x=0.
 | 
					
						
							|  |  |  |         do ii=(i-1)*nbpp+1,i*nbpp
 | 
					
						
							|  |  |  |            x=max(x,s(ii,j))
 | 
					
						
							|  |  |  |         enddo
 | 
					
						
							|  |  |  |         x=fac*x
 | 
					
						
							|  |  |  |         if(x.gt.0.0) n=(2.0*x)**gamma + offset
 | 
					
						
							| 
									
										
										
										
											2007-01-12 17:57:41 +00:00
										 |  |  |         n=min(252,max(0,n))
 | 
					
						
							| 
									
										
										
										
											2007-01-12 19:56:45 +00:00
										 |  |  |         a(k)=n
 | 
					
						
							| 
									
										
										
										
											2007-01-13 20:21:32 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         n=0
 | 
					
						
							|  |  |  |         x=fac*s(ia+i-1,j)
 | 
					
						
							|  |  |  |         if(x.gt.0.0) n=(3.0*x)**gamma + offset
 | 
					
						
							|  |  |  |         n=min(252,max(0,n))
 | 
					
						
							|  |  |  |         a2(k)=n
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-01-12 17:57:41 +00:00
										 |  |  |      enddo
 | 
					
						
							| 
									
										
										
										
											2005-12-23 17:07:54 +00:00
										 |  |  |   enddo
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return
 | 
					
						
							|  |  |  | end subroutine spec
 |