@@ -162,14 +162,17 @@ submodule (stdlib_linalg) stdlib_linalg_eigenvalues
162162
163163 !> Local variables
164164 type(linalg_state_type) :: err0
165- integer(ilp) :: m,n,lda,ldu,ldv,info,k,lwork,lrwork, neig
165+ integer(ilp) :: m,n,lda,ldu,ldv,info,k,lwork,neig
166166 logical(lk) :: copy_a
167167 character :: task_u,task_v
168168 ${rt}$, target :: work_dummy(1),u_dummy(1,1),v_dummy(1,1)
169169 ${rt}$, allocatable :: work(:)
170+ ${rt}$, pointer :: amat(:,:),umat(:,:),vmat(:,:)
171+ #:if rt.startswith('complex')
170172 real(${rk}$), allocatable :: rwork(:)
171- ${rt}$, pointer :: amat(:,:),lreal(:),limag(:),umat(:,:),vmat(:,:)
172-
173+ #:else
174+ ${rt}$, pointer :: lreal(:),limag(:)
175+ #:endif
173176 !> Matrix size
174177 m = size(a,1,kind=ilp)
175178 n = size(a,2,kind=ilp)
@@ -388,7 +391,9 @@ submodule (stdlib_linalg) stdlib_linalg_eigenvalues
388391 character :: triangle,task
389392 ${rt}$, target :: work_dummy(1)
390393 ${rt}$, allocatable :: work(:)
394+ #:if rt.startswith('complex')
391395 real(${rk}$), allocatable :: rwork(:)
396+ #:endif
392397 ${rt}$, pointer :: amat(:,:)
393398
394399 !> Matrix size
0 commit comments