diff options
author | langou <langou@users.noreply.github.com> | 2009-05-10 20:59:05 +0000 |
---|---|---|
committer | langou <langou@users.noreply.github.com> | 2009-05-10 20:59:05 +0000 |
commit | 5a71683a1ac4f40b50e9220bcc5de6f272a077c8 (patch) | |
tree | 46c6b97506c1dfc6644b234b2cbe26aacb30d368 /SRC/ztgsen.f | |
parent | 9c2e9f0bcaa09a539cc3afde42aab85a5b2b4a9e (diff) |
[[ I did not really want to commit the previous commit, this is the follow-up commit ... ]]
Bug report sent by Alexander V. Kobotov (from Intel) on Mon, 6 Apr 2009 to "lapack@cs.utk.edu".
"(d/s)tgsen.f: iwork(1) always referenced: line 455: iwork( 1 ) = LIWMIN,
documentation says that if IJOB=0 it shouldn't, so NULL pointer causes a
sigfault."
(There is indeed the same problem for the WORK array and the IWORK array in the
complex routines.)
I have changed the header of the routines ctgsen.f, dtgsen.f, stgsen.f, and
ztgsen.f. A Fortran array needs to be of size at least 1. So IWORK is of size
at least 1. It was indeed written in the header of the routine:
"IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))"
So since IWORK is of size at least 1, there is no reason not to reference it.
When there is a workspace query with IJOB.EQ.0, WORK(1) and IWORK(1) are both
set to 1.
Diffstat (limited to 'SRC/ztgsen.f')
-rw-r--r-- | SRC/ztgsen.f | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/SRC/ztgsen.f b/SRC/ztgsen.f index ff7dcae7..5e4e4fda 100644 --- a/SRC/ztgsen.f +++ b/SRC/ztgsen.f @@ -155,8 +155,7 @@ * If IJOB = 0 or 1, DIF is not referenced. * * WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK)) -* IF IJOB = 0, WORK is not referenced. Otherwise, -* on exit, if INFO = 0, WORK(1) returns the optimal LWORK. +* On exit, if INFO = 0, WORK(1) returns the optimal LWORK. * * LWORK (input) INTEGER * The dimension of the array WORK. LWORK >= 1 |