| 
									
										
										
										
											2016-04-05 12:38:21 +00:00
										 |  |  | subroutine sync9w(ss,nzhsym,lag1,lag2,ia,ib,ccfred,ccfblue,ipkbest,lagpk,nadd)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   include 'constants.f90'
 | 
					
						
							|  |  |  |   real ss(184,NSMAX)
 | 
					
						
							|  |  |  |   real ss1(184),ss1save(184)
 | 
					
						
							|  |  |  |   real ccfred(NSMAX)
 | 
					
						
							|  |  |  |   real ccfblue(-9:18)
 | 
					
						
							|  |  |  |   real sa(NSMAX),sb(NSMAX)
 | 
					
						
							|  |  |  |   include 'jt9sync.f90'
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ! Smooth the symbol spectra (by an amount consistent with measured width??)
 | 
					
						
							|  |  |  |   do j=1,nzhsym
 | 
					
						
							|  |  |  |      sa=ss(j,1:NSMAX)
 | 
					
						
							|  |  |  |      call smo(sa,NSMAX,sb,nadd)
 | 
					
						
							|  |  |  |      call smo(sb,NSMAX,sa,nadd)
 | 
					
						
							|  |  |  |      ss(j,1:NSMAX)=sa
 | 
					
						
							|  |  |  |   enddo
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ipk=0
 | 
					
						
							|  |  |  |   ipkbest=0
 | 
					
						
							|  |  |  |   sbest=0.
 | 
					
						
							|  |  |  |   ccfred=0.
 | 
					
						
							|  |  |  |   df=12000.0/16384.0
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   do i=ia,ib                                 !Loop over specified freq range
 | 
					
						
							|  |  |  |      ss1=ss(1:184,i)                         !Symbol amplitudes at this freq
 | 
					
						
							|  |  |  |      call pctile(ss1,nzhsym,50,xmed)         !Median level at this freq
 | 
					
						
							|  |  |  |      ss1=ss1/xmed - 1.0
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      smax=0.                                 !Find DT in specified range
 | 
					
						
							|  |  |  |      do lag=lag1,lag2
 | 
					
						
							|  |  |  |         sum1=0.
 | 
					
						
							|  |  |  |         nsum=nzhsym
 | 
					
						
							|  |  |  |         do j=1,16                            !Sum over 16 sync symbols
 | 
					
						
							|  |  |  |            k=ii2(j) + lag
 | 
					
						
							|  |  |  |            if(k.ge.1 .and. k.le.nzhsym) then
 | 
					
						
							|  |  |  |               sum1=sum1 + ss1(k)
 | 
					
						
							|  |  |  |               nsum=nsum-1
 | 
					
						
							|  |  |  |            endif
 | 
					
						
							|  |  |  |         enddo
 | 
					
						
							|  |  |  |         if(sum1.gt.smax) then
 | 
					
						
							|  |  |  |            smax=sum1
 | 
					
						
							|  |  |  |            ipk=i 
 | 
					
						
							|  |  |  |         endif
 | 
					
						
							|  |  |  |      enddo
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      ccfred(i)=smax                        !Best at this freq, over all lags
 | 
					
						
							|  |  |  |      if(smax.gt.sbest) then
 | 
					
						
							|  |  |  |         sbest=smax
 | 
					
						
							|  |  |  |         ipkbest=ipk
 | 
					
						
							|  |  |  |         ss1save=ss1
 | 
					
						
							|  |  |  |      endif
 | 
					
						
							|  |  |  |   enddo
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   call pctile(ccfred(ia),ib-ia+1,50,xmed)
 | 
					
						
							|  |  |  |   if(xmed.le.0.0) xmed=1.0
 | 
					
						
							|  |  |  |   ccfred=ccfred/xmed
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ss1=ss1save
 | 
					
						
							|  |  |  |   smax=0.                                 !Find DT in specified range
 | 
					
						
							|  |  |  |   do lag=lag1,lag2
 | 
					
						
							|  |  |  |      sum1=0.
 | 
					
						
							|  |  |  |      nsum=nzhsym
 | 
					
						
							|  |  |  |      do j=1,16                            !Sum over 16 sync symbols
 | 
					
						
							|  |  |  |         k=ii2(j) + lag
 | 
					
						
							|  |  |  |         if(k.ge.1 .and. k.le.nzhsym) then
 | 
					
						
							|  |  |  |            sum1=sum1 + ss1(k)
 | 
					
						
							|  |  |  |            nsum=nsum-1
 | 
					
						
							|  |  |  |         endif
 | 
					
						
							|  |  |  |      enddo
 | 
					
						
							|  |  |  |      ccfblue(lag)=sum1
 | 
					
						
							|  |  |  |      if(sum1.gt.smax) then
 | 
					
						
							|  |  |  |         smax=sum1
 | 
					
						
							|  |  |  |         lagpk=lag
 | 
					
						
							|  |  |  |      endif
 | 
					
						
							|  |  |  |   enddo
 | 
					
						
							| 
									
										
										
										
											2016-04-05 17:55:38 +00:00
										 |  |  |   if(lagpk.eq.-9) lagpk=-8                !Protect the ends of ccfblue()
 | 
					
						
							|  |  |  |   if(lagpk.eq.18) lagpk=17
 | 
					
						
							| 
									
										
										
										
											2016-04-05 12:38:21 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   return
 | 
					
						
							|  |  |  | end subroutine sync9w
 |