2017-07-27 16:17:30 -04:00
|
|
|
program contest72
|
|
|
|
|
|
|
|
use packjt
|
|
|
|
integer dat(12)
|
|
|
|
logical text,bcontest,ok
|
|
|
|
character*22 msg,msg0,msg1
|
|
|
|
character*72 ct1,ct2
|
|
|
|
character*12 callsign1,callsign2
|
|
|
|
character*1 c0
|
|
|
|
character*42 c
|
|
|
|
character*6 mygrid
|
|
|
|
data c/'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ +-./?'/
|
|
|
|
data bcontest/.true./
|
|
|
|
data mygrid/"EM48 "/
|
|
|
|
|
|
|
|
! itype Message Type
|
|
|
|
!--------------------
|
|
|
|
! 1 Standardd message
|
|
|
|
! 2 Type 1 prefix
|
|
|
|
! 3 Type 1 suffix
|
|
|
|
! 4 Type 2 prefix
|
|
|
|
! 5 Type 2 suffix
|
|
|
|
! 6 Free text
|
|
|
|
! -1 Does not decode correctly
|
|
|
|
|
|
|
|
nargs=iargc()
|
|
|
|
if(nargs.eq.0) open(10,file='contest_msgs.txt',status='old')
|
|
|
|
|
|
|
|
nn=0
|
|
|
|
do imsg=1,9999
|
|
|
|
if(nargs.eq.1) then
|
|
|
|
if(imsg.gt.1) exit
|
|
|
|
call getarg(1,msg0)
|
|
|
|
else
|
|
|
|
read(10,1001,end=999) msg0
|
|
|
|
1001 format(a22)
|
|
|
|
endif
|
|
|
|
msg=msg0
|
2017-09-01 16:10:35 -04:00
|
|
|
call packmsg(msg,dat,itype,bcontest)
|
|
|
|
call unpackmsg(dat,msg1,bcontest,mygrid)
|
2017-07-27 16:17:30 -04:00
|
|
|
ok=msg1.eq.msg0
|
|
|
|
if(msg0.eq.' ') then
|
|
|
|
write(*,1002)
|
|
|
|
else
|
|
|
|
if(jt_c2(1:1).eq.'W') msg0=' '//msg0(1:20)
|
|
|
|
nn=nn+1
|
|
|
|
write(*,1002) nn,msg0,ok,jt_itype,jt_nc1,jt_nc2,jt_ng,jt_k1,jt_k2
|
|
|
|
1002 format(i1,'. ',a22,L2,i2,2i10,i6,2i8)
|
|
|
|
if(index(msg1,' 73 ').gt.4) nn=0
|
|
|
|
endif
|
|
|
|
if(.not.ok) print*,msg0,msg1
|
|
|
|
if(itype.lt.0 .or. itype.eq.6) cycle
|
|
|
|
|
|
|
|
if(msg(1:3).eq.'CQ ') then
|
|
|
|
m=2
|
|
|
|
write(ct1,1010) dat
|
|
|
|
1010 format(12b6.6)
|
|
|
|
! write(*,1014) ct1
|
2018-03-09 08:26:06 -05:00
|
|
|
!1014 format(a72)
|
2017-07-27 16:17:30 -04:00
|
|
|
cycle
|
|
|
|
endif
|
|
|
|
|
|
|
|
i1=index(msg,'<')
|
|
|
|
if(i1.eq.1) then
|
|
|
|
m=0
|
|
|
|
cycle
|
|
|
|
endif
|
|
|
|
|
|
|
|
if(i.ge.5) then
|
|
|
|
m=3
|
|
|
|
cycle
|
|
|
|
endif
|
|
|
|
|
|
|
|
if(msg(1:6).eq.'73 CQ ') then
|
|
|
|
m=4
|
|
|
|
cycle
|
|
|
|
endif
|
|
|
|
|
2017-09-01 16:10:35 -04:00
|
|
|
call packmsg(msg,dat,itype,.false.)
|
2017-07-27 16:17:30 -04:00
|
|
|
write(ct1,1010) dat
|
2017-09-01 16:10:35 -04:00
|
|
|
call packtext(msg,nc1,nc2,ng,.false.,'')
|
2017-07-27 16:17:30 -04:00
|
|
|
! write(ct2,1012) nc1,nc2,ng+32768
|
|
|
|
!1012 format(2b28.28,b16.16)
|
|
|
|
! write(*,1014) ct1
|
|
|
|
! write(*,1014) ct2
|
|
|
|
! write(*,1014)
|
|
|
|
enddo
|
|
|
|
|
|
|
|
999 end program contest72
|