diff --git a/lib/77bit/pack28.f90 b/lib/77bit/pack28.f90 index bc2b787fe..7a87fea1d 100644 --- a/lib/77bit/pack28.f90 +++ b/lib/77bit/pack28.f90 @@ -103,7 +103,6 @@ subroutine pack28(c13,n28) enddo if(iarea.lt.2 .or. iarea.gt.3 .or. nplet.eq.0 .or. & npdig.ge.iarea-1 .or. nslet.gt.3) then -! print*,'a',npdig,nplet,iarea ! Treat this as a nonstandard callsign: compute its 22-bit hash n22=ihashcall(c13,22) call hash22(n22,c13,1) !Save (key,value) in hash table diff --git a/lib/77bit/pack77.f90 b/lib/77bit/pack77.f90 index 509a39ba8..f7e674e54 100644 --- a/lib/77bit/pack77.f90 +++ b/lib/77bit/pack77.f90 @@ -19,7 +19,7 @@ subroutine pack77(msg0,i3,n3,c77) ! Check 0.1 (DXpedition mode) call pack77_01(nwords,w,i3,n3,c77) - if(i3.ge.0) go to 900 + if(i3.ge.0 .or. n3.ge.1) go to 900 ! Check 0.2 (EU VHF contest exchange) call pack77_02(nwords,w,i3,n3,c77) if(i3.ge.0) go to 900 diff --git a/lib/77bit/pack77_01.f90 b/lib/77bit/pack77_01.f90 index f9c766cbf..334f80f65 100644 --- a/lib/77bit/pack77_01.f90 +++ b/lib/77bit/pack77_01.f90 @@ -9,20 +9,20 @@ subroutine pack77_01(nwords,w,i3,n3,c77) logical ok1,ok2 common/hashcom/ihash10(20),chash - if(nwords.ne.5) return !Must have 5 words - if(trim(w(2)).ne.'RR73;') return !2nd word must be "RR73;" - if(w(4)(1:1).ne.'<') return !4th word must have <...> - if(index(w(4),'>').lt.1) return + if(nwords.ne.5) go to 900 !Must have 5 words + if(trim(w(2)).ne.'RR73;') go to 900 !2nd word must be "RR73;" + if(w(4)(1:1).ne.'<') go to 900 !4th word must have <...> + if(index(w(4),'>').lt.1) go to 900 n=-99 read(w(5),*,err=1) n -1 if(n.eq.-99) return !5th word must be a valid report +1 if(n.eq.-99) go to 900 !5th word must be a valid report n5=(n+30)/2 if(n5.lt.0) n5=0 if(n5.gt.31) n5=31 call chkcall(w(1),bcall_1,ok1) - if(.not.ok1) return !1st word must be a valid basecall + if(.not.ok1) go to 900 !1st word must be a valid basecall call chkcall(w(3),bcall_2,ok2) - if(.not.ok2) return !3rd word must be a valid basecall + if(.not.ok2) go to 900 !3rd word must be a valid basecall ! Type 0.1: K1ABC RR73; W9XYZ -11 28 28 10 5 71 DXpedition Mode i3=0 @@ -34,5 +34,5 @@ subroutine pack77_01(nwords,w,i3,n3,c77) write(c77,1010) n28a,n28b,n10,n5,n3,i3 1010 format(2b28.28,b10.10,b5.5,2b3.3) - return +900 return end subroutine pack77_01 diff --git a/lib/77bit/pack77_4.f90 b/lib/77bit/pack77_4.f90 index b8c7922bc..0f8833bd8 100644 --- a/lib/77bit/pack77_4.f90 +++ b/lib/77bit/pack77_4.f90 @@ -30,6 +30,10 @@ subroutine pack77_4(nwords,w,i3,n3,c77) iflip=0 n12=0 c11=adjustr(call_2(1:11)) + n10=ihashcall(w(2),10) + call hash10(n10,w(2),0) !Save this hash10 and its callsign + n12=ihashcall(w(2),12) + call hash12(n12,w(2),0) !Save this hash12 and its callsign else if(w(1)(1:1).eq.'<') then iflip=0 n12=ihashcall(w(1),12) diff --git a/lib/77bit/split77.f90 b/lib/77bit/split77.f90 index 2b11d8a88..045e4da40 100644 --- a/lib/77bit/split77.f90 +++ b/lib/77bit/split77.f90 @@ -40,7 +40,6 @@ subroutine split77(msg,nwords,nw,w) w(2:12)=w(3:13) nwords=nwords-1 endif -! print*,'a',nwords,w(1:nwords) return end subroutine split77 diff --git a/lib/77bit/unpack28.f90 b/lib/77bit/unpack28.f90 index f3c0e3789..aef0a85af 100644 --- a/lib/77bit/unpack28.f90 +++ b/lib/77bit/unpack28.f90 @@ -47,9 +47,7 @@ subroutine unpack28(n28_0,c13) call hash22(n22,c13,-1) !Retrieve callsign from hash table if(c13(1:1).ne.'<') then n=len(trim(c13)) - print*,'a ',n,c13 c13='<'//c13(1:n)//'>'//' ' - print*,'b ',c13 endif go to 900 endif diff --git a/lib/77bit/unpack77.f90 b/lib/77bit/unpack77.f90 index 7b3618e66..f6c4386a8 100644 --- a/lib/77bit/unpack77.f90 +++ b/lib/77bit/unpack77.f90 @@ -55,8 +55,13 @@ subroutine unpack77(c77,msg) call unpack28(n28a,call_1) call unpack28(n28b,call_2) call hash10(n10,call_3,-1) - msg=trim(call_1)//' RR73; '//trim(call_2)//' '//trim(call_3)//' '//crpt - + if(call_3(1:1).eq.'<') then + msg=trim(call_1)//' RR73; '//trim(call_2)//' '//trim(call_3)// & + ' '//crpt + else + msg=trim(call_1)//' RR73; '//trim(call_2)//' <'//trim(call_3)// & + '> '//crpt + endif else if(i3.eq.0 .and. n3.eq.2) then ! 0.2 PA3XYZ/P R 590003 IO91NP 28 1 1 3 12 25 70 EU VHF contest read(c77,1020) n28a,ip,ir,irpt,iserial,igrid6