gnu: arpack-ng: Update to 3.9.0.
* gnu/packages/maths.scm (arpack-ng): Update to 3.9.0. [source]: Add 'patches'. [build-system]: Switch to CMAKE-BUILD-SYSTEM. [native-inputs]: Remove AUTOCONF, AUTOMAKE, and LIBTOOL. (arpack-ng-openmpi)[inputs]: Use 'modify-inputs'. [arguments]: Use gexps. * gnu/packages/patches/arpack-ng-propagate-rng-state.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it.
parent
5594f4c999
commit
ff208b4b62
|
@ -905,6 +905,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/aoflagger-use-system-provided-pybind11.patch \
|
%D%/packages/patches/aoflagger-use-system-provided-pybind11.patch \
|
||||||
%D%/packages/patches/apr-skip-getservbyname-test.patch \
|
%D%/packages/patches/apr-skip-getservbyname-test.patch \
|
||||||
%D%/packages/patches/ark-skip-xar-test.patch \
|
%D%/packages/patches/ark-skip-xar-test.patch \
|
||||||
|
%D%/packages/patches/arpack-ng-propagate-rng-state.patch \
|
||||||
%D%/packages/patches/aspell-CVE-2019-25051.patch \
|
%D%/packages/patches/aspell-CVE-2019-25051.patch \
|
||||||
%D%/packages/patches/aspell-default-dict-dir.patch \
|
%D%/packages/patches/aspell-default-dict-dir.patch \
|
||||||
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
|
%D%/packages/patches/ath9k-htc-firmware-binutils.patch \
|
||||||
|
|
|
@ -973,7 +973,7 @@ halfspaces) or by their double description with both representations.")
|
||||||
(define-public arpack-ng
|
(define-public arpack-ng
|
||||||
(package
|
(package
|
||||||
(name "arpack-ng")
|
(name "arpack-ng")
|
||||||
(version "3.8.0")
|
(version "3.9.0")
|
||||||
(home-page "https://github.com/opencollab/arpack-ng")
|
(home-page "https://github.com/opencollab/arpack-ng")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -981,10 +981,11 @@ halfspaces) or by their double description with both representations.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0l7as5z6xvbxly8alam9s4kws70952qq35a6vkljzayi4b9gbklx"))))
|
"09smxilyn8v9xs3kpx3nlj2s7ql3v8z40mpc09kccbb6smyd35iv"))
|
||||||
(build-system gnu-build-system)
|
(patches (search-patches "arpack-ng-propagate-rng-state.patch"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(list autoconf automake libtool pkg-config))
|
(list pkg-config))
|
||||||
(inputs
|
(inputs
|
||||||
(list eigen lapack gfortran))
|
(list eigen lapack gfortran))
|
||||||
(synopsis "Fortran subroutines for solving eigenvalue problems")
|
(synopsis "Fortran subroutines for solving eigenvalue problems")
|
||||||
|
@ -998,16 +999,16 @@ large scale eigenvalue problems.")
|
||||||
(package (inherit arpack-ng)
|
(package (inherit arpack-ng)
|
||||||
(name "arpack-ng-openmpi")
|
(name "arpack-ng-openmpi")
|
||||||
(inputs
|
(inputs
|
||||||
`(("mpi" ,openmpi)
|
(modify-inputs (package-inputs arpack-ng)
|
||||||
,@(package-inputs arpack-ng)))
|
(prepend openmpi)))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments arpack-ng)
|
(substitute-keyword-arguments (package-arguments arpack-ng)
|
||||||
((#:configure-flags _ '())
|
((#:configure-flags _ #~())
|
||||||
''("--enable-mpi"))
|
#~'("-DMPI=ON"))
|
||||||
((#:phases phases '%standard-phases)
|
((#:phases phases #~%standard-phases)
|
||||||
`(modify-phases ,phases
|
#~(modify-phases #$phases
|
||||||
(add-before 'check 'mpi-setup
|
(add-before 'check 'mpi-setup
|
||||||
,%openmpi-setup)))))
|
#$%openmpi-setup)))))
|
||||||
(synopsis "Fortran subroutines for solving eigenvalue problems with MPI")))
|
(synopsis "Fortran subroutines for solving eigenvalue problems with MPI")))
|
||||||
|
|
||||||
(define-public lapack
|
(define-public lapack
|
||||||
|
|
|
@ -0,0 +1,523 @@
|
||||||
|
Fix a bug that manifests while running the test suite of 'python-igraph':
|
||||||
|
|
||||||
|
https://github.com/opencollab/arpack-ng/issues/401
|
||||||
|
https://github.com/opencollab/arpack-ng/pull/414
|
||||||
|
|
||||||
|
From d885b7be4ecdc9c1496f2d6f256f6c0d34962459 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Szabolcs=20Horva=CC=81t?= <szhorvat@gmail.com>
|
||||||
|
Date: Sun, 9 Apr 2023 16:36:35 +0200
|
||||||
|
Subject: [PATCH] fix: ensure that LAPACK RNG state is propagated
|
||||||
|
|
||||||
|
- fixes #401, #410, #411
|
||||||
|
- restores 'inits' variable removed in ce2e69a849da1d10dad5d6d3ec4db6120b3ecf50, ensuring that the RNG state is propagated
|
||||||
|
- reverts e0d67054f573da351f12a226f7c7cc65a690ef3d to ensure that seed is different on each parallel thread
|
||||||
|
- updates seed initialization of parallel pdgetv0/psgetv0 so that they match that of pzgetv0/pcgetv0
|
||||||
|
---
|
||||||
|
PARPACK/SRC/MPI/pcgetv0.f | 48 +++++++++++++++++++++++----------------
|
||||||
|
PARPACK/SRC/MPI/pdgetv0.f | 40 ++++++++++++++++++++++++++------
|
||||||
|
PARPACK/SRC/MPI/psgetv0.f | 43 ++++++++++++++++++++++++++---------
|
||||||
|
PARPACK/SRC/MPI/pzgetv0.f | 48 +++++++++++++++++++++++----------------
|
||||||
|
SRC/cgetv0.f | 21 ++++++++++++-----
|
||||||
|
SRC/dgetv0.f | 21 ++++++++++++-----
|
||||||
|
SRC/sgetv0.f | 21 ++++++++++++-----
|
||||||
|
SRC/zgetv0.f | 21 ++++++++++++-----
|
||||||
|
8 files changed, 183 insertions(+), 80 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/PARPACK/SRC/MPI/pcgetv0.f b/PARPACK/SRC/MPI/pcgetv0.f
|
||||||
|
index 59e3d1658..24fe8a0f1 100644
|
||||||
|
--- a/PARPACK/SRC/MPI/pcgetv0.f
|
||||||
|
+++ b/PARPACK/SRC/MPI/pcgetv0.f
|
||||||
|
@@ -176,13 +176,13 @@ subroutine pcgetv0
|
||||||
|
c | Local Scalars & Arrays |
|
||||||
|
c %------------------------%
|
||||||
|
c
|
||||||
|
- logical first, orth
|
||||||
|
+ logical first, inits, orth
|
||||||
|
integer idist, iseed(4), iter, msglvl, jj, myid, igen
|
||||||
|
Real
|
||||||
|
& rnorm0
|
||||||
|
Complex
|
||||||
|
& cnorm, cnorm2
|
||||||
|
- save first, iseed, iter, msglvl, orth, rnorm0
|
||||||
|
+ save first, iseed, inits, iter, msglvl, orth, rnorm0
|
||||||
|
c
|
||||||
|
Complex
|
||||||
|
& cnorm_buf, buf2(1)
|
||||||
|
@@ -203,6 +203,12 @@ subroutine pcgetv0
|
||||||
|
& ccdotc
|
||||||
|
external ccdotc, pscnorm2, slapy2
|
||||||
|
c
|
||||||
|
+c %-----------------%
|
||||||
|
+c | Data Statements |
|
||||||
|
+c %-----------------%
|
||||||
|
+c
|
||||||
|
+ data inits /.true./
|
||||||
|
+c
|
||||||
|
c %-----------------------%
|
||||||
|
c | Executable Statements |
|
||||||
|
c %-----------------------%
|
||||||
|
@@ -213,26 +219,30 @@ subroutine pcgetv0
|
||||||
|
c | random number generator |
|
||||||
|
c %-----------------------------------%
|
||||||
|
c
|
||||||
|
+ if (inits) then
|
||||||
|
c
|
||||||
|
-c %-----------------------------------%
|
||||||
|
-c | Generate a seed on each processor |
|
||||||
|
-c | using process id (myid). |
|
||||||
|
-c | Note: the seed must be between 1 |
|
||||||
|
-c | and 4095. iseed(4) must be odd. |
|
||||||
|
-c %-----------------------------------%
|
||||||
|
+c %-----------------------------------%
|
||||||
|
+c | Generate a seed on each processor |
|
||||||
|
+c | using process id (myid). |
|
||||||
|
+c | Note: the seed must be between 1 |
|
||||||
|
+c | and 4095. iseed(4) must be odd. |
|
||||||
|
+c %-----------------------------------%
|
||||||
|
c
|
||||||
|
- call MPI_COMM_RANK(comm, myid, ierr)
|
||||||
|
- igen = 1000 + 2*myid + 1
|
||||||
|
- if (igen .gt. 4095) then
|
||||||
|
- write(0,*) 'Error in p_getv0: seed exceeds 4095!'
|
||||||
|
- end if
|
||||||
|
+ call MPI_COMM_RANK(comm, myid, ierr)
|
||||||
|
+ igen = 1000 + 2*myid + 1
|
||||||
|
+ if (igen .gt. 4095) then
|
||||||
|
+ write(0,*) 'Error in p_getv0: seed exceeds 4095!'
|
||||||
|
+ end if
|
||||||
|
+c
|
||||||
|
+ iseed(1) = igen/1000
|
||||||
|
+ igen = mod(igen,1000)
|
||||||
|
+ iseed(2) = igen/100
|
||||||
|
+ igen = mod(igen,100)
|
||||||
|
+ iseed(3) = igen/10
|
||||||
|
+ iseed(4) = mod(igen,10)
|
||||||
|
c
|
||||||
|
- iseed(1) = igen/1000
|
||||||
|
- igen = mod(igen,1000)
|
||||||
|
- iseed(2) = igen/100
|
||||||
|
- igen = mod(igen,100)
|
||||||
|
- iseed(3) = igen/10
|
||||||
|
- iseed(4) = 7
|
||||||
|
+ inits = .false.
|
||||||
|
+ end if
|
||||||
|
c
|
||||||
|
if (ido .eq. 0) then
|
||||||
|
c
|
||||||
|
diff --git a/PARPACK/SRC/MPI/pdgetv0.f b/PARPACK/SRC/MPI/pdgetv0.f
|
||||||
|
index 0f348b820..5a1956997 100644
|
||||||
|
--- a/PARPACK/SRC/MPI/pdgetv0.f
|
||||||
|
+++ b/PARPACK/SRC/MPI/pdgetv0.f
|
||||||
|
@@ -177,11 +177,11 @@ subroutine pdgetv0
|
||||||
|
c | Local Scalars & Arrays |
|
||||||
|
c %------------------------%
|
||||||
|
c
|
||||||
|
- logical first, orth
|
||||||
|
- integer idist, iseed(4), iter, msglvl, jj
|
||||||
|
+ logical first, inits, orth
|
||||||
|
+ integer idist, iseed(4), iter, msglvl, jj, myid, igen
|
||||||
|
Double precision
|
||||||
|
& rnorm0, buf2(1)
|
||||||
|
- save first, iseed, iter, msglvl, orth, rnorm0
|
||||||
|
+ save first, iseed, inits, iter, msglvl, orth, rnorm0
|
||||||
|
c
|
||||||
|
Double precision
|
||||||
|
& rnorm_buf
|
||||||
|
@@ -206,6 +206,12 @@ subroutine pdgetv0
|
||||||
|
c
|
||||||
|
intrinsic abs, sqrt
|
||||||
|
c
|
||||||
|
+c %-----------------%
|
||||||
|
+c | Data Statements |
|
||||||
|
+c %-----------------%
|
||||||
|
+c
|
||||||
|
+ data inits /.true./
|
||||||
|
+c
|
||||||
|
c %-----------------------%
|
||||||
|
c | Executable Statements |
|
||||||
|
c %-----------------------%
|
||||||
|
@@ -216,10 +222,30 @@ subroutine pdgetv0
|
||||||
|
c | random number generator |
|
||||||
|
c %-----------------------------------%
|
||||||
|
c
|
||||||
|
- iseed(1) = 1
|
||||||
|
- iseed(2) = 3
|
||||||
|
- iseed(3) = 5
|
||||||
|
- iseed(4) = 7
|
||||||
|
+ if (inits) then
|
||||||
|
+c
|
||||||
|
+c %-----------------------------------%
|
||||||
|
+c | Generate a seed on each processor |
|
||||||
|
+c | using process id (myid). |
|
||||||
|
+c | Note: the seed must be between 1 |
|
||||||
|
+c | and 4095. iseed(4) must be odd. |
|
||||||
|
+c %-----------------------------------%
|
||||||
|
+c
|
||||||
|
+ call MPI_COMM_RANK(comm, myid, ierr)
|
||||||
|
+ igen = 1000 + 2*myid + 1
|
||||||
|
+ if (igen .gt. 4095) then
|
||||||
|
+ write(0,*) 'Error in p_getv0: seed exceeds 4095!'
|
||||||
|
+ end if
|
||||||
|
+c
|
||||||
|
+ iseed(1) = igen/1000
|
||||||
|
+ igen = mod(igen,1000)
|
||||||
|
+ iseed(2) = igen/100
|
||||||
|
+ igen = mod(igen,100)
|
||||||
|
+ iseed(3) = igen/10
|
||||||
|
+ iseed(4) = mod(igen,10)
|
||||||
|
+c
|
||||||
|
+ inits = .false.
|
||||||
|
+ end if
|
||||||
|
c
|
||||||
|
if (ido .eq. 0) then
|
||||||
|
c
|
||||||
|
diff --git a/PARPACK/SRC/MPI/psgetv0.f b/PARPACK/SRC/MPI/psgetv0.f
|
||||||
|
index d79a513b2..078e4fa8c 100644
|
||||||
|
--- a/PARPACK/SRC/MPI/psgetv0.f
|
||||||
|
+++ b/PARPACK/SRC/MPI/psgetv0.f
|
||||||
|
@@ -177,11 +177,11 @@ subroutine psgetv0
|
||||||
|
c | Local Scalars & Arrays |
|
||||||
|
c %------------------------%
|
||||||
|
c
|
||||||
|
- logical first, orth
|
||||||
|
- integer idist, iseed(4), iter, msglvl, jj
|
||||||
|
+ logical first, inits, orth
|
||||||
|
+ integer idist, iseed(4), iter, msglvl, jj, myid, igen
|
||||||
|
Real
|
||||||
|
& rnorm0
|
||||||
|
- save first, iseed, iter, msglvl, orth, rnorm0
|
||||||
|
+ save first, iseed, inits, iter, msglvl, orth, rnorm0
|
||||||
|
c
|
||||||
|
Real
|
||||||
|
& rnorm_buf
|
||||||
|
@@ -206,20 +206,41 @@ subroutine psgetv0
|
||||||
|
c
|
||||||
|
intrinsic abs, sqrt
|
||||||
|
c
|
||||||
|
+c %-----------------%
|
||||||
|
+c | Data Statements |
|
||||||
|
+c %-----------------%
|
||||||
|
+c
|
||||||
|
+ data inits /.true./
|
||||||
|
+c
|
||||||
|
c %-----------------------%
|
||||||
|
c | Executable Statements |
|
||||||
|
c %-----------------------%
|
||||||
|
c
|
||||||
|
c
|
||||||
|
-c %-----------------------------------%
|
||||||
|
-c | Initialize the seed of the LAPACK |
|
||||||
|
-c | random number generator |
|
||||||
|
-c %-----------------------------------%
|
||||||
|
+ if (inits) then
|
||||||
|
c
|
||||||
|
- iseed(1) = 1
|
||||||
|
- iseed(2) = 3
|
||||||
|
- iseed(3) = 5
|
||||||
|
- iseed(4) = 7
|
||||||
|
+c %-----------------------------------%
|
||||||
|
+c | Generate a seed on each processor |
|
||||||
|
+c | using process id (myid). |
|
||||||
|
+c | Note: the seed must be between 1 |
|
||||||
|
+c | and 4095. iseed(4) must be odd. |
|
||||||
|
+c %-----------------------------------%
|
||||||
|
+c
|
||||||
|
+ call MPI_COMM_RANK(comm, myid, ierr)
|
||||||
|
+ igen = 1000 + 2*myid + 1
|
||||||
|
+ if (igen .gt. 4095) then
|
||||||
|
+ write(0,*) 'Error in p_getv0: seed exceeds 4095!'
|
||||||
|
+ end if
|
||||||
|
+c
|
||||||
|
+ iseed(1) = igen/1000
|
||||||
|
+ igen = mod(igen,1000)
|
||||||
|
+ iseed(2) = igen/100
|
||||||
|
+ igen = mod(igen,100)
|
||||||
|
+ iseed(3) = igen/10
|
||||||
|
+ iseed(4) = mod(igen,10)
|
||||||
|
+c
|
||||||
|
+ inits = .false.
|
||||||
|
+ end if
|
||||||
|
c
|
||||||
|
if (ido .eq. 0) then
|
||||||
|
c
|
||||||
|
diff --git a/PARPACK/SRC/MPI/pzgetv0.f b/PARPACK/SRC/MPI/pzgetv0.f
|
||||||
|
index 731fb319f..94fb705f3 100644
|
||||||
|
--- a/PARPACK/SRC/MPI/pzgetv0.f
|
||||||
|
+++ b/PARPACK/SRC/MPI/pzgetv0.f
|
||||||
|
@@ -176,13 +176,13 @@ subroutine pzgetv0
|
||||||
|
c | Local Scalars & Arrays |
|
||||||
|
c %------------------------%
|
||||||
|
c
|
||||||
|
- logical first, orth
|
||||||
|
+ logical first, inits, orth
|
||||||
|
integer idist, iseed(4), iter, msglvl, jj, myid, igen
|
||||||
|
Double precision
|
||||||
|
& rnorm0
|
||||||
|
Complex*16
|
||||||
|
& cnorm, cnorm2
|
||||||
|
- save first, iseed, iter, msglvl, orth, rnorm0
|
||||||
|
+ save first, iseed, inits, iter, msglvl, orth, rnorm0
|
||||||
|
c
|
||||||
|
Complex*16
|
||||||
|
& cnorm_buf, buf2(1)
|
||||||
|
@@ -203,6 +203,12 @@ subroutine pzgetv0
|
||||||
|
& zzdotc
|
||||||
|
external zzdotc , pdznorm2 , dlapy2
|
||||||
|
c
|
||||||
|
+c %-----------------%
|
||||||
|
+c | Data Statements |
|
||||||
|
+c %-----------------%
|
||||||
|
+c
|
||||||
|
+ data inits /.true./
|
||||||
|
+c
|
||||||
|
c %-----------------------%
|
||||||
|
c | Executable Statements |
|
||||||
|
c %-----------------------%
|
||||||
|
@@ -213,26 +219,30 @@ subroutine pzgetv0
|
||||||
|
c | random number generator |
|
||||||
|
c %-----------------------------------%
|
||||||
|
c
|
||||||
|
+ if (inits) then
|
||||||
|
c
|
||||||
|
-c %-----------------------------------%
|
||||||
|
-c | Generate a seed on each processor |
|
||||||
|
-c | using process id (myid). |
|
||||||
|
-c | Note: the seed must be between 1 |
|
||||||
|
-c | and 4095. iseed(4) must be odd. |
|
||||||
|
-c %-----------------------------------%
|
||||||
|
+c %-----------------------------------%
|
||||||
|
+c | Generate a seed on each processor |
|
||||||
|
+c | using process id (myid). |
|
||||||
|
+c | Note: the seed must be between 1 |
|
||||||
|
+c | and 4095. iseed(4) must be odd. |
|
||||||
|
+c %-----------------------------------%
|
||||||
|
c
|
||||||
|
- call MPI_COMM_RANK(comm, myid, ierr)
|
||||||
|
- igen = 1000 + 2*myid + 1
|
||||||
|
- if (igen .gt. 4095) then
|
||||||
|
- write(0,*) 'Error in p_getv0: seed exceeds 4095!'
|
||||||
|
- end if
|
||||||
|
+ call MPI_COMM_RANK(comm, myid, ierr)
|
||||||
|
+ igen = 1000 + 2*myid + 1
|
||||||
|
+ if (igen .gt. 4095) then
|
||||||
|
+ write(0,*) 'Error in p_getv0: seed exceeds 4095!'
|
||||||
|
+ end if
|
||||||
|
+c
|
||||||
|
+ iseed(1) = igen/1000
|
||||||
|
+ igen = mod(igen,1000)
|
||||||
|
+ iseed(2) = igen/100
|
||||||
|
+ igen = mod(igen,100)
|
||||||
|
+ iseed(3) = igen/10
|
||||||
|
+ iseed(4) = mod(igen,10)
|
||||||
|
c
|
||||||
|
- iseed(1) = igen/1000
|
||||||
|
- igen = mod(igen,1000)
|
||||||
|
- iseed(2) = igen/100
|
||||||
|
- igen = mod(igen,100)
|
||||||
|
- iseed(3) = igen/10
|
||||||
|
- iseed(4) = 7
|
||||||
|
+ inits = .false.
|
||||||
|
+ end if
|
||||||
|
c
|
||||||
|
if (ido .eq. 0) then
|
||||||
|
c
|
||||||
|
diff --git a/SRC/cgetv0.f b/SRC/cgetv0.f
|
||||||
|
index b49e66708..c231eadcb 100644
|
||||||
|
--- a/SRC/cgetv0.f
|
||||||
|
+++ b/SRC/cgetv0.f
|
||||||
|
@@ -156,13 +156,13 @@ subroutine cgetv0
|
||||||
|
c | Local Scalars & Arrays |
|
||||||
|
c %------------------------%
|
||||||
|
c
|
||||||
|
- logical first, orth
|
||||||
|
+ logical first, inits, orth
|
||||||
|
integer idist, iseed(4), iter, msglvl, jj
|
||||||
|
Real
|
||||||
|
& rnorm0
|
||||||
|
Complex
|
||||||
|
& cnorm
|
||||||
|
- save first, iseed, iter, msglvl, orth, rnorm0
|
||||||
|
+ save first, iseed, inits, iter, msglvl, orth, rnorm0
|
||||||
|
c
|
||||||
|
c %----------------------%
|
||||||
|
c | External Subroutines |
|
||||||
|
@@ -180,6 +180,12 @@ subroutine cgetv0
|
||||||
|
& ccdotc
|
||||||
|
external ccdotc, scnrm2, slapy2
|
||||||
|
c
|
||||||
|
+c %-----------------%
|
||||||
|
+c | Data Statements |
|
||||||
|
+c %-----------------%
|
||||||
|
+c
|
||||||
|
+ data inits /.true./
|
||||||
|
+c
|
||||||
|
c %-----------------------%
|
||||||
|
c | Executable Statements |
|
||||||
|
c %-----------------------%
|
||||||
|
@@ -190,10 +196,13 @@ subroutine cgetv0
|
||||||
|
c | random number generator |
|
||||||
|
c %-----------------------------------%
|
||||||
|
c
|
||||||
|
- iseed(1) = 1
|
||||||
|
- iseed(2) = 3
|
||||||
|
- iseed(3) = 5
|
||||||
|
- iseed(4) = 7
|
||||||
|
+ if (inits) then
|
||||||
|
+ iseed(1) = 1
|
||||||
|
+ iseed(2) = 3
|
||||||
|
+ iseed(3) = 5
|
||||||
|
+ iseed(4) = 7
|
||||||
|
+ inits = .false.
|
||||||
|
+ end if
|
||||||
|
c
|
||||||
|
if (ido .eq. 0) then
|
||||||
|
c
|
||||||
|
diff --git a/SRC/dgetv0.f b/SRC/dgetv0.f
|
||||||
|
index 8be4fa26d..1d6dc01bd 100644
|
||||||
|
--- a/SRC/dgetv0.f
|
||||||
|
+++ b/SRC/dgetv0.f
|
||||||
|
@@ -157,11 +157,11 @@ subroutine dgetv0
|
||||||
|
c | Local Scalars & Arrays |
|
||||||
|
c %------------------------%
|
||||||
|
c
|
||||||
|
- logical first, orth
|
||||||
|
+ logical first, inits, orth
|
||||||
|
integer idist, iseed(4), iter, msglvl, jj
|
||||||
|
Double precision
|
||||||
|
& rnorm0
|
||||||
|
- save first, iseed, iter, msglvl, orth, rnorm0
|
||||||
|
+ save first, iseed, inits, iter, msglvl, orth, rnorm0
|
||||||
|
c
|
||||||
|
c %----------------------%
|
||||||
|
c | External Subroutines |
|
||||||
|
@@ -183,6 +183,12 @@ subroutine dgetv0
|
||||||
|
c
|
||||||
|
intrinsic abs, sqrt
|
||||||
|
c
|
||||||
|
+c %-----------------%
|
||||||
|
+c | Data Statements |
|
||||||
|
+c %-----------------%
|
||||||
|
+c
|
||||||
|
+ data inits /.true./
|
||||||
|
+c
|
||||||
|
c %-----------------------%
|
||||||
|
c | Executable Statements |
|
||||||
|
c %-----------------------%
|
||||||
|
@@ -193,10 +199,13 @@ subroutine dgetv0
|
||||||
|
c | random number generator |
|
||||||
|
c %-----------------------------------%
|
||||||
|
c
|
||||||
|
- iseed(1) = 1
|
||||||
|
- iseed(2) = 3
|
||||||
|
- iseed(3) = 5
|
||||||
|
- iseed(4) = 7
|
||||||
|
+ if (inits) then
|
||||||
|
+ iseed(1) = 1
|
||||||
|
+ iseed(2) = 3
|
||||||
|
+ iseed(3) = 5
|
||||||
|
+ iseed(4) = 7
|
||||||
|
+ inits = .false.
|
||||||
|
+ end if
|
||||||
|
c
|
||||||
|
if (ido .eq. 0) then
|
||||||
|
c
|
||||||
|
diff --git a/SRC/sgetv0.f b/SRC/sgetv0.f
|
||||||
|
index 26130a014..d861b2d6d 100644
|
||||||
|
--- a/SRC/sgetv0.f
|
||||||
|
+++ b/SRC/sgetv0.f
|
||||||
|
@@ -157,11 +157,11 @@ subroutine sgetv0
|
||||||
|
c | Local Scalars & Arrays |
|
||||||
|
c %------------------------%
|
||||||
|
c
|
||||||
|
- logical first, orth
|
||||||
|
+ logical first, inits, orth
|
||||||
|
integer idist, iseed(4), iter, msglvl, jj
|
||||||
|
Real
|
||||||
|
& rnorm0
|
||||||
|
- save first, iseed, iter, msglvl, orth, rnorm0
|
||||||
|
+ save first, iseed, inits, iter, msglvl, orth, rnorm0
|
||||||
|
c
|
||||||
|
c %----------------------%
|
||||||
|
c | External Subroutines |
|
||||||
|
@@ -183,6 +183,12 @@ subroutine sgetv0
|
||||||
|
c
|
||||||
|
intrinsic abs, sqrt
|
||||||
|
c
|
||||||
|
+c %-----------------%
|
||||||
|
+c | Data Statements |
|
||||||
|
+c %-----------------%
|
||||||
|
+c
|
||||||
|
+ data inits /.true./
|
||||||
|
+c
|
||||||
|
c %-----------------------%
|
||||||
|
c | Executable Statements |
|
||||||
|
c %-----------------------%
|
||||||
|
@@ -193,10 +199,13 @@ subroutine sgetv0
|
||||||
|
c | random number generator |
|
||||||
|
c %-----------------------------------%
|
||||||
|
c
|
||||||
|
- iseed(1) = 1
|
||||||
|
- iseed(2) = 3
|
||||||
|
- iseed(3) = 5
|
||||||
|
- iseed(4) = 7
|
||||||
|
+ if (inits) then
|
||||||
|
+ iseed(1) = 1
|
||||||
|
+ iseed(2) = 3
|
||||||
|
+ iseed(3) = 5
|
||||||
|
+ iseed(4) = 7
|
||||||
|
+ inits = .false.
|
||||||
|
+ end if
|
||||||
|
c
|
||||||
|
if (ido .eq. 0) then
|
||||||
|
c
|
||||||
|
diff --git a/SRC/zgetv0.f b/SRC/zgetv0.f
|
||||||
|
index cc13c3cfb..1fbd50851 100644
|
||||||
|
--- a/SRC/zgetv0.f
|
||||||
|
+++ b/SRC/zgetv0.f
|
||||||
|
@@ -156,13 +156,13 @@ subroutine zgetv0
|
||||||
|
c | Local Scalars & Arrays |
|
||||||
|
c %------------------------%
|
||||||
|
c
|
||||||
|
- logical first, orth
|
||||||
|
+ logical first, inits, orth
|
||||||
|
integer idist, iseed(4), iter, msglvl, jj
|
||||||
|
Double precision
|
||||||
|
& rnorm0
|
||||||
|
Complex*16
|
||||||
|
& cnorm
|
||||||
|
- save first, iseed, iter, msglvl, orth, rnorm0
|
||||||
|
+ save first, iseed, inits, iter, msglvl, orth, rnorm0
|
||||||
|
c
|
||||||
|
c %----------------------%
|
||||||
|
c | External Subroutines |
|
||||||
|
@@ -180,6 +180,12 @@ subroutine zgetv0
|
||||||
|
& zzdotc
|
||||||
|
external zzdotc, dznrm2, dlapy2
|
||||||
|
c
|
||||||
|
+c %-----------------%
|
||||||
|
+c | Data Statements |
|
||||||
|
+c %-----------------%
|
||||||
|
+c
|
||||||
|
+ data inits /.true./
|
||||||
|
+c
|
||||||
|
c %-----------------------%
|
||||||
|
c | Executable Statements |
|
||||||
|
c %-----------------------%
|
||||||
|
@@ -190,10 +196,13 @@ subroutine zgetv0
|
||||||
|
c | random number generator |
|
||||||
|
c %-----------------------------------%
|
||||||
|
c
|
||||||
|
- iseed(1) = 1
|
||||||
|
- iseed(2) = 3
|
||||||
|
- iseed(3) = 5
|
||||||
|
- iseed(4) = 7
|
||||||
|
+ if (inits) then
|
||||||
|
+ iseed(1) = 1
|
||||||
|
+ iseed(2) = 3
|
||||||
|
+ iseed(3) = 5
|
||||||
|
+ iseed(4) = 7
|
||||||
|
+ inits = .false.
|
||||||
|
+ end if
|
||||||
|
c
|
||||||
|
if (ido .eq. 0) then
|
||||||
|
c
|
Reference in New Issue