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