diff --git a/q65w/commons.h b/q65w/commons.h index 792a8adaf..aa4485eaa 100644 --- a/q65w/commons.h +++ b/q65w/commons.h @@ -7,8 +7,8 @@ extern "C" { extern struct { //This is "common/datcom/..." in Fortran float d4[4*5760000]; //Raw I/Q data from Linrad - float ss[4*322*NFFT]; //Half-symbol spectra at 0,45,90,135 deg pol - float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol + float ss[322*NFFT]; //Half-symbol spectra at 0,45,90,135 deg pol + float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol double fcenter; //Center freq from Linrad (MHz) int nutc; //UTC as integer, HHMM int idphi; //Phase correction for Y pol'n, degrees @@ -46,8 +46,8 @@ extern struct { //This is "common/datcom/..." in Fortran extern struct { //This is "common/datcom/..." in Fortran float d4[4*5760000]; //Raw I/Q data from Linrad - float ss[4*322*NFFT]; //Half-symbol spectra at 0,45,90,135 deg pol - float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol + float ss[322*NFFT]; //Half-symbol spectra at 0,45,90,135 deg pol + float savg[NFFT]; //Avg spectra at 0,45,90,135 deg pol double fcenter; //Center freq from Linrad (MHz) int nutc; //UTC as integer, HHMM int idphi; //Phase correction for Y pol'n, degrees diff --git a/q65w/libq65/decode0.f90 b/q65w/libq65/decode0.f90 index dcb6bcb04..e15924c02 100644 --- a/q65w/libq65/decode0.f90 +++ b/q65w/libq65/decode0.f90 @@ -3,7 +3,7 @@ subroutine decode0(dd,ss,savg,nstandalone) use timer_module, only: timer parameter (NSMAX=60*96000) - real*4 dd(4,NSMAX),ss(4,322,NFFT),savg(NFFT) + real*4 dd(4,NSMAX),ss(322,NFFT),savg(NFFT) real*8 fcenter integer hist(0:32768) logical ldecoded diff --git a/q65w/libq65/q65c.f90 b/q65w/libq65/q65c.f90 index b9b4eae07..13df3b68f 100644 --- a/q65w/libq65/q65c.f90 +++ b/q65w/libq65/q65c.f90 @@ -16,7 +16,7 @@ subroutine q65c(itimer) character*6 mygrid,hisgrid character*20 datetime - common/datcom2/dd(4,5760000),ss(4,322,NFFT),savg(NFFT),nparams0 + common/datcom2/dd(4,5760000),ss(322,NFFT),savg(NFFT),nparams0 !### REMEMBER that /npar/ is not updated until nparams=nparams0 is executed. ### common/npar/fcenter,nutc,idphi,mousedf,mousefqso,nagain, & diff --git a/q65w/libq65/q65wa.f90 b/q65w/libq65/q65wa.f90 index 47147dc89..73574efb1 100644 --- a/q65w/libq65/q65wa.f90 +++ b/q65w/libq65/q65wa.f90 @@ -13,7 +13,7 @@ subroutine q65wa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, & parameter (NSMAX=60*96000) complex cx(NSMAX/64), cy(NSMAX/64) !Data at 1378.125 samples/s real dd(4,NSMAX) - real*4 ss(4,322,NFFT),savg(NFFT) + real*4 ss(322,NFFT),savg(NFFT) real*8 fcenter character*3 shmsg0(4) character mycall*12,hiscall*12,mygrid*6,hisgrid*6,cm*1 diff --git a/q65w/libq65/recvpkt.f90 b/q65w/libq65/recvpkt.f90 index 031ac8652..b900664fd 100644 --- a/q65w/libq65/recvpkt.f90 +++ b/q65w/libq65/recvpkt.f90 @@ -12,7 +12,7 @@ subroutine recvpkt(nsam,nblock2,userx_no,k,buf4,buf8,buf16) integer*2 jd(4),kd(2),nblock2 real*4 xd(4),yd(2) real*8 fcenter - common/datcom/dd(4,5760000),ss(4,322,NFFT),savg(NFFT),fcenter,nutc, & + common/datcom/dd(4,5760000),ss(322,NFFT),savg(NFFT),fcenter,nutc, & junk(NJUNK) equivalence (kd,d4) equivalence (jd,d8,yd) diff --git a/q65w/libq65/symspec.f90 b/q65w/libq65/symspec.f90 index 3fcf29a1c..ecd4068ab 100644 --- a/q65w/libq65/symspec.f90 +++ b/q65w/libq65/symspec.f90 @@ -20,7 +20,7 @@ subroutine symspec(k,ndiskdat,nb,nbslider,idphi,nfsample, & parameter (NFFT=32768) !Length of FFTs real*8 ts,hsym real*8 fcenter - common/datcom/dd(4,5760000),ss(4,322,NFFT),savg(NFFT),fcenter,nutc, & + common/datcom/dd(4,5760000),ss(322,NFFT),savg(NFFT),fcenter,nutc, & junk(NJUNK) real*4 ssz5a(NFFT),w(NFFT),w2a(NFFT),w2b(NFFT) complex z @@ -140,7 +140,7 @@ subroutine symspec(k,ndiskdat,nb,nbslider,idphi,nfsample, & n=min(322,ihsym) do i=1,NFFT sx=real(cx(i))**2 + aimag(cx(i))**2 - ss(1,n,i)=sx ! Pol = 0 + ss(n,i)=sx ! Pol = 0 savg(i)=savg(i) + sx ssz5a(i)=sx enddo diff --git a/q65w/libq65/wideband_sync.f90 b/q65w/libq65/wideband_sync.f90 index bdbdef326..77fc27258 100644 --- a/q65w/libq65/wideband_sync.f90 +++ b/q65w/libq65/wideband_sync.f90 @@ -34,7 +34,7 @@ subroutine get_candidates(ss,savg,xpol,jz,nfa,nfb,nts_jt65,nts_q65,cand,ncand) ! excised. Candidates are returned in the structure array cand(). parameter (MAX_PEAKS=100) - real ss(4,322,NFFT),savg(NFFT) + real ss(322,NFFT),savg(NFFT) real pavg(-20:20) integer indx(NFFT) logical xpol,skip,ldecoded @@ -72,10 +72,10 @@ subroutine get_candidates(ss,savg,xpol,jz,nfa,nfb,nts_jt65,nts_q65,cand,ncand) ipol=sync(n)%ipol pavg=0. do j=1,j1 - pavg=pavg + ss(ipol,j,n-20:n+20) + pavg=pavg + ss(j,n-20:n+20) enddo do j=j2,jz - pavg=pavg + ss(ipol,j,n-20:n+20) + pavg=pavg + ss(j,n-20:n+20) enddo jsum=j1 + (jz-j2+1) pmax=maxval(pavg(-2:2)) !### Why not just pavg(0) ? @@ -121,7 +121,7 @@ subroutine wb_sync(ss,savg,xpol,jz,nfa,nfb) use timer_module, only: timer parameter (NFFT=32768) parameter (LAGMAX=30) - real ss(4,322,NFFT) + real ss(322,NFFT) real savg(NFFT) real savg_med real a(3) @@ -178,8 +178,8 @@ subroutine wb_sync(ss,savg,xpol,jz,nfa,nfb) ccf4=0. do j=1,22 !Test for Q65 sync k=isync(j) + lag - ccf4=ccf4 + ss(1,k,i+1) + ss(1,k+1,i+1) & - + ss(1,k+2,i+1) + ccf4=ccf4 + ss(k,i+1) + ss(k+1,i+1) & + + ss(k+2,i+1) enddo ccf4=ccf4 - savg(i+1)*3*22/float(jz) ccf=ccf4 @@ -196,7 +196,7 @@ subroutine wb_sync(ss,savg,xpol,jz,nfa,nfb) ccf4=0. do j=1,63 !Test for JT65 sync, std msg k=jsync0(j) + lag - ccf4=ccf4 + ss(1,k,i+1) + ss(1,k+1,i+1) + ccf4=ccf4 + ss(k,i+1) + ss(k+1,i+1) enddo ccf4=ccf4 - savg(i+1)*2*63/float(jz) ccf=ccf4 @@ -213,7 +213,7 @@ subroutine wb_sync(ss,savg,xpol,jz,nfa,nfb) ccf4=0. do j=1,63 !Test for JT65 sync, OOO msg k=jsync1(j) + lag - ccf4=ccf4 + ss(1,k,i+1) + ss(1,k+1,i+1) + ccf4=ccf4 + ss(k,i+1) + ss(k+1,i+1) enddo ccf4=ccf4 - savg(i+1)*2*63/float(jz) ccf=ccf4 @@ -256,12 +256,6 @@ subroutine wb_sync(ss,savg,xpol,jz,nfa,nfb) sync(i0)%ccfmax=spk enddo -! do i=ia,ib -! write(15,3015) 0.001*(i-1)*df3+32.0,sync(i)%ccfmax,sync(i)%xdt, & -! sync(i)%ipol,sync(i)%iflip,sync(i)%birdie -!3015 format(3f10.3,2i6,L5) -! enddo - return end subroutine wb_sync diff --git a/q65w/soundin.cpp b/q65w/soundin.cpp index 42d473fd1..4f6811353 100644 --- a/q65w/soundin.cpp +++ b/q65w/soundin.cpp @@ -15,7 +15,7 @@ extern "C" struct { double d8[2*60*96000]; //This is "common/datcom/..." in fortran - float ss[4*322*NFFT]; + float ss[322*NFFT]; float savg[NFFT]; double fcenter; int nutc;