mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-22 12:23:37 -05:00
Fix bugs for a few edge-case messages. Add some test files.
This commit is contained in:
parent
18a839963f
commit
2da8f51fc2
@ -19,7 +19,7 @@ i3.n3 Example message Bits Total Purpose
|
|||||||
|
|
||||||
1 WA9XYZ/R KA1ABC/R R FN42 28 1 28 1 1 15 74 Standard msg
|
1 WA9XYZ/R KA1ABC/R R FN42 28 1 28 1 1 15 74 Standard msg
|
||||||
2 PA3XYZ/P GM4ABC/P R JO22 28 1 28 1 1 15 74 EU VHF contest
|
2 PA3XYZ/P GM4ABC/P R JO22 28 1 28 1 1 15 74 EU VHF contest
|
||||||
3 TU; W9XYZ K1ABC R 579 MA 1 28 28 1 3 13 74 ARRL RTTY contest
|
3 TU; W9XYZ K1ABC R 579 MA 1 28 28 1 3 13 74 ARRL RTTY Roundup
|
||||||
4 <WA9XYZ> PJ4/KA1ABC RR73 12 58 1 2 1 74 Nonstandard calls
|
4 <WA9XYZ> PJ4/KA1ABC RR73 12 58 1 2 1 74 Nonstandard calls
|
||||||
5
|
5
|
||||||
6
|
6
|
||||||
@ -57,19 +57,21 @@ i3.n3
|
|||||||
|
|
||||||
0.4 ARRL Field Day exchange (17-32 transmitters).
|
0.4 ARRL Field Day exchange (17-32 transmitters).
|
||||||
|
|
||||||
|
0.5 Telemetry, 71 bits
|
||||||
|
|
||||||
1. Two standard callsigns, Roger, and grid or report. Each callsign
|
1. Two standard callsigns, Roger, and grid or report. Each callsign
|
||||||
may have an appended "/R" to indicate Rover status for NA VHF
|
may have an appended "/R" to indicate Rover status for NA VHF
|
||||||
contests.
|
contests.
|
||||||
|
|
||||||
2. Standard message for ARRL RTTY Roundup. Optional "TU;" at
|
2. Same as Type 1, but uses /P instead of /R. For European VHF contests.
|
||||||
|
|
||||||
|
3. Standard message for ARRL RTTY Roundup. Optional "TU;" at
|
||||||
beginning to finish a previous QSO; then two standard callsigns,
|
beginning to finish a previous QSO; then two standard callsigns,
|
||||||
optional "R", a 3-bit report (529 to 599), and 13 bits to indicate
|
optional "R", a 3-bit report (529 to 599), and 13 bits to indicate
|
||||||
US state, Canadian province/territory, or DX serial number.
|
US state, Canadian province/territory, or DX serial number.
|
||||||
|
|
||||||
3. Same as Type 1, but uses /P instead of /R. For European VHF contests.
|
4. One hashed call; one standard, compound, or nonstandard call with
|
||||||
|
up to 11 characters; and an optional RRR, RR73, or 73.
|
||||||
4. One nonstandard call with up to 11 characters, one hashed call,
|
|
||||||
followed by <blank>, RRR, RR73, or 73.
|
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
The following are tentative: not to be included in first release.
|
The following are tentative: not to be included in first release.
|
||||||
@ -78,4 +80,3 @@ The following are tentative: not to be included in first release.
|
|||||||
DX: RST + CQzone R 559 15 R1 r3 z6
|
DX: RST + CQzone R 559 15 R1 r3 z6
|
||||||
|
|
||||||
6. CQ WPX RTTY - RST + serial R 589 0013 R1 r3 n12
|
6. CQ WPX RTTY - RST + serial R 589 0013 R1 r3 n12
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
program encode77
|
program encode77
|
||||||
|
|
||||||
character msg*37,msg0*37,cerr*1
|
character*80 msg0
|
||||||
|
character msg*37,cerr*1
|
||||||
character*77 c77
|
character*77 c77
|
||||||
|
|
||||||
nargs=iargc()
|
nargs=iargc()
|
||||||
@ -14,16 +15,20 @@ program encode77
|
|||||||
1000 format('i3.n3 Err Message to be encoded Decoded message'/ &
|
1000 format('i3.n3 Err Message to be encoded Decoded message'/ &
|
||||||
80('-'))
|
80('-'))
|
||||||
read(10,1002,end=999) msg0
|
read(10,1002,end=999) msg0
|
||||||
1002 format(a37)
|
1002 format(a80)
|
||||||
endif
|
endif
|
||||||
if(msg0.eq.' ') exit
|
if(msg0(1:1).eq.'$') exit
|
||||||
call pack77(msg0,i3,n3,c77)
|
if(msg0.eq.' ') cycle
|
||||||
|
if(msg0(2:2).eq.'.' .or. msg0(3:3).eq.'.') cycle
|
||||||
|
if(msg0(1:3).eq.'---') cycle
|
||||||
|
msg0=adjustl(msg0)
|
||||||
|
call pack77(msg0(1:37),i3,n3,c77)
|
||||||
call unpack77(c77,msg)
|
call unpack77(c77,msg)
|
||||||
cerr=' '
|
cerr=' '
|
||||||
if(msg.ne.msg0) cerr='*'
|
if(msg.ne.msg0(1:37)) cerr='*'
|
||||||
if(i3.eq.0) write(*,1004) i3,n3,cerr,msg0,msg
|
if(i3.eq.0) write(*,1004) i3,n3,cerr,msg0(1:37),msg
|
||||||
1004 format(i2,'.',i1,2x,a1,3x,a37,1x,a37)
|
1004 format(i2,'.',i1,2x,a1,3x,a37,1x,a37)
|
||||||
if(i3.ge.1) write(*,1005) i3,cerr,msg0,msg
|
if(i3.ge.1) write(*,1005) i3,cerr,msg0(1:37),msg
|
||||||
1005 format(i2,'.',3x,a1,3x,a37,1x,a37)
|
1005 format(i2,'.',3x,a1,3x,a37,1x,a37)
|
||||||
if(nargs.eq.1) exit
|
if(nargs.eq.1) exit
|
||||||
enddo
|
enddo
|
||||||
|
41
lib/77bit/encode77.out
Normal file
41
lib/77bit/encode77.out
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
i3.n3 Err Message to be encoded Decoded message
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
1. CQ K1ABC FN42 CQ K1ABC FN42
|
||||||
|
1. K1ABC W9XYZ EN37 K1ABC W9XYZ EN37
|
||||||
|
1. W9XYZ K1ABC -11 W9XYZ K1ABC -11
|
||||||
|
1. K1ABC W9XYZ R-09 K1ABC W9XYZ R-09
|
||||||
|
1. W9XYZ K1ABC RRR W9XYZ K1ABC RRR
|
||||||
|
1. K1ABC W9XYZ 73 K1ABC W9XYZ 73
|
||||||
|
1. CQ K1ABC FN42 CQ K1ABC FN42
|
||||||
|
1. K1ABC W9XYZ -09 K1ABC W9XYZ -09
|
||||||
|
1. W9XYZ K1ABC R-11 W9XYZ K1ABC R-11
|
||||||
|
1. K1ABC W9XYZ RR73 K1ABC W9XYZ RR73
|
||||||
|
1. W9XYZ K1ABC 73 W9XYZ K1ABC 73
|
||||||
|
4. CQ KH1/KH7Z CQ KH1/KH7Z
|
||||||
|
1. KH7Z K1ABC FN42 KH7Z K1ABC FN42
|
||||||
|
1. K1ABC KH7Z -12 K1ABC KH7Z -12
|
||||||
|
1. KH7Z K1ABC R-14 KH7Z K1ABC R-14
|
||||||
|
0.1 K1ABC RR73; W9XYZ <KH1/KH7Z> -08 K1ABC RR73; W9XYZ <KH1/KH7Z> -08
|
||||||
|
1. CQ FD K1ABC FN42 CQ FD K1ABC FN42
|
||||||
|
0.3 K1ABC W9XYZ 6A WI K1ABC W9XYZ 6A WI
|
||||||
|
0.3 W9XYZ K1ABC R 2B EMA W9XYZ K1ABC R 2B EMA
|
||||||
|
1. K1ABC W9XYZ RR73 K1ABC W9XYZ RR73
|
||||||
|
1. CQ TEST K1ABC/R FN42 CQ TEST K1ABC/R FN42
|
||||||
|
1. K1ABC/R W9XYZ EN37 K1ABC/R W9XYZ EN37
|
||||||
|
1. W9XYZ K1ABC/R R FN42 W9XYZ K1ABC/R R FN42
|
||||||
|
1. K1ABC/R W9XYZ RR73 K1ABC/R W9XYZ RR73
|
||||||
|
1. CQ TEST K1ABC FN42 CQ TEST K1ABC FN42
|
||||||
|
3. K1ABC W9XYZ 579 WI K1ABC W9XYZ 579 WI
|
||||||
|
3. W9XYZ K1ABC R 589 MA W9XYZ K1ABC R 589 MA
|
||||||
|
1. K1ABC W9XYZ RR73 K1ABC W9XYZ RR73
|
||||||
|
2. CQ G4ABC/P IO91 CQ G4ABC/P IO91
|
||||||
|
2. G4ABC/P PA9XYZ JO22 G4ABC/P PA9XYZ JO22
|
||||||
|
0.2 PA9XYZ 590003 IO91NP PA9XYZ 590003 IO91NP
|
||||||
|
0.2 G4ABC/P R 570007 JO22DB G4ABC/P R 570007 JO22DB
|
||||||
|
2. PA9XYZ G4ABC/P RR73 PA9XYZ G4ABC/P RR73
|
||||||
|
4. CQ PJ4/K1ABC CQ PJ4/K1ABC
|
||||||
|
4. <PJ4/K1ABC> W9XYZ <PJ4/K1ABC> W9XYZ
|
||||||
|
1. W9XYZ K1ABC -11 W9XYZ K1ABC -11
|
||||||
|
1. K1ABC W9XYZ R-09 K1ABC W9XYZ R-09
|
||||||
|
4. W9XYZ <PJ4/K1ABC> RRR W9XYZ <PJ4/K1ABC> RRR
|
||||||
|
4. <PJ4/K1ABC> W9XYZ 73 <PJ4/K1ABC> W9XYZ 73
|
@ -1,49 +1,62 @@
|
|||||||
FREE TEXT MSG 71 0 71
|
1. Standard QSO
|
||||||
CQ YW18FIFA
|
-----------------------------------------------------------
|
||||||
K1ABC RR73; W9XYZ <KH1/KH7Z> -12 28 28 10 5 1 71 DXpedition Mode
|
|
||||||
PA3XYZ/P R 590003 IO91NP 28 1 1 3 12 25 2 70 EU VHF contest (2)
|
|
||||||
PA3XYZ 520093 IO91NP 28 1 1 3 12 25 2 70 EU VHF contest (2)
|
|
||||||
WA9XYZ KA1ABC R 16A EMA 28 28 1 4 3 7 3 71 ARRL Field Day
|
|
||||||
WA9XYZ KA1ABC 7D EMA 28 28 1 4 3 7 3 71 ARRL Field Day
|
|
||||||
WA9XYZ G8ABC 1D DX 28 28 1 4 3 7 3 71 ARRL Field Day
|
|
||||||
WA9XYZ KA1ABC R 32A EMA 28 28 1 4 3 7 4 71 ARRL Field Day
|
|
||||||
123456789ABCDEF012 71 71 Telemetry (18 hex)
|
|
||||||
71234567 71 71 Telemetry (18 hex)
|
|
||||||
81234567 71 71 Telemetry (18 hex)
|
|
||||||
7123456789ABCDEF01 71 71 Telemetry (18 hex)
|
|
||||||
8123456789ABCDEF01 71 71 Telemetry (18 hex)
|
|
||||||
WA9XYZ/R KA1ABC/R R FN42 28 1 28 1 1 15 74 Standard msg
|
|
||||||
WA9XYZ KA1ABC R-19 28 1 28 1 1 15 74 Standard msg
|
|
||||||
WA9XYZ KA1ABC +03 28 1 28 1 1 15 74 Standard msg
|
|
||||||
WA9XYZ KA1ABC -30 28 1 28 1 1 15 74 Standard msg
|
|
||||||
WA9XYZ KA1ABC +30 28 1 28 1 1 15 74 Standard msg
|
|
||||||
CQ K1ABC FN42
|
CQ K1ABC FN42
|
||||||
DE K1ABC FN42
|
K1ABC W9XYZ EN37
|
||||||
QRZ K1ABC FN42
|
W9XYZ K1ABC -11
|
||||||
CQ AA K1ABC FN42
|
K1ABC W9XYZ R-09
|
||||||
CQ ZZ K1ABC FN42
|
W9XYZ K1ABC RRR
|
||||||
CQ 000 K1ABC FN42
|
K1ABC W9XYZ 73
|
||||||
CQ 313 K1ABC FN42
|
|
||||||
CQ 999 K1ABC FN42
|
2. Short-cycle QSO
|
||||||
CQ AAA K1ABC FN42
|
-----------------------------------------------------------
|
||||||
CQ ZZZ K1ABC FN42
|
CQ K1ABC FN42
|
||||||
CQ AAAA K1ABC FN42
|
K1ABC W9XYZ -09
|
||||||
CQ ZZZZ K1ABC FN42
|
W9XYZ K1ABC R-11
|
||||||
|
K1ABC W9XYZ RR73
|
||||||
|
W9XYZ K1ABC 73
|
||||||
|
|
||||||
|
3. FT8 DXpedition Mode
|
||||||
|
-----------------------------------------------------------
|
||||||
CQ KH1/KH7Z
|
CQ KH1/KH7Z
|
||||||
CQ YW18FIFA
|
KH7Z K1ABC FN42
|
||||||
CQ W4/YW18FIFA
|
K1ABC KH7Z -12
|
||||||
PA1XYZ/P GM4ABC/P R FN42 28 1 28 1 1 15 74 EU VHF Contest
|
KH7Z K1ABC R-14
|
||||||
TU; W9XYZ K1ABC R 579 MA 1 28 28 1 3 13 74 ARRL RTTY contest
|
K1ABC RR73; W9XYZ <KH1/KH7Z> -08
|
||||||
TU; W9XYZ G8ABC R 559 0013 1 28 28 1 3 13 74 ARRL RTTY (DX)
|
|
||||||
W9XYZ K1ABC 519 MA 1 28 28 1 3 13 74 ARRL RTTY contest
|
4. ARRL Field Day
|
||||||
W9XYZ K1ABC 529 MA 1 28 28 1 3 13 74 ARRL RTTY contest
|
-----------------------------------------------------------
|
||||||
W9XYZ K1ABC 599 MA 1 28 28 1 3 13 74 ARRL RTTY contest
|
CQ FD K1ABC FN42
|
||||||
W9XYZ K1ABC 599 SNJ 1 28 28 1 3 13 74 ARRL RTTY contest
|
K1ABC W9XYZ 6A WI
|
||||||
W9XYZ G8ABC 529 0013 1 28 28 1 3 13 74 ARRL RTTY (DX)
|
W9XYZ K1ABC R 2B EMA
|
||||||
W9XYZ G8ABC 599 0013 1 28 28 1 3 13 74 ARRL RTTY (DX)
|
K1ABC W9XYZ RR73
|
||||||
<WA9XYZ> PJ4/KA1ABC 13 58 1 2 74 Nonstandard call
|
|
||||||
PJ4/KA1ABC <WA9XYZ> RRR 13 58 1 2 74 Nonstandard call
|
5. ARRL VHF Contests
|
||||||
<WA9XYZ> PJ4/KA1ABC RR73 13 58 1 2 74 Nonstandard call
|
-----------------------------------------------------------
|
||||||
PJ4/KA1ABC <WA9XYZ> 73 13 58 1 2 74 Nonstandard call
|
CQ TEST K1ABC/R FN42
|
||||||
<WA9XYZ> PJ4/KA1ABC 73 13 58 1 2 74 Nonstandard call
|
K1ABC/R W9XYZ EN37
|
||||||
CQ 313 YW18FIFA
|
W9XYZ K1ABC/R R FN42
|
||||||
|
K1ABC/R W9XYZ RR73
|
||||||
|
|
||||||
|
6. ARRL RTTY Contest
|
||||||
|
-----------------------------------------------------------
|
||||||
|
CQ TEST K1ABC FN42
|
||||||
|
K1ABC W9XYZ 579 WI
|
||||||
|
W9XYZ K1ABC R 589 MA
|
||||||
|
K1ABC W9XYZ RR73
|
||||||
|
|
||||||
|
7. EU VHF Contest
|
||||||
|
-----------------------------------------------------------
|
||||||
|
CQ G4ABC/P IO91
|
||||||
|
G4ABC/P PA9XYZ JO22
|
||||||
|
PA9XYZ 590003 IO91NP
|
||||||
|
G4ABC/P R 570007 JO22DB
|
||||||
|
PA9XYZ G4ABC/P RR73
|
||||||
|
|
||||||
|
8. Compound or goofy calls
|
||||||
|
-----------------------------------------------------------
|
||||||
|
CQ PJ4/K1ABC
|
||||||
|
<PJ4/K1ABC> W9XYZ
|
||||||
|
W9XYZ K1ABC -11
|
||||||
|
K1ABC W9XYZ R-09
|
||||||
|
W9XYZ <PJ4/K1ABC> RRR
|
||||||
|
<PJ4/K1ABC> W9XYZ 73
|
||||||
|
49
lib/77bit/messages_2.txt
Normal file
49
lib/77bit/messages_2.txt
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
FREE TEXT MSG 71 0 71
|
||||||
|
CQ YW18FIFA
|
||||||
|
K1ABC RR73; W9XYZ <KH1/KH7Z> -12 28 28 10 5 1 71 DXpedition Mode
|
||||||
|
PA3XYZ/P R 590003 IO91NP 28 1 1 3 12 25 2 70 EU VHF contest (2)
|
||||||
|
PA3XYZ 520093 IO91NP 28 1 1 3 12 25 2 70 EU VHF contest (2)
|
||||||
|
WA9XYZ KA1ABC R 16A EMA 28 28 1 4 3 7 3 71 ARRL Field Day
|
||||||
|
WA9XYZ KA1ABC 7D EMA 28 28 1 4 3 7 3 71 ARRL Field Day
|
||||||
|
WA9XYZ G8ABC 1D DX 28 28 1 4 3 7 3 71 ARRL Field Day
|
||||||
|
WA9XYZ KA1ABC R 32A EMA 28 28 1 4 3 7 4 71 ARRL Field Day
|
||||||
|
123456789ABCDEF012 71 71 Telemetry (18 hex)
|
||||||
|
71234567 71 71 Telemetry (18 hex)
|
||||||
|
81234567 71 71 Telemetry (18 hex)
|
||||||
|
7123456789ABCDEF01 71 71 Telemetry (18 hex)
|
||||||
|
8123456789ABCDEF01 71 71 Telemetry (18 hex)
|
||||||
|
WA9XYZ/R KA1ABC/R R FN42 28 1 28 1 1 15 74 Standard msg
|
||||||
|
WA9XYZ KA1ABC R-19 28 1 28 1 1 15 74 Standard msg
|
||||||
|
WA9XYZ KA1ABC +03 28 1 28 1 1 15 74 Standard msg
|
||||||
|
WA9XYZ KA1ABC -30 28 1 28 1 1 15 74 Standard msg
|
||||||
|
WA9XYZ KA1ABC +30 28 1 28 1 1 15 74 Standard msg
|
||||||
|
CQ K1ABC FN42
|
||||||
|
DE K1ABC FN42
|
||||||
|
QRZ K1ABC FN42
|
||||||
|
CQ AA K1ABC FN42
|
||||||
|
CQ ZZ K1ABC FN42
|
||||||
|
CQ 000 K1ABC FN42
|
||||||
|
CQ 313 K1ABC FN42
|
||||||
|
CQ 999 K1ABC FN42
|
||||||
|
CQ AAA K1ABC FN42
|
||||||
|
CQ ZZZ K1ABC FN42
|
||||||
|
CQ AAAA K1ABC FN42
|
||||||
|
CQ ZZZZ K1ABC FN42
|
||||||
|
CQ KH1/KH7Z
|
||||||
|
CQ YW18FIFA
|
||||||
|
CQ W4/YW18FIFA
|
||||||
|
PA1XYZ/P GM4ABC/P R FN42 28 1 28 1 1 15 74 EU VHF Contest
|
||||||
|
TU; W9XYZ K1ABC R 579 MA 1 28 28 1 3 13 74 ARRL RTTY contest
|
||||||
|
TU; W9XYZ G8ABC R 559 0013 1 28 28 1 3 13 74 ARRL RTTY (DX)
|
||||||
|
W9XYZ K1ABC 519 MA 1 28 28 1 3 13 74 ARRL RTTY contest
|
||||||
|
W9XYZ K1ABC 529 MA 1 28 28 1 3 13 74 ARRL RTTY contest
|
||||||
|
W9XYZ K1ABC 599 MA 1 28 28 1 3 13 74 ARRL RTTY contest
|
||||||
|
W9XYZ K1ABC 599 SNJ 1 28 28 1 3 13 74 ARRL RTTY contest
|
||||||
|
W9XYZ G8ABC 529 0013 1 28 28 1 3 13 74 ARRL RTTY (DX)
|
||||||
|
W9XYZ G8ABC 599 0013 1 28 28 1 3 13 74 ARRL RTTY (DX)
|
||||||
|
<WA9XYZ> PJ4/KA1ABC 13 58 1 2 74 Nonstandard call
|
||||||
|
PJ4/KA1ABC <WA9XYZ> RRR 13 58 1 2 74 Nonstandard call
|
||||||
|
<WA9XYZ> PJ4/KA1ABC RR73 13 58 1 2 74 Nonstandard call
|
||||||
|
PJ4/KA1ABC <WA9XYZ> 73 13 58 1 2 74 Nonstandard call
|
||||||
|
<WA9XYZ> PJ4/KA1ABC 73 13 58 1 2 74 Nonstandard call
|
||||||
|
CQ 313 YW18FIFA
|
@ -15,28 +15,44 @@ subroutine pack77_1(nwords,w,i3,n3,c77)
|
|||||||
grid4(3:3).ge.'0' .and. grid4(3:3).le.'9' .and. &
|
grid4(3:3).ge.'0' .and. grid4(3:3).le.'9' .and. &
|
||||||
grid4(4:4).ge.'0' .and. grid4(4:4).le.'9'
|
grid4(4:4).ge.'0' .and. grid4(4:4).le.'9'
|
||||||
|
|
||||||
if(nwords.lt.3 .or. nwords.gt.4) return
|
if(nwords.lt.2 .or. nwords.gt.4) return
|
||||||
call chkcall(w(1),bcall_1,ok1)
|
call chkcall(w(1),bcall_1,ok1)
|
||||||
call chkcall(w(2),bcall_2,ok2)
|
call chkcall(w(2),bcall_2,ok2)
|
||||||
if(w(1)(1:3).eq.'DE ' .or. w(1)(1:3).eq.'CQ_' .or. w(1)(1:3).eq.'CQ ' .or. &
|
if(w(1)(1:3).eq.'DE ' .or. w(1)(1:3).eq.'CQ_' .or. w(1)(1:3).eq.'CQ ' .or. &
|
||||||
w(1)(1:4).eq.'QRZ ') ok1=.true.
|
w(1)(1:4).eq.'QRZ ') ok1=.true.
|
||||||
if(.not.ok1 .or. .not.ok2) return
|
if(.not.ok1 .or. .not.ok2) return
|
||||||
|
if(nwords.eq.2 .and. (.not.ok2 .or. index(w(2),'/').ge.2)) return
|
||||||
|
if(nwords.eq.2) go to 10
|
||||||
|
|
||||||
c1=w(nwords)(1:1)
|
c1=w(nwords)(1:1)
|
||||||
c2=w(nwords)(1:2)
|
c2=w(nwords)(1:2)
|
||||||
if(.not.is_grid4(w(nwords)(1:4)) .and. c1.ne.'+' .and. c1.ne.'-' &
|
if(.not.is_grid4(w(nwords)(1:4)) .and. c1.ne.'+' .and. c1.ne.'-' &
|
||||||
.and. c2.ne.'R+' .and. c2.ne.'R-') return
|
.and. c2.ne.'R+' .and. c2.ne.'R-' .and. trim(w(nwords)).ne.'RRR' .and. &
|
||||||
|
trim(w(nwords)).ne.'RR73' .and. trim(w(nwords)).ne.'73') return
|
||||||
if(c1.eq.'+' .or. c1.eq.'-') then
|
if(c1.eq.'+' .or. c1.eq.'-') then
|
||||||
ir=0
|
ir=0
|
||||||
read(w(nwords),*) irpt
|
read(w(nwords),*) irpt
|
||||||
|
irpt=irpt+35
|
||||||
else if(c2.eq.'R+' .or. c2.eq.'R-') then
|
else if(c2.eq.'R+' .or. c2.eq.'R-') then
|
||||||
ir=1
|
ir=1
|
||||||
read(w(nwords)(2:),*) irpt
|
read(w(nwords)(2:),*) irpt
|
||||||
|
irpt=irpt+35
|
||||||
|
else if(trim(w(nwords)).eq.'RRR') then
|
||||||
|
ir=0
|
||||||
|
irpt=2
|
||||||
|
else if(trim(w(nwords)).eq.'RR73') then
|
||||||
|
ir=0
|
||||||
|
irpt=3
|
||||||
|
else if(trim(w(nwords)).eq.'73') then
|
||||||
|
ir=0
|
||||||
|
irpt=4
|
||||||
endif
|
endif
|
||||||
|
|
||||||
! 1 WA9XYZ/R KA1ABC/R R FN42 28 1 28 1 1 15 74 Standard msg
|
! 1 WA9XYZ/R KA1ABC/R R FN42 28 1 28 1 1 15 74 Standard msg
|
||||||
! 2 PA3XYZ/P GM4ABC/P R JO22 28 1 28 1 1 15 74 EU VHF contest
|
! 2 PA3XYZ/P GM4ABC/P R JO22 28 1 28 1 1 15 74 EU VHF contest
|
||||||
|
|
||||||
if(nwords.eq.3 .or. (nwords.eq.4 .and. w(3)(1:2).eq.'R ')) then
|
10 if(nwords.eq.2 .or. nwords.eq.3 .or. (nwords.eq.4 .and. &
|
||||||
|
w(3)(1:2).eq.'R ')) then
|
||||||
n3=0
|
n3=0
|
||||||
i3=1 !Type 1: Standard message, possibly with "/R"
|
i3=1 !Type 1: Standard message, possibly with "/R"
|
||||||
if(index(w(1),'/P').ge.4 .or. index(w(2),'/P').ge.4) i3=2 !Type 2, with "/P"
|
if(index(w(1),'/P').ge.4 .or. index(w(2),'/P').ge.4) i3=2 !Type 2, with "/P"
|
||||||
@ -61,12 +77,15 @@ subroutine pack77_1(nwords,w,i3,n3,c77)
|
|||||||
j4=(ichar(grid4(4:4))-ichar('0'))
|
j4=(ichar(grid4(4:4))-ichar('0'))
|
||||||
igrid4=j1+j2+j3+j4
|
igrid4=j1+j2+j3+j4
|
||||||
else
|
else
|
||||||
igrid4=MAXGRID4 + 35 + irpt
|
igrid4=MAXGRID4 + irpt
|
||||||
|
endif
|
||||||
|
if(nwords.eq.2) then
|
||||||
|
ir=0
|
||||||
|
irpt=1
|
||||||
|
igrid4=MAXGRID4+irpt
|
||||||
endif
|
endif
|
||||||
write(c77,1000) n28a,ipa,n28b,ipb,ir,igrid4,i3
|
write(c77,1000) n28a,ipa,n28b,ipb,ir,igrid4,i3
|
||||||
1000 format(2(b28.28,b1),b1,b15.15,b3.3)
|
1000 format(2(b28.28,b1),b1,b15.15,b3.3)
|
||||||
! print*,igrid4
|
|
||||||
! print*,c77
|
|
||||||
|
|
||||||
return
|
return
|
||||||
end subroutine pack77_1
|
end subroutine pack77_1
|
||||||
|
@ -120,8 +120,7 @@ subroutine unpack77(c77,msg)
|
|||||||
msg=adjustl(msg)
|
msg=adjustl(msg)
|
||||||
|
|
||||||
else if(i3.eq.1 .or. i3.eq.2) then
|
else if(i3.eq.1 .or. i3.eq.2) then
|
||||||
! Standard message (Type 1) or "/P" form of standard message for EU VHF contest (Type 2)
|
! Type 1 (standard message) or Type 2 ("/P" form for EU VHF contest)
|
||||||
!### Here and elsewhere, must enable rpt/RRR/RR73/73 in igrid4
|
|
||||||
read(c77,1000) n28a,ipa,n28b,ipb,ir,igrid4,i3
|
read(c77,1000) n28a,ipa,n28b,ipb,ir,igrid4,i3
|
||||||
1000 format(2(b28,b1),b1,b15,b3)
|
1000 format(2(b28,b1),b1,b15,b3)
|
||||||
call unpack28(n28a,call_1)
|
call unpack28(n28a,call_1)
|
||||||
@ -130,6 +129,7 @@ subroutine unpack77(c77,msg)
|
|||||||
i=index(call_1,' ')
|
i=index(call_1,' ')
|
||||||
if(i.ge.4 .and. ipa.eq.1 .and. i3.eq.1) call_1(i:i+1)='/R'
|
if(i.ge.4 .and. ipa.eq.1 .and. i3.eq.1) call_1(i:i+1)='/R'
|
||||||
if(i.ge.4 .and. ipa.eq.1 .and. i3.eq.2) call_1(i:i+1)='/P'
|
if(i.ge.4 .and. ipa.eq.1 .and. i3.eq.2) call_1(i:i+1)='/P'
|
||||||
|
i=index(call_2,' ')
|
||||||
if(i.ge.4 .and. ipb.eq.1 .and. i3.eq.1) call_2(i:i+1)='/R'
|
if(i.ge.4 .and. ipb.eq.1 .and. i3.eq.1) call_2(i:i+1)='/R'
|
||||||
if(i.ge.4 .and. ipb.eq.1 .and. i3.eq.2) call_2(i:i+1)='/P'
|
if(i.ge.4 .and. ipb.eq.1 .and. i3.eq.2) call_2(i:i+1)='/P'
|
||||||
|
|
||||||
@ -151,7 +151,7 @@ subroutine unpack77(c77,msg)
|
|||||||
irpt=igrid4-MAXGRID4
|
irpt=igrid4-MAXGRID4
|
||||||
if(irpt.eq.1) msg=trim(call_1)//' '//trim(call_2)
|
if(irpt.eq.1) msg=trim(call_1)//' '//trim(call_2)
|
||||||
if(irpt.eq.2) msg=trim(call_1)//' '//trim(call_2)//' RRR'
|
if(irpt.eq.2) msg=trim(call_1)//' '//trim(call_2)//' RRR'
|
||||||
if(irpt.eq.2) msg=trim(call_1)//' '//trim(call_2)//' RR73'
|
if(irpt.eq.3) msg=trim(call_1)//' '//trim(call_2)//' RR73'
|
||||||
if(irpt.eq.4) msg=trim(call_1)//' '//trim(call_2)//' 73'
|
if(irpt.eq.4) msg=trim(call_1)//' '//trim(call_2)//' 73'
|
||||||
if(irpt.ge.5) then
|
if(irpt.ge.5) then
|
||||||
write(crpt,'(i3.2)') irpt-35
|
write(crpt,'(i3.2)') irpt-35
|
||||||
|
Loading…
Reference in New Issue
Block a user