kopia lustrzana https://github.com/kgoba/ft8_lib
56 wiersze
1.7 KiB
Fortran
56 wiersze
1.7 KiB
Fortran
program grid4_to_g15
|
|
|
|
parameter (MAXGRID4=32400)
|
|
character*4 w,grid4
|
|
character c1*1,c2*2
|
|
logical is_grid4
|
|
is_grid4(grid4)=len(trim(grid4)).eq.4 .and. &
|
|
grid4(1:1).ge.'A' .and. grid4(1:1).le.'R' .and. &
|
|
grid4(2:2).ge.'A' .and. grid4(2:2).le.'R' .and. &
|
|
grid4(3:3).ge.'0' .and. grid4(3:3).le.'9' .and. &
|
|
grid4(4:4).ge.'0' .and. grid4(4:4).le.'9'
|
|
|
|
nargs=iargc()
|
|
if(nargs.ne.1) then
|
|
print*,'Convert a 4-character grid, signal report, etc., to a g15 value.'
|
|
print*,'Usage examples:'
|
|
print*,'grid4_to_g15 FN20'
|
|
print*,'grid4_to_g15 -11'
|
|
print*,'grid4_to_g15 +02'
|
|
print*,'grid4_to_g15 RRR'
|
|
print*,'grid4_to_g15 RR73'
|
|
print*,'grid4_to_g15 73'
|
|
print*,'grid4_to_g15 ""'
|
|
go to 999
|
|
endif
|
|
call getarg(1,w)
|
|
if(is_grid4(w) .and. w.ne.'RR73') then
|
|
j1=(ichar(w(1:1))-ichar('A'))*18*10*10
|
|
j2=(ichar(w(2:2))-ichar('A'))*10*10
|
|
j3=(ichar(w(3:3))-ichar('0'))*10
|
|
j4=(ichar(w(4:4))-ichar('0'))
|
|
igrid4=j1+j2+j3+j4
|
|
else
|
|
c1=w(1:1)
|
|
if(c1.ne.'+' .and. c1.ne.'-'.and. trim(w).ne.'RRR' .and. w.ne.'RR73' &
|
|
.and. trim(w).ne.'73' .and. len(trim(w)).ne.0) go to 900
|
|
if(c1.eq.'+' .or. c1.eq.'-') then
|
|
read(w,*,err=900) irpt
|
|
irpt=irpt+35
|
|
endif
|
|
if(len(trim(w)).eq.0) irpt=1
|
|
if(trim(w).eq.'RRR') irpt=2
|
|
if(w.eq.'RR73') irpt=3
|
|
if(trim(w).eq.'73') irpt=4
|
|
igrid4=MAXGRID4 + irpt
|
|
endif
|
|
|
|
write(*,1000) w,igrid4,igrid4
|
|
1000 format('Encoded word: ',a4,' g15 in binary: ',b15.15,' decimal:',i6)
|
|
go to 999
|
|
|
|
900 write(*,1900)
|
|
1900 format('Invalid input')
|
|
|
|
999 end program grid4_to_g15
|