Zsolve_Mrhs Subroutine

subroutine Zsolve_Mrhs(A, b, trans)

Arguments

Type IntentOptional Attributes Name
complex(kind=8), intent(in), dimension(:,:) :: A
complex(kind=8), intent(inout), dimension(:,:) :: b
character(len=1), optional :: trans

Calls

proc~~zsolve_mrhs~~CallsGraph proc~zsolve_mrhs Zsolve_Mrhs zgetrf zgetrf proc~zsolve_mrhs->zgetrf zgetrs zgetrs proc~zsolve_mrhs->zgetrs

Source Code

subroutine Zsolve_Mrhs(A,b,trans)
  complex(8),dimension(:,:),intent(in)    :: A
  complex(8),dimension(:,:),intent(inout) :: b
  character(len=1),optional          :: trans
  character(len=1)                   :: trans_
  integer                            :: m,n,nrhs,lda,ldb
  integer                            :: info
  integer,dimension(:),allocatable   :: ipvt
  trans_="N";if(present(trans))trans_=trans
  lda = max(1,size(A,1))
  ldb = max(1,size(B,1))
  m   = size(A,1)
  n   = size(A,2)
  nrhs= size(B,2)   
  allocate(ipvt(n))
  call zgetrf(m,n,A,lda,ipvt,info)
  if(info/=0)stop "Error MATRIX/d_mat_solve_linear_system: dgetrf"    
  lda=n ; ldb=n ; nrhs=size(b,2)
  call zgetrs(trans_,n,nrhs,A,lda,ipvt,b,ldb,info)
  if(info/=0)stop "Error MATRIX/d_mat_solve_linear_system: dgetrs"
  deallocate(ipvt)
end subroutine Zsolve_Mrhs