Completed pack77/unpack77 through message Type 0.2. Still more to do!

This commit is contained in:
Joe Taylor 2018-06-26 13:55:12 -04:00
parent 0adcfc667f
commit 2006fde28c
5 changed files with 54 additions and 18 deletions

View File

@ -1,18 +0,0 @@
subroutine chk77_01(msg,nwords,w,nw,i3,n3)
character*37 msg
character*13 w(19)
character*6 bcall_1,bcall_2
integer nw(19)
logical ok1,ok2
call chkcall(w(1),bcall_1,ok1)
call chkcall(w(3),bcall_2,ok2)
if(nwords.eq.5 .and. trim(w(2)).eq.'RR73;' .and. ok1 .and. ok2) then
i3=0 !Type 0.1: DXpedition mode
n3=1
endif
return
end subroutine chk77_01

34
lib/77bit/hash10.f90 Normal file
View File

@ -0,0 +1,34 @@
subroutine hash10(n10,c13,isave)
parameter (NMAX=20)
character*13 c13,callsign(NMAX)
integer ihash(NMAX)
logical first
data first/.true./
save first,ihash,callsign
if(first) then
ihash=-1
callsign=' '
first=.false.
endif
if(isave.ge.0) then
do i=1,NMAX
if(ihash(i).eq.n10) go to 900 !This one is already in the list
enddo
ihash(NMAX:2:-1)=ihash(NMAX-1:1:-1)
callsign(NMAX:2:-1)=callsign(NMAX-1:1:-1)
ihash(1)=n10
callsign(1)=c13
else
do i=1,NMAX
if(ihash(i).eq.n10) then
c13=callsign(i)
go to 900
endif
enddo
endif
900 return
end subroutine hash10

20
lib/77bit/ihashcall.f90 Normal file
View File

@ -0,0 +1,20 @@
integer function ihashcall(c0,m)
integer*8 n8
character*13 c0,c1
character*38 c
data c/' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ/'/
c1=c0
if(c1(1:1).eq.'<') c1=c1(2:)
i=index(c1,'>')
if(i.gt.0) c1(i:)=' '
n8=0
do i=1,11
j=index(c,c1(i:i)) - 1
n8=38*n8 + j
enddo
ihashcall=ishft(47055833459_8*n8,m-64)
return
end function ihashcall