Reduce ss(4,322... to ss(322,...

This commit is contained in:
Joe Taylor 2022-12-12 13:56:10 -05:00
parent 504a62bf93
commit 1c75702420
8 changed files with 19 additions and 25 deletions

View File

@ -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

View File

@ -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

View File

@ -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, &

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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;