LAPACK Archives

[Lapack] Issues with lapack 3.6.0 trunk 1563

Hi there,

I just downloaded lapack 3.6.0 trunk level 1563.
I have an x86-64 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: Floating-point 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.75567555E-32
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: Floating-point 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.17549435E-36  ILAST=3   T=2.48154184E-24
H=-2.41910350E+23  WR2=-1.11871902E+11   S2=1.17549435E-36

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.17549435E-38
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

<Prev in Thread] Current Thread [Next in Thread>


For additional information you may use the LAPACK/ScaLAPACK Forum.
Or one of the mailing lists, or