Hi there,
I just downloaded lapack 3.6.0 trunk level 1563.
I have an x8664 hardware.
During compilation I found that in zgges3.f line 404
WORK( 1 ) = DCMPLX( WKOPT )
the variable WKOPT is referenced but not declared nor initialized.
Should it be LWKOPT instead?
Running "./xeigtsts < svd.in" I get the gfortran runtime error message
Program received signal SIGFPE: Floatingpoint exception  erroneous
arithmetic operation.
This is in sgesvj.f line 627 "TEMP1 = AMIN1( BIG, TEMP1 / AAPP )"
where BIG=3.40282347E+38 TEMP1=1.06502325E+19 AAPP=8.75567555E32
so that TEMP1/AAPP is too large for single precision arithmetic.
I "fixed" this one changing the abovementioned statement to
TEMP1 = DMIN1( dble(BIG), dble(TEMP1) / dble(AAPP) )
but I am not sure this is correct.
What is the right fix?
Same error message running "./xeigtsts < sgg.in"
Program received signal SIGFPE: Floatingpoint exception  erroneous
arithmetic operation.
in shgeqz.f line 762
IF ( ABS( (WR/S1)*T( ILAST, ILAST )  H( ILAST, ILAST ) )
$ .GT. ABS( (WR2/S2)*T( ILAST, ILAST )
$  H( ILAST, ILAST ) ) ) THEN
because
WR=1.11871902E+11 S1=1.17549435E36 ILAST=3 T=2.48154184E24
H=2.41910350E+23 WR2=1.11871902E+11 S2=1.17549435E36
so I get overflows computing WR/S1 and WR2/S2
I "fixed" this one by changing the statement into
IF (DABS((dble(WR)/dble(S1))*T( ILAST, ILAST )  H( ILAST, ILAST))
$ .GT.DABS( (dble(WR2)/dble(S2))*T( ILAST, ILAST )
$  H( ILAST, ILAST ) ) ) THEN
but I am not sure this is correct.
What is the right fix?
Same error message running "./xeigtsts < sbal.in" at schkbl.f line 141
VMAX = MAX( VMAX, ABS( A( I, J )AIN( I, J ) ) / TEMP )
because
I=5 J=6 VMAX=2.65845599E+38 A=4.00000000
AIN=8.00000000 TEMP=1.17549435E38
so that the result of the MAX operation is 3.4028236692093846E+038,
too large to fit in a single precision variable.
I do not know how to fix this one.
Running ./xlintstz < ztest.in zgehrd.f line 350
WORK( 1 ) = LWKOPT
LWKOPT is undefined.
In sdrgev3.f, line 900
9998 FORMAT( ' SDRGEV3: ', A, ' Eigenvectors from ', A, ' incorrectly ',
the last comma is on column 73. Same for cdrgev3.f at line 902. And
ddrgev3.f line 898. And zdrgev3.f, line 897.
The fourth formal argument of CTGSEN is a logical array SELECT.
However in the calling subroutine CGGES3
the corresponding actual argument WORK is a complex array. I believe
this is wrong and error prone.
Are you sure this is intended? Shouldn't it be BWORK, a logical array?
Please advise
Vittorio Zecca
