forlab_linalg_diag.f90 Source File


Contents


Source Code

submodule(forlab_linalg) forlab_linalg_diag

    implicit none

contains
    module procedure diag1_sp
    integer :: i, n
    n = min(size(A, 1), size(A, 2))
    allocate (diag(n))
    do i = 1, n
        diag(i) = A(i, i)
    end do
    return
    end procedure

    module procedure diag2_sp
    integer :: i, n
    n = size(x)
    diag = zeros(n, n)
    do i = 1, n
        diag(i, i) = x(i)
    end do
    return
    end procedure diag2_sp
    module procedure diag1_dp
    integer :: i, n
    n = min(size(A, 1), size(A, 2))
    allocate (diag(n))
    do i = 1, n
        diag(i) = A(i, i)
    end do
    return
    end procedure

    module procedure diag2_dp
    integer :: i, n
    n = size(x)
    diag = zeros(n, n)
    do i = 1, n
        diag(i, i) = x(i)
    end do
    return
    end procedure diag2_dp

end submodule forlab_linalg_diag