2016-02-03 14:47:42 -05:00
|
|
|
program jtmsk
|
2015-11-17 20:28:12 -05:00
|
|
|
|
2016-02-03 14:47:42 -05:00
|
|
|
parameter (NMAX=359424)
|
2015-11-17 20:28:12 -05:00
|
|
|
integer*2 id2(NMAX)
|
2016-02-03 15:23:52 -05:00
|
|
|
integer narg(0:14)
|
2016-02-03 14:47:42 -05:00
|
|
|
character*6 mycall,hiscall
|
|
|
|
character*22 msg,arg*8
|
2015-11-17 20:28:12 -05:00
|
|
|
character*80 line(100)
|
2016-02-03 14:47:42 -05:00
|
|
|
character*60 line0
|
2015-11-17 20:28:12 -05:00
|
|
|
character infile*80
|
|
|
|
|
|
|
|
nargs=iargc()
|
2016-02-03 14:47:42 -05:00
|
|
|
if(nargs.lt.4) then
|
|
|
|
print*,'Usage: jtmsk MyCall HisCall ntol infile1 [infile2 ...]'
|
2015-11-17 20:28:12 -05:00
|
|
|
go to 999
|
|
|
|
endif
|
2016-02-03 14:47:42 -05:00
|
|
|
call getarg(1,mycall)
|
|
|
|
call getarg(2,hiscall)
|
|
|
|
msg='<'//mycall//' '//hiscall//'> 26'
|
|
|
|
call fmtmsg(msg,iz)
|
|
|
|
call hash_calls(msg,narg(12))
|
|
|
|
call getarg(3,arg)
|
|
|
|
read(arg,*) ntol
|
2015-11-17 20:28:12 -05:00
|
|
|
|
2016-02-03 14:47:42 -05:00
|
|
|
nfiles=nargs-3
|
2015-11-17 20:28:12 -05:00
|
|
|
tsync1=0.
|
|
|
|
tsync2=0.
|
|
|
|
tsoft=0.
|
|
|
|
tvit=0.
|
|
|
|
ttotal=0.
|
|
|
|
ndecodes=0
|
|
|
|
|
2016-02-03 14:47:42 -05:00
|
|
|
call timer('jtmsk ',0)
|
2015-11-17 20:28:12 -05:00
|
|
|
do ifile=1,nfiles
|
2016-02-03 14:47:42 -05:00
|
|
|
call getarg(ifile+3,infile)
|
2015-11-17 20:28:12 -05:00
|
|
|
open(10,file=infile,access='stream',status='old')
|
|
|
|
read(10) id2(1:22) !Skip 44 header bytes
|
|
|
|
npts=179712 !### T/R = 15 s
|
|
|
|
read(10,end=1) id2(1:npts) !Read the raw data
|
|
|
|
1 close(10)
|
|
|
|
i1=index(infile,'.wav')
|
|
|
|
read(infile(i1-6:i1-1),*) narg(0)
|
|
|
|
|
|
|
|
nrxfreq=1500
|
|
|
|
narg(1)=npts !npts
|
|
|
|
narg(2)=0 !nsubmode
|
|
|
|
narg(3)=1 !newdat
|
|
|
|
narg(4)=0 !minsync
|
|
|
|
narg(5)=0 !npick
|
|
|
|
narg(6)=0 !t0 (ms)
|
|
|
|
narg(7)=npts/12 !t1 (ms) ???
|
|
|
|
narg(8)=2 !maxlines
|
|
|
|
narg(9)=103 !nmode
|
|
|
|
narg(10)=nrxfreq
|
|
|
|
narg(11)=ntol
|
|
|
|
|
2016-01-21 15:03:53 -05:00
|
|
|
call timer('jtmsk_de',0)
|
|
|
|
call jtmsk_decode(id2,narg,line)
|
|
|
|
call timer('jtmsk_de',1)
|
2015-11-17 20:28:12 -05:00
|
|
|
do i=1,narg(8)
|
|
|
|
if(line(i)(1:1).eq.char(0)) exit
|
|
|
|
ndecodes=ndecodes+1
|
2016-02-03 14:47:42 -05:00
|
|
|
line0=line(i)(1:60)
|
|
|
|
i1=index(line(i)(1:60),'<...>')
|
2016-02-04 14:40:47 -05:00
|
|
|
if(i1.gt.0 .and. narg(13)/8.eq.narg(12)) then
|
2016-02-03 14:47:42 -05:00
|
|
|
i2=index(msg,'>')
|
|
|
|
line0=line(i)(1:i1-1)//msg(1:i2)//line(i)(i1+5:i1+10)
|
|
|
|
endif
|
|
|
|
write(*,1002) line0,ndecodes
|
2015-11-17 20:28:12 -05:00
|
|
|
1002 format(a60,i10)
|
|
|
|
enddo
|
|
|
|
enddo
|
|
|
|
|
2016-02-03 14:47:42 -05:00
|
|
|
call timer('jtmsk ',1)
|
|
|
|
call timer('jtmsk ',101)
|
2015-11-17 20:28:12 -05:00
|
|
|
|
2016-02-03 14:47:42 -05:00
|
|
|
999 end program jtmsk
|