WSJT-X/lib/superfox/qpc/qpc_mod.f90

39 lines
1.4 KiB
Fortran
Raw Normal View History

module qpc_mod
interface
integer(c_int32_t) function nhash2 (xin, length, initval) bind(C, &
name="nhash2")
use iso_c_binding, only: c_signed_char, c_int64_t, c_int32_t
integer(c_int64_t), intent(in), value :: length
integer(c_signed_char), intent(in) :: xin(length)
integer(c_int32_t), intent(in), value :: initval
end function nhash2
end interface
interface
subroutine qpc_encode(y, xin) bind(C,name="qpc_encode")
use iso_c_binding, only: c_ptr, c_signed_char
integer(c_signed_char), intent(out) :: y(127)
integer(c_signed_char), intent(in) :: xin(50)
end subroutine qpc_encode
end interface
interface
subroutine qpc_channel(yout, y, EsNo) bind(C,name="qpc_channel")
use iso_c_binding, only: c_float_complex, c_float, c_signed_char
complex(c_float_complex), intent(out) :: yout(128,128)
integer(c_signed_char), intent(out) :: y(127)
real(c_float), intent(in), value :: EsNo
end subroutine qpc_channel
end interface
interface
subroutine qpc_decode(xdec, ydec, py) bind(C,name="qpc_decode")
use iso_c_binding, only: c_float, c_signed_char
real(c_float), intent(in) :: py(128,128)
integer(c_signed_char), intent(out) :: ydec(127)
integer(c_signed_char), intent(out) :: xdec(50)
end subroutine qpc_decode
end interface
end module qpc_mod