| 
									
										
										
										
											2016-02-03 19:47:42 +00:00
										 |  |  | program jtmsk
 | 
					
						
							| 
									
										
										
										
											2015-11-18 01:28:12 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00:00
										 |  |  |  parameter (NMAX=359424)
 | 
					
						
							| 
									
										
										
										
											2015-11-18 01:28:12 +00:00
										 |  |  |   integer*2 id2(NMAX)
 | 
					
						
							| 
									
										
										
										
											2016-02-03 20:23:52 +00:00
										 |  |  |   integer narg(0:14)
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00:00
										 |  |  |   character*6 mycall,hiscall
 | 
					
						
							|  |  |  |   character*22 msg,arg*8
 | 
					
						
							| 
									
										
										
										
											2015-11-18 01:28:12 +00:00
										 |  |  |   character*80 line(100)
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00:00
										 |  |  |   character*60 line0
 | 
					
						
							| 
									
										
										
										
											2015-11-18 01:28:12 +00:00
										 |  |  |   character infile*80
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   nargs=iargc()
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00:00
										 |  |  |   if(nargs.lt.4) then
 | 
					
						
							|  |  |  |      print*,'Usage: jtmsk MyCall HisCall ntol infile1 [infile2 ...]'
 | 
					
						
							| 
									
										
										
										
											2015-11-18 01:28:12 +00:00
										 |  |  |      go to 999
 | 
					
						
							|  |  |  |   endif
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00: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-18 01:28:12 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00:00
										 |  |  |   nfiles=nargs-3
 | 
					
						
							| 
									
										
										
										
											2015-11-18 01:28:12 +00:00
										 |  |  |   tsync1=0.
 | 
					
						
							|  |  |  |   tsync2=0.
 | 
					
						
							|  |  |  |   tsoft=0.
 | 
					
						
							|  |  |  |   tvit=0.
 | 
					
						
							|  |  |  |   ttotal=0.
 | 
					
						
							|  |  |  |   ndecodes=0
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00:00
										 |  |  |   call timer('jtmsk   ',0)
 | 
					
						
							| 
									
										
										
										
											2015-11-18 01:28:12 +00:00
										 |  |  |   do ifile=1,nfiles
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00:00
										 |  |  |      call getarg(ifile+3,infile)
 | 
					
						
							| 
									
										
										
										
											2015-11-18 01:28:12 +00: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 20:03:53 +00:00
										 |  |  |      call timer('jtmsk_de',0)
 | 
					
						
							|  |  |  |      call jtmsk_decode(id2,narg,line)
 | 
					
						
							|  |  |  |      call timer('jtmsk_de',1)
 | 
					
						
							| 
									
										
										
										
											2015-11-18 01:28:12 +00:00
										 |  |  |      do i=1,narg(8)
 | 
					
						
							|  |  |  |         if(line(i)(1:1).eq.char(0)) exit
 | 
					
						
							|  |  |  |         ndecodes=ndecodes+1
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00:00
										 |  |  |         line0=line(i)(1:60)
 | 
					
						
							|  |  |  |         i1=index(line(i)(1:60),'<...>')
 | 
					
						
							| 
									
										
										
										
											2016-02-04 19:40:47 +00:00
										 |  |  |         if(i1.gt.0 .and. narg(13)/8.eq.narg(12)) then
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00: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-18 01:28:12 +00:00
										 |  |  | 1002    format(a60,i10)
 | 
					
						
							|  |  |  |      enddo
 | 
					
						
							|  |  |  |   enddo
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00:00
										 |  |  |   call timer('jtmsk   ',1)
 | 
					
						
							|  |  |  |   call timer('jtmsk   ',101)
 | 
					
						
							| 
									
										
										
										
											2015-11-18 01:28:12 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-03 19:47:42 +00:00
										 |  |  | 999 end program jtmsk
 |