Use dynamic allocation in ?SYL01 tests (Reference-LAPACK PR 854)
This commit is contained in:
parent
c3a2d407a0
commit
0e55702b80
|
@ -120,14 +120,16 @@
|
||||||
COMPLEX RMUL
|
COMPLEX RMUL
|
||||||
* ..
|
* ..
|
||||||
* .. Local Arrays ..
|
* .. Local Arrays ..
|
||||||
COMPLEX A( MAXM, MAXM ), B( MAXN, MAXN ),
|
COMPLEX DUML( MAXM ), DUMR( MAXN ),
|
||||||
$ C( MAXM, MAXN ), CC( MAXM, MAXN ),
|
|
||||||
$ X( MAXM, MAXN ),
|
|
||||||
$ DUML( MAXM ), DUMR( MAXN ),
|
|
||||||
$ D( MAX( MAXM, MAXN ) )
|
$ D( MAX( MAXM, MAXN ) )
|
||||||
REAL SWORK( LDSWORK, 54 ), DUM( MAXN ), VM( 2 )
|
REAL DUM( MAXN ), VM( 2 )
|
||||||
INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 )
|
INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 )
|
||||||
* ..
|
* ..
|
||||||
|
* .. Allocatable Arrays ..
|
||||||
|
INTEGER AllocateStatus
|
||||||
|
COMPLEX, DIMENSION(:,:), ALLOCATABLE :: A, B, C, CC, X
|
||||||
|
REAL, DIMENSION(:,:), ALLOCATABLE :: SWORK
|
||||||
|
* ..
|
||||||
* .. External Functions ..
|
* .. External Functions ..
|
||||||
LOGICAL SISNAN
|
LOGICAL SISNAN
|
||||||
REAL SLAMCH, CLANGE
|
REAL SLAMCH, CLANGE
|
||||||
|
@ -139,6 +141,20 @@
|
||||||
* .. Intrinsic Functions ..
|
* .. Intrinsic Functions ..
|
||||||
INTRINSIC ABS, REAL, MAX
|
INTRINSIC ABS, REAL, MAX
|
||||||
* ..
|
* ..
|
||||||
|
* .. Allocate memory dynamically ..
|
||||||
|
ALLOCATE ( A( MAXM, MAXM ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( B( MAXN, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( C( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( CC( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( X( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( SWORK( LDSWORK, 54 ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
* ..
|
||||||
* .. Executable Statements ..
|
* .. Executable Statements ..
|
||||||
*
|
*
|
||||||
* Get machine parameters
|
* Get machine parameters
|
||||||
|
@ -286,6 +302,13 @@
|
||||||
END DO
|
END DO
|
||||||
END DO
|
END DO
|
||||||
END DO
|
END DO
|
||||||
|
*
|
||||||
|
DEALLOCATE (A, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (B, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (C, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (CC, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (X, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (SWORK, STAT = AllocateStatus)
|
||||||
*
|
*
|
||||||
RETURN
|
RETURN
|
||||||
*
|
*
|
||||||
|
|
|
@ -117,13 +117,15 @@
|
||||||
$ SCALE, SCALE3, SMLNUM, TNRM, XNRM
|
$ SCALE, SCALE3, SMLNUM, TNRM, XNRM
|
||||||
* ..
|
* ..
|
||||||
* .. Local Arrays ..
|
* .. Local Arrays ..
|
||||||
DOUBLE PRECISION A( MAXM, MAXM ), B( MAXN, MAXN ),
|
DOUBLE PRECISION DUML( MAXM ), DUMR( MAXN ),
|
||||||
$ C( MAXM, MAXN ), CC( MAXM, MAXN ),
|
|
||||||
$ X( MAXM, MAXN ),
|
|
||||||
$ DUML( MAXM ), DUMR( MAXN ),
|
|
||||||
$ D( MAX( MAXM, MAXN ) ), DUM( MAXN ),
|
$ D( MAX( MAXM, MAXN ) ), DUM( MAXN ),
|
||||||
$ SWORK( LDSWORK, 126 ), VM( 2 )
|
$ VM( 2 )
|
||||||
INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 ), IDUM( 2 )
|
INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 )
|
||||||
|
* ..
|
||||||
|
* .. Allocatable Arrays ..
|
||||||
|
INTEGER AllocateStatus
|
||||||
|
DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: A, B, C, CC, X,
|
||||||
|
$ SWORK
|
||||||
* ..
|
* ..
|
||||||
* .. External Functions ..
|
* .. External Functions ..
|
||||||
LOGICAL DISNAN
|
LOGICAL DISNAN
|
||||||
|
@ -136,6 +138,20 @@
|
||||||
* .. Intrinsic Functions ..
|
* .. Intrinsic Functions ..
|
||||||
INTRINSIC ABS, DBLE, MAX
|
INTRINSIC ABS, DBLE, MAX
|
||||||
* ..
|
* ..
|
||||||
|
* .. Allocate memory dynamically ..
|
||||||
|
ALLOCATE ( A( MAXM, MAXM ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( B( MAXN, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( C( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( CC( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( X( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( SWORK( LDSWORK, 126 ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
* ..
|
||||||
* .. Executable Statements ..
|
* .. Executable Statements ..
|
||||||
*
|
*
|
||||||
* Get machine parameters
|
* Get machine parameters
|
||||||
|
@ -280,6 +296,13 @@
|
||||||
END DO
|
END DO
|
||||||
END DO
|
END DO
|
||||||
END DO
|
END DO
|
||||||
|
*
|
||||||
|
DEALLOCATE (A, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (B, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (C, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (CC, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (X, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (SWORK, STAT = AllocateStatus)
|
||||||
*
|
*
|
||||||
RETURN
|
RETURN
|
||||||
*
|
*
|
||||||
|
|
|
@ -117,13 +117,15 @@
|
||||||
$ SCALE, SCALE3, SMLNUM, TNRM, XNRM
|
$ SCALE, SCALE3, SMLNUM, TNRM, XNRM
|
||||||
* ..
|
* ..
|
||||||
* .. Local Arrays ..
|
* .. Local Arrays ..
|
||||||
REAL A( MAXM, MAXM ), B( MAXN, MAXN ),
|
REAL DUML( MAXM ), DUMR( MAXN ),
|
||||||
$ C( MAXM, MAXN ), CC( MAXM, MAXN ),
|
|
||||||
$ X( MAXM, MAXN ),
|
|
||||||
$ DUML( MAXM ), DUMR( MAXN ),
|
|
||||||
$ D( MAX( MAXM, MAXN ) ), DUM( MAXN ),
|
$ D( MAX( MAXM, MAXN ) ), DUM( MAXN ),
|
||||||
$ SWORK( LDSWORK, 54 ), VM( 2 )
|
$ VM( 2 )
|
||||||
INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 ), IDUM( 2 )
|
INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 )
|
||||||
|
* ..
|
||||||
|
* .. Allocatable Arrays ..
|
||||||
|
INTEGER AllocateStatus
|
||||||
|
REAL, DIMENSION(:,:), ALLOCATABLE :: A, B, C, CC, X,
|
||||||
|
$ SWORK
|
||||||
* ..
|
* ..
|
||||||
* .. External Functions ..
|
* .. External Functions ..
|
||||||
LOGICAL SISNAN
|
LOGICAL SISNAN
|
||||||
|
@ -136,6 +138,20 @@
|
||||||
* .. Intrinsic Functions ..
|
* .. Intrinsic Functions ..
|
||||||
INTRINSIC ABS, REAL, MAX
|
INTRINSIC ABS, REAL, MAX
|
||||||
* ..
|
* ..
|
||||||
|
* .. Allocate memory dynamically ..
|
||||||
|
ALLOCATE ( A( MAXM, MAXM ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( B( MAXN, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( C( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( CC( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( X( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( SWORK( LDSWORK, 54 ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
* ..
|
||||||
* .. Executable Statements ..
|
* .. Executable Statements ..
|
||||||
*
|
*
|
||||||
* Get machine parameters
|
* Get machine parameters
|
||||||
|
@ -280,6 +296,13 @@
|
||||||
END DO
|
END DO
|
||||||
END DO
|
END DO
|
||||||
END DO
|
END DO
|
||||||
|
*
|
||||||
|
DEALLOCATE (A, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (B, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (C, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (CC, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (X, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (SWORK, STAT = AllocateStatus)
|
||||||
*
|
*
|
||||||
RETURN
|
RETURN
|
||||||
*
|
*
|
||||||
|
|
|
@ -120,14 +120,16 @@
|
||||||
COMPLEX*16 RMUL
|
COMPLEX*16 RMUL
|
||||||
* ..
|
* ..
|
||||||
* .. Local Arrays ..
|
* .. Local Arrays ..
|
||||||
COMPLEX*16 A( MAXM, MAXM ), B( MAXN, MAXN ),
|
COMPLEX*16 DUML( MAXM ), DUMR( MAXN ),
|
||||||
$ C( MAXM, MAXN ), CC( MAXM, MAXN ),
|
|
||||||
$ X( MAXM, MAXN ),
|
|
||||||
$ DUML( MAXM ), DUMR( MAXN ),
|
|
||||||
$ D( MAX( MAXM, MAXN ) )
|
$ D( MAX( MAXM, MAXN ) )
|
||||||
DOUBLE PRECISION SWORK( LDSWORK, 103 ), DUM( MAXN ), VM( 2 )
|
DOUBLE PRECISION DUM( MAXN ), VM( 2 )
|
||||||
INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 )
|
INTEGER ISEED( 4 ), IWORK( MAXM + MAXN + 2 )
|
||||||
* ..
|
* ..
|
||||||
|
* .. Allocatable Arrays ..
|
||||||
|
INTEGER AllocateStatus
|
||||||
|
COMPLEX*16, DIMENSION(:,:), ALLOCATABLE :: A, B, C, CC, X
|
||||||
|
DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: SWORK
|
||||||
|
* ..
|
||||||
* .. External Functions ..
|
* .. External Functions ..
|
||||||
LOGICAL DISNAN
|
LOGICAL DISNAN
|
||||||
DOUBLE PRECISION DLAMCH, ZLANGE
|
DOUBLE PRECISION DLAMCH, ZLANGE
|
||||||
|
@ -139,6 +141,20 @@
|
||||||
* .. Intrinsic Functions ..
|
* .. Intrinsic Functions ..
|
||||||
INTRINSIC ABS, DBLE, MAX, SQRT
|
INTRINSIC ABS, DBLE, MAX, SQRT
|
||||||
* ..
|
* ..
|
||||||
|
* .. Allocate memory dynamically ..
|
||||||
|
ALLOCATE ( A( MAXM, MAXM ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( B( MAXN, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( C( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( CC( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( X( MAXM, MAXN ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
ALLOCATE ( SWORK( LDSWORK, 103 ), STAT = AllocateStatus )
|
||||||
|
IF( AllocateStatus /= 0 ) STOP "*** Not enough memory ***"
|
||||||
|
* ..
|
||||||
* .. Executable Statements ..
|
* .. Executable Statements ..
|
||||||
*
|
*
|
||||||
* Get machine parameters
|
* Get machine parameters
|
||||||
|
@ -286,6 +302,13 @@
|
||||||
END DO
|
END DO
|
||||||
END DO
|
END DO
|
||||||
END DO
|
END DO
|
||||||
|
*
|
||||||
|
DEALLOCATE (A, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (B, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (C, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (CC, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (X, STAT = AllocateStatus)
|
||||||
|
DEALLOCATE (SWORK, STAT = AllocateStatus)
|
||||||
*
|
*
|
||||||
RETURN
|
RETURN
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue