mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-28 12:22:32 -04:00
71 lines
1.8 KiB
Fortran
71 lines
1.8 KiB
Fortran
subroutine q65_set_list2(mycall,hiscall,hisgrid,callers,nhist2,codewords,ncw)
|
|
|
|
use types
|
|
parameter (MAX_NCW=206)
|
|
parameter (MAX_CALLERS=40) !For multiple q3 decodes in NA VHf Contest mode
|
|
character*12 mycall,hiscall
|
|
character*6 hisgrid,c6
|
|
character*4 g4
|
|
character*37 msg,msgsent
|
|
logical std,isgrid
|
|
integer codewords(63,MAX_NCW)
|
|
integer itone(85)
|
|
integer isync(22)
|
|
type(q3list) callers(MAX_CALLERS)
|
|
|
|
data isync/1,9,12,13,15,22,23,26,27,33,35,38,46,50,55,60,62,66,69,74,76,85/
|
|
|
|
isgrid(g4)=g4(1:1).ge.'A' .and. g4(1:1).le.'R' .and. g4(2:2).ge.'A' .and. &
|
|
g4(2:2).le.'R' .and. g4(3:3).ge.'0' .and. g4(3:3).le.'9' .and. &
|
|
g4(4:4).ge.'0' .and. g4(4:4).le.'9' .and. g4(1:4).ne.'RR73'
|
|
|
|
call stdcall(hiscall,std)
|
|
jmax=nhist2
|
|
if(std .and. isgrid(hisgrid(1:4))) then
|
|
jmax=min(MAX_CALLERS,nhist2+1)
|
|
do j=1,nhist2
|
|
if(callers(j)%call .eq. hiscall(1:6)) then
|
|
jmax=nhist2
|
|
exit
|
|
endif
|
|
enddo
|
|
endif
|
|
|
|
codewords(:,1)=0
|
|
i=1
|
|
do j=1,jmax
|
|
c6=callers(j)%call
|
|
g4=callers(j)%grid
|
|
if(j.eq.nhist2+1) then
|
|
c6=hiscall(1:6)
|
|
g4=hisgrid(1:4)
|
|
endif
|
|
do k=1,5
|
|
i=i+1
|
|
msg=trim(mycall)//' '//trim(c6)
|
|
j0=len(trim(msg))+1
|
|
if(k.eq.1) msg=msg(1:j0)//g4
|
|
if(k.eq.2) msg=msg(1:j0)//'R '//g4
|
|
if(k.eq.3) msg(j0:j0+3)=' RRR'
|
|
if(k.eq.4) msg(j0:j0+4)=' RR73'
|
|
if(k.eq.5) msg(j0:j0+2)=' 73'
|
|
call genq65(msg,0,msgsent,itone,i3,n3)
|
|
i0=1
|
|
jj=0
|
|
do kk=1,85
|
|
if(kk.eq.isync(i0)) then
|
|
i0=i0+1
|
|
cycle
|
|
endif
|
|
jj=jj+1
|
|
codewords(jj,i)=itone(kk) - 1
|
|
enddo
|
|
! write(71,3001) i,j,k,codewords(1:13,i),trim(msg)
|
|
!3001 format(3i3,2x,13i3,2x,a)
|
|
enddo
|
|
enddo
|
|
ncw=i
|
|
|
|
return
|
|
end subroutine q65_set_list2
|