2018-07-11 16:32:08 -04:00
|
|
|
subroutine genft8_174_91(msg,i3,n3,msgsent,msgbits,itone)
|
2018-06-05 09:40:00 -04:00
|
|
|
|
|
|
|
! Encode an FT8 message, producing array itone().
|
|
|
|
|
2018-07-05 14:07:17 -04:00
|
|
|
use packjt77
|
2018-06-05 09:40:00 -04:00
|
|
|
include 'ft8_params.f90'
|
2018-07-03 16:08:38 -04:00
|
|
|
character msg*37,msgsent*37
|
|
|
|
character*77 c77
|
2018-06-17 13:11:32 -04:00
|
|
|
integer*1 msgbits(77),codeword(174)
|
2018-06-05 09:40:00 -04:00
|
|
|
integer itone(79)
|
|
|
|
integer icos7(0:6)
|
2018-06-08 17:21:21 -04:00
|
|
|
integer graymap(0:7)
|
2018-09-12 16:06:26 -04:00
|
|
|
logical unpk77_success
|
2018-06-05 09:40:00 -04:00
|
|
|
data icos7/3,1,4,0,6,5,2/ !Costas 7x7 tone pattern
|
2018-07-07 09:18:31 -04:00
|
|
|
data graymap/0,1,3,2,5,6,4,7/
|
2018-06-05 09:40:00 -04:00
|
|
|
|
2018-09-19 11:48:30 -04:00
|
|
|
i3=-1
|
|
|
|
n3=-1
|
2018-07-03 16:08:38 -04:00
|
|
|
call pack77(msg,i3,n3,c77)
|
2018-10-04 16:09:02 -04:00
|
|
|
call unpack77(c77,msgsent,unpk77_success)
|
2018-06-05 09:40:00 -04:00
|
|
|
|
2018-09-02 18:55:13 -04:00
|
|
|
read(c77,'(77i1)',err=1) msgbits
|
|
|
|
go to 2
|
|
|
|
1 write(81,*) msg,c77 ; flush(81)
|
2018-09-28 17:36:33 -04:00
|
|
|
|
|
|
|
entry get_tones_from_77bits(msgbits,itone)
|
|
|
|
|
2018-09-02 18:55:13 -04:00
|
|
|
2 call encode174_91(msgbits,codeword) !Encode the test message
|
2018-06-05 09:40:00 -04:00
|
|
|
|
|
|
|
! Message structure: S7 D29 S7 D29 S7
|
|
|
|
itone(1:7)=icos7
|
|
|
|
itone(36+1:36+7)=icos7
|
|
|
|
itone(NN-6:NN)=icos7
|
|
|
|
k=7
|
|
|
|
do j=1,ND
|
|
|
|
i=3*j -2
|
|
|
|
k=k+1
|
|
|
|
if(j.eq.30) k=k+7
|
2018-06-08 17:21:21 -04:00
|
|
|
indx=codeword(i)*4 + codeword(i+1)*2 + codeword(i+2)
|
2018-06-09 14:05:11 -04:00
|
|
|
itone(k)=graymap(indx)
|
2018-06-05 09:40:00 -04:00
|
|
|
enddo
|
|
|
|
|
|
|
|
return
|
|
|
|
end subroutine genft8_174_91
|