handle_gesv_info Subroutine

public elemental subroutine handle_gesv_info(this, info, lda, n, nrhs, err)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: this
integer(kind=ilp), intent(in) :: info
integer(kind=ilp), intent(in) :: lda
integer(kind=ilp), intent(in) :: n
integer(kind=ilp), intent(in) :: nrhs
type(linalg_state_type), intent(out) :: err

Source Code

     elemental subroutine handle_gesv_info(this,info,lda,n,nrhs,err)
         character(len=*), intent(in) :: this
         integer(ilp), intent(in) :: info,lda,n,nrhs
         type(linalg_state_type), intent(out) :: err

         ! Process output
         select case (info)
            case (0)
                ! Success
            case (-1)
                err = linalg_state_type(this,LINALG_VALUE_ERROR,'invalid problem size n=',n)
            case (-2)
                err = linalg_state_type(this,LINALG_VALUE_ERROR,'invalid rhs size n=',nrhs)
            case (-4)
                err = linalg_state_type(this,LINALG_VALUE_ERROR,'invalid matrix size a=',[lda,n])
            case (-7)
                err = linalg_state_type(this,LINALG_ERROR,'invalid matrix size a=',[lda,n])
            case (1:)
                err = linalg_state_type(this,LINALG_ERROR,'singular matrix')
            case default
                err = linalg_state_type(this,LINALG_INTERNAL_ERROR,'catastrophic error')
         end select
         
     end subroutine handle_gesv_info