subroutine scalprod(n, x_p, y_p, res) bind(c)
    use iso_c_binding
    implicit none
    integer(c_int), intent(in), value :: n
    type(c_ptr), intent(in), value :: x_p, y_p
    real(c_double), pointer :: x(:), y(:)
    integer :: i

    real(c_double) :: res
    real(c_double) :: scalpt = 0
    call c_f_pointer(x_p, x, shape=[n])
    call c_f_pointer(y_p, y, shape=[n])
    res = 0
!$omp parallel do private(scalpt), reduction(+:res)
    do i=1,n
        scalpt = y(i) * x(i)
        res = res + scalpt
    end do
end subroutine scalprod
