d_invert_tridiag_matrix_mat Subroutine

subroutine d_invert_tridiag_matrix_mat(Amat)

Arguments

Type IntentOptional Attributes Name
real(kind=8), intent(inout), dimension(:,:) :: Amat

Calls

proc~~d_invert_tridiag_matrix_mat~2~~CallsGraph proc~d_invert_tridiag_matrix_mat~2 d_invert_tridiag_matrix_mat assert_shape assert_shape proc~d_invert_tridiag_matrix_mat~2->assert_shape get_tridiag get_tridiag proc~d_invert_tridiag_matrix_mat~2->get_tridiag inv_tridiag inv_tridiag proc~d_invert_tridiag_matrix_mat~2->inv_tridiag

Source Code

subroutine d_invert_tridiag_matrix_mat(Amat)
  real(8),dimension(:,:),intent(inout)         :: Amat
  real(8),dimension(size(Amat,1))              :: diag_
  real(8),dimension(size(Amat,1)-1)            :: sub_
  real(8),dimension(size(Amat,1)-1)            :: over_
  real(8),dimension(size(Amat,1))              :: Inv
  integer                                      :: i,N
  N=size(Amat,1)
  call assert_shape(Amat,[N,N],"d_invert_tridiag_matrix_mat","Amat")
  call get_tridiag(Amat,sub_,diag_,over_)
  call inv_tridiag(N,sub_,diag_,over_,Inv)
  Amat= 0d0
  forall(i=1:N)Amat(i,i)=Inv(i)
end subroutine d_invert_tridiag_matrix_mat