Skip to content

Commit

Permalink
Update dgeev_rel. refs #4
Browse files Browse the repository at this point in the history
call dgeev differently based on the presence of eig_vecl.
  • Loading branch information
gha3mi committed Jul 22, 2023
1 parent 0f248fb commit 7d65a67
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions src/foreig.f90
Original file line number Diff line number Diff line change
Expand Up @@ -113,15 +113,25 @@ pure subroutine dgeev(fjobvl, fjobvr, fn, fA, flda, fwr, fwi, fvl, fldvl, fvr, f
m = size(matrix, 1)
A = matrix

call dgeev('V', 'V', m, A, m, wr, wi, vl, m, vr, m, work1, -1, info)
if (present(eig_vecl)) then
eig_vecl = matrix
call dgeev('V', 'V', m, A, m, wr, wi, vl, m, vr, m, work1, -1, info)
else
call dgeev('N', 'V', m, A, m, wr, wi, vl, m, vr, m, work1, -1, info)
end if

lwork = nint(work1(1))
allocate(work(lwork))

call dgeev('V', 'V', m, A, m, wr, wi, vl, m, vr, m, work, lwork, info)


if (present(eig_vecl)) then
call dgeev('V', 'V', m, A, m, wr, wi, vl, m, vr, m, work, lwork, info)
eig_vecl = vl
else
call dgeev('N', 'V', m, A, m, wr, wi, vl, m, vr, m, work, lwork, info)
end if

eig_val = wr
eig_vecr = vr
if (present(eig_vecl)) eig_vecl = vl

deallocate(work)

Expand Down

0 comments on commit 7d65a67

Please sign in to comment.