1subroutine decode0(dd,ss,savg,nstandalone) 2 3 use timer_module, only: timer 4 parameter (NSMAX=60*96000) 5 6 real*4 dd(4,NSMAX),ss(4,322,NFFT),savg(4,NFFT) 7 real*8 fcenter 8 integer hist(0:32768) 9 logical ldecoded 10 character mycall*12,hiscall*12,mygrid*6,hisgrid*6,datetime*20 11 character mycall0*12,hiscall0*12,hisgrid0*6 12 common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, & 13 ndepth,ndiskdat,neme,newdat,nfa,nfb,nfcal,nfshift, & 14 mcall3,nkeep,ntol,nxant,nrxlog,nfsample,nxpol,nmode, & 15 nfast,nsave,max_drift,nhsym,mycall,mygrid,hiscall,hisgrid,datetime 16 common/early/nhsym1,nhsym2,ldecoded(32768) 17 data neme0/-99/,mcall3b/1/ 18 save 19 20 call sec0(0,tquick) 21 call timer('decode0 ',0) 22 if(newdat.ne.0) then 23 nz=96000*nhsym/5.3833 24 hist=0 25 do i=1,nz 26 j1=min(abs(dd(1,i)),32768.0) 27 hist(j1)=hist(j1)+1 28 j2=min(abs(dd(2,i)),32768.0) 29 hist(j2)=hist(j2)+1 30 j3=min(abs(dd(3,i)),32768.0) 31 hist(j3)=hist(j3)+1 32 j4=min(abs(dd(4,i)),32768.0) 33 hist(j4)=hist(j4)+1 34 enddo 35 m=0 36 do i=0,32768 37 m=m+hist(i) 38 if(m.ge.2*nz) go to 10 39 enddo 4010 rmsdd=1.5*i 41 endif 42 ndphi=0 43 if(iand(nrxlog,8).ne.0) ndphi=1 44 45 if(mycall.ne.mycall0 .or. hiscall.ne.hiscall0 .or. & 46 hisgrid.ne.hisgrid0 .or. mcall3.ne.0 .or. neme.ne.neme0) mcall3b=1 47 48 mycall0=mycall 49 hiscall0=hiscall 50 hisgrid0=hisgrid 51 neme0=neme 52 53 call timer('map65a ',0) 54 call map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, & 55 mousedf,mousefqso,nagain,ndecdone,nfshift,ndphi,max_drift, & 56 nfcal,nkeep,mcall3b,nsum,nsave,nxant,mycall,mygrid, & 57 neme,ndepth,nstandalone,hiscall,hisgrid,nhsym,nfsample, & 58 ndiskdat,nxpol,nmode) 59 call timer('map65a ',1) 60 call timer('decode0 ',1) 61 62 call sec0(1,tdec) 63 if(nhsym.eq.nhsym1) write(*,1010) nsum,nsave,nstandalone,nhsym,tdec 641010 format('<EarlyFinished>',3i4,i6,f6.2) 65 if(nhsym.eq.nhsym2) write(*,1012) nsum,nsave,nstandalone,nhsym,tdec 661012 format('<DecodeFinished>',3i4,i6,f6.2) 67 flush(6) 68 69 return 70end subroutine decode0 71