module ddot_mod implicit none contains function ddot (arr1, arr2) result (product) double precision :: product real, dimension(:), intent(in) :: arr1, arr2 product = sum(dprod(arr1, arr2)) end function ddot end module ddot_mod