Make_Tridiagonal Function

public function Make_Tridiagonal(d_minus, d, d_plus) result(T)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in), dimension(:) :: d_minus
real(kind=dp), intent(in), dimension(:) :: d
real(kind=dp), intent(in), dimension(:) :: d_plus

Return Value real(kind=dp), dimension(size(d, 1), size(d, 1))


Source Code

    function Make_Tridiagonal(d_minus, d, d_plus) result(T)
        real(dp), dimension(:), intent(in) :: d_minus, d, d_plus
        real(dp), dimension(size(d, 1), size(d, 1)) :: T
        integer :: i, N

        N = size(d, 1)

        T = 0.d0
        do i = 1, N
            T(i, i) = d(i)
            if (i > 1) T(i, i - 1) = d_minus(i)
            if (i < N) T(i, i + 1) = d_plus(i)
        end do

    end function Make_Tridiagonal