handle_gelsd_info Subroutine

public elemental subroutine handle_gelsd_info(this, info, lda, n, ldb, 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) :: ldb
integer(kind=ilp), intent(in) :: nrhs
type(linalg_state_type), intent(out) :: err

Source Code

     elemental subroutine handle_gelsd_info(this,info,lda,n,ldb,nrhs,err)
          character(len=*), intent(in) :: this
          integer(ilp), intent(in) :: info,lda,n,ldb,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 a=',[lda,n], &
                                                                                    ', b=',[ldb,nrhs])
             case (1:)
                 err = linalg_state_type(this,LINALG_ERROR,'SVD did not converge.')
             case default
                 err = linalg_state_type(this,LINALG_INTERNAL_ERROR,'catastrophic error')
          end select

      end subroutine handle_gelsd_info