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