From 7786101dcf2c86c89e051baaf84e9bbcdc41a0d8 Mon Sep 17 00:00:00 2001
From: Joe Taylor <joe@princeton.edu>
Date: Wed, 28 Oct 2020 13:38:06 -0400
Subject: [PATCH] Add a missing file.

---
 lib/qra/q65/genq65.f90 | 48 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)
 create mode 100644 lib/qra/q65/genq65.f90

diff --git a/lib/qra/q65/genq65.f90 b/lib/qra/q65/genq65.f90
new file mode 100644
index 000000000..21c96bfaf
--- /dev/null
+++ b/lib/qra/q65/genq65.f90
@@ -0,0 +1,48 @@
+subroutine genq65(msg0,ichk,msgsent,itone,i3,n3)
+
+! Encodes a Q65 message to yield itone(1:85)
+
+  use packjt77
+  character*37 msg0               !Message to be generated
+  character*37 msgsent            !Message as it will be received
+  character*77 c77
+  logical unpk77_success
+  integer itone(85)               !QRA64 uses only 84
+  integer dgen(13)
+  integer sent(63)
+  integer isync(22)
+  data isync/1,9,12,13,15,22,23,26,27,33,35,38,46,50,55,60,62,66,69,74,76,85/
+  save
+
+  if(msg0(1:1).eq.'@') then
+     read(msg0(2:5),*,end=1,err=1) nfreq
+     go to 2
+1    nfreq=1000
+2    itone(1)=nfreq
+     write(msgsent,1000) nfreq
+1000 format(i5,' Hz')
+     goto 999
+  endif
+  i3=-1
+  n3=-1
+  call pack77(msg0,i3,n3,c77)
+  call unpack77(c77,0,msgsent,unpk77_success)    !Unpack to get msgsent
+  read(c77,1001) dgen
+1001 format(12b6.6,b5.5)
+  if(ichk.eq.1) go to 999       !Return if checking only
+  call q65_enc(dgen,sent)       !Encode message, dgen(1:13) ==> sent(1:63)
+
+  j=1
+  k=0
+  do i=1,85
+     if(i.eq.isync(j)) then
+        j=j+1                   !Index for next sync symbol
+        itone(i)=0              !Insert sync symbol at tone 0
+     else
+        k=k+1
+        itone(i)=sent(k) + 1    !Q65 symbol=0 is transmitted at tone 1, etc.
+     endif
+  enddo
+
+999 return
+end subroutine genq65