Bugs in DLASD8 and DLASD6
We got a fatal DLASD4 error message when we run IpOpt: "On entry to DLASD4 paramater number -1 had an illegal value", we think the bug is in DLASD8, which calls DLASD4 and then handles the INFO=1 error return incorrectly (see line 282 in DLASD8 http://www.netlib.org/lapack/explore-html/d8/d96/dlasd8_8f_source.html). That error indicates that DLASD4 failed to converge and should have been reported as an INFO=1 return to DLASD8's caller. It should not have been passed to XERBLA (this will terminate the executable). We also found similar problems in DLASD6.
The cell graph in doxygen shows dlasda calls dlasd6 calls dlasd8, dlasda shows what we think is the correct behavior (see line 486 to line 507 in DLASDA http://www.netlib.org/lapack/explore-html/d4/d6f/dlasda_8f_source.html. Here it is just passing the info value from dlasd6 back (setting info =1 before returning might be cleaner). This method allows the higher-level subroutine that called dlasda to recover from the low-level convergence. We think the fix needs to be done in both dlasd8 and dlasd6.
The cell graph in doxygen shows dlasda calls dlasd6 calls dlasd8, dlasda shows what we think is the correct behavior (see line 486 to line 507 in DLASDA http://www.netlib.org/lapack/explore-html/d4/d6f/dlasda_8f_source.html. Here it is just passing the info value from dlasd6 back (setting info =1 before returning might be cleaner). This method allows the higher-level subroutine that called dlasda to recover from the low-level convergence. We think the fix needs to be done in both dlasd8 and dlasd6.