module vector_algebra
  implicit none

! define here the vector type and overload operators

contains
! implement the functions

  function vector_sum(v1, v2) result(v3)
!
  end function vector_sum

  function vector_subs(v1, v2) result(v3)
!
  end function vector_subs

  function vector_dot_product(v1, v2) result(d)
!
  end function vector_dot_product

  function vector_cross_product(v1, v2) result(v3)
!
  end function vector_cross_product

  function vector_norm(v) result(l)
!
  end function vector_norm

end module vector_algebra
