changeset 5701:fcc82cc3b632

Update arpack to 3.8.0 * src/arpack.mk: update version, checksum * src/arpack-1-gcc10.patch: removed file * dist-files.mk: remove ref to patch file
author John Donoghue <john.donoghue@ieee.org>
date Mon, 22 Mar 2021 16:13:12 -0400
parents 5e5c201cd134
children 293c86f0481e
files dist-files.mk src/arpack-1-gcc10.patch src/arpack.mk
diffstat 3 files changed, 2 insertions(+), 4441 deletions(-) [+]
line wrap: on
line diff
--- a/dist-files.mk	Mon Mar 22 16:13:11 2021 -0400
+++ b/dist-files.mk	Mon Mar 22 16:13:12 2021 -0400
@@ -7,7 +7,6 @@
   armadillo-1-staticlib.patch \
   armadillo-test.cpp \
   armadillo.mk \
-  arpack-1-gcc10.patch \
   arpack.mk \
   atk-1-DllMain.patch \
   atk.mk \
--- a/src/arpack-1-gcc10.patch	Mon Mar 22 16:13:11 2021 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4438 +0,0 @@
-From 9418632214acf6d387896ab29a8f5bdff2d4e38a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?David=20Schw=C3=B6rer?= <davidsch@fedoraproject.org>
-Date: Wed, 19 Feb 2020 20:07:47 +0000
-Subject: [PATCH] ?vout expects a vector, so make sure to pass a vector
-
-gcc10 throws an error otherwise
-
-diff --git a/SRC/cgetv0.f b/SRC/cgetv0.f
-index 322b35c7..a91ef926 100644
---- a/SRC/cgetv0.f
-+++ b/SRC/cgetv0.f
-@@ -361,9 +361,9 @@ subroutine cgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call svout (logfil, 1, rnorm0, ndigit,
-+          call svout (logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call svout (logfil, 1, rnorm, ndigit,
-+          call svout (logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-@@ -394,7 +394,7 @@ subroutine cgetv0
-    50 continue
- c
-       if (msglvl .gt. 0) then
--         call svout (logfil, 1, rnorm, ndigit,
-+         call svout (logfil, 1, [rnorm], ndigit,
-      &        '_getv0: B-norm of initial / restarted starting vector')
-       end if
-       if (msglvl .gt. 2) then
-diff --git a/SRC/cnaitr.f b/SRC/cnaitr.f
-index 2bb93fff..bebd8236 100644
---- a/SRC/cnaitr.f
-+++ b/SRC/cnaitr.f
-@@ -378,9 +378,9 @@ subroutine cnaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call svout (logfil, 1, rnorm, ndigit,
-+            call svout (logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -400,7 +400,7 @@ subroutine cnaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call ivout (logfil, 1, j, ndigit,
-+               call ivout (logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -729,7 +729,7 @@ subroutine cnaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0 ) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 rtemp(1) = rnorm
-diff --git a/SRC/cnapps.f b/SRC/cnapps.f
-index fdf878d8..c3a55623 100644
---- a/SRC/cnapps.f
-+++ b/SRC/cnapps.f
-@@ -268,9 +268,9 @@ subroutine cnapps
-          sigma = shift(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call ivout (logfil, 1, jj, ndigit,
-+            call ivout (logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call cvout (logfil, 1, sigma, ndigit,
-+            call cvout (logfil, 1, [sigma], ndigit,
-      &               '_napps: Value of the shift ')
-          end if
- c
-@@ -291,9 +291,9 @@ subroutine cnapps
-             if ( abs(real(h(i+1,i)))
-      &           .le. max(ulp*tst1, smlnum) )  then
-                if (msglvl .gt. 0) then
--                  call ivout (logfil, 1, i, ndigit,
-+                  call ivout (logfil, 1, [i], ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call ivout (logfil, 1, jj, ndigit,
-+                  call ivout (logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call cvout (logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -307,9 +307,9 @@ subroutine cnapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call ivout (logfil, 1, istart, ndigit,
-+             call ivout (logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call ivout (logfil, 1, iend, ndigit,
-+             call ivout (logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -485,7 +485,7 @@ subroutine cnapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call cvout (logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call ivout (logfil, 1, kev, ndigit,
-+         call ivout (logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call cmout (logfil, kev, kev, h, ldh, ndigit,
-diff --git a/SRC/cnaup2.f b/SRC/cnaup2.f
-index e528a890..3f106f05 100644
---- a/SRC/cnaup2.f
-+++ b/SRC/cnaup2.f
-@@ -389,7 +389,7 @@ subroutine cnaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, iter, ndigit,
-+            call ivout (logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -402,9 +402,9 @@ subroutine cnaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call ivout (logfil, 1, nev, ndigit,
-+            call ivout (logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -430,7 +430,7 @@ subroutine cnaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call svout (logfil, 1, rnorm, ndigit,
-+            call svout (logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -658,7 +658,7 @@ subroutine cnaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, nconv, ndigit,
-+            call ivout (logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -698,7 +698,7 @@ subroutine cnaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call cvout (logfil, np, ritz, ndigit,
-      &                  '_naup2: values of the shifts')
-@@ -762,7 +762,7 @@ subroutine cnaup2
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call svout (logfil, 1, rnorm, ndigit,
-+            call svout (logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call cmout (logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/SRC/cnaupd.f b/SRC/cnaupd.f
-index 7bf37fd1..57be328b 100644
---- a/SRC/cnaupd.f
-+++ b/SRC/cnaupd.f
-@@ -601,9 +601,9 @@ subroutine cnaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, mxiter, ndigit,
-+         call ivout (logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call ivout (logfil, 1, np, ndigit,
-+         call ivout (logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call cvout (logfil, np, workl(ritz), ndigit,
-      &               '_naupd: The final Ritz values')
-diff --git a/SRC/cneupd.f b/SRC/cneupd.f
-index c557fa08..34a78f70 100644
---- a/SRC/cneupd.f
-+++ b/SRC/cneupd.f
-@@ -536,9 +536,9 @@ subroutine cneupd(rvec , howmny, select, d     ,
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call ivout(logfil, 1, numcnv, ndigit,
-+             call ivout(logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call ivout(logfil, 1, nconv, ndigit,
-+             call ivout(logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/SRC/cngets.f b/SRC/cngets.f
-index 7686e133..20626a2d 100644
---- a/SRC/cngets.f
-+++ b/SRC/cngets.f
-@@ -161,8 +161,8 @@ subroutine cngets ( ishift, which, kev, np, ritz, bounds)
-       tcgets = tcgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call ivout (logfil, 1, np, ndigit, '_ngets: NP is')
-+         call ivout (logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call ivout (logfil, 1, [np], ndigit, '_ngets: NP is')
-          call cvout (logfil, kev+np, ritz, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix ')
-          call cvout (logfil, kev+np, bounds, ndigit,
-diff --git a/SRC/dgetv0.f b/SRC/dgetv0.f
-index fbb4fe2a..1d6dc01b 100644
---- a/SRC/dgetv0.f
-+++ b/SRC/dgetv0.f
-@@ -366,9 +366,9 @@ subroutine dgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call dvout (logfil, 1, rnorm0, ndigit,
-+          call dvout (logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call dvout (logfil, 1, rnorm, ndigit,
-+          call dvout (logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-@@ -399,7 +399,7 @@ subroutine dgetv0
-    50 continue
- c
-       if (msglvl .gt. 0) then
--         call dvout (logfil, 1, rnorm, ndigit,
-+         call dvout (logfil, 1, [rnorm], ndigit,
-      &        '_getv0: B-norm of initial / restarted starting vector')
-       end if
-       if (msglvl .gt. 3) then
-diff --git a/SRC/dnaitr.f b/SRC/dnaitr.f
-index baaec038..c02cd390 100644
---- a/SRC/dnaitr.f
-+++ b/SRC/dnaitr.f
-@@ -371,9 +371,9 @@ subroutine dnaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call dvout (logfil, 1, rnorm, ndigit,
-+            call dvout (logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -393,7 +393,7 @@ subroutine dnaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call ivout (logfil, 1, j, ndigit,
-+               call ivout (logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -721,7 +721,7 @@ subroutine dnaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/SRC/dnapps.f b/SRC/dnapps.f
-index 872d35ae..7fb37d87 100644
---- a/SRC/dnapps.f
-+++ b/SRC/dnapps.f
-@@ -266,11 +266,11 @@ subroutine dnapps
-          sigmai = shifti(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call ivout (logfil, 1, jj, ndigit,
-+            call ivout (logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call dvout (logfil, 1, sigmar, ndigit,
-+            call dvout (logfil, 1, [sigmar], ndigit,
-      &               '_napps: The real part of the shift ')
--            call dvout (logfil, 1, sigmai, ndigit,
-+            call dvout (logfil, 1, [sigmai], ndigit,
-      &               '_napps: The imaginary part of the shift ')
-          end if
- c
-@@ -335,9 +335,9 @@ subroutine dnapps
-      &         tst1 = dlanhs( '1', kplusp-jj+1, h, ldh, workl )
-             if( abs( h( i+1,i ) ).le.max( ulp*tst1, smlnum ) ) then
-                if (msglvl .gt. 0) then
--                  call ivout (logfil, 1, i, ndigit,
-+                  call ivout (logfil, 1, [i], ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call ivout (logfil, 1, jj, ndigit,
-+                  call ivout (logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call dvout (logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -351,9 +351,9 @@ subroutine dnapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call ivout (logfil, 1, istart, ndigit,
-+             call ivout (logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call ivout (logfil, 1, iend, ndigit,
-+             call ivout (logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -627,7 +627,7 @@ subroutine dnapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call dvout (logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call ivout (logfil, 1, kev, ndigit,
-+         call ivout (logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call dmout (logfil, kev, kev, h, ldh, ndigit,
-diff --git a/SRC/dnaup2.f b/SRC/dnaup2.f
-index 4c9948d4..18ad20a0 100644
---- a/SRC/dnaup2.f
-+++ b/SRC/dnaup2.f
-@@ -388,7 +388,7 @@ subroutine dnaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, iter, ndigit,
-+            call ivout (logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -401,9 +401,9 @@ subroutine dnaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call ivout (logfil, 1, nev, ndigit,
-+            call ivout (logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -435,7 +435,7 @@ subroutine dnaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call dvout  (logfil, 1, rnorm, ndigit,
-+            call dvout  (logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -689,7 +689,7 @@ subroutine dnaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, nconv, ndigit,
-+            call ivout (logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -741,7 +741,7 @@ subroutine dnaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call dvout  (logfil, np, ritzr, ndigit,
-      &                  '_naup2: Real part of the shifts')
-@@ -807,7 +807,7 @@ subroutine dnaup2
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call dvout  (logfil, 1, rnorm, ndigit,
-+            call dvout  (logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call dmout  (logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/SRC/dnaupd.f b/SRC/dnaupd.f
-index 51d3018e..dcf1f77a 100644
---- a/SRC/dnaupd.f
-+++ b/SRC/dnaupd.f
-@@ -628,9 +628,9 @@ subroutine dnaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, mxiter, ndigit,
-+         call ivout (logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call ivout (logfil, 1, np, ndigit,
-+         call ivout (logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call dvout  (logfil, np, workl(ritzr), ndigit,
-      &               '_naupd: Real part of the final Ritz values')
-diff --git a/SRC/dneupd.f b/SRC/dneupd.f
-index 424ad2bf..9c2ece0e 100644
---- a/SRC/dneupd.f
-+++ b/SRC/dneupd.f
-@@ -601,9 +601,9 @@ subroutine dneupd (rvec , howmny, select, dr    , di,
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call ivout(logfil, 1, numcnv, ndigit,
-+             call ivout(logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call ivout(logfil, 1, nconv, ndigit,
-+             call ivout(logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/SRC/dngets.f b/SRC/dngets.f
-index a3145506..47d3ac2c 100644
---- a/SRC/dngets.f
-+++ b/SRC/dngets.f
-@@ -212,8 +212,8 @@ subroutine dngets ( ishift, which, kev, np, ritzr, ritzi, bounds,
-       tngets = tngets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call ivout (logfil, 1, np, ndigit, '_ngets: NP is')
-+         call ivout (logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call ivout (logfil, 1, [np], ndigit, '_ngets: NP is')
-          call dvout (logfil, kev+np, ritzr, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix -- real part')
-          call dvout (logfil, kev+np, ritzi, ndigit,
-diff --git a/SRC/dsaitr.f b/SRC/dsaitr.f
-index 00dabfd2..3460d990 100644
---- a/SRC/dsaitr.f
-+++ b/SRC/dsaitr.f
-@@ -364,9 +364,9 @@ subroutine dsaitr
-  1000 continue
- c
-          if (msglvl .gt. 2) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &                  '_saitr: generating Arnoldi vector no.')
--            call dvout (logfil, 1, rnorm, ndigit,
-+            call dvout (logfil, 1, [rnorm], ndigit,
-      &                  '_saitr: B-norm of the current residual =')
-          end if
- c
-@@ -384,7 +384,7 @@ subroutine dsaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call ivout (logfil, 1, j, ndigit,
-+               call ivout (logfil, 1, [j], ndigit,
-      &                     '_saitr: ****** restart at step ******')
-             end if
- c
-@@ -735,7 +735,7 @@ subroutine dsaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &           '_saitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/SRC/dsapps.f b/SRC/dsapps.f
-index 12108d0f..f84ef838 100644
---- a/SRC/dsapps.f
-+++ b/SRC/dsapps.f
-@@ -261,9 +261,9 @@ subroutine dsapps
-             big   = abs(h(i,2)) + abs(h(i+1,2))
-             if (h(i+1,1) .le. epsmch*big) then
-                if (msglvl .gt. 0) then
--                  call ivout (logfil, 1, i, ndigit,
-+                  call ivout (logfil, 1, [i], ndigit,
-      &                 '_sapps: deflation at row/column no.')
--                  call ivout (logfil, 1, jj, ndigit,
-+                  call ivout (logfil, 1, [jj], ndigit,
-      &                 '_sapps: occurred before shift number.')
-                   call dvout (logfil, 1, h(i+1,1), ndigit,
-      &                 '_sapps: the corresponding off diagonal element')
-@@ -432,7 +432,7 @@ subroutine dsapps
-          big   = abs(h(i,2)) + abs(h(i+1,2))
-          if (h(i+1,1) .le. epsmch*big) then
-             if (msglvl .gt. 0) then
--               call ivout (logfil, 1, i, ndigit,
-+               call ivout (logfil, 1, [i], ndigit,
-      &              '_sapps: deflation at row/column no.')
-                call dvout (logfil, 1, h(i+1,1), ndigit,
-      &              '_sapps: the corresponding off diagonal element')
-diff --git a/SRC/dsaup2.f b/SRC/dsaup2.f
-index f4c5f90c..f7d4a119 100644
---- a/SRC/dsaup2.f
-+++ b/SRC/dsaup2.f
-@@ -402,13 +402,13 @@ subroutine dsaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, iter, ndigit,
-+            call ivout (logfil, 1, [iter], ndigit,
-      &           '_saup2: **** Start of major iteration number ****')
-          end if
-          if (msglvl .gt. 1) then
--            call ivout (logfil, 1, nev, ndigit,
-+            call ivout (logfil, 1, [nev], ndigit,
-      &     '_saup2: The length of the current Lanczos factorization')
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &           '_saup2: Extend the Lanczos factorization by')
-          end if
- c
-@@ -446,7 +446,7 @@ subroutine dsaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call dvout (logfil, 1, rnorm, ndigit,
-+            call dvout (logfil, 1, [rnorm], ndigit,
-      &           '_saup2: Current B-norm of residual for factorization')
-          end if
- c
-@@ -695,7 +695,7 @@ subroutine dsaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, nconv, ndigit,
-+            call ivout (logfil, 1, [nconv], ndigit,
-      &           '_saup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -743,7 +743,7 @@ subroutine dsaup2
-          if (ishift .eq. 0) call dcopy (np, workl, 1, ritz, 1)
- c
-          if (msglvl .gt. 2) then
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &                  '_saup2: The number of shifts to apply ')
-             call dvout (logfil, np, workl, ndigit,
-      &                  '_saup2: shifts selected')
-@@ -810,7 +810,7 @@ subroutine dsaup2
-   130    continue
- c
-          if (msglvl .gt. 2) then
--            call dvout (logfil, 1, rnorm, ndigit,
-+            call dvout (logfil, 1, [rnorm], ndigit,
-      &      '_saup2: B-norm of residual for NEV factorization')
-             call dvout (logfil, nev, h(1,2), ndigit,
-      &           '_saup2: main diagonal of compressed H matrix')
-diff --git a/SRC/dsaupd.f b/SRC/dsaupd.f
-index bd4afc26..c5b08d6b 100644
---- a/SRC/dsaupd.f
-+++ b/SRC/dsaupd.f
-@@ -628,9 +628,9 @@ subroutine dsaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, mxiter, ndigit,
-+         call ivout (logfil, 1, [mxiter], ndigit,
-      &               '_saupd: number of update iterations taken')
--         call ivout (logfil, 1, np, ndigit,
-+         call ivout (logfil, 1, [np], ndigit,
-      &               '_saupd: number of "converged" Ritz values')
-          call dvout  (logfil, np, workl(Ritz), ndigit,
-      &               '_saupd: final Ritz values')
-diff --git a/SRC/dseupd.f b/SRC/dseupd.f
-index e89fdccf..ae123a20 100644
---- a/SRC/dseupd.f
-+++ b/SRC/dseupd.f
-@@ -513,9 +513,9 @@ subroutine dseupd (rvec  , howmny, select, d    ,
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call ivout(logfil, 1, numcnv, ndigit,
-+             call ivout(logfil, 1, [numcnv], ndigit,
-      &            '_seupd: Number of specified eigenvalues')
--             call ivout(logfil, 1, nconv, ndigit,
-+             call ivout(logfil, 1, [nconv], ndigit,
-      &            '_seupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/SRC/dsgets.f b/SRC/dsgets.f
-index 800a02f4..436a4fe8 100644
---- a/SRC/dsgets.f
-+++ b/SRC/dsgets.f
-@@ -202,8 +202,8 @@ subroutine dsgets ( ishift, which, kev, np, ritz, bounds, shifts )
-       tsgets = tsgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, kev, ndigit, '_sgets: KEV is')
--         call ivout (logfil, 1, np, ndigit, '_sgets: NP is')
-+         call ivout (logfil, 1, [kev], ndigit, '_sgets: KEV is')
-+         call ivout (logfil, 1, [np], ndigit, '_sgets: NP is')
-          call dvout (logfil, kev+np, ritz, ndigit,
-      &        '_sgets: Eigenvalues of current H matrix')
-          call dvout (logfil, kev+np, bounds, ndigit,
-diff --git a/SRC/sgetv0.f b/SRC/sgetv0.f
-index c768daae..d861b2d6 100644
---- a/SRC/sgetv0.f
-+++ b/SRC/sgetv0.f
-@@ -366,9 +366,9 @@ subroutine sgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call svout (logfil, 1, rnorm0, ndigit,
-+          call svout (logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call svout (logfil, 1, rnorm, ndigit,
-+          call svout (logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-@@ -399,7 +399,7 @@ subroutine sgetv0
-    50 continue
- c
-       if (msglvl .gt. 0) then
--         call svout (logfil, 1, rnorm, ndigit,
-+         call svout (logfil, 1, [rnorm], ndigit,
-      &        '_getv0: B-norm of initial / restarted starting vector')
-       end if
-       if (msglvl .gt. 3) then
-diff --git a/SRC/snaitr.f b/SRC/snaitr.f
-index 5ecdebb7..8a5d795b 100644
---- a/SRC/snaitr.f
-+++ b/SRC/snaitr.f
-@@ -371,9 +371,9 @@ subroutine snaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call svout (logfil, 1, rnorm, ndigit,
-+            call svout (logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -393,7 +393,7 @@ subroutine snaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call ivout (logfil, 1, j, ndigit,
-+               call ivout (logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -721,7 +721,7 @@ subroutine snaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/SRC/snapps.f b/SRC/snapps.f
-index 914c9b8b..9b767285 100644
---- a/SRC/snapps.f
-+++ b/SRC/snapps.f
-@@ -266,11 +266,11 @@ subroutine snapps
-          sigmai = shifti(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call ivout (logfil, 1, jj, ndigit,
-+            call ivout (logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call svout (logfil, 1, sigmar, ndigit,
-+            call svout (logfil, 1, [sigmar], ndigit,
-      &               '_napps: The real part of the shift ')
--            call svout (logfil, 1, sigmai, ndigit,
-+            call svout (logfil, 1, [sigmai], ndigit,
-      &               '_napps: The imaginary part of the shift ')
-          end if
- c
-@@ -335,9 +335,9 @@ subroutine snapps
-      &         tst1 = slanhs( '1', kplusp-jj+1, h, ldh, workl )
-             if( abs( h( i+1,i ) ).le.max( ulp*tst1, smlnum ) ) then
-                if (msglvl .gt. 0) then
--                  call ivout (logfil, 1, i, ndigit,
-+                  call ivout (logfil, 1, [i], ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call ivout (logfil, 1, jj, ndigit,
-+                  call ivout (logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call svout (logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -351,9 +351,9 @@ subroutine snapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call ivout (logfil, 1, istart, ndigit,
-+             call ivout (logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call ivout (logfil, 1, iend, ndigit,
-+             call ivout (logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -625,7 +625,7 @@ subroutine snapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call svout (logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call ivout (logfil, 1, kev, ndigit,
-+         call ivout (logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call smout (logfil, kev, kev, h, ldh, ndigit,
-diff --git a/SRC/snaup2.f b/SRC/snaup2.f
-index 53e39461..12b2cfed 100644
---- a/SRC/snaup2.f
-+++ b/SRC/snaup2.f
-@@ -388,7 +388,7 @@ subroutine snaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, iter, ndigit,
-+            call ivout (logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -401,9 +401,9 @@ subroutine snaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call ivout (logfil, 1, nev, ndigit,
-+            call ivout (logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -435,7 +435,7 @@ subroutine snaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call svout (logfil, 1, rnorm, ndigit,
-+            call svout (logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -690,7 +690,7 @@ subroutine snaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, nconv, ndigit,
-+            call ivout (logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -742,7 +742,7 @@ subroutine snaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call svout (logfil, np, ritzr, ndigit,
-      &                  '_naup2: Real part of the shifts')
-@@ -808,7 +808,7 @@ subroutine snaup2
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call svout (logfil, 1, rnorm, ndigit,
-+            call svout (logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call smout (logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/SRC/snaupd.f b/SRC/snaupd.f
-index 19284d06..e0be1bfd 100644
---- a/SRC/snaupd.f
-+++ b/SRC/snaupd.f
-@@ -628,9 +628,9 @@ subroutine snaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, mxiter, ndigit,
-+         call ivout (logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call ivout (logfil, 1, np, ndigit,
-+         call ivout (logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call svout (logfil, np, workl(ritzr), ndigit,
-      &               '_naupd: Real part of the final Ritz values')
-diff --git a/SRC/sneupd.f b/SRC/sneupd.f
-index ecd8f164..4c472fef 100644
---- a/SRC/sneupd.f
-+++ b/SRC/sneupd.f
-@@ -601,9 +601,9 @@ subroutine sneupd(rvec , howmny, select, dr    , di,
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call ivout(logfil, 1, numcnv, ndigit,
-+             call ivout(logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call ivout(logfil, 1, nconv, ndigit,
-+             call ivout(logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/SRC/sngets.f b/SRC/sngets.f
-index 800282f8..7e48c0bb 100644
---- a/SRC/sngets.f
-+++ b/SRC/sngets.f
-@@ -212,8 +212,8 @@ subroutine sngets ( ishift, which, kev, np, ritzr, ritzi, bounds,
-       tngets = tngets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call ivout (logfil, 1, np, ndigit, '_ngets: NP is')
-+         call ivout (logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call ivout (logfil, 1, [np], ndigit, '_ngets: NP is')
-          call svout (logfil, kev+np, ritzr, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix -- real part')
-          call svout (logfil, kev+np, ritzi, ndigit,
-diff --git a/SRC/ssaitr.f b/SRC/ssaitr.f
-index 721bdb58..a5df2c2e 100644
---- a/SRC/ssaitr.f
-+++ b/SRC/ssaitr.f
-@@ -364,9 +364,9 @@ subroutine ssaitr
-  1000 continue
- c
-          if (msglvl .gt. 2) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &                  '_saitr: generating Arnoldi vector no.')
--            call svout (logfil, 1, rnorm, ndigit,
-+            call svout (logfil, 1, [rnorm], ndigit,
-      &                  '_saitr: B-norm of the current residual =')
-          end if
- c
-@@ -384,7 +384,7 @@ subroutine ssaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call ivout (logfil, 1, j, ndigit,
-+               call ivout (logfil, 1, [j], ndigit,
-      &                     '_saitr: ****** restart at step ******')
-             end if
- c
-@@ -735,7 +735,7 @@ subroutine ssaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &           '_saitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/SRC/ssapps.f b/SRC/ssapps.f
-index c8143111..77bd9d52 100644
---- a/SRC/ssapps.f
-+++ b/SRC/ssapps.f
-@@ -261,9 +261,9 @@ subroutine ssapps
-             big   = abs(h(i,2)) + abs(h(i+1,2))
-             if (h(i+1,1) .le. epsmch*big) then
-                if (msglvl .gt. 0) then
--                  call ivout (logfil, 1, i, ndigit,
-+                  call ivout (logfil, 1, [i], ndigit,
-      &                 '_sapps: deflation at row/column no.')
--                  call ivout (logfil, 1, jj, ndigit,
-+                  call ivout (logfil, 1, [jj], ndigit,
-      &                 '_sapps: occurred before shift number.')
-                   call svout (logfil, 1, h(i+1,1), ndigit,
-      &                 '_sapps: the corresponding off diagonal element')
-@@ -432,7 +432,7 @@ subroutine ssapps
-          big   = abs(h(i,2)) + abs(h(i+1,2))
-          if (h(i+1,1) .le. epsmch*big) then
-             if (msglvl .gt. 0) then
--               call ivout (logfil, 1, i, ndigit,
-+               call ivout (logfil, 1, [i], ndigit,
-      &              '_sapps: deflation at row/column no.')
-                call svout (logfil, 1, h(i+1,1), ndigit,
-      &              '_sapps: the corresponding off diagonal element')
-diff --git a/SRC/ssaup2.f b/SRC/ssaup2.f
-index a73c9a58..8cc04638 100644
---- a/SRC/ssaup2.f
-+++ b/SRC/ssaup2.f
-@@ -402,13 +402,13 @@ subroutine ssaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, iter, ndigit,
-+            call ivout (logfil, 1, [iter], ndigit,
-      &           '_saup2: **** Start of major iteration number ****')
-          end if
-          if (msglvl .gt. 1) then
--            call ivout (logfil, 1, nev, ndigit,
-+            call ivout (logfil, 1, [nev], ndigit,
-      &     '_saup2: The length of the current Lanczos factorization')
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &           '_saup2: Extend the Lanczos factorization by')
-          end if
- c
-@@ -446,7 +446,7 @@ subroutine ssaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call svout (logfil, 1, rnorm, ndigit,
-+            call svout (logfil, 1, [rnorm], ndigit,
-      &           '_saup2: Current B-norm of residual for factorization')
-          end if
- c
-@@ -694,7 +694,7 @@ subroutine ssaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, nconv, ndigit,
-+            call ivout (logfil, 1, [nconv], ndigit,
-      &           '_saup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -742,7 +742,7 @@ subroutine ssaup2
-          if (ishift .eq. 0) call scopy (np, workl, 1, ritz, 1)
- c
-          if (msglvl .gt. 2) then
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &                  '_saup2: The number of shifts to apply ')
-             call svout (logfil, np, workl, ndigit,
-      &                  '_saup2: shifts selected')
-@@ -809,7 +809,7 @@ subroutine ssaup2
-   130    continue
- c
-          if (msglvl .gt. 2) then
--            call svout (logfil, 1, rnorm, ndigit,
-+            call svout (logfil, 1, [rnorm], ndigit,
-      &      '_saup2: B-norm of residual for NEV factorization')
-             call svout (logfil, nev, h(1,2), ndigit,
-      &           '_saup2: main diagonal of compressed H matrix')
-diff --git a/SRC/ssaupd.f b/SRC/ssaupd.f
-index d139ac53..a8d2f2d5 100644
---- a/SRC/ssaupd.f
-+++ b/SRC/ssaupd.f
-@@ -628,9 +628,9 @@ subroutine ssaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, mxiter, ndigit,
-+         call ivout (logfil, 1, [mxiter], ndigit,
-      &               '_saupd: number of update iterations taken')
--         call ivout (logfil, 1, np, ndigit,
-+         call ivout (logfil, 1, [np], ndigit,
-      &               '_saupd: number of "converged" Ritz values')
-          call svout (logfil, np, workl(Ritz), ndigit,
-      &               '_saupd: final Ritz values')
-diff --git a/SRC/sseupd.f b/SRC/sseupd.f
-index 9b94ed7c..03ba7ac5 100644
---- a/SRC/sseupd.f
-+++ b/SRC/sseupd.f
-@@ -513,9 +513,9 @@ subroutine sseupd(rvec  , howmny, select, d    ,
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call ivout(logfil, 1, numcnv, ndigit,
-+             call ivout(logfil, 1, [numcnv], ndigit,
-      &            '_seupd: Number of specified eigenvalues')
--             call ivout(logfil, 1, nconv, ndigit,
-+             call ivout(logfil, 1, [nconv], ndigit,
-      &            '_seupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/SRC/ssgets.f b/SRC/ssgets.f
-index ce84d673..f40ca76a 100644
---- a/SRC/ssgets.f
-+++ b/SRC/ssgets.f
-@@ -202,8 +202,8 @@ subroutine ssgets ( ishift, which, kev, np, ritz, bounds, shifts )
-       tsgets = tsgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, kev, ndigit, '_sgets: KEV is')
--         call ivout (logfil, 1, np, ndigit, '_sgets: NP is')
-+         call ivout (logfil, 1, [kev], ndigit, '_sgets: KEV is')
-+         call ivout (logfil, 1, [np], ndigit, '_sgets: NP is')
-          call svout (logfil, kev+np, ritz, ndigit,
-      &        '_sgets: Eigenvalues of current H matrix')
-          call svout (logfil, kev+np, bounds, ndigit,
-diff --git a/SRC/zgetv0.f b/SRC/zgetv0.f
-index d71f3c03..ff5c2b19 100644
---- a/SRC/zgetv0.f
-+++ b/SRC/zgetv0.f
-@@ -361,9 +361,9 @@ subroutine zgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call dvout (logfil, 1, rnorm0, ndigit,
-+          call dvout (logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call dvout (logfil, 1, rnorm, ndigit,
-+          call dvout (logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-@@ -394,7 +394,7 @@ subroutine zgetv0
-    50 continue
- c
-       if (msglvl .gt. 0) then
--         call dvout (logfil, 1, rnorm, ndigit,
-+         call dvout (logfil, 1, [rnorm], ndigit,
-      &        '_getv0: B-norm of initial / restarted starting vector')
-       end if
-       if (msglvl .gt. 2) then
-diff --git a/SRC/znaitr.f b/SRC/znaitr.f
-index b8331c06..1c5aa57f 100644
---- a/SRC/znaitr.f
-+++ b/SRC/znaitr.f
-@@ -378,9 +378,9 @@ subroutine znaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call dvout (logfil, 1, rnorm, ndigit,
-+            call dvout (logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -400,7 +400,7 @@ subroutine znaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call ivout (logfil, 1, j, ndigit,
-+               call ivout (logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -729,7 +729,7 @@ subroutine znaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0 ) then
--            call ivout (logfil, 1, j, ndigit,
-+            call ivout (logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 rtemp(1) = rnorm
-diff --git a/SRC/znapps.f b/SRC/znapps.f
-index a1f116d3..6d8d12a8 100644
---- a/SRC/znapps.f
-+++ b/SRC/znapps.f
-@@ -268,9 +268,9 @@ subroutine znapps
-          sigma = shift(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call ivout (logfil, 1, jj, ndigit,
-+            call ivout (logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call zvout (logfil, 1, sigma, ndigit,
-+            call zvout (logfil, 1, [sigma], ndigit,
-      &               '_napps: Value of the shift ')
-          end if
- c
-@@ -291,9 +291,9 @@ subroutine znapps
-             if ( abs(dble(h(i+1,i)))
-      &           .le. max(ulp*tst1, smlnum) )  then
-                if (msglvl .gt. 0) then
--                  call ivout (logfil, 1, i, ndigit,
-+                  call ivout (logfil, 1, [i], ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call ivout (logfil, 1, jj, ndigit,
-+                  call ivout (logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call zvout (logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -307,9 +307,9 @@ subroutine znapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call ivout (logfil, 1, istart, ndigit,
-+             call ivout (logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call ivout (logfil, 1, iend, ndigit,
-+             call ivout (logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -485,7 +485,7 @@ subroutine znapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call zvout (logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call ivout (logfil, 1, kev, ndigit,
-+         call ivout (logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call zmout (logfil, kev, kev, h, ldh, ndigit,
-diff --git a/SRC/znaup2.f b/SRC/znaup2.f
-index 469aafb2..b814cf15 100644
---- a/SRC/znaup2.f
-+++ b/SRC/znaup2.f
-@@ -389,7 +389,7 @@ subroutine znaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, iter, ndigit,
-+            call ivout (logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -402,9 +402,9 @@ subroutine znaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call ivout (logfil, 1, nev, ndigit,
-+            call ivout (logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -430,7 +430,7 @@ subroutine znaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call dvout  (logfil, 1, rnorm, ndigit,
-+            call dvout  (logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -658,7 +658,7 @@ subroutine znaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call ivout (logfil, 1, nconv, ndigit,
-+            call ivout (logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -698,7 +698,7 @@ subroutine znaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call ivout (logfil, 1, np, ndigit,
-+            call ivout (logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call zvout  (logfil, np, ritz, ndigit,
-      &                  '_naup2: values of the shifts')
-@@ -762,7 +762,7 @@ subroutine znaup2
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call dvout  (logfil, 1, rnorm, ndigit,
-+            call dvout  (logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call zmout  (logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/SRC/znaupd.f b/SRC/znaupd.f
-index 779eb2bc..c7d58aaa 100644
---- a/SRC/znaupd.f
-+++ b/SRC/znaupd.f
-@@ -601,9 +601,9 @@ subroutine znaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, mxiter, ndigit,
-+         call ivout (logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call ivout (logfil, 1, np, ndigit,
-+         call ivout (logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call zvout  (logfil, np, workl(ritz), ndigit,
-      &               '_naupd: The final Ritz values')
-diff --git a/SRC/zneupd.f b/SRC/zneupd.f
-index f1eb68a3..9889e30e 100644
---- a/SRC/zneupd.f
-+++ b/SRC/zneupd.f
-@@ -536,9 +536,9 @@ subroutine zneupd(rvec , howmny, select, d     ,
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call ivout(logfil, 1, numcnv, ndigit,
-+             call ivout(logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call ivout(logfil, 1, nconv, ndigit,
-+             call ivout(logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/SRC/zngets.f b/SRC/zngets.f
-index 27f25803..e7d24334 100644
---- a/SRC/zngets.f
-+++ b/SRC/zngets.f
-@@ -161,8 +161,8 @@ subroutine zngets ( ishift, which, kev, np, ritz, bounds)
-       tcgets = tcgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call ivout (logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call ivout (logfil, 1, np, ndigit, '_ngets: NP is')
-+         call ivout (logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call ivout (logfil, 1, [np], ndigit, '_ngets: NP is')
-          call zvout (logfil, kev+np, ritz, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix ')
-          call zvout (logfil, kev+np, bounds, ndigit,
-
-
-From ad82dcbc0beeed5616e2d5a28a089d9785f8b8b8 Mon Sep 17 00:00:00 2001
-From: dschwoerer <dschwoerer@users.noreply.github.com>
-Date: Mon, 24 Feb 2020 09:05:43 +0000
-Subject: [PATCH] gcc-10 (parpack) and mpich (#245)
-
-* port PARPACK also to gcc 10
-
-* Ensure that the output buffer is a rank-1 vector
-
-The vector should also not be a temporary, so that we
-can use the result.
-
-* use valid address of binary
-
-openmpi ignores this error, but mpich doesn't
-
-* Add travis test with gcc 10 and mpich
-
-* After pulling fedora:rawhide, use fedora:rawhide
-
-* simplify travis tests for fedora
-
-* run using bash -v (permissions issue otherwise)
-
-* run using bash -v (permissions issue otherwise)
-
-* fix permission of script
-
-* Add she-bang to allow execution
-
-* fix test for fedora
-
-Co-authored-by: Sylvestre Ledru <sledru@mozilla.com>
-
-diff --git a/PARPACK/SRC/BLACS/pcgetv0.f b/PARPACK/SRC/BLACS/pcgetv0.f
-index 0325fda3..191d70fd 100644
---- a/PARPACK/SRC/BLACS/pcgetv0.f
-+++ b/PARPACK/SRC/BLACS/pcgetv0.f
-@@ -406,9 +406,9 @@ subroutine pcgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call psvout (comm, logfil, 1, rnorm0, ndigit,
-+          call psvout (comm, logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call psvout (comm, logfil, 1, rnorm, ndigit,
-+          call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-diff --git a/PARPACK/SRC/BLACS/pcnaitr.f b/PARPACK/SRC/BLACS/pcnaitr.f
-index a9f17ed8..04fa1cbe 100644
---- a/PARPACK/SRC/BLACS/pcnaitr.f
-+++ b/PARPACK/SRC/BLACS/pcnaitr.f
-@@ -401,9 +401,9 @@ subroutine pcnaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call pcvout (comm, logfil, 1, rnorm, ndigit,
-+            call pcvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -423,7 +423,7 @@ subroutine pcnaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -757,7 +757,7 @@ subroutine pcnaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0 ) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 rtemp(1) = rnorm
-diff --git a/PARPACK/SRC/BLACS/pcnapps.f b/PARPACK/SRC/BLACS/pcnapps.f
-index 47fb7e70..e40793cf 100644
---- a/PARPACK/SRC/BLACS/pcnapps.f
-+++ b/PARPACK/SRC/BLACS/pcnapps.f
-@@ -284,9 +284,9 @@ subroutine pcnapps
-          sigma = shift(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call pivout (comm, logfil, 1, jj, ndigit,
-+            call pivout (comm, logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call pcvout (comm, logfil, 1, sigma, ndigit,
-+            call pcvout (comm, logfil, 1, [sigma], ndigit,
-      &               '_napps: Value of the shift ')
-          end if
- c
-@@ -307,9 +307,9 @@ subroutine pcnapps
-             if ( abs(real(h(i+1,i)))
-      &           .le. max(ulp*tst1, smlnum) )  then
-                if (msglvl .gt. 0) then
--                  call pivout (comm, logfil, 1, i, ndigit,
-+                  call pivout (comm, logfil, 1, [i], ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call pcvout (comm, logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -323,9 +323,9 @@ subroutine pcnapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call pivout (comm, logfil, 1, istart, ndigit,
-+             call pivout (comm, logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call pivout (comm, logfil, 1, iend, ndigit,
-+             call pivout (comm, logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -501,7 +501,7 @@ subroutine pcnapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call pcvout (comm, logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call pivout (comm, logfil, 1, kev, ndigit,
-+         call pivout (comm, logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call pcmout (comm, logfil, kev, kev, h, ldh, ndigit,
-diff --git a/PARPACK/SRC/BLACS/pcnaup2.f b/PARPACK/SRC/BLACS/pcnaup2.f
-index 55868069..757b12c3 100644
---- a/PARPACK/SRC/BLACS/pcnaup2.f
-+++ b/PARPACK/SRC/BLACS/pcnaup2.f
-@@ -398,7 +398,7 @@ subroutine pcnaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -411,9 +411,9 @@ subroutine pcnaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -440,7 +440,7 @@ subroutine pcnaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -671,7 +671,7 @@ subroutine pcnaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -711,7 +711,7 @@ subroutine pcnaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call pcvout (comm, logfil, np, ritz, ndigit,
-      &                  '_naup2: values of the shifts')
-@@ -776,7 +776,7 @@ subroutine pcnaup2
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call pcmout (comm, logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/PARPACK/SRC/BLACS/pcnaupd.f b/PARPACK/SRC/BLACS/pcnaupd.f
-index b350199e..55bb655d 100644
---- a/PARPACK/SRC/BLACS/pcnaupd.f
-+++ b/PARPACK/SRC/BLACS/pcnaupd.f
-@@ -618,9 +618,9 @@ subroutine pcnaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call pcvout (comm, logfil, np, workl(ritz), ndigit,
-      &               '_naupd: The final Ritz values')
-diff --git a/PARPACK/SRC/BLACS/pcneupd.f b/PARPACK/SRC/BLACS/pcneupd.f
-index 53cf2d24..da4a9ec5 100644
---- a/PARPACK/SRC/BLACS/pcneupd.f
-+++ b/PARPACK/SRC/BLACS/pcneupd.f
-@@ -558,9 +558,9 @@ subroutine pcneupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/BLACS/pcngets.f b/PARPACK/SRC/BLACS/pcngets.f
-index f9cca353..89cd67ae 100644
---- a/PARPACK/SRC/BLACS/pcngets.f
-+++ b/PARPACK/SRC/BLACS/pcngets.f
-@@ -177,8 +177,8 @@ subroutine pcngets ( comm, ishift, which, kev, np, ritz, bounds)
-       tcgets = tcgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_ngets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_ngets: NP is')
-          call pcvout (comm, logfil, kev+np, ritz, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix ')
-          call pcvout (comm, logfil, kev+np, bounds, ndigit,
-diff --git a/PARPACK/SRC/BLACS/pdgetv0.f b/PARPACK/SRC/BLACS/pdgetv0.f
-index 9c3a1d99..237443dd 100644
---- a/PARPACK/SRC/BLACS/pdgetv0.f
-+++ b/PARPACK/SRC/BLACS/pdgetv0.f
-@@ -385,9 +385,9 @@ subroutine pdgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call pdvout (comm, logfil, 1, rnorm0, ndigit,
-+          call pdvout (comm, logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call pdvout (comm, logfil, 1, rnorm, ndigit,
-+          call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-@@ -418,7 +418,7 @@ subroutine pdgetv0
-    50 continue
- c
-       if (msglvl .gt. 0) then
--         call pdvout (comm, logfil, 1, rnorm, ndigit,
-+         call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &        '_getv0: B-norm of initial / restarted starting vector')
-       end if
-       if (msglvl .gt. 2) then
-diff --git a/PARPACK/SRC/BLACS/pdnaitr.f b/PARPACK/SRC/BLACS/pdnaitr.f
-index f6557560..fb46494f 100644
---- a/PARPACK/SRC/BLACS/pdnaitr.f
-+++ b/PARPACK/SRC/BLACS/pdnaitr.f
-@@ -390,9 +390,9 @@ subroutine pdnaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -412,7 +412,7 @@ subroutine pdnaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -745,7 +745,7 @@ subroutine pdnaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/PARPACK/SRC/BLACS/pdnapps.f b/PARPACK/SRC/BLACS/pdnapps.f
-index 56e3414d..eadca320 100644
---- a/PARPACK/SRC/BLACS/pdnapps.f
-+++ b/PARPACK/SRC/BLACS/pdnapps.f
-@@ -276,11 +276,11 @@ subroutine pdnapps
-          sigmai = shifti(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call pivout (comm, logfil, 1, jj, ndigit,
-+            call pivout (comm, logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call pdvout (comm, logfil, 1, sigmar, ndigit,
-+            call pdvout (comm, logfil, 1, [sigmar], ndigit,
-      &               '_napps: The real part of the shift ')
--            call pdvout (comm, logfil, 1, sigmai, ndigit,
-+            call pdvout (comm, logfil, 1, [sigmai], ndigit,
-      &               '_napps: The imaginary part of the shift ')
-          end if
- c
-@@ -347,7 +347,7 @@ subroutine pdnapps
-                if (msglvl .gt. 0) then
-                   call pivout (comm, logfil, 1, i, ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call pdvout (comm, logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -361,9 +361,9 @@ subroutine pdnapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call pivout (comm, logfil, 1, istart, ndigit,
-+             call pivout (comm, logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call pivout (comm, logfil, 1, iend, ndigit,
-+             call pivout (comm, logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -635,7 +635,7 @@ subroutine pdnapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call pdvout (comm, logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call pivout (comm, logfil, 1, kev, ndigit,
-+         call pivout (comm, logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call pdmout (comm, logfil, kev, kev, h, ldh, ndigit,
-diff --git a/PARPACK/SRC/BLACS/pdnaup2.f b/PARPACK/SRC/BLACS/pdnaup2.f
-index becea72d..a295dbbb 100644
---- a/PARPACK/SRC/BLACS/pdnaup2.f
-+++ b/PARPACK/SRC/BLACS/pdnaup2.f
-@@ -405,7 +405,7 @@ subroutine pdnaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -418,9 +418,9 @@ subroutine pdnaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -452,7 +452,7 @@ subroutine pdnaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call pdvout  (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout  (comm, logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -696,7 +696,7 @@ subroutine pdnaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -748,7 +748,7 @@ subroutine pdnaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call pdvout  (comm, logfil, np, ritzr, ndigit,
-      &                  '_naup2: Real part of the shifts')
-@@ -815,7 +815,7 @@ subroutine pdnaup2
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call pdvout  (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout  (comm, logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call pdmout  (comm, logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/PARPACK/SRC/BLACS/pdnaupd.f b/PARPACK/SRC/BLACS/pdnaupd.f
-index d947755b..ed0fa20f 100644
---- a/PARPACK/SRC/BLACS/pdnaupd.f
-+++ b/PARPACK/SRC/BLACS/pdnaupd.f
-@@ -642,9 +642,9 @@ subroutine pdnaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call pdvout  (comm, logfil, np, workl(ritzr), ndigit,
-      &               '_naupd: Real part of the final Ritz values')
-diff --git a/PARPACK/SRC/BLACS/pdneupd.f b/PARPACK/SRC/BLACS/pdneupd.f
-index 0ff911ff..321202f9 100644
---- a/PARPACK/SRC/BLACS/pdneupd.f
-+++ b/PARPACK/SRC/BLACS/pdneupd.f
-@@ -617,9 +617,9 @@ subroutine pdneupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/BLACS/pdngets.f b/PARPACK/SRC/BLACS/pdngets.f
-index 71ed6a7c..12a691f6 100644
---- a/PARPACK/SRC/BLACS/pdngets.f
-+++ b/PARPACK/SRC/BLACS/pdngets.f
-@@ -226,8 +226,8 @@ subroutine pdngets
-       tngets = tngets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_ngets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_ngets: NP is')
-          call pdvout (comm, logfil, kev+np, ritzr, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix -- real part')
-          call pdvout (comm, logfil, kev+np, ritzi, ndigit,
-diff --git a/PARPACK/SRC/BLACS/pdsaitr.f b/PARPACK/SRC/BLACS/pdsaitr.f
-index 37ca61e8..9a2cdfc1 100644
---- a/PARPACK/SRC/BLACS/pdsaitr.f
-+++ b/PARPACK/SRC/BLACS/pdsaitr.f
-@@ -389,9 +389,9 @@ subroutine pdsaitr
-  1000 continue
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_saitr: generating Arnoldi vector no.')
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_saitr: B-norm of the current residual =')
-          end if
- c
-@@ -409,7 +409,7 @@ subroutine pdsaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_saitr: ****** restart at step ******')
-             end if
- c
-@@ -767,7 +767,7 @@ subroutine pdsaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/PARPACK/SRC/BLACS/pdsapps.f b/PARPACK/SRC/BLACS/pdsapps.f
-index b3a05cf4..4e2c0760 100644
---- a/PARPACK/SRC/BLACS/pdsapps.f
-+++ b/PARPACK/SRC/BLACS/pdsapps.f
-@@ -272,9 +272,9 @@ subroutine pdsapps
-             big   = abs(h(i,2)) + abs(h(i+1,2))
-             if (h(i+1,1) .le. epsmch*big) then
-                if (msglvl .gt. 0) then
--                  call pivout (comm, logfil, 1, i, ndigit,
-+                  call pivout (comm, logfil, 1, [i], ndigit,
-      &                 '_sapps: deflation at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_sapps: occurred before shift number.')
-                   call pdvout (comm, logfil, 1, h(i+1,1), ndigit,
-      &                 '_sapps: the corresponding off diagonal element')
-@@ -443,7 +443,7 @@ subroutine pdsapps
-          big   = abs(h(i,2)) + abs(h(i+1,2))
-          if (h(i+1,1) .le. epsmch*big) then
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, i, ndigit,
-+               call pivout (comm, logfil, 1, [i], ndigit,
-      &              '_sapps: deflation at row/column no.')
-                call pdvout (comm, logfil, 1, h(i+1,1), ndigit,
-      &              '_sapps: the corresponding off diagonal element')
-diff --git a/PARPACK/SRC/BLACS/pdsaup2.f b/PARPACK/SRC/BLACS/pdsaup2.f
-index cf934016..599aad62 100644
---- a/PARPACK/SRC/BLACS/pdsaup2.f
-+++ b/PARPACK/SRC/BLACS/pdsaup2.f
-@@ -421,13 +421,13 @@ subroutine pdsaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_saup2: **** Start of major iteration number ****')
-          end if
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_saup2: The length of the current Lanczos factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_saup2: Extend the Lanczos factorization by')
-          end if
- c
-@@ -466,7 +466,7 @@ subroutine pdsaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &           '_saup2: Current B-norm of residual for factorization')
-          end if
- c
-@@ -716,7 +716,7 @@ subroutine pdsaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_saup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -763,7 +763,7 @@ subroutine pdsaup2
-          if (ishift .eq. 0) call dcopy (np, workl, 1, ritz, 1)
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_saup2: The number of shifts to apply ')
-             call pdvout (comm, logfil, np, workl, ndigit,
-      &                  '_saup2: shifts selected')
-@@ -831,7 +831,7 @@ subroutine pdsaup2
-   130    continue
- c
-          if (msglvl .gt. 2) then
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &      '_saup2: B-norm of residual for NEV factorization')
-             call pdvout (comm, logfil, nev, h(1,2), ndigit,
-      &           '_saup2: main diagonal of compressed H matrix')
-diff --git a/PARPACK/SRC/BLACS/pdsaupd.f b/PARPACK/SRC/BLACS/pdsaupd.f
-index 5f606d59..cb021128 100644
---- a/PARPACK/SRC/BLACS/pdsaupd.f
-+++ b/PARPACK/SRC/BLACS/pdsaupd.f
-@@ -644,9 +644,9 @@ subroutine pdsaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_saupd: number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_saupd: number of "converged" Ritz values')
-          call pdvout  (comm, logfil, np, workl(Ritz), ndigit,
-      &               '_saupd: final Ritz values')
-diff --git a/PARPACK/SRC/BLACS/pdseupd.f b/PARPACK/SRC/BLACS/pdseupd.f
-index 956891cd..074b195b 100644
---- a/PARPACK/SRC/BLACS/pdseupd.f
-+++ b/PARPACK/SRC/BLACS/pdseupd.f
-@@ -523,9 +523,9 @@ subroutine pdseupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/BLACS/pdsgets.f b/PARPACK/SRC/BLACS/pdsgets.f
-index aa549a25..d0f703bb 100644
---- a/PARPACK/SRC/BLACS/pdsgets.f
-+++ b/PARPACK/SRC/BLACS/pdsgets.f
-@@ -216,8 +216,8 @@ subroutine pdsgets
-       tsgets = tsgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_sgets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_sgets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_sgets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_sgets: NP is')
-          call pdvout (comm, logfil, kev+np, ritz, ndigit,
-      &        '_sgets: Eigenvalues of current H matrix')
-          call pdvout (comm, logfil, kev+np, bounds, ndigit,
-diff --git a/PARPACK/SRC/BLACS/psgetv0.f b/PARPACK/SRC/BLACS/psgetv0.f
-index 9862d055..d48cb6db 100644
---- a/PARPACK/SRC/BLACS/psgetv0.f
-+++ b/PARPACK/SRC/BLACS/psgetv0.f
-@@ -385,9 +385,9 @@ subroutine psgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call psvout (comm, logfil, 1, rnorm0, ndigit,
-+          call psvout (comm, logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call psvout (comm, logfil, 1, rnorm, ndigit,
-+          call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-@@ -418,7 +418,7 @@ subroutine psgetv0
-    50 continue
- c
-       if (msglvl .gt. 0) then
--         call psvout (comm, logfil, 1, rnorm, ndigit,
-+         call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &        '_getv0: B-norm of initial / restarted starting vector')
-       end if
-       if (msglvl .gt. 2) then
-diff --git a/PARPACK/SRC/BLACS/psnaitr.f b/PARPACK/SRC/BLACS/psnaitr.f
-index 07aa0526..bbd2809c 100644
---- a/PARPACK/SRC/BLACS/psnaitr.f
-+++ b/PARPACK/SRC/BLACS/psnaitr.f
-@@ -390,9 +390,9 @@ subroutine psnaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -412,7 +412,7 @@ subroutine psnaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -745,7 +745,7 @@ subroutine psnaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/PARPACK/SRC/BLACS/psnapps.f b/PARPACK/SRC/BLACS/psnapps.f
-index a515d0cd..ba668bba 100644
---- a/PARPACK/SRC/BLACS/psnapps.f
-+++ b/PARPACK/SRC/BLACS/psnapps.f
-@@ -276,11 +276,11 @@ subroutine psnapps
-          sigmai = shifti(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call pivout (comm, logfil, 1, jj, ndigit,
-+            call pivout (comm, logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call psvout (comm, logfil, 1, sigmar, ndigit,
-+            call psvout (comm, logfil, 1, [sigmar], ndigit,
-      &               '_napps: The real part of the shift ')
--            call psvout (comm, logfil, 1, sigmai, ndigit,
-+            call psvout (comm, logfil, 1, [sigmai], ndigit,
-      &               '_napps: The imaginary part of the shift ')
-          end if
- c
-@@ -347,7 +347,7 @@ subroutine psnapps
-                if (msglvl .gt. 0) then
-                   call pivout (comm, logfil, 1, i, ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call psvout (comm, logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -361,9 +361,9 @@ subroutine psnapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call pivout (comm, logfil, 1, istart, ndigit,
-+             call pivout (comm, logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call pivout (comm, logfil, 1, iend, ndigit,
-+             call pivout (comm, logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -635,7 +635,7 @@ subroutine psnapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call psvout (comm, logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call pivout (comm, logfil, 1, kev, ndigit,
-+         call pivout (comm, logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call psmout (comm, logfil, kev, kev, h, ldh, ndigit,
-diff --git a/PARPACK/SRC/BLACS/psnaup2.f b/PARPACK/SRC/BLACS/psnaup2.f
-index eff2a136..e4603273 100644
---- a/PARPACK/SRC/BLACS/psnaup2.f
-+++ b/PARPACK/SRC/BLACS/psnaup2.f
-@@ -405,7 +405,7 @@ subroutine psnaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -418,9 +418,9 @@ subroutine psnaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -452,7 +452,7 @@ subroutine psnaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -696,7 +696,7 @@ subroutine psnaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -748,7 +748,7 @@ subroutine psnaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call psvout (comm, logfil, np, ritzr, ndigit,
-      &                  '_naup2: Real part of the shifts')
-@@ -815,7 +815,7 @@ subroutine psnaup2
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call psmout (comm, logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/PARPACK/SRC/BLACS/psnaupd.f b/PARPACK/SRC/BLACS/psnaupd.f
-index 55f34ce6..4f2484f9 100644
---- a/PARPACK/SRC/BLACS/psnaupd.f
-+++ b/PARPACK/SRC/BLACS/psnaupd.f
-@@ -642,9 +642,9 @@ subroutine psnaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call psvout (comm, logfil, np, workl(ritzr), ndigit,
-      &               '_naupd: Real part of the final Ritz values')
-diff --git a/PARPACK/SRC/BLACS/psneupd.f b/PARPACK/SRC/BLACS/psneupd.f
-index 49847ffe..cbdaba28 100644
---- a/PARPACK/SRC/BLACS/psneupd.f
-+++ b/PARPACK/SRC/BLACS/psneupd.f
-@@ -617,9 +617,9 @@ subroutine psneupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/BLACS/psngets.f b/PARPACK/SRC/BLACS/psngets.f
-index c0e30886..33d85dfe 100644
---- a/PARPACK/SRC/BLACS/psngets.f
-+++ b/PARPACK/SRC/BLACS/psngets.f
-@@ -226,8 +226,8 @@ subroutine psngets
-       tngets = tngets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_ngets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_ngets: NP is')
-          call psvout (comm, logfil, kev+np, ritzr, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix -- real part')
-          call psvout (comm, logfil, kev+np, ritzi, ndigit,
-diff --git a/PARPACK/SRC/BLACS/pssaitr.f b/PARPACK/SRC/BLACS/pssaitr.f
-index 50816c4f..e57864a5 100644
---- a/PARPACK/SRC/BLACS/pssaitr.f
-+++ b/PARPACK/SRC/BLACS/pssaitr.f
-@@ -389,9 +389,9 @@ subroutine pssaitr
-  1000 continue
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_saitr: generating Arnoldi vector no.')
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_saitr: B-norm of the current residual =')
-          end if
- c
-@@ -409,7 +409,7 @@ subroutine pssaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_saitr: ****** restart at step ******')
-             end if
- c
-@@ -767,7 +767,7 @@ subroutine pssaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/PARPACK/SRC/BLACS/pssapps.f b/PARPACK/SRC/BLACS/pssapps.f
-index 7c8465b3..5198a734 100644
---- a/PARPACK/SRC/BLACS/pssapps.f
-+++ b/PARPACK/SRC/BLACS/pssapps.f
-@@ -272,9 +272,9 @@ subroutine pssapps
-             big   = abs(h(i,2)) + abs(h(i+1,2))
-             if (h(i+1,1) .le. epsmch*big) then
-                if (msglvl .gt. 0) then
--                  call pivout (comm, logfil, 1, i, ndigit,
-+                  call pivout (comm, logfil, 1, [i], ndigit,
-      &                 '_sapps: deflation at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_sapps: occurred before shift number.')
-                   call psvout (comm, logfil, 1, h(i+1,1), ndigit,
-      &                 '_sapps: the corresponding off diagonal element')
-@@ -443,7 +443,7 @@ subroutine pssapps
-          big   = abs(h(i,2)) + abs(h(i+1,2))
-          if (h(i+1,1) .le. epsmch*big) then
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, i, ndigit,
-+               call pivout (comm, logfil, 1, [i], ndigit,
-      &              '_sapps: deflation at row/column no.')
-                call psvout (comm, logfil, 1, h(i+1,1), ndigit,
-      &              '_sapps: the corresponding off diagonal element')
-diff --git a/PARPACK/SRC/BLACS/pssaup2.f b/PARPACK/SRC/BLACS/pssaup2.f
-index 57ab391b..87cc3a81 100644
---- a/PARPACK/SRC/BLACS/pssaup2.f
-+++ b/PARPACK/SRC/BLACS/pssaup2.f
-@@ -421,13 +421,13 @@ subroutine pssaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_saup2: **** Start of major iteration number ****')
-          end if
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_saup2: The length of the current Lanczos factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_saup2: Extend the Lanczos factorization by')
-          end if
- c
-@@ -466,7 +466,7 @@ subroutine pssaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &           '_saup2: Current B-norm of residual for factorization')
-          end if
- c
-@@ -716,7 +716,7 @@ subroutine pssaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_saup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -763,7 +763,7 @@ subroutine pssaup2
-          if (ishift .eq. 0) call scopy (np, workl, 1, ritz, 1)
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_saup2: The number of shifts to apply ')
-             call psvout (comm, logfil, np, workl, ndigit,
-      &                  '_saup2: shifts selected')
-@@ -831,7 +831,7 @@ subroutine pssaup2
-   130    continue
- c
-          if (msglvl .gt. 2) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &      '_saup2: B-norm of residual for NEV factorization')
-             call psvout (comm, logfil, nev, h(1,2), ndigit,
-      &           '_saup2: main diagonal of compressed H matrix')
-diff --git a/PARPACK/SRC/BLACS/pssaupd.f b/PARPACK/SRC/BLACS/pssaupd.f
-index 1b276e86..9d6061c1 100644
---- a/PARPACK/SRC/BLACS/pssaupd.f
-+++ b/PARPACK/SRC/BLACS/pssaupd.f
-@@ -644,9 +644,9 @@ subroutine pssaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_saupd: number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_saupd: number of "converged" Ritz values')
-          call psvout (comm, logfil, np, workl(Ritz), ndigit,
-      &               '_saupd: final Ritz values')
-diff --git a/PARPACK/SRC/BLACS/psseupd.f b/PARPACK/SRC/BLACS/psseupd.f
-index 68edab15..e8c910e8 100644
---- a/PARPACK/SRC/BLACS/psseupd.f
-+++ b/PARPACK/SRC/BLACS/psseupd.f
-@@ -523,9 +523,9 @@ subroutine psseupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/BLACS/pssgets.f b/PARPACK/SRC/BLACS/pssgets.f
-index d138282a..660c274f 100644
---- a/PARPACK/SRC/BLACS/pssgets.f
-+++ b/PARPACK/SRC/BLACS/pssgets.f
-@@ -216,8 +216,8 @@ subroutine pssgets
-       tsgets = tsgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_sgets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_sgets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_sgets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_sgets: NP is')
-          call psvout (comm, logfil, kev+np, ritz, ndigit,
-      &        '_sgets: Eigenvalues of current H matrix')
-          call psvout (comm, logfil, kev+np, bounds, ndigit,
-diff --git a/PARPACK/SRC/BLACS/pzgetv0.f b/PARPACK/SRC/BLACS/pzgetv0.f
-index 09723313..c1d173f0 100644
---- a/PARPACK/SRC/BLACS/pzgetv0.f
-+++ b/PARPACK/SRC/BLACS/pzgetv0.f
-@@ -406,9 +406,9 @@ subroutine pzgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call pdvout  (comm, logfil, 1, rnorm0, ndigit,
-+          call pdvout  (comm, logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call pdvout  (comm, logfil, 1, rnorm, ndigit,
-+          call pdvout  (comm, logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-@@ -440,7 +440,7 @@ subroutine pzgetv0
- c
-       if (msglvl .gt. 0) then
-          cnorm2 = dcmplx (rnorm,rzero)
--         call pzvout  (comm, logfil, 1, cnorm2, ndigit,
-+         call pzvout  (comm, logfil, 1, [cnorm2], ndigit,
-      &        '_getv0: B-norm of initial / restarted starting vector')
-       end if
-       if (msglvl .gt. 2) then
-diff --git a/PARPACK/SRC/BLACS/pznaitr.f b/PARPACK/SRC/BLACS/pznaitr.f
-index 61f467a2..92db7fe7 100644
---- a/PARPACK/SRC/BLACS/pznaitr.f
-+++ b/PARPACK/SRC/BLACS/pznaitr.f
-@@ -401,9 +401,9 @@ subroutine pznaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call pzvout (comm, logfil, 1, rnorm, ndigit,
-+            call pzvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -423,7 +423,7 @@ subroutine pznaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -757,7 +757,7 @@ subroutine pznaitr
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0 ) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 rtemp(1) = rnorm
-diff --git a/PARPACK/SRC/BLACS/pznapps.f b/PARPACK/SRC/BLACS/pznapps.f
-index 796f4ded..155038d1 100644
---- a/PARPACK/SRC/BLACS/pznapps.f
-+++ b/PARPACK/SRC/BLACS/pznapps.f
-@@ -284,9 +284,9 @@ subroutine pznapps
-          sigma = shift(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call pivout (comm, logfil, 1, jj, ndigit,
-+            call pivout (comm, logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call pzvout (comm, logfil, 1, sigma, ndigit,
-+            call pzvout (comm, logfil, 1, [sigma], ndigit,
-      &               '_napps: Value of the shift ')
-          end if
- c
-@@ -307,9 +307,9 @@ subroutine pznapps
-             if ( abs(dble(h(i+1,i)))
-      &           .le. max(ulp*tst1, smlnum) )  then
-                if (msglvl .gt. 0) then
--                  call pivout (comm, logfil, 1, i, ndigit,
-+                  call pivout (comm, logfil, 1, [i], ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call pzvout (comm, logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -323,9 +323,9 @@ subroutine pznapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call pivout (comm, logfil, 1, istart, ndigit,
-+             call pivout (comm, logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call pivout (comm, logfil, 1, iend, ndigit,
-+             call pivout (comm, logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -501,7 +501,7 @@ subroutine pznapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call pzvout (comm, logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call pivout (comm, logfil, 1, kev, ndigit,
-+         call pivout (comm, logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call pzmout (comm, logfil, kev, kev, h, ldh, ndigit,
-diff --git a/PARPACK/SRC/BLACS/pznaup2.f b/PARPACK/SRC/BLACS/pznaup2.f
-index 22b46dd2..1610a588 100644
---- a/PARPACK/SRC/BLACS/pznaup2.f
-+++ b/PARPACK/SRC/BLACS/pznaup2.f
-@@ -398,7 +398,7 @@ subroutine pznaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -411,9 +411,9 @@ subroutine pznaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -440,7 +440,7 @@ subroutine pznaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -671,7 +671,7 @@ subroutine pznaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -711,7 +711,7 @@ subroutine pznaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call pzvout (comm, logfil, np, ritz, ndigit,
-      &                  '_naup2: values of the shifts')
-@@ -776,7 +776,7 @@ subroutine pznaup2
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call pzmout (comm, logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/PARPACK/SRC/BLACS/pznaupd.f b/PARPACK/SRC/BLACS/pznaupd.f
-index 0bf616f9..b46679a6 100644
---- a/PARPACK/SRC/BLACS/pznaupd.f
-+++ b/PARPACK/SRC/BLACS/pznaupd.f
-@@ -618,9 +618,9 @@ subroutine pznaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call pzvout  (comm, logfil, np, workl(ritz), ndigit,
-      &               '_naupd: The final Ritz values')
-diff --git a/PARPACK/SRC/BLACS/pzneupd.f b/PARPACK/SRC/BLACS/pzneupd.f
-index 1970e488..c2f508f2 100644
---- a/PARPACK/SRC/BLACS/pzneupd.f
-+++ b/PARPACK/SRC/BLACS/pzneupd.f
-@@ -558,9 +558,9 @@ subroutine pzneupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/BLACS/pzngets.f b/PARPACK/SRC/BLACS/pzngets.f
-index 18e1518d..d880b4cc 100644
---- a/PARPACK/SRC/BLACS/pzngets.f
-+++ b/PARPACK/SRC/BLACS/pzngets.f
-@@ -177,8 +177,8 @@ subroutine pzngets ( comm, ishift, which, kev, np, ritz, bounds)
-       tcgets = tcgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_ngets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_ngets: NP is')
-          call pzvout (comm, logfil, kev+np, ritz, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix ')
-          call pzvout (comm, logfil, kev+np, bounds, ndigit,
-diff --git a/PARPACK/SRC/MPI/pcgetv0.f b/PARPACK/SRC/MPI/pcgetv0.f
-index aacfd046..72677a50 100644
---- a/PARPACK/SRC/MPI/pcgetv0.f
-+++ b/PARPACK/SRC/MPI/pcgetv0.f
-@@ -185,7 +185,7 @@ subroutine pcgetv0
-       save       first, iseed, inits, iter, msglvl, orth, rnorm0
- c
-       Complex
--     &           cnorm_buf
-+     &           cnorm_buf, buf2(1)
- c
- c     %----------------------%
- c     | External Subroutines |
-@@ -332,8 +332,9 @@ subroutine pcgetv0
-       first = .FALSE.
-       if (bmat .eq. 'G') then
-           cnorm_buf = cdotc (n, resid, 1, workd, 1)
--          call MPI_ALLREDUCE( cnorm_buf, cnorm, 1,
-+          call MPI_ALLREDUCE( [cnorm_buf], buf2, 1,
-      &          MPI_COMPLEX, MPI_SUM, comm, ierr )
-+          cnorm = buf2(1)
-           rnorm0 = sqrt(slapy2(real (cnorm),aimag(cnorm)))
-       else if (bmat .eq. 'I') then
-            rnorm0 = pscnorm2( comm, n, resid, 1)
-@@ -393,8 +394,9 @@ subroutine pcgetv0
- c
-       if (bmat .eq. 'G') then
-          cnorm_buf = cdotc (n, resid, 1, workd, 1)
--         call MPI_ALLREDUCE( cnorm_buf, cnorm, 1,
-+         call MPI_ALLREDUCE( [cnorm_buf], buf2, 1,
-      &            MPI_COMPLEX, MPI_SUM, comm, ierr )
-+         cnorm = buf2(1)
-          rnorm = sqrt(slapy2(real (cnorm),aimag(cnorm)))
-       else if (bmat .eq. 'I') then
-          rnorm = pscnorm2(comm, n, resid, 1)
-@@ -405,9 +407,9 @@ subroutine pcgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call psvout (comm, logfil, 1, rnorm0, ndigit,
-+          call psvout (comm, logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call psvout (comm, logfil, 1, rnorm, ndigit,
-+          call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-@@ -439,7 +441,7 @@ subroutine pcgetv0
- c
-       if (msglvl .gt. 0) then
-          cnorm2 = cmplx(rnorm,rzero)
--         call pcvout (comm, logfil, 1, cnorm2, ndigit,
-+         call pcvout (comm, logfil, 1, [cnorm2], ndigit,
-      &        '_getv0: B-norm of initial / restarted starting vector')
-       end if
-       if (msglvl .gt. 2) then
-diff --git a/PARPACK/SRC/MPI/pcnaitr.f b/PARPACK/SRC/MPI/pcnaitr.f
-index 4a27960a..fe246ea0 100644
---- a/PARPACK/SRC/MPI/pcnaitr.f
-+++ b/PARPACK/SRC/MPI/pcnaitr.f
-@@ -293,7 +293,7 @@ subroutine pcnaitr
-      &           betaj, rnorm1, smlnum, ulp, unfl, wnorm
- c
-       Complex
--     &           cnorm_buf
-+     &           cnorm_buf, buf2(1)
- c
- c     %----------------------%
- c     | External Subroutines |
-@@ -404,9 +404,9 @@ subroutine pcnaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call pcvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -426,7 +426,7 @@ subroutine pcnaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -577,8 +577,9 @@ subroutine pcnaitr
- c
-          if (bmat .eq. 'G') then
-              cnorm_buf = cdotc (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( cnorm_buf, cnorm, 1,
-+            call MPI_ALLREDUCE( [cnorm_buf], buf2, 1,
-      &           MPI_COMPLEX, MPI_SUM, comm, ierr )
-+             cnorm = buf2(1)
-              wnorm = sqrt( slapy2(real(cnorm),aimag(cnorm)) )
-          else if (bmat .eq. 'I') then
-              wnorm = pscnorm2(comm, n, resid, 1)
-@@ -653,8 +654,9 @@ subroutine pcnaitr
- c
-          if (bmat .eq. 'G') then
-             cnorm_buf = cdotc (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( cnorm_buf, cnorm, 1,
-+            call MPI_ALLREDUCE( [cnorm_buf], buf2, 1,
-      &           MPI_COMPLEX, MPI_SUM, comm, ierr )
-+            cnorm = buf2(1)
-             rnorm = sqrt( slapy2(real(cnorm),aimag(cnorm)) )
-          else if (bmat .eq. 'I') then
-             rnorm = pscnorm2(comm, n, resid, 1)
-@@ -757,15 +759,16 @@ subroutine pcnaitr
- c
-          if (bmat .eq. 'G') then
-              cnorm_buf = cdotc (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( cnorm_buf, cnorm, 1,
-+            call MPI_ALLREDUCE( [cnorm_buf], buf2, 1,
-      &           MPI_COMPLEX, MPI_SUM, comm, ierr )
-+             cnorm = buf2(1)
-              rnorm1 = sqrt( slapy2(real(cnorm),aimag(cnorm)) )
-          else if (bmat .eq. 'I') then
-              rnorm1 = pscnorm2(comm, n, resid, 1)
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0 ) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 rtemp(1) = rnorm
-diff --git a/PARPACK/SRC/MPI/pcnapps.f b/PARPACK/SRC/MPI/pcnapps.f
-index 76077b92..f17686d8 100644
---- a/PARPACK/SRC/MPI/pcnapps.f
-+++ b/PARPACK/SRC/MPI/pcnapps.f
-@@ -283,9 +283,9 @@ subroutine pcnapps
-          sigma = shift(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call pivout (comm, logfil, 1, jj, ndigit,
-+            call pivout (comm, logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call pcvout (comm, logfil, 1, sigma, ndigit,
-+            call pcvout (comm, logfil, 1, [sigma], ndigit,
-      &               '_napps: Value of the shift ')
-          end if
- c
-@@ -306,9 +306,9 @@ subroutine pcnapps
-             if ( abs(real(h(i+1,i)))
-      &           .le. max(ulp*tst1, smlnum) )  then
-                if (msglvl .gt. 0) then
--                  call pivout (comm, logfil, 1, i, ndigit,
-+                  call pivout (comm, logfil, 1, [i], ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call pcvout (comm, logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -322,9 +322,9 @@ subroutine pcnapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call pivout (comm, logfil, 1, istart, ndigit,
-+             call pivout (comm, logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call pivout (comm, logfil, 1, iend, ndigit,
-+             call pivout (comm, logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -500,7 +500,7 @@ subroutine pcnapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call pcvout (comm, logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call pivout (comm, logfil, 1, kev, ndigit,
-+         call pivout (comm, logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call pcmout (comm, logfil, kev, kev, h, ldh, ndigit,
-diff --git a/PARPACK/SRC/MPI/pcnaup2.f b/PARPACK/SRC/MPI/pcnaup2.f
-index 91fe9293..4b0d6ceb 100644
---- a/PARPACK/SRC/MPI/pcnaup2.f
-+++ b/PARPACK/SRC/MPI/pcnaup2.f
-@@ -237,7 +237,7 @@ subroutine pcnaup2
-      &           nevbef, nev0 , np0,    eps23
- c
-       Real
--     &           cmpnorm_buf
-+     &           cmpnorm_buf, buf2(1)
- c
- c     %-----------------------%
- c     | Local array arguments |
-@@ -401,7 +401,7 @@ subroutine pcnaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -414,9 +414,9 @@ subroutine pcnaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -443,7 +443,7 @@ subroutine pcnaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -674,7 +674,7 @@ subroutine pcnaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -714,7 +714,7 @@ subroutine pcnaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call pcvout (comm, logfil, np, ritz, ndigit,
-      &                  '_naup2: values of the shifts')
-@@ -771,8 +771,9 @@ subroutine pcnaup2
- c
-          if (bmat .eq. 'G') then
-             cmpnorm_buf = cdotc (n, resid, 1, workd, 1)
--            call MPI_ALLREDUCE( cmpnorm_buf, cmpnorm, 1,
-+            call MPI_ALLREDUCE( [cmpnorm_buf], buf2, 1,
-      &               MPI_COMPLEX, MPI_SUM, comm, ierr )
-+            cmpnorm = buf2(1)
-             rnorm = sqrt(slapy2(real(cmpnorm),aimag(cmpnorm)))
-          else if (bmat .eq. 'I') then
-             rnorm = pscnorm2(comm, n, resid, 1)
-@@ -780,7 +781,7 @@ subroutine pcnaup2
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call pcmout (comm, logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/PARPACK/SRC/MPI/pcnaupd.f b/PARPACK/SRC/MPI/pcnaupd.f
-index 5b8e1f5c..0bd6eb6c 100644
---- a/PARPACK/SRC/MPI/pcnaupd.f
-+++ b/PARPACK/SRC/MPI/pcnaupd.f
-@@ -626,9 +626,9 @@ subroutine pcnaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call pcvout (comm, logfil, np, workl(ritz), ndigit,
-      &               '_naupd: The final Ritz values')
-diff --git a/PARPACK/SRC/MPI/pcneupd.f b/PARPACK/SRC/MPI/pcneupd.f
-index 2566f8a5..8ced1df6 100644
---- a/PARPACK/SRC/MPI/pcneupd.f
-+++ b/PARPACK/SRC/MPI/pcneupd.f
-@@ -558,9 +558,9 @@ subroutine pcneupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/MPI/pcngets.f b/PARPACK/SRC/MPI/pcngets.f
-index 34b9b047..5f672149 100644
---- a/PARPACK/SRC/MPI/pcngets.f
-+++ b/PARPACK/SRC/MPI/pcngets.f
-@@ -177,8 +177,8 @@ subroutine pcngets ( comm, ishift, which, kev, np, ritz, bounds)
-       tcgets = tcgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_ngets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_ngets: NP is')
-          call pcvout (comm, logfil, kev+np, ritz, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix ')
-          call pcvout (comm, logfil, kev+np, bounds, ndigit,
-diff --git a/PARPACK/SRC/MPI/pdgetv0.f b/PARPACK/SRC/MPI/pdgetv0.f
-index 3dc71c66..54ed850c 100644
---- a/PARPACK/SRC/MPI/pdgetv0.f
-+++ b/PARPACK/SRC/MPI/pdgetv0.f
-@@ -180,7 +180,7 @@ subroutine pdgetv0
-       logical    first, inits, orth
-       integer    idist, iseed(4), iter, msglvl, jj
-       Double precision
--     &           rnorm0
-+     &           rnorm0, buf2(1)
-       save       first, iseed, inits, iter, msglvl, orth, rnorm0
- c
-       Double precision
-@@ -318,9 +318,9 @@ subroutine pdgetv0
-       first = .FALSE.
-       if (bmat .eq. 'G') then
-           rnorm_buf = ddot (n, resid, 1, workd, 1)
--          call MPI_ALLREDUCE( rnorm_buf, rnorm0, 1,
-+          call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &          MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr )
--          rnorm0 = sqrt(abs(rnorm0))
-+          rnorm0 = sqrt(abs(buf2(1)))
-       else if (bmat .eq. 'I') then
-           rnorm0 = pdnorm2( comm, n, resid, 1 )
-       end if
-@@ -379,9 +379,9 @@ subroutine pdgetv0
- c
-       if (bmat .eq. 'G') then
-          rnorm_buf = ddot (n, resid, 1, workd, 1)
--         call MPI_ALLREDUCE( rnorm_buf, rnorm, 1,
-+         call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &            MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr )
--         rnorm = sqrt(abs(rnorm))
-+         rnorm = sqrt(abs(buf2(1)))
-       else if (bmat .eq. 'I') then
-          rnorm = pdnorm2( comm, n, resid, 1 )
-       end if
-@@ -391,9 +391,9 @@ subroutine pdgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call pdvout (comm, logfil, 1, rnorm0, ndigit,
-+          call pdvout (comm, logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call pdvout (comm, logfil, 1, rnorm, ndigit,
-+          call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-@@ -424,7 +424,7 @@ subroutine pdgetv0
-    50 continue
- c
-       if (msglvl .gt. 0) then
--         call pdvout (comm, logfil, 1, rnorm, ndigit,
-+         call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &        '_getv0: B-norm of initial / restarted starting vector')
-       end if
-       if (msglvl .gt. 2) then
-diff --git a/PARPACK/SRC/MPI/pdlamch10.f b/PARPACK/SRC/MPI/pdlamch10.f
-index fabfcbd1..64cd6666 100644
---- a/PARPACK/SRC/MPI/pdlamch10.f
-+++ b/PARPACK/SRC/MPI/pdlamch10.f
-@@ -57,7 +57,7 @@ DOUBLE PRECISION   FUNCTION PDLAMCH10( ICTXT, CMACH )
- *
- *     .. Local Scalars ..
-       INTEGER            IDUMM
--      DOUBLE PRECISION   TEMP, TEMP1
-+      DOUBLE PRECISION   TEMP, TEMP1, buf2(1)
- *     ..
- *     .. External Subroutines ..
- *      EXTERNAL           DGAMN2D, DGAMX2D
-@@ -73,19 +73,20 @@ DOUBLE PRECISION   FUNCTION PDLAMCH10( ICTXT, CMACH )
- *
-       IF( LSAME( CMACH, 'E' ).OR.LSAME( CMACH, 'S' ).OR.
-      $    LSAME( CMACH, 'M' ).OR.LSAME( CMACH, 'U' ) ) THEN
--          CALL MPI_ALLREDUCE( TEMP1, TEMP, 1, MPI_DOUBLE_PRECISION,
-+          CALL MPI_ALLREDUCE( [TEMP1], buf2, 1, MPI_DOUBLE_PRECISION,
-      $                        MPI_MAX, ICTXT, IDUMM )
--*         CALL DGAMX2D( ICTXT, 'All', ' ', 1, 1, TEMP, 1, IDUMM,
-+*         CALL DGAMX2D( ICTXT, 'All', ' ', 1, 1, buf2(1), 1, IDUMM,
- *     $                 IDUMM, 1, -1, IDUMM )
-       ELSE IF( LSAME( CMACH, 'L' ).OR.LSAME( CMACH, 'O' ) ) THEN
--          CALL MPI_ALLREDUCE( TEMP1, TEMP, 1, MPI_DOUBLE_PRECISION,
-+          CALL MPI_ALLREDUCE( [TEMP1], buf2, 1, MPI_DOUBLE_PRECISION,
-      $                        MPI_MIN, ICTXT, IDUMM )
--*         CALL DGAMN2D( ICTXT, 'All', ' ', 1, 1, TEMP, 1, IDUMM,
-+*         CALL DGAMN2D( ICTXT, 'All', ' ', 1, 1, buf2(1), 1, IDUMM,
- *     $                 IDUMM, 1, -1, IDUMM )
-       ELSE
--          TEMP = TEMP1
-+          buf2(1) = TEMP1
-       END IF
- *
-+      TEMP = buf2(1)
-       PDLAMCH10 = TEMP
- *
- *     End of PDLAMCH10
-diff --git a/PARPACK/SRC/MPI/pdnaitr.f b/PARPACK/SRC/MPI/pdnaitr.f
-index f531fe1e..3c71ff93 100644
---- a/PARPACK/SRC/MPI/pdnaitr.f
-+++ b/PARPACK/SRC/MPI/pdnaitr.f
-@@ -276,7 +276,7 @@ subroutine pdnaitr
-      &           betaj, rnorm1, smlnum, ulp, unfl, wnorm
- c
-       Double precision
--     &           rnorm_buf
-+     &           rnorm_buf, buf2(1)
- c
- c
- c     %-----------------------%
-@@ -393,9 +393,9 @@ subroutine pdnaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -415,7 +415,7 @@ subroutine pdnaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -566,9 +566,9 @@ subroutine pdnaitr
- c
-          if (bmat .eq. 'G') then
-             rnorm_buf = ddot (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( rnorm_buf, wnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &           MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr )
--            wnorm = sqrt(abs(wnorm))
-+            wnorm = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-             wnorm = pdnorm2( comm, n, resid, 1 )
-          end if
-@@ -642,9 +642,9 @@ subroutine pdnaitr
- c
-          if (bmat .eq. 'G') then
-             rnorm_buf = ddot (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( rnorm_buf, rnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &           MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr )
--            rnorm = sqrt(abs(rnorm))
-+            rnorm = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-             rnorm = pdnorm2( comm, n, resid, 1 )
-          end if
-@@ -745,15 +745,15 @@ subroutine pdnaitr
- c
-          if (bmat .eq. 'G') then
-            rnorm_buf = ddot (n, resid, 1, workd(ipj), 1)
--           call MPI_ALLREDUCE( rnorm_buf, rnorm1, 1,
-+           call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &          MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr )
--           rnorm1 = sqrt(abs(rnorm1))
-+           rnorm1 = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-            rnorm1 = pdnorm2( comm, n, resid, 1 )
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/PARPACK/SRC/MPI/pdnapps.f b/PARPACK/SRC/MPI/pdnapps.f
-index fb6f153f..b6ac3502 100644
---- a/PARPACK/SRC/MPI/pdnapps.f
-+++ b/PARPACK/SRC/MPI/pdnapps.f
-@@ -276,11 +276,11 @@ subroutine pdnapps
-          sigmai = shifti(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call pivout (comm, logfil, 1, jj, ndigit,
-+            call pivout (comm, logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call pdvout (comm, logfil, 1, sigmar, ndigit,
-+            call pdvout (comm, logfil, 1, [sigmar], ndigit,
-      &               '_napps: The real part of the shift ')
--            call pdvout (comm, logfil, 1, sigmai, ndigit,
-+            call pdvout (comm, logfil, 1, [sigmai], ndigit,
-      &               '_napps: The imaginary part of the shift ')
-          end if
- c
-@@ -345,9 +345,9 @@ subroutine pdnapps
-      &         tst1 = dlanhs( '1', kplusp-jj+1, h, ldh, workl )
-             if( abs( h( i+1,i ) ).le.max( ulp*tst1, smlnum ) ) then
-                if (msglvl .gt. 0) then
--                  call pivout (comm, logfil, 1, i, ndigit,
-+                  call pivout (comm, logfil, 1, [i], ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call pdvout (comm, logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -361,9 +361,9 @@ subroutine pdnapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call pivout (comm, logfil, 1, istart, ndigit,
-+             call pivout (comm, logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call pivout (comm, logfil, 1, iend, ndigit,
-+             call pivout (comm, logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -635,7 +635,7 @@ subroutine pdnapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call pdvout (comm, logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call pivout (comm, logfil, 1, kev, ndigit,
-+         call pivout (comm, logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call pdmout (comm, logfil, kev, kev, h, ldh, ndigit,
-diff --git a/PARPACK/SRC/MPI/pdnaup2.f b/PARPACK/SRC/MPI/pdnaup2.f
-index d0f73738..c265380a 100644
---- a/PARPACK/SRC/MPI/pdnaup2.f
-+++ b/PARPACK/SRC/MPI/pdnaup2.f
-@@ -234,7 +234,7 @@ subroutine pdnaup2
-      &           nevbef, nev0 , np0   , nptemp, numcnv,
-      &           j
-       Double precision
--     &           rnorm , temp , eps23
-+     &           rnorm , temp , eps23, buf2(1)
-       save       cnorm , getv0, initv , update, ushift,
-      &           rnorm , iter , kplusp, msglvl, nconv,
-      &           nevbef, nev0 , np0   , eps23 , numcnv
-@@ -408,7 +408,7 @@ subroutine pdnaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -421,9 +421,9 @@ subroutine pdnaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -455,7 +455,7 @@ subroutine pdnaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call pdvout  (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout  (comm, logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -699,7 +699,7 @@ subroutine pdnaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -751,7 +751,7 @@ subroutine pdnaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call pdvout  (comm, logfil, np, ritzr, ndigit,
-      &                  '_naup2: Real part of the shifts')
-@@ -810,16 +810,16 @@ subroutine pdnaup2
- c
-          if (bmat .eq. 'G') then
-             rnorm_buf = ddot  (n, resid, 1, workd, 1)
--            call MPI_ALLREDUCE( rnorm_buf, rnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &                MPI_DOUBLE_PRECISION , MPI_SUM, comm, ierr )
--            rnorm = sqrt(abs(rnorm))
-+            rnorm = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-             rnorm = pdnorm2 ( comm, n, resid, 1 )
-          end if
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call pdvout  (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout  (comm, logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call pdmout  (comm, logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/PARPACK/SRC/MPI/pdnaupd.f b/PARPACK/SRC/MPI/pdnaupd.f
-index 1bf0fc12..231f9cab 100644
---- a/PARPACK/SRC/MPI/pdnaupd.f
-+++ b/PARPACK/SRC/MPI/pdnaupd.f
-@@ -650,9 +650,9 @@ subroutine pdnaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call pdvout  (comm, logfil, np, workl(ritzr), ndigit,
-      &               '_naupd: Real part of the final Ritz values')
-diff --git a/PARPACK/SRC/MPI/pdneupd.f b/PARPACK/SRC/MPI/pdneupd.f
-index f80651e2..d5741956 100644
---- a/PARPACK/SRC/MPI/pdneupd.f
-+++ b/PARPACK/SRC/MPI/pdneupd.f
-@@ -617,9 +617,9 @@ subroutine pdneupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/MPI/pdngets.f b/PARPACK/SRC/MPI/pdngets.f
-index 4ff35165..c4294b8c 100644
---- a/PARPACK/SRC/MPI/pdngets.f
-+++ b/PARPACK/SRC/MPI/pdngets.f
-@@ -226,8 +226,8 @@ subroutine pdngets
-       tngets = tngets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_ngets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_ngets: NP is')
-          call pdvout (comm, logfil, kev+np, ritzr, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix -- real part')
-          call pdvout (comm, logfil, kev+np, ritzi, ndigit,
-diff --git a/PARPACK/SRC/MPI/pdnorm2.f b/PARPACK/SRC/MPI/pdnorm2.f
-index 0e149585..5061d3d9 100644
---- a/PARPACK/SRC/MPI/pdnorm2.f
-+++ b/PARPACK/SRC/MPI/pdnorm2.f
-@@ -45,7 +45,7 @@ Double precision function pdnorm2 ( comm, n, x, inc )
- c     %---------------%
- c
-       Double precision
--     &             max, buf, zero
-+     &             max, buf, zero, buf2(1)
-       parameter    ( zero = 0.0 )
- c
- c     %---------------------%
-@@ -69,15 +69,16 @@ Double precision function pdnorm2 ( comm, n, x, inc )
-       pdnorm2 = dnrm2( n, x, inc)
- c
-       buf = pdnorm2
--      call MPI_ALLREDUCE( buf, max, 1, MPI_DOUBLE_PRECISION,
-+      call MPI_ALLREDUCE( [buf], buf2, 1, MPI_DOUBLE_PRECISION,
-      &                    MPI_MAX, comm, ierr )
-+      max = buf2(1)
-       if ( max .eq. zero ) then
-          pdnorm2 = zero
-       else
-          buf = (pdnorm2/max)**2.0
--         call MPI_ALLREDUCE( buf, pdnorm2, 1, MPI_DOUBLE_PRECISION,
-+         call MPI_ALLREDUCE( [buf], buf2, 1, MPI_DOUBLE_PRECISION,
-      &                       MPI_SUM, comm, ierr )
--         pdnorm2 = max * sqrt(abs(pdnorm2))
-+         pdnorm2 = max * sqrt(abs(buf2(1)))
-       endif
- c
- c     %----------------%
-diff --git a/PARPACK/SRC/MPI/pdsaitr.f b/PARPACK/SRC/MPI/pdsaitr.f
-index 5fe84b81..42396c11 100644
---- a/PARPACK/SRC/MPI/pdsaitr.f
-+++ b/PARPACK/SRC/MPI/pdsaitr.f
-@@ -264,7 +264,7 @@ subroutine pdsaitr
-       integer    i, ierr, ipj, irj, ivj, iter, itry, j, msglvl, infol,
-      &           jj
-       Double precision
--     &           rnorm1, wnorm, safmin, temp1
-+     &           rnorm1, wnorm, safmin, temp1, buf2(1)
-       save       orth1, orth2, rstart, step3, step4,
-      &           ierr, ipj, irj, ivj, iter, itry, j, msglvl,
-      &           rnorm1, safmin, wnorm
-@@ -392,9 +392,9 @@ subroutine pdsaitr
-  1000 continue
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_saitr: generating Arnoldi vector no.')
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_saitr: B-norm of the current residual =')
-          end if
- c
-@@ -412,7 +412,7 @@ subroutine pdsaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_saitr: ****** restart at step ******')
-             end if
- c
-@@ -572,14 +572,14 @@ subroutine pdsaitr
- c           %----------------------------------%
- c
-             rnorm_buf = ddot (n, resid, 1, workd(ivj), 1)
--            call MPI_ALLREDUCE( rnorm_buf, wnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &           MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr )
--            wnorm = sqrt(abs(wnorm))
-+            wnorm = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'G') then
-             rnorm_buf = ddot (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( rnorm_buf, wnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &           MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr )
--            wnorm = sqrt(abs(wnorm))
-+            wnorm = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-             wnorm = pdnorm2( comm, n, resid, 1 )
-          end if
-@@ -669,9 +669,9 @@ subroutine pdsaitr
- c
-          if (bmat .eq. 'G') then
-             rnorm_buf = ddot (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( rnorm_buf, rnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &           MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr )
--            rnorm = sqrt(abs(rnorm))
-+            rnorm = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-             rnorm = pdnorm2( comm, n, resid, 1 )
-          end if
-@@ -769,15 +769,15 @@ subroutine pdsaitr
- c
-          if (bmat .eq. 'G') then
-            rnorm_buf = ddot (n, resid, 1, workd(ipj), 1)
--           call MPI_ALLREDUCE( rnorm_buf, rnorm1, 1,
-+           call MPI_ALLREDUCE( [rnorm_buf], buf2(1), 1,
-      &          MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr )
--           rnorm1 = sqrt(abs(rnorm1))
-+           rnorm1 = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-            rnorm1 = pdnorm2( comm, n, resid, 1 )
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/PARPACK/SRC/MPI/pdsapps.f b/PARPACK/SRC/MPI/pdsapps.f
-index e79db4e3..3feb8da0 100644
---- a/PARPACK/SRC/MPI/pdsapps.f
-+++ b/PARPACK/SRC/MPI/pdsapps.f
-@@ -272,9 +272,9 @@ subroutine pdsapps
-             big   = abs(h(i,2)) + abs(h(i+1,2))
-             if (h(i+1,1) .le. epsmch*big) then
-                if (msglvl .gt. 0) then
--                  call pivout (comm, logfil, 1, i, ndigit,
-+                  call pivout (comm, logfil, 1, [i], ndigit,
-      &                 '_sapps: deflation at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_sapps: occurred before shift number.')
-                   call pdvout (comm, logfil, 1, h(i+1,1), ndigit,
-      &                 '_sapps: the corresponding off diagonal element')
-@@ -443,7 +443,7 @@ subroutine pdsapps
-          big   = abs(h(i,2)) + abs(h(i+1,2))
-          if (h(i+1,1) .le. epsmch*big) then
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, i, ndigit,
-+               call pivout (comm, logfil, 1, [i], ndigit,
-      &              '_sapps: deflation at row/column no.')
-                call pdvout (comm, logfil, 1, h(i+1,1), ndigit,
-      &              '_sapps: the corresponding off diagonal element')
-diff --git a/PARPACK/SRC/MPI/pdsaup2.f b/PARPACK/SRC/MPI/pdsaup2.f
-index 820459b3..a575b33f 100644
---- a/PARPACK/SRC/MPI/pdsaup2.f
-+++ b/PARPACK/SRC/MPI/pdsaup2.f
-@@ -212,7 +212,7 @@ subroutine pdsaup2
-       integer    ido, info, ishift, iupd, ldh, ldq, ldv, mxiter,
-      &           n, mode, nev, np
-       Double precision
--     &           tol
-+     &           tol, buf2(1)
- c
- c     %-----------------%
- c     | Array Arguments |
-@@ -424,13 +424,13 @@ subroutine pdsaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_saup2: **** Start of major iteration number ****')
-          end if
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_saup2: The length of the current Lanczos factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_saup2: Extend the Lanczos factorization by')
-          end if
- c
-@@ -469,7 +469,7 @@ subroutine pdsaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &           '_saup2: Current B-norm of residual for factorization')
-          end if
- c
-@@ -719,7 +719,7 @@ subroutine pdsaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_saup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -766,7 +766,7 @@ subroutine pdsaup2
-          if (ishift .eq. 0) call dcopy (np, workl, 1, ritz, 1)
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_saup2: The number of shifts to apply ')
-             call pdvout (comm, logfil, np, workl, ndigit,
-      &                  '_saup2: shifts selected')
-@@ -825,9 +825,9 @@ subroutine pdsaup2
- c
-          if (bmat .eq. 'G') then
-             rnorm_buf = ddot (n, resid, 1, workd, 1)
--            call MPI_ALLREDUCE( rnorm_buf, rnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &                MPI_DOUBLE_PRECISION, MPI_SUM, comm, ierr )
--            rnorm = sqrt(abs(rnorm))
-+            rnorm = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-             rnorm = pdnorm2( comm, n, resid, 1 )
-          end if
-@@ -835,7 +835,7 @@ subroutine pdsaup2
-   130    continue
- c
-          if (msglvl .gt. 2) then
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &      '_saup2: B-norm of residual for NEV factorization')
-             call pdvout (comm, logfil, nev, h(1,2), ndigit,
-      &           '_saup2: main diagonal of compressed H matrix')
-diff --git a/PARPACK/SRC/MPI/pdsaupd.f b/PARPACK/SRC/MPI/pdsaupd.f
-index 47d05227..f505dc90 100644
---- a/PARPACK/SRC/MPI/pdsaupd.f
-+++ b/PARPACK/SRC/MPI/pdsaupd.f
-@@ -652,9 +652,9 @@ subroutine pdsaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_saupd: number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_saupd: number of "converged" Ritz values')
-          call pdvout  (comm, logfil, np, workl(Ritz), ndigit,
-      &               '_saupd: final Ritz values')
-diff --git a/PARPACK/SRC/MPI/pdseupd.f b/PARPACK/SRC/MPI/pdseupd.f
-index 9e866ab7..66e85995 100644
---- a/PARPACK/SRC/MPI/pdseupd.f
-+++ b/PARPACK/SRC/MPI/pdseupd.f
-@@ -523,9 +523,9 @@ subroutine pdseupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/MPI/pdsgets.f b/PARPACK/SRC/MPI/pdsgets.f
-index 01b52394..c71421b4 100644
---- a/PARPACK/SRC/MPI/pdsgets.f
-+++ b/PARPACK/SRC/MPI/pdsgets.f
-@@ -216,8 +216,8 @@ subroutine pdsgets
-       tsgets = tsgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_sgets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_sgets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_sgets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_sgets: NP is')
-          call pdvout (comm, logfil, kev+np, ritz, ndigit,
-      &        '_sgets: Eigenvalues of current H matrix')
-          call pdvout (comm, logfil, kev+np, bounds, ndigit,
-diff --git a/PARPACK/SRC/MPI/pdznorm2.f b/PARPACK/SRC/MPI/pdznorm2.f
-index 7a7173f3..4651679b 100644
---- a/PARPACK/SRC/MPI/pdznorm2.f
-+++ b/PARPACK/SRC/MPI/pdznorm2.f
-@@ -45,7 +45,7 @@ Double precision function pdznorm2 ( comm, n, x, inc )
- c     %---------------%
- c
-       Double precision
--     &             max, buf, zero
-+     &             max(1), buf, zero
-       parameter    ( zero = 0.0 )
- c
- c     %---------------------%
-@@ -59,7 +59,7 @@ Double precision function pdznorm2 ( comm, n, x, inc )
- c     %--------------------%
- c
-       Double precision
--     &             dznrm2
-+     &             dznrm2, buf2(1)
-       External     dznrm2
- c
- c     %-----------------------%
-@@ -69,15 +69,15 @@ Double precision function pdznorm2 ( comm, n, x, inc )
-       pdznorm2 = dznrm2( n, x, inc)
- c
-       buf = pdznorm2
--      call MPI_ALLREDUCE( buf, max, 1, MPI_DOUBLE_PRECISION,
-+      call MPI_ALLREDUCE( [buf], max, 1, MPI_DOUBLE_PRECISION,
-      &                    MPI_MAX, comm, ierr )
--      if ( max .eq. zero ) then
-+      if ( max(1) .eq. zero ) then
-          pdznorm2 = zero
-       else
--         buf = (pdznorm2/max)**2.0
--         call MPI_ALLREDUCE( buf, pdznorm2, 1, MPI_DOUBLE_PRECISION,
-+         buf = (pdznorm2/max(1))**2.0
-+         call MPI_ALLREDUCE( [buf], buf2, 1, MPI_DOUBLE_PRECISION,
-      &                       MPI_SUM, comm, ierr )
--         pdznorm2 = max * sqrt(abs(pdznorm2))
-+         pdznorm2 = max(1) * sqrt(abs(buf2(1)))
-       endif
- c
- c     %-----------------%
-diff --git a/PARPACK/SRC/MPI/pscnorm2.f b/PARPACK/SRC/MPI/pscnorm2.f
-index 2c64831e..50dea8bd 100644
---- a/PARPACK/SRC/MPI/pscnorm2.f
-+++ b/PARPACK/SRC/MPI/pscnorm2.f
-@@ -45,7 +45,7 @@ Real function pscnorm2 ( comm, n, x, inc )
- c     %---------------%
- c
-       Real
--     &             max, buf, zero
-+     &             max(1), buf, zero
-       parameter    ( zero = 0.0 )
- c
- c     %---------------------%
-@@ -61,6 +61,7 @@ Real function pscnorm2 ( comm, n, x, inc )
-       Real
-      &             scnrm2
-       External     scnrm2
-+      Real         buf2(1)
- c
- c     %-----------------------%
- c     | Executable Statements |
-@@ -69,15 +70,15 @@ Real function pscnorm2 ( comm, n, x, inc )
-       pscnorm2 = scnrm2( n, x, inc)
- c
-       buf = pscnorm2
--      call MPI_ALLREDUCE( buf, max, 1, MPI_REAL,
-+      call MPI_ALLREDUCE( [buf], max, 1, MPI_REAL,
-      &                    MPI_MAX, comm, ierr )
--      if ( max .eq. zero ) then
-+      if ( max(1) .eq. zero ) then
-          pscnorm2 = zero
-       else
--         buf = (pscnorm2/max)**2.0
--         call MPI_ALLREDUCE( buf, pscnorm2, 1, MPI_REAL,
-+         buf = (pscnorm2/max(1))**2.0
-+         call MPI_ALLREDUCE( [buf], buf2, 1, MPI_REAL,
-      &                       MPI_SUM, comm, ierr )
--         pscnorm2 = max * sqrt(abs(pscnorm2))
-+         pscnorm2 = max(1) * sqrt(abs(buf2(1)))
-       endif
- c
- c     %-----------------%
-diff --git a/PARPACK/SRC/MPI/psgetv0.f b/PARPACK/SRC/MPI/psgetv0.f
-index a721c9b9..597212b5 100644
---- a/PARPACK/SRC/MPI/psgetv0.f
-+++ b/PARPACK/SRC/MPI/psgetv0.f
-@@ -163,7 +163,7 @@ subroutine psgetv0
- c
-       integer    ipntr(3)
-       Real
--     &           resid(n), v(ldv,j), workd(2*n), workl(2*j)
-+     &           resid(n), v(ldv,j), workd(2*n), workl(2*j), buf2(1)
- c
- c     %------------%
- c     | Parameters |
-@@ -318,9 +318,9 @@ subroutine psgetv0
-       first = .FALSE.
-       if (bmat .eq. 'G') then
-           rnorm_buf = sdot (n, resid, 1, workd, 1)
--          call MPI_ALLREDUCE( rnorm_buf, rnorm0, 1,
-+          call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &          MPI_REAL, MPI_SUM, comm, ierr )
--          rnorm0 = sqrt(abs(rnorm0))
-+          rnorm0 = sqrt(abs(buf2(1)))
-       else if (bmat .eq. 'I') then
-           rnorm0 = psnorm2( comm, n, resid, 1 )
-       end if
-@@ -379,9 +379,9 @@ subroutine psgetv0
- c
-       if (bmat .eq. 'G') then
-          rnorm_buf = sdot (n, resid, 1, workd, 1)
--         call MPI_ALLREDUCE( rnorm_buf, rnorm, 1,
-+         call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &            MPI_REAL, MPI_SUM, comm, ierr )
--         rnorm = sqrt(abs(rnorm))
-+         rnorm = sqrt(abs(buf2(1)))
-       else if (bmat .eq. 'I') then
-          rnorm = psnorm2( comm, n, resid, 1 )
-       end if
-@@ -391,9 +391,9 @@ subroutine psgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call psvout (comm, logfil, 1, rnorm0, ndigit,
-+          call psvout (comm, logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call psvout (comm, logfil, 1, rnorm, ndigit,
-+          call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-@@ -424,7 +424,7 @@ subroutine psgetv0
-    50 continue
- c
-       if (msglvl .gt. 0) then
--         call psvout (comm, logfil, 1, rnorm, ndigit,
-+         call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &        '_getv0: B-norm of initial / restarted starting vector')
-       end if
-       if (msglvl .gt. 2) then
-diff --git a/PARPACK/SRC/MPI/pslamch10.f b/PARPACK/SRC/MPI/pslamch10.f
-index cd7215c5..c3c13b8e 100644
---- a/PARPACK/SRC/MPI/pslamch10.f
-+++ b/PARPACK/SRC/MPI/pslamch10.f
-@@ -53,7 +53,7 @@ REAL               FUNCTION PSLAMCH10( ICTXT, CMACH )
- *
- *     .. Local Scalars ..
-       INTEGER            IDUMM
--      REAL               TEMP, TEMP1
-+      REAL               TEMP, TEMP1, buf2(1)
- *     ..
- *     .. External Subroutines ..
- *      EXTERNAL           SGAMN2D, SGAMX2D
-@@ -69,14 +69,16 @@ REAL               FUNCTION PSLAMCH10( ICTXT, CMACH )
- *
-       IF( LSAME( CMACH, 'E' ).OR.LSAME( CMACH, 'S' ).OR.
-      $    LSAME( CMACH, 'M' ).OR.LSAME( CMACH, 'U' ) ) THEN
--          CALL MPI_ALLREDUCE( TEMP1, TEMP, 1, MPI_REAL,
-+          CALL MPI_ALLREDUCE( [TEMP1], buf2, 1, MPI_REAL,
-      $                        MPI_MAX, ICTXT, IDUMM )
--*         CALL SGAMX2D( ICTXT, 'All', ' ', 1, 1, TEMP, 1, IDUMM,
-+          TEMP = buf2(1)
-+*     CALL SGAMX2D( ICTXT, 'All', ' ', 1, 1, TEMP, 1, IDUMM,
- *     $                 IDUMM, 1, -1, IDUMM )
-       ELSE IF( LSAME( CMACH, 'L' ).OR.LSAME( CMACH, 'O' ) ) THEN
--          CALL MPI_ALLREDUCE( TEMP1, TEMP, 1, MPI_REAL,
-+          CALL MPI_ALLREDUCE( [TEMP1], buf2, 1, MPI_REAL,
-      $                        MPI_MIN, ICTXT, IDUMM )
--*         CALL SGAMN2D( ICTXT, 'All', ' ', 1, 1, TEMP, 1, IDUMM,
-+          TEMP = buf2(1)
-+*     CALL SGAMN2D( ICTXT, 'All', ' ', 1, 1, TEMP, 1, IDUMM,
- *     $                 IDUMM, 1, -1, IDUMM )
-       ELSE
-           TEMP = TEMP1
-diff --git a/PARPACK/SRC/MPI/psnaitr.f b/PARPACK/SRC/MPI/psnaitr.f
-index ab63f99a..8b5f635d 100644
---- a/PARPACK/SRC/MPI/psnaitr.f
-+++ b/PARPACK/SRC/MPI/psnaitr.f
-@@ -276,7 +276,7 @@ subroutine psnaitr
-      &           betaj, rnorm1, smlnum, ulp, unfl, wnorm
- c
-       Real
--     &           rnorm_buf
-+     &           rnorm_buf, buf2(1)
- c
- c
- c     %-----------------------%
-@@ -393,9 +393,9 @@ subroutine psnaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -415,7 +415,7 @@ subroutine psnaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -566,9 +566,9 @@ subroutine psnaitr
- c
-          if (bmat .eq. 'G') then
-             rnorm_buf = sdot (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( rnorm_buf, wnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &           MPI_REAL, MPI_SUM, comm, ierr )
--            wnorm = sqrt(abs(wnorm))
-+            wnorm = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-             wnorm = psnorm2( comm, n, resid, 1 )
-          end if
-@@ -642,9 +642,9 @@ subroutine psnaitr
- c
-          if (bmat .eq. 'G') then
-             rnorm_buf = sdot (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( rnorm_buf, rnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &           MPI_REAL, MPI_SUM, comm, ierr )
--            rnorm = sqrt(abs(rnorm))
-+            rnorm = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-             rnorm = psnorm2( comm, n, resid, 1 )
-          end if
-@@ -745,15 +745,15 @@ subroutine psnaitr
- c
-          if (bmat .eq. 'G') then
-            rnorm_buf = sdot (n, resid, 1, workd(ipj), 1)
--           call MPI_ALLREDUCE( rnorm_buf, rnorm1, 1,
-+           call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &          MPI_REAL, MPI_SUM, comm, ierr )
--           rnorm1 = sqrt(abs(rnorm1))
-+           rnorm1 = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-            rnorm1 = psnorm2( comm, n, resid, 1 )
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/PARPACK/SRC/MPI/psnapps.f b/PARPACK/SRC/MPI/psnapps.f
-index c06fba58..b6f8645b 100644
---- a/PARPACK/SRC/MPI/psnapps.f
-+++ b/PARPACK/SRC/MPI/psnapps.f
-@@ -276,11 +276,11 @@ subroutine psnapps
-          sigmai = shifti(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call pivout (comm, logfil, 1, jj, ndigit,
-+            call pivout (comm, logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call psvout (comm, logfil, 1, sigmar, ndigit,
-+            call psvout (comm, logfil, 1, [sigmar], ndigit,
-      &               '_napps: The real part of the shift ')
--            call psvout (comm, logfil, 1, sigmai, ndigit,
-+            call psvout (comm, logfil, 1, [sigmai], ndigit,
-      &               '_napps: The imaginary part of the shift ')
-          end if
- c
-@@ -345,9 +345,9 @@ subroutine psnapps
-      &         tst1 = slanhs( '1', kplusp-jj+1, h, ldh, workl )
-             if( abs( h( i+1,i ) ).le.max( ulp*tst1, smlnum ) ) then
-                if (msglvl .gt. 0) then
--                  call pivout (comm, logfil, 1, i, ndigit,
-+                  call pivout (comm, logfil, 1, [i], ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call psvout (comm, logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -361,9 +361,9 @@ subroutine psnapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call pivout (comm, logfil, 1, istart, ndigit,
-+             call pivout (comm, logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call pivout (comm, logfil, 1, iend, ndigit,
-+             call pivout (comm, logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -635,7 +635,7 @@ subroutine psnapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call psvout (comm, logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call pivout (comm, logfil, 1, kev, ndigit,
-+         call pivout (comm, logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call psmout (comm, logfil, kev, kev, h, ldh, ndigit,
-diff --git a/PARPACK/SRC/MPI/psnaup2.f b/PARPACK/SRC/MPI/psnaup2.f
-index 6195d4b6..bfca7fb1 100644
---- a/PARPACK/SRC/MPI/psnaup2.f
-+++ b/PARPACK/SRC/MPI/psnaup2.f
-@@ -241,7 +241,7 @@ subroutine psnaup2
- c
- 
-       Real
--     &           rnorm_buf
-+     &           rnorm_buf, buf2(1)
- c
- c     %-----------------------%
- c     | Local array arguments |
-@@ -408,7 +408,7 @@ subroutine psnaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -421,9 +421,9 @@ subroutine psnaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -455,7 +455,7 @@ subroutine psnaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -699,7 +699,7 @@ subroutine psnaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -751,7 +751,7 @@ subroutine psnaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call psvout (comm, logfil, np, ritzr, ndigit,
-      &                  '_naup2: Real part of the shifts')
-@@ -810,16 +810,16 @@ subroutine psnaup2
- c
-          if (bmat .eq. 'G') then
-             rnorm_buf = sdot (n, resid, 1, workd, 1)
--            call MPI_ALLREDUCE( rnorm_buf, rnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &                MPI_REAL, MPI_SUM, comm, ierr )
--            rnorm = sqrt(abs(rnorm))
-+            rnorm = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-             rnorm = psnorm2( comm, n, resid, 1 )
-          end if
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call psmout (comm, logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/PARPACK/SRC/MPI/psnaupd.f b/PARPACK/SRC/MPI/psnaupd.f
-index a55f5fba..35e85b74 100644
---- a/PARPACK/SRC/MPI/psnaupd.f
-+++ b/PARPACK/SRC/MPI/psnaupd.f
-@@ -650,9 +650,9 @@ subroutine psnaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call psvout (comm, logfil, np, workl(ritzr), ndigit,
-      &               '_naupd: Real part of the final Ritz values')
-diff --git a/PARPACK/SRC/MPI/psneupd.f b/PARPACK/SRC/MPI/psneupd.f
-index c7f939a4..d4090b66 100644
---- a/PARPACK/SRC/MPI/psneupd.f
-+++ b/PARPACK/SRC/MPI/psneupd.f
-@@ -617,9 +617,9 @@ subroutine psneupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/MPI/psngets.f b/PARPACK/SRC/MPI/psngets.f
-index c4bf9ac7..91a6d730 100644
---- a/PARPACK/SRC/MPI/psngets.f
-+++ b/PARPACK/SRC/MPI/psngets.f
-@@ -226,8 +226,8 @@ subroutine psngets
-       tngets = tngets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_ngets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_ngets: NP is')
-          call psvout (comm, logfil, kev+np, ritzr, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix -- real part')
-          call psvout (comm, logfil, kev+np, ritzi, ndigit,
-diff --git a/PARPACK/SRC/MPI/psnorm2.f b/PARPACK/SRC/MPI/psnorm2.f
-index b5fbcd13..8e487b35 100644
---- a/PARPACK/SRC/MPI/psnorm2.f
-+++ b/PARPACK/SRC/MPI/psnorm2.f
-@@ -45,7 +45,7 @@ Real function psnorm2 ( comm, n, x, inc )
- c     %---------------%
- c
-       Real
--     &             max, buf, zero
-+     &             max, buf, zero, buf2(1)
-       parameter    ( zero = 0.0 )
- c
- c     %---------------------%
-@@ -69,15 +69,16 @@ Real function psnorm2 ( comm, n, x, inc )
-       psnorm2 = snrm2( n, x, inc)
- c
-       buf = psnorm2
--      call MPI_ALLREDUCE( buf, max, 1, MPI_REAL,
-+      call MPI_ALLREDUCE( [buf], buf2, 1, MPI_REAL,
-      &                    MPI_MAX, comm, ierr )
-+      max = buf2(1)
-       if ( max .eq. zero ) then
-          psnorm2 = zero
-       else
-          buf = (psnorm2/max)**2.0
--         call MPI_ALLREDUCE( buf, psnorm2, 1, MPI_REAL,
-+         call MPI_ALLREDUCE( [buf], buf2, 1, MPI_REAL,
-      &                       MPI_SUM, comm, ierr )
--         psnorm2 = max * sqrt(abs(psnorm2))
-+         psnorm2 = max * sqrt(abs(buf2(1)))
-       endif
- c
- c     %----------------%
-diff --git a/PARPACK/SRC/MPI/pssaitr.f b/PARPACK/SRC/MPI/pssaitr.f
-index a0fde737..8ceaebe4 100644
---- a/PARPACK/SRC/MPI/pssaitr.f
-+++ b/PARPACK/SRC/MPI/pssaitr.f
-@@ -264,7 +264,7 @@ subroutine pssaitr
-       integer    i, ierr, ipj, irj, ivj, iter, itry, j, msglvl, infol,
-      &           jj
-       Real
--     &           rnorm1, wnorm, safmin, temp1
-+     &           rnorm1, wnorm(1), safmin, temp1, temp2(1)
-       save       orth1, orth2, rstart, step3, step4,
-      &           ierr, ipj, irj, ivj, iter, itry, j, msglvl,
-      &           rnorm1, safmin, wnorm
-@@ -392,9 +392,9 @@ subroutine pssaitr
-  1000 continue
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_saitr: generating Arnoldi vector no.')
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_saitr: B-norm of the current residual =')
-          end if
- c
-@@ -412,7 +412,7 @@ subroutine pssaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_saitr: ****** restart at step ******')
-             end if
- c
-@@ -572,16 +572,16 @@ subroutine pssaitr
- c           %----------------------------------%
- c
-             rnorm_buf = sdot (n, resid, 1, workd(ivj), 1)
--            call MPI_ALLREDUCE( rnorm_buf, wnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], wnorm, 1,
-      &           MPI_REAL, MPI_SUM, comm, ierr )
--            wnorm = sqrt(abs(wnorm))
-+            wnorm(1) = sqrt(abs(wnorm(1)))
-          else if (bmat .eq. 'G') then
-             rnorm_buf = sdot (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( rnorm_buf, wnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], wnorm, 1,
-      &           MPI_REAL, MPI_SUM, comm, ierr )
-             wnorm = sqrt(abs(wnorm))
-          else if (bmat .eq. 'I') then
--            wnorm = psnorm2( comm, n, resid, 1 )
-+            wnorm(1) = psnorm2( comm, n, resid, 1 )
-          end if
- c
- c        %-----------------------------------------%
-@@ -669,9 +669,9 @@ subroutine pssaitr
- c
-          if (bmat .eq. 'G') then
-             rnorm_buf = sdot (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( rnorm_buf, rnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], temp2, 1,
-      &           MPI_REAL, MPI_SUM, comm, ierr )
--            rnorm = sqrt(abs(rnorm))
-+            rnorm = sqrt(abs(temp2(1)))
-          else if (bmat .eq. 'I') then
-             rnorm = psnorm2( comm, n, resid, 1 )
-          end if
-@@ -691,7 +691,7 @@ subroutine pssaitr
- c        | to enforce ||v(:,1:j)^T * r_{j}|| .le. eps * || r_{j} ||  |
- c        %-----------------------------------------------------------%
- c
--         if (rnorm .gt. 0.717*wnorm) go to 100
-+         if (rnorm .gt. 0.717*wnorm(1)) go to 100
-          nrorth = nrorth + 1
- c
- c        %---------------------------------------------------%
-@@ -704,7 +704,7 @@ subroutine pssaitr
-    80    continue
- c
-          if (msglvl .gt. 2) then
--            xtemp(1) = wnorm
-+            xtemp(1) = wnorm(1)
-             xtemp(2) = rnorm
-             call psvout (comm, logfil, 2, xtemp, ndigit,
-      &           '_naitr: re-orthonalization ; wnorm and rnorm are')
-@@ -769,15 +769,15 @@ subroutine pssaitr
- c
-          if (bmat .eq. 'G') then
-            rnorm_buf = sdot (n, resid, 1, workd(ipj), 1)
--           call MPI_ALLREDUCE( rnorm_buf, rnorm1, 1,
-+           call MPI_ALLREDUCE( [rnorm_buf], temp2, 1,
-      &          MPI_REAL, MPI_SUM, comm, ierr )
--           rnorm1 = sqrt(abs(rnorm1))
-+           rnorm1 = sqrt(abs(temp2(1)))
-          else if (bmat .eq. 'I') then
-            rnorm1 = psnorm2( comm, n, resid, 1 )
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 xtemp(1) = rnorm
-diff --git a/PARPACK/SRC/MPI/pssapps.f b/PARPACK/SRC/MPI/pssapps.f
-index 481cc355..07f96452 100644
---- a/PARPACK/SRC/MPI/pssapps.f
-+++ b/PARPACK/SRC/MPI/pssapps.f
-@@ -271,9 +271,9 @@ subroutine pssapps
-             big   = abs(h(i,2)) + abs(h(i+1,2))
-             if (h(i+1,1) .le. epsmch*big) then
-                if (msglvl .gt. 0) then
--                  call pivout (comm, logfil, 1, i, ndigit,
-+                  call pivout (comm, logfil, 1, [i], ndigit,
-      &                 '_sapps: deflation at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_sapps: occurred before shift number.')
-                   call psvout (comm, logfil, 1, h(i+1,1), ndigit,
-      &                 '_sapps: the corresponding off diagonal element')
-@@ -442,7 +442,7 @@ subroutine pssapps
-          big   = abs(h(i,2)) + abs(h(i+1,2))
-          if (h(i+1,1) .le. epsmch*big) then
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, i, ndigit,
-+               call pivout (comm, logfil, 1, [i], ndigit,
-      &              '_sapps: deflation at row/column no.')
-                call psvout (comm, logfil, 1, h(i+1,1), ndigit,
-      &              '_sapps: the corresponding off diagonal element')
-diff --git a/PARPACK/SRC/MPI/pssaup2.f b/PARPACK/SRC/MPI/pssaup2.f
-index ab00ec77..25af8b7f 100644
---- a/PARPACK/SRC/MPI/pssaup2.f
-+++ b/PARPACK/SRC/MPI/pssaup2.f
-@@ -241,7 +241,7 @@ subroutine pssaup2
-       integer    ierr, iter, j, kplusp, msglvl, nconv, nevbef, nev0,
-      &           np0, nptemp, nevd2, nevm2, kp(3)
-       Real
--     &           rnorm, temp, eps23
-+     &           rnorm, temp, eps23, buf2(1)
-       save       cnorm, getv0, initv, update, ushift,
-      &           iter, kplusp, msglvl, nconv, nev0, np0,
-      &           rnorm, eps23
-@@ -424,13 +424,13 @@ subroutine pssaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_saup2: **** Start of major iteration number ****')
-          end if
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_saup2: The length of the current Lanczos factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_saup2: Extend the Lanczos factorization by')
-          end if
- c
-@@ -469,7 +469,7 @@ subroutine pssaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &           '_saup2: Current B-norm of residual for factorization')
-          end if
- c
-@@ -719,7 +719,7 @@ subroutine pssaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_saup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -766,7 +766,7 @@ subroutine pssaup2
-          if (ishift .eq. 0) call scopy (np, workl, 1, ritz, 1)
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_saup2: The number of shifts to apply ')
-             call psvout (comm, logfil, np, workl, ndigit,
-      &                  '_saup2: shifts selected')
-@@ -825,9 +825,9 @@ subroutine pssaup2
- c
-          if (bmat .eq. 'G') then
-             rnorm_buf = sdot (n, resid, 1, workd, 1)
--            call MPI_ALLREDUCE( rnorm_buf, rnorm, 1,
-+            call MPI_ALLREDUCE( [rnorm_buf], buf2, 1,
-      &                MPI_REAL, MPI_SUM, comm, ierr )
--            rnorm = sqrt(abs(rnorm))
-+            rnorm = sqrt(abs(buf2(1)))
-          else if (bmat .eq. 'I') then
-             rnorm = psnorm2( comm, n, resid, 1 )
-          end if
-@@ -835,7 +835,7 @@ subroutine pssaup2
-   130    continue
- c
-          if (msglvl .gt. 2) then
--            call psvout (comm, logfil, 1, rnorm, ndigit,
-+            call psvout (comm, logfil, 1, [rnorm], ndigit,
-      &      '_saup2: B-norm of residual for NEV factorization')
-             call psvout (comm, logfil, nev, h(1,2), ndigit,
-      &           '_saup2: main diagonal of compressed H matrix')
-diff --git a/PARPACK/SRC/MPI/pssaupd.f b/PARPACK/SRC/MPI/pssaupd.f
-index 7f616008..3077ff5f 100644
---- a/PARPACK/SRC/MPI/pssaupd.f
-+++ b/PARPACK/SRC/MPI/pssaupd.f
-@@ -652,9 +652,9 @@ subroutine pssaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_saupd: number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_saupd: number of "converged" Ritz values')
-          call psvout (comm, logfil, np, workl(Ritz), ndigit,
-      &               '_saupd: final Ritz values')
-diff --git a/PARPACK/SRC/MPI/psseupd.f b/PARPACK/SRC/MPI/psseupd.f
-index 23e2caad..85175870 100644
---- a/PARPACK/SRC/MPI/psseupd.f
-+++ b/PARPACK/SRC/MPI/psseupd.f
-@@ -523,9 +523,9 @@ subroutine psseupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/MPI/pssgets.f b/PARPACK/SRC/MPI/pssgets.f
-index 487689b0..dcc08bcb 100644
---- a/PARPACK/SRC/MPI/pssgets.f
-+++ b/PARPACK/SRC/MPI/pssgets.f
-@@ -216,8 +216,8 @@ subroutine pssgets
-       tsgets = tsgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_sgets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_sgets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_sgets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_sgets: NP is')
-          call psvout (comm, logfil, kev+np, ritz, ndigit,
-      &        '_sgets: Eigenvalues of current H matrix')
-          call psvout (comm, logfil, kev+np, bounds, ndigit,
-diff --git a/PARPACK/SRC/MPI/pzgetv0.f b/PARPACK/SRC/MPI/pzgetv0.f
-index 42cd0865..29f18f5b 100644
---- a/PARPACK/SRC/MPI/pzgetv0.f
-+++ b/PARPACK/SRC/MPI/pzgetv0.f
-@@ -185,7 +185,7 @@ subroutine pzgetv0
-       save       first, iseed, inits, iter, msglvl, orth, rnorm0
- c
-       Complex*16
--     &           cnorm_buf
-+     &           cnorm_buf, buf2(1)
- c
- c     %----------------------%
- c     | External Subroutines |
-@@ -332,8 +332,9 @@ subroutine pzgetv0
-       first = .FALSE.
-       if (bmat .eq. 'G') then
-           cnorm_buf = zdotc  (n, resid, 1, workd, 1)
--          call MPI_ALLREDUCE( cnorm_buf, cnorm, 1,
-+          call MPI_ALLREDUCE( [cnorm_buf], buf2, 1,
-      &          MPI_DOUBLE_COMPLEX , MPI_SUM, comm, ierr )
-+          cnorm = buf2(1)
-           rnorm0 = sqrt(dlapy2 (dble (cnorm),dimag (cnorm)))
-       else if (bmat .eq. 'I') then
-            rnorm0 = pdznorm2 ( comm, n, resid, 1)
-@@ -393,8 +394,9 @@ subroutine pzgetv0
- c
-       if (bmat .eq. 'G') then
-          cnorm_buf = zdotc  (n, resid, 1, workd, 1)
--         call MPI_ALLREDUCE( cnorm_buf, cnorm, 1,
-+         call MPI_ALLREDUCE( [cnorm_buf], buf2, 1,
-      &            MPI_DOUBLE_COMPLEX , MPI_SUM, comm, ierr )
-+         cnorm = buf2(1)
-          rnorm = sqrt(dlapy2 (dble (cnorm),dimag (cnorm)))
-       else if (bmat .eq. 'I') then
-          rnorm = pdznorm2 (comm, n, resid, 1)
-@@ -405,9 +407,9 @@ subroutine pzgetv0
- c     %--------------------------------------%
- c
-       if (msglvl .gt. 2) then
--          call pdvout  (comm, logfil, 1, rnorm0, ndigit,
-+          call pdvout  (comm, logfil, 1, [rnorm0], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm0 is')
--          call pdvout  (comm, logfil, 1, rnorm, ndigit,
-+          call pdvout  (comm, logfil, 1, [rnorm], ndigit,
-      &                '_getv0: re-orthonalization ; rnorm is')
-       end if
- c
-@@ -439,7 +441,7 @@ subroutine pzgetv0
- c
-       if (msglvl .gt. 0) then
-          cnorm2 = dcmplx (rnorm,rzero)
--         call pzvout  (comm, logfil, 1, cnorm2, ndigit,
-+         call pzvout  (comm, logfil, 1, [cnorm2], ndigit,
-      &        '_getv0: B-norm of initial / restarted starting vector')
-       end if
-       if (msglvl .gt. 2) then
-diff --git a/PARPACK/SRC/MPI/pznaitr.f b/PARPACK/SRC/MPI/pznaitr.f
-index 0b8af181..4ec77e4e 100644
---- a/PARPACK/SRC/MPI/pznaitr.f
-+++ b/PARPACK/SRC/MPI/pznaitr.f
-@@ -293,7 +293,7 @@ subroutine pznaitr
-      &           betaj, rnorm1, smlnum, ulp, unfl, wnorm
- c
-       Complex*16
--     &           cnorm_buf
-+     &           cnorm_buf, buf2(1)
- c
- c     %----------------------%
- c     | External Subroutines |
-@@ -404,9 +404,9 @@ subroutine pznaitr
-  1000 continue
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &                  '_naitr: generating Arnoldi vector number')
--            call pzvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &                  '_naitr: B-norm of the current residual is')
-          end if
- c
-@@ -426,7 +426,7 @@ subroutine pznaitr
- c           %---------------------------------------------------%
- c
-             if (msglvl .gt. 0) then
--               call pivout (comm, logfil, 1, j, ndigit,
-+               call pivout (comm, logfil, 1, [j], ndigit,
-      &                     '_naitr: ****** RESTART AT STEP ******')
-             end if
- c
-@@ -577,9 +577,10 @@ subroutine pznaitr
- c
-          if (bmat .eq. 'G') then
-              cnorm_buf = zdotc (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( cnorm_buf, cnorm, 1,
-+            call MPI_ALLREDUCE( [cnorm_buf], buf2, 1,
-      &           MPI_DOUBLE_COMPLEX, MPI_SUM, comm, ierr )
--             wnorm = sqrt( dlapy2(dble(cnorm),dimag(cnorm)) )
-+            cnorm = buf2(1)
-+            wnorm = sqrt( dlapy2(dble(cnorm),dimag(cnorm)) )
-          else if (bmat .eq. 'I') then
-              wnorm = pdznorm2(comm, n, resid, 1)
-          end if
-@@ -653,8 +654,9 @@ subroutine pznaitr
- c
-          if (bmat .eq. 'G') then
-             cnorm_buf = zdotc (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( cnorm_buf, cnorm, 1,
-+            call MPI_ALLREDUCE( [cnorm_buf], buf2, 1,
-      &           MPI_DOUBLE_COMPLEX, MPI_SUM, comm, ierr )
-+            cnorm = buf2(1)
-             rnorm = sqrt( dlapy2(dble(cnorm),dimag(cnorm)) )
-          else if (bmat .eq. 'I') then
-             rnorm = pdznorm2(comm, n, resid, 1)
-@@ -757,15 +759,16 @@ subroutine pznaitr
- c
-          if (bmat .eq. 'G') then
-              cnorm_buf = zdotc (n, resid, 1, workd(ipj), 1)
--            call MPI_ALLREDUCE( cnorm_buf, cnorm, 1,
-+            call MPI_ALLREDUCE( [cnorm_buf], buf2, 1,
-      &           MPI_DOUBLE_COMPLEX, MPI_SUM, comm, ierr )
--             rnorm1 = sqrt( dlapy2(dble(cnorm),dimag(cnorm)) )
-+            cnorm = buf2(1)
-+            rnorm1 = sqrt( dlapy2(dble(cnorm),dimag(cnorm)) )
-          else if (bmat .eq. 'I') then
-              rnorm1 = pdznorm2(comm, n, resid, 1)
-          end if
- c
-          if (msglvl .gt. 0 .and. iter .gt. 0 ) then
--            call pivout (comm, logfil, 1, j, ndigit,
-+            call pivout (comm, logfil, 1, [j], ndigit,
-      &           '_naitr: Iterative refinement for Arnoldi residual')
-             if (msglvl .gt. 2) then
-                 rtemp(1) = rnorm
-diff --git a/PARPACK/SRC/MPI/pznapps.f b/PARPACK/SRC/MPI/pznapps.f
-index 3e00c903..4952544c 100644
---- a/PARPACK/SRC/MPI/pznapps.f
-+++ b/PARPACK/SRC/MPI/pznapps.f
-@@ -283,9 +283,9 @@ subroutine pznapps
-          sigma = shift(jj)
- c
-          if (msglvl .gt. 2 ) then
--            call pivout (comm, logfil, 1, jj, ndigit,
-+            call pivout (comm, logfil, 1, [jj], ndigit,
-      &               '_napps: shift number.')
--            call pzvout (comm, logfil, 1, sigma, ndigit,
-+            call pzvout (comm, logfil, 1, [sigma], ndigit,
-      &               '_napps: Value of the shift ')
-          end if
- c
-@@ -306,9 +306,9 @@ subroutine pznapps
-             if ( abs(dble(h(i+1,i)))
-      &           .le. max(ulp*tst1, smlnum) )  then
-                if (msglvl .gt. 0) then
--                  call pivout (comm, logfil, 1, i, ndigit,
-+                  call pivout (comm, logfil, 1, [i], ndigit,
-      &                 '_napps: matrix splitting at row/column no.')
--                  call pivout (comm, logfil, 1, jj, ndigit,
-+                  call pivout (comm, logfil, 1, [jj], ndigit,
-      &                 '_napps: matrix splitting with shift number.')
-                   call pzvout (comm, logfil, 1, h(i+1,i), ndigit,
-      &                 '_napps: off diagonal element.')
-@@ -322,9 +322,9 @@ subroutine pznapps
-    40    continue
- c
-          if (msglvl .gt. 2) then
--             call pivout (comm, logfil, 1, istart, ndigit,
-+             call pivout (comm, logfil, 1, [istart], ndigit,
-      &                   '_napps: Start of current block ')
--             call pivout (comm, logfil, 1, iend, ndigit,
-+             call pivout (comm, logfil, 1, [iend], ndigit,
-      &                   '_napps: End of current block ')
-          end if
- c
-@@ -500,7 +500,7 @@ subroutine pznapps
-      &        '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
-          call pzvout (comm, logfil, 1, h(kev+1,kev), ndigit,
-      &        '_napps: betak = e_{kev+1}^T*H*e_{kev}')
--         call pivout (comm, logfil, 1, kev, ndigit,
-+         call pivout (comm, logfil, 1, [kev], ndigit,
-      &               '_napps: Order of the final Hessenberg matrix ')
-          if (msglvl .gt. 2) then
-             call pzmout (comm, logfil, kev, kev, h, ldh, ndigit,
-diff --git a/PARPACK/SRC/MPI/pznaup2.f b/PARPACK/SRC/MPI/pznaup2.f
-index bf3c2016..78521979 100644
---- a/PARPACK/SRC/MPI/pznaup2.f
-+++ b/PARPACK/SRC/MPI/pznaup2.f
-@@ -237,7 +237,7 @@ subroutine pznaup2
-      &           nevbef, nev0 , np0,    eps23
- c
-       Double precision
--     &           cmpnorm_buf
-+     &           cmpnorm_buf, buf2(1)
- c
- c     %-----------------------%
- c     | Local array arguments |
-@@ -401,7 +401,7 @@ subroutine pznaup2
-          iter = iter + 1
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, iter, ndigit,
-+            call pivout (comm, logfil, 1, [iter], ndigit,
-      &           '_naup2: **** Start of major iteration number ****')
-          end if
- c
-@@ -414,9 +414,9 @@ subroutine pznaup2
-          np  = kplusp - nev
- c
-          if (msglvl .gt. 1) then
--            call pivout (comm, logfil, 1, nev, ndigit,
-+            call pivout (comm, logfil, 1, [nev], ndigit,
-      &     '_naup2: The length of the current Arnoldi factorization')
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &           '_naup2: Extend the Arnoldi factorization by')
-          end if
- c
-@@ -443,7 +443,7 @@ subroutine pznaup2
-          update = .false.
- c
-          if (msglvl .gt. 1) then
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &           '_naup2: Corresponding B-norm of the residual')
-          end if
- c
-@@ -674,7 +674,7 @@ subroutine pznaup2
-          end if
- c
-          if (msglvl .gt. 0) then
--            call pivout (comm, logfil, 1, nconv, ndigit,
-+            call pivout (comm, logfil, 1, [nconv], ndigit,
-      &           '_naup2: no. of "converged" Ritz values at this iter.')
-             if (msglvl .gt. 1) then
-                kp(1) = nev
-@@ -714,7 +714,7 @@ subroutine pznaup2
-          end if
- c
-          if (msglvl .gt. 2) then
--            call pivout (comm, logfil, 1, np, ndigit,
-+            call pivout (comm, logfil, 1, [np], ndigit,
-      &                  '_naup2: The number of shifts to apply ')
-             call pzvout (comm, logfil, np, ritz, ndigit,
-      &                  '_naup2: values of the shifts')
-@@ -771,8 +771,9 @@ subroutine pznaup2
- c
-          if (bmat .eq. 'G') then
-             cmpnorm_buf = zdotc (n, resid, 1, workd, 1)
--            call MPI_ALLREDUCE( cmpnorm_buf, cmpnorm, 1,
-+            call MPI_ALLREDUCE( [cmpnorm_buf], buf2, 1,
-      &               MPI_DOUBLE_COMPLEX, MPI_SUM, comm, ierr )
-+            cmpnorm = buf2(1)
-             rnorm = sqrt(dlapy2(dble(cmpnorm),dimag(cmpnorm)))
-          else if (bmat .eq. 'I') then
-             rnorm = pdznorm2(comm, n, resid, 1)
-@@ -780,7 +781,7 @@ subroutine pznaup2
-          cnorm = .false.
- c
-          if (msglvl .gt. 2) then
--            call pdvout (comm, logfil, 1, rnorm, ndigit,
-+            call pdvout (comm, logfil, 1, [rnorm], ndigit,
-      &      '_naup2: B-norm of residual for compressed factorization')
-             call pzmout (comm, logfil, nev, nev, h, ldh, ndigit,
-      &        '_naup2: Compressed upper Hessenberg matrix H')
-diff --git a/PARPACK/SRC/MPI/pznaupd.f b/PARPACK/SRC/MPI/pznaupd.f
-index 979402b3..7d6ea4c4 100644
---- a/PARPACK/SRC/MPI/pznaupd.f
-+++ b/PARPACK/SRC/MPI/pznaupd.f
-@@ -626,9 +626,9 @@ subroutine pznaupd
-       if (info .eq. 2) info = 3
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, mxiter, ndigit,
-+         call pivout (comm, logfil, 1, [mxiter], ndigit,
-      &               '_naupd: Number of update iterations taken')
--         call pivout (comm, logfil, 1, np, ndigit,
-+         call pivout (comm, logfil, 1, [np], ndigit,
-      &               '_naupd: Number of wanted "converged" Ritz values')
-          call pzvout  (comm, logfil, np, workl(ritz), ndigit,
-      &               '_naupd: The final Ritz values')
-diff --git a/PARPACK/SRC/MPI/pzneupd.f b/PARPACK/SRC/MPI/pzneupd.f
-index 4bb1173a..7b6e7fe1 100644
---- a/PARPACK/SRC/MPI/pzneupd.f
-+++ b/PARPACK/SRC/MPI/pzneupd.f
-@@ -558,9 +558,9 @@ subroutine pzneupd
- c        %-----------------------------------------------------------%
- c
-          if (msglvl .gt. 2) then
--             call pivout(comm, logfil, 1, numcnv, ndigit,
-+             call pivout(comm, logfil, 1, [numcnv], ndigit,
-      &            '_neupd: Number of specified eigenvalues')
--             call pivout(comm, logfil, 1, nconv, ndigit,
-+             call pivout(comm, logfil, 1, [nconv], ndigit,
-      &            '_neupd: Number of "converged" eigenvalues')
-          end if
- c
-diff --git a/PARPACK/SRC/MPI/pzngets.f b/PARPACK/SRC/MPI/pzngets.f
-index 97bc4070..cb58f5ce 100644
---- a/PARPACK/SRC/MPI/pzngets.f
-+++ b/PARPACK/SRC/MPI/pzngets.f
-@@ -177,8 +177,8 @@ subroutine pzngets ( comm, ishift, which, kev, np, ritz, bounds)
-       tcgets = tcgets + (t1 - t0)
- c
-       if (msglvl .gt. 0) then
--         call pivout (comm, logfil, 1, kev, ndigit, '_ngets: KEV is')
--         call pivout (comm, logfil, 1, np, ndigit, '_ngets: NP is')
-+         call pivout (comm, logfil, 1, [kev], ndigit, '_ngets: KEV is')
-+         call pivout (comm, logfil, 1, [np], ndigit, '_ngets: NP is')
-          call pzvout (comm, logfil, kev+np, ritz, ndigit,
-      &        '_ngets: Eigenvalues of current H matrix ')
-          call pzvout (comm, logfil, kev+np, bounds, ndigit,
-diff --git a/scripts/travis_fedora.sh b/scripts/travis_fedora.sh
-new file mode 100755
-index 00000000..0bfa5736
---- /dev/null
-+++ b/scripts/travis_fedora.sh
-@@ -0,0 +1,51 @@
-+#!/bin/sh
-+## -e : Make sure all errors cause the script to fail
-+## -x be verbose; write what we are doing, as we do it
-+set -ex
-+## Should we init a container?
-+if [ ".$1" = .setup ]
-+then
-+  # fedora
-+  #   note: when you PR, docker-cp provides, in the container, the branch associated with the PR (not master where there's nothing new)
-+  #         1. docker create --name mobydick IMAGE CMD        <=> create a container (= instance of image) but container is NOT yet started
-+  #         2. docker cp -a ${TRAVIS_BUILD_DIR} mobydick:/tmp <=> copy git repository (CI worker, checkout-ed on PR branch) into the container
-+  #                                                               note: docker-cp works only if copy from/to containers (not images)
-+  #         3. docker start -a mobydick                       <=> start to run the container (initialized with docker-cp)
-+    test . != ".$2" && mpi="$2" || mpi=openmpi
-+    test . != ".$3" && version="$3" || version=latest
-+    time sudo docker pull registry.fedoraproject.org/fedora:$version ||
-+	sudo docker pull fedora:$version
-+    time sudo docker create --name mobydick fedora:$version \
-+	/tmp/arpack-ng/scripts/travis_fedora.sh $mpi
-+    time sudo docker cp -a ${TRAVIS_BUILD_DIR} mobydick:/tmp
-+    time sudo docker start -a mobydick ; e=$?
-+    exit $e
-+fi
-+
-+test . != ".$1" && mpi="$1" || mpi=openmpi
-+
-+## If we are called as root, setup everything
-+if [ $UID -eq 0 ]
-+then
-+    time dnf -y upgrade
-+    time dnf -y install environment-modules git \
-+        gfortran openblas-devel cmake ${mpi}-devel make gcc-c++
-+    useradd test
-+    chown -R test /tmp
-+    sudo -u test $0 $mpi
-+## If we are called as normal user, run test
-+else
-+    . /etc/profile.d/modules.sh
-+    module load mpi
-+    export OMPI_MCA_rmaps_base_oversubscribe=yes
-+    cd /tmp
-+    cd arpack-ng
-+    git status
-+    git log -2
-+    mkdir -p build && cd build
-+    time cmake -DEXAMPLES=ON -DMPI=ON -DICB=ON ..
-+    export VERBOSE=1
-+    time make all
-+    time make test
-+    tail -n 300 ./Testing/Temporary/LastTest.log
-+fi
--- a/src/arpack.mk	Mon Mar 22 16:13:11 2021 -0400
+++ b/src/arpack.mk	Mon Mar 22 16:13:12 2021 -0400
@@ -3,8 +3,8 @@
 
 PKG             := arpack
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 3.7.0
-$(PKG)_CHECKSUM := cb5a6e1f3c5ab231440bbe30f4a0808d76215e93
+$(PKG)_VERSION  := 3.8.0
+$(PKG)_CHECKSUM := 6b89dc1b298e1db7df17094308fc3309afa49618
 $(PKG)_SUBDIR   := $(PKG)-ng-$($(PKG)_VERSION)
 $(PKG)_FILE     := arpack-ng_$($(PKG)_VERSION).tar.gz
 $(PKG)_URL      := https://github.com/opencollab/arpack-ng/archive/$($(PKG)_VERSION).tar.gz