2018-07-11 10:13:42 -04:00
|
|
|
function stdmsg(msg0)
|
2013-03-11 15:43:06 -04:00
|
|
|
|
2018-07-11 10:13:42 -04:00
|
|
|
! Returns .true. if msg0 a standard "JT-style" message
|
|
|
|
|
|
|
|
! itype
|
|
|
|
! 1 Standard 72-bit structured message
|
|
|
|
! 2 Type 1 prefix
|
|
|
|
! 3 Type 1 suffix
|
|
|
|
! 4 Type 2 prefix
|
|
|
|
! 5 Type 2 suffix
|
|
|
|
! 6 Free text
|
|
|
|
! 7 Hashed calls (MSK144 short format)
|
|
|
|
|
|
|
|
! i3.n3
|
|
|
|
! 0.0 Free text
|
|
|
|
! 0.1 DXpeditiion mode
|
|
|
|
! 0.2 EU VHF Contest
|
|
|
|
! 0.3 ARRL Field Day <=16 transmitters
|
|
|
|
! 0.4 ARRL Field Day >16 transmitters
|
|
|
|
! 0.5 telemetry
|
|
|
|
! 0.6
|
|
|
|
! 0.7
|
|
|
|
! 1 Standard 77-bit structured message (optional /R)
|
|
|
|
! 2 EU VHF Contest (optional /P)
|
|
|
|
! 3 ARRL RTTY Contest
|
|
|
|
! 4 Nonstandard calls
|
2017-09-29 12:58:05 -04:00
|
|
|
|
2017-09-01 16:10:35 -04:00
|
|
|
use iso_c_binding, only: c_bool
|
2015-04-22 13:48:03 -04:00
|
|
|
use packjt
|
2018-07-11 10:13:42 -04:00
|
|
|
character*37 msg0,msg1,msg
|
2013-03-11 15:43:06 -04:00
|
|
|
integer dat(12)
|
2017-09-01 16:10:35 -04:00
|
|
|
logical(c_bool) :: stdmsg
|
2013-03-11 15:43:06 -04:00
|
|
|
|
2017-09-29 12:53:57 -04:00
|
|
|
msg1=msg0
|
|
|
|
i0=index(msg1,' OOO ')
|
|
|
|
if(i0.gt.10) msg1=msg0(1:i0)
|
2018-07-10 15:09:42 -04:00
|
|
|
call packmsg(msg0,dat,itype)
|
2018-07-11 10:13:42 -04:00
|
|
|
call unpackmsg(dat,msg)
|
|
|
|
msg(23:37)=' '
|
2017-09-29 12:53:57 -04:00
|
|
|
stdmsg=(msg.eq.msg1) .and. (itype.ge.0) .and. itype.ne.6
|
2018-07-11 10:13:42 -04:00
|
|
|
if(.not.stdmsg) then
|
|
|
|
call parse77(msg1,i3,n3)
|
|
|
|
if(i3.gt.0 .or. n3.gt.0) stdmsg=.true.
|
|
|
|
endif
|
2013-03-11 15:43:06 -04:00
|
|
|
|
|
|
|
return
|
|
|
|
end function stdmsg
|