From b83c41c8deec1b09d56f504c0fd09e9b693d8184 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Fri, 1 Mar 2024 11:55:20 -0500 Subject: [PATCH] Bare-bones foxgen2 is now functional and parsing normal Fox messages. --- lib/superfox/foxgen2.f90 | 55 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/lib/superfox/foxgen2.f90 b/lib/superfox/foxgen2.f90 index 127311ffe..73988907e 100644 --- a/lib/superfox/foxgen2.f90 +++ b/lib/superfox/foxgen2.f90 @@ -1,10 +1,61 @@ subroutine foxgen2(nslots,cmsg) + use packjt77 character*40 cmsg(5) - + character*37 msg + character*12 mycall + character*4 mygrid + character*6 hiscall_1,hiscall_2 + character*4 rpt_1,rpt_2 + character*13 w(19) + integer nw(19) + integer ntype !Message type: 0 Free Text + ! 1 CQ MyCall MyGrid + ! 2 Call_1 Call_2 RR73 + ! 3 Call_1 Call_2 rpt + ! 4 Call_1 RR73; Call_2 rpt +! save mycall,mygrid + + if(nslots.lt.1 .or. nslots.gt.5) return print*,' ' do i=1,nslots - print*,i,cmsg(i) + hiscall_1='' + hiscall_2='' + mycall='' + mygrid='' + rpt_1='' + rpt_2='' + msg=cmsg(i)(1:37) + call split77(msg,nwords,nw,w) + ntype=0 + if(msg(1:3).eq.'CQ ') then + ntype=1 + mycall=w(2)(1:12) + mygrid=w(3)(1:4) + else if(index(msg,';').gt.0) then + ntype=4 + hiscall_1=w(1)(1:6) + hiscall_2=w(3)(1:6) + rpt_1='RR73' + rpt_2=w(5)(1:4) + mycall=w(4)(2:nw(4)-1) + else if(index(msg,' RR73').gt.0) then + ntype=2 + hiscall_1=w(1)(1:6) + mycall=w(2)(1:12) + rpt_1='RR73' + else if(nwords.eq.3 .and. nw(3).eq.3 .and. & + (w(3)(1:1).eq.'-' .or. w(3)(1:1).eq.'+')) then + ntype=3 + hiscall_1=w(1)(1:6) + mycall=w(2)(1:12) + rpt_1=w(3)(1:4) + endif + write(*,3001) ntype,cmsg(i),hiscall_1,rpt_1,hiscall_2,rpt_2, & + mycall(1:6),mygrid +3001 format(i1,2x,a37,1x,a6,1x,a4,1x,a6,1x,a4,1x,a6,1x,a4) + +! if(ntype.eq.0) call enddo return