c_invert_tridiag_matrix_mat Subroutine

subroutine c_invert_tridiag_matrix_mat(Amat)

Arguments

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

Calls

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

Source Code

subroutine c_invert_tridiag_matrix_mat(Amat)
  complex(8),dimension(:,:),intent(inout)         :: Amat
  complex(8),dimension(size(Amat,1))              :: diag_
  complex(8),dimension(size(Amat,1)-1)            :: sub_
  complex(8),dimension(size(Amat,1)-1)            :: over_
  complex(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= dcmplx(0d0,0d0)
  forall(i=1:N)Amat(i,i)=Inv(i)
end subroutine c_invert_tridiag_matrix_mat