mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-12-18 08:55:53 -05:00
113 lines
2.1 KiB
Fortran
113 lines
2.1 KiB
Fortran
|
subroutine zplt(z,iplt,sync,dtx,nfreq,flip,sync2,nplot,emedelay,dttol, &
|
||
|
nfqso,ntol)
|
||
|
|
||
|
real z(458,65)
|
||
|
real zz(458,65)
|
||
|
integer ij(2)
|
||
|
character*4 lab
|
||
|
|
||
|
call pctile(z,458*65,84,rms)
|
||
|
fac=0.05/rms
|
||
|
z=fac*z
|
||
|
dtq=0.114286
|
||
|
df=11025.0/(2.0*2520.0)
|
||
|
|
||
|
ia=nint((nfqso-ntol)/df) - 273
|
||
|
if(ia.lt.1) ia=1
|
||
|
ib=nint((nfqso+ntol)/df) - 273
|
||
|
if(ib.gt.458) ib=458
|
||
|
ja=(emedelay+0.8-dttol)/dtq
|
||
|
if(ja.lt.1) ja=1
|
||
|
jb=(emedelay+0.8+dttol)/dtq
|
||
|
if(jb.gt.65) jb=65
|
||
|
|
||
|
zz=0.
|
||
|
zz(ia:ib,ja:jb)=z(ia:ib,ja:jb)
|
||
|
|
||
|
zmin=minval(zz)
|
||
|
zmax=maxval(zz)
|
||
|
flip=1.0
|
||
|
if(abs(zmin).gt.abs(zmax)) flip=-1.0
|
||
|
|
||
|
ij=maxloc(zz)
|
||
|
if(flip.lt.0.0) ij=minloc(zz)
|
||
|
i0=ij(1)
|
||
|
j0=ij(2)
|
||
|
nfreq=nint((i0+273)*df)
|
||
|
dtx=j0*dtq-0.8
|
||
|
! write(69,3101) ia,ib,ja,jb,ij,dtx,nfreq
|
||
|
!3101 format(6i5,f8.2,i6)
|
||
|
|
||
|
ia=max(1,i0-72)
|
||
|
ib=min(458,i0+72)
|
||
|
sync=16.33*flip*(z(i0,j0) - 0.5*(z(ia,j0)+z(ib,j0)))
|
||
|
sync2=20.0*flip*z(i0,j0)
|
||
|
|
||
|
if(nplot.eq.0) go to 900
|
||
|
|
||
|
zmax=max(abs(zmin),abs(zmax),1.0)
|
||
|
zmin=-zmax
|
||
|
|
||
|
do j=1,65
|
||
|
write(61,1100) j*dtq-0.8,z(i0,j)
|
||
|
1100 format(2f10.3)
|
||
|
enddo
|
||
|
|
||
|
do i=1,458
|
||
|
write(62,1100) (i+273)*df,flip*z(i,j0)
|
||
|
enddo
|
||
|
|
||
|
xx=1.5
|
||
|
yy=7.5 - 3.0*iplt
|
||
|
width=6.0
|
||
|
height=2.0
|
||
|
IP=458
|
||
|
JP=65
|
||
|
imax=IP
|
||
|
jmax=JP
|
||
|
|
||
|
if(iplt.eq.0) then
|
||
|
call imopen("testjt4.ps")
|
||
|
call imfont("Helvetica",16)
|
||
|
call impalette("BlueRed.pal")
|
||
|
endif
|
||
|
|
||
|
call imr4mat_color(z,IP,JP,imax,jmax,zmin,zmax,xx,yy, &
|
||
|
width,height,1)
|
||
|
call imstring("Frequency (Hz)",xx+0.5*width,yy-0.5,2,0)
|
||
|
dy=0.1
|
||
|
do i=1,9
|
||
|
x=xx + 0.1*i*width
|
||
|
call imyline(x,yy,dy)
|
||
|
call imyline(x,yy+height,-dy)
|
||
|
enddo
|
||
|
do i=1,6
|
||
|
nf=(i-1)*200 + 600
|
||
|
write(lab,1020) nf
|
||
|
1020 format(i4)
|
||
|
x=xx + (i-1)*0.2*width
|
||
|
call imstring(lab,x,yy-0.25,2,0)
|
||
|
enddo
|
||
|
|
||
|
dx=0.1
|
||
|
do i=0,6
|
||
|
y=yy + height*(0.8+i)/(65.0*0.114286)
|
||
|
call imxline(xx,y,dx)
|
||
|
call imxline(xx+width,y,-dx)
|
||
|
enddo
|
||
|
|
||
|
do i=0,6,2
|
||
|
y=yy + height*(0.8+i)/(65.0*0.114286)
|
||
|
write(lab,1020) i
|
||
|
call imstring(lab(4:4),xx-0.15,y-0.08,2,0)
|
||
|
enddo
|
||
|
|
||
|
y=yy + height*(3.8)/(65.0*0.114286)
|
||
|
call imstring("DT", xx-0.5,y ,2,0)
|
||
|
call imstring("(s)",xx-0.5,y-0.25,2,0)
|
||
|
|
||
|
if(iplt.eq.2) call imclose
|
||
|
|
||
|
900 return
|
||
|
end subroutine zplt
|