@@ -4,6 +4,7 @@ submodule (stdlib_linalg) stdlib_linalg_inverse
44!! Compute inverse of a square matrix 
55 use stdlib_linalg_constants
66 use stdlib_linalg_lapack, only: getri,getrf,stdlib_ilaenv
7+  use stdlib_linalg_lapack_aux, only: handle_getri_info
78 use stdlib_linalg_state, only: linalg_state_type, linalg_error_handling, LINALG_ERROR, &
89 LINALG_INTERNAL_ERROR, LINALG_VALUE_ERROR
910 use ieee_arithmetic, only: ieee_value, ieee_quiet_nan
@@ -13,25 +14,6 @@ submodule (stdlib_linalg) stdlib_linalg_inverse
1314
1415 contains
1516
16-  elemental subroutine handle_getri_info(info,lda,n,err)
17-  integer(ilp), intent(in) :: info,lda,n
18-  type(linalg_state_type), intent(out) :: err
19- 
20-  ! Process output
21-  select case (info)
22-  case (0)
23-  ! Success
24-  case (:-1)
25-  err = linalg_state_type(this,LINALG_ERROR,'invalid matrix size a=',[lda,n])
26-  case (1:)
27-  ! Matrix is singular
28-  err = linalg_state_type(this,LINALG_ERROR,'singular matrix')
29-  case default
30-  err = linalg_state_type(this,LINALG_INTERNAL_ERROR,'catastrophic error')
31-  end select
32-  
33-  end subroutine handle_getri_info
34- 
3517 #:for rk,rt,ri in RC_KINDS_TYPES
3618 ! Compute the in-place square matrix inverse of a
3719 module subroutine stdlib_linalg_invert_inplace_${ri}$(a,pivot,err)
@@ -86,7 +68,7 @@ submodule (stdlib_linalg) stdlib_linalg_inverse
8668 endif
8769
8870 ! Process output
89-  call handle_getri_info(info,lda,n,err0)
71+  call handle_getri_info(this, info,lda,n,err0)
9072
9173 ! Process output and return
9274 if (.not.present(pivot)) deallocate(ipiv)
0 commit comments