190 Commits
Author SHA1 Message Date
Sylvestre Ledru 54f244612e Update the date for release 2016-07-02 21:52:15 +02:00
Sylvestre Ledru bdaab9995a cosmetic 2016-07-02 21:51:41 +02:00
Sylvestre Ledru d66b8b4b0a Merge pull request #35 from davydden/pdlamch10_return
fix pdlamch10 return variable
2016-03-14 14:07:51 +01:00
Denis Davydov 56e6e9f763 fix pdlamch10 return variable 2016-03-14 07:21:40 +01:00
Sylvestre Ledru b55cc59146 Merge the two changelog items. 3.4.0 hasn't been released yet 2016-02-15 14:40:06 +01:00
Sylvestre Ledru a0b3de6b82 Merge pull request #32 from nalimilan/suffix
ILP64 support
2016-02-15 14:38:38 +01:00
Milan Bouchet-Valat a97e5c53b4 Update changelog 2016-01-25 14:37:45 +01:00
Milan Bouchet-Valat 0e19885160 Add CMake support 2016-01-25 14:23:32 +01:00
Milan Bouchet-Valat 69ff75af05 Improve portability by using more autoconf macros 2016-01-25 14:23:29 +01:00
Milan Bouchet-Valat 5f47b8df2e Support building with ILP64 interface
This adds a configure variable INTERFACE64 which changes the integer
size to 64 bits for ARPACK as well as BLAS and LAPACK. The tests are
also updated to use a BLASINT type reflecting the BLAS integer.
2016-01-25 13:47:43 +01:00
Milan Bouchet-Valat f4f5173864 Support adding suffix to ARPACK, BLAS and LAPACK names
This adds three configure variables:
- LIBSUFFIX to add a suffix to the ARPACK library name
- SYMBOLSUFFIX to add a suffix to ARPACK, BLAS and LAPACK symbol names
2016-01-25 13:47:43 +01:00
Sylvestre Ledru c9ace29448 Merge pull request #31 from turboencabulator/autotools-fixes
Autotools fixes
2016-01-20 16:20:07 +01:00
Kyle Guinn 86df5b062e Follow autoconf's error message style suggestions
"The error-description should start with a lower-case letter"
2016-01-08 01:45:31 -06:00
Kyle Guinn 7fc73aae63 Delete an AC_MSG_CHECKING without a corresponding AC_MSG_RESULT
This is meant to be used around something like AC_TRY_COMPILE.  The
ax_mpi.m4 script will print out several similar lines, so there's no
need to convert it to AC_MSG_NOTICE.
2016-01-08 01:39:46 -06:00
Kyle Guinn 1131e093af Simplify MPI/BLACS selection
Set up the BLACS variant to install libparpack and build examples just
like the MPI variant.  You can now choose one of the two from
configure.ac.  The BLACS variant is disabled for now.  Because it is
disabled, note that the sources are no longer built and then left
unused.
2016-01-08 01:08:43 -06:00
Kyle Guinn c6e5122c8e Remove another libtool convenience library
Repeats the last commit on the PARPACK sources.
2016-01-08 00:54:41 -06:00
Kyle Guinn 3d94a2cd3d Remove a libtool convenience library
Instead of creating a convenience lib of everything in SRC and linking
it in the root directory, create the actual libarpack library in SRC
instead.
2016-01-08 00:40:46 -06:00
Kyle Guinn d8f2020144 Shorten the names of some targets
Let the directory name distinguish between BLACS and MPI variants.
2016-01-07 00:32:32 -06:00
Kyle Guinn 33a3efd6ee Remove test-dnsimp.sh
AC_CONFIG_LINKS copies testA.mtx to the build directory, making this
script unnecessary.
2016-01-06 22:47:58 -06:00
Kyle Guinn ddfd843e29 Do not link bug_1315 tests to LAPACK/BLAS
LAPACK/BLAS is not a direct dependency.  If it was, we would also need
to link with $(FLIBS) as determined by AC_F77_LIBRARY_LDFLAGS since
we're mixing C and Fortran.
2016-01-06 22:44:28 -06:00
Kyle Guinn 29e06320f6 Remove AM_DEFAULT_SOURCE_EXT
Each executable has a _SOURCES variable defined.  No need for automake
to guess a default value for _SOURCES.
2016-01-06 22:42:32 -06:00
Kyle Guinn e8267ce709 Fix order of BLAS/LAPACK libraries 2016-01-04 22:41:00 -06:00
Sylvestre Ledru 337ab26e85 Update the version to 3.4.0 2015-10-27 10:22:31 +01:00
Sylvestre Ledru 01b5490e68 Describe Martin's change with cmake 2015-10-27 10:19:50 +01:00
Sylvestre Ledru 30a3e266e4 also ship CMakeLists.txt with the autotool build system 2015-10-27 10:19:37 +01:00
Sylvestre Ledru a3379944dc Merge pull request #26 from m-reuter/master
Add the cmake build support
2015-10-21 10:16:23 +02:00
Martin Reuter 5a16aaf287 Added cmake check to travis 2015-10-20 23:46:32 -04:00
Martin Reuter f0c4d81627 Added checks to cmake 2015-10-20 23:43:54 -04:00
Martin Reuter cdbce13db0 Added Cmake info 2015-10-20 16:58:20 -04:00
Sylvestre Ledru 08cea42566 Merge pull request #27 from thrasibule/use_blasref
Try to use reference blas to avoid a random issue in test bug_1315
2015-10-19 22:12:06 +02:00
Sylvestre Ledru 99ef033832 Merge pull request #28 from thrasibule/missing_free
Add missing free in a test
2015-10-19 22:09:44 +02:00
Guillaume Horel 6a6f8528cd add missing free 2015-10-19 14:43:29 -04:00
Guillaume Horel 0704e64ff4 try to use reference blas 2015-10-19 14:30:27 -04:00
Martin Reuter 7bbfb50ad7 cmake project name revert 2015-10-15 16:41:58 -04:00
Martin Reuter 639e42a5ca cmake project name should be arpack-ng 2015-10-15 16:33:43 -04:00
Martin Reuter 5e0617f859 Cmake change library order 2015-10-15 16:12:58 -04:00
Martin Reuter e511e06a33 fix directory names in CMake 2015-10-15 15:54:00 -04:00
Martin Reuter 664123a8d6 adding MPI to cmake for travis 2015-10-15 15:44:17 -04:00
Martin Reuter ceda2ef405 fix: now using BUILD env var 2015-10-15 15:42:26 -04:00
Martin Reuter 6c859f2e67 adding EXAMPLES to cmake travis 2015-10-15 15:39:00 -04:00
Martin Reuter db90ad5881 adding CMAKE to travis (parallel) 2015-10-15 15:12:13 -04:00
Martin Reuter 8f020e2715 force external Lapack and BLAS and adjust local dir names to upper case 2015-10-14 15:46:04 -04:00
Martin Reuter 16b445ec08 Adopted Cmake from https://github.com/feymark/arpack.git 2015-10-14 15:46:04 -04:00
Sylvestre Ledru b0f7a6008f remove trailing spaces + minor update of the doc 2015-10-12 09:23:54 +02:00
Sylvestre Ledru 5c2d41f710 update of the date for release day 2015-10-12 09:21:16 +02:00
Sylvestre Ledru 5c020ea005 remove trailing spaces 2015-10-12 09:20:48 +02:00
Sylvestre Ledru 99ab5a9a29 Merge pull request #24 from thrasibule/update-travis
Use the new travis infrastructure
2015-09-26 14:45:10 +02:00
Guillaume Horel e0a4cbbaec Use the new travis infrastructure 2015-09-24 15:22:02 -04:00
Sylvestre Ledru 36be08bf41 Merge pull request #21 from davydden/pdlamch
Rename pdlamch to pdlamch10 to avoid symbol collision with Scalapack
2015-09-17 11:33:04 +02:00
Sylvestre Ledru afacb275c5 Revert "Simplify the test-dnsimp.sh script"
This reverts commit 82de5c6bed.
2015-09-17 11:13:56 +02:00
Sylvestre Ledru 34882f42c4 Merge pull request #19 from thrasibule/dlaqrb
* reverts using {d,s}lahqr from lapack 2
* use dlahqr from lapack 3 instead of dlaqrb (credit to Marco Caliari)
2015-09-17 11:05:42 +02:00
Sylvestre Ledru 82de5c6bed Simplify the test-dnsimp.sh script 2015-09-17 11:04:09 +02:00
Sylvestre Ledru f571587ddf Merge pull request #15 from rwirth/issue_14
execute the dnsimp test in the right directory
2015-09-17 11:02:47 +02:00
Denis Davydov 333a5e4f33 rename pdlamch to pdlamch10 to avoid symbol collision with Scalapack 2.0.2 where this function is different 2015-08-30 12:51:19 +02:00
Guillaume Horel 5b475d1c1c update CHANGES 2015-08-26 22:39:02 -04:00
Guillaume Horel 9568032129 remove source and update Makefile 2015-08-25 15:12:26 -04:00
Guillaume Horel 2268b7bf82 fix the parpack MPI routines 2015-08-25 15:11:05 -04:00
Guillaume Horel 04a138eb68 also fix the parpack BLACS routines 2015-08-25 15:11:05 -04:00
Guillaume Horel a29e13bd15 replace {s,d}laqrb with {s,d}lahqr 2015-08-25 15:11:05 -04:00
Guillaume Horel 93d6e45696 Revert "add note to explain the name change"
This reverts commit 793da95cb6.
2015-08-25 15:11:04 -04:00
Guillaume Horel c71a0fd5a7 Revert: force the use of the old {d,s}lahqr 2015-08-25 15:11:04 -04:00
Guillaume Horel b553f707d2 Revert "forgot some 2"
This reverts commit cbb0bf599d.
2015-08-25 15:11:04 -04:00
Roland Wirth 77028b5853 add test-dnsimp.sh to distribution 2015-06-23 14:15:25 +02:00
Roland Wirth 0a8dac28c4 execute the dnsimp test in the right directory
Fixes opencollab/arpack-ng#14
2015-06-22 11:48:10 +02:00
Sylvestre Ledru 5cd31c69d4 Merge pull request #9 from elezar/master
Address Visual Studio build for Issue #8.
2015-03-04 18:33:05 +01:00
Evan Lezar 513d2088c3 Address Visual Studio build for Issue #8.
Added two missing files to the visual studio project, and set the paths
to be consistent.
2015-03-04 18:22:45 +01:00
Sylvestre Ledru ca1acab481 Describe one of the change 2015-02-13 16:29:16 +01:00
Sylvestre Ledru 2d0900d503 Disable the execution of the MPI tests (fails for now) 2015-02-13 16:29:07 +01:00
Sylvestre Ledru e1fd52ac21 bump the version to 3.3.0 2015-01-30 09:06:23 +01:00
Sylvestre Ledru 18b8c25fee document the recent changes from Kyle 2015-01-30 08:41:55 +01:00
Sylvestre Ledru ddaa55d8b8 Merge pull request #5 from turboencabulator/automake-cleanup
General improvements on the build system
2015-01-30 08:38:26 +01:00
Kyle Guinn 0a8e936c7a Fix make distcheck
As a compromise for anyone who doesn't have MPI support but wants to run
`make distcheck`, only check PARPACK if --enable-mpi was given during
./configure.
2014-12-31 18:37:11 -06:00
Kyle Guinn 607877d0b2 Enable the PARPACK examples as tests 2014-12-31 18:28:55 -06:00
Kyle Guinn 36f8d20f0f Re-add PARPACK psndrv1 examples 2014-12-31 18:22:50 -06:00
Kyle Guinn 595618eebc Re-add the bug_1323 test 2014-12-31 18:22:50 -06:00
Kyle Guinn 872b44c592 Fix the order of LAPACK/BLAS libs
LAPACK may depend on BLAS, therefore -llapack needs to be given before
-lblas.
2014-12-31 18:22:50 -06:00
Kyle Guinn 8600fd13e4 Clean up EXTRA_DIST for the examples 2014-12-31 18:22:49 -06:00
Kyle Guinn 8a6d23a38f Simplify automake input files
Copy some description comments from the original makefiles.
2014-12-31 18:22:49 -06:00
Kyle Guinn ad373111a0 Fix several whitespace nitpicks 2014-12-31 18:15:44 -06:00
Kyle Guinn 60777efcad Link libparpack to libarpack
Avoids having a duplicate copy of libarpack inside of libparpack, thus
saving disk space.
2014-12-31 18:15:33 -06:00
Kyle Guinn a6395d059d Don't install the examples 2014-12-31 18:15:06 -06:00
Kyle Guinn 1f6cf9d86a Remove two unnecessary automake variables
Fixes the following autoreconf warnings:
EXAMPLES/BAND/Makefile.am:84: variable `snband_SOURCES' is defined but no program or
EXAMPLES/BAND/Makefile.am:84: library has `snband' as canonical name (possible typo)
EXAMPLES/BAND/Makefile.am:86: variable `snband_LDADD' is defined but no program or
EXAMPLES/BAND/Makefile.am:86: library has `snband' as canonical name (possible typo)
2014-12-31 18:15:02 -06:00
Kyle Guinn 209bc9967b Remove an extra trailing '/' 2014-12-31 18:14:56 -06:00
Kyle Guinn ff75ef2384 Improve the pkg-config file
Get the library name and URL from configure.ac.
Make the description an actual description.
Remove the empty Cflags.
2014-12-31 18:14:51 -06:00
Kyle Guinn fe9b38df33 Prevent overlinking to BLAS/LAPACK 2014-12-31 18:14:47 -06:00
Kyle Guinn c8dda4c1e7 Update ax_blas.m4 to serial 14
This adds support for OpenBLAS, among other things.
2014-12-31 18:14:38 -06:00
Kyle Guinn 23e4995054 Update .gitignore 2014-12-31 18:14:25 -06:00
Kyle Guinn 4eab7e3a60 Replace auto-generated files with a bootstrap script 2014-12-31 18:13:59 -06:00
Sylvestre Ledru 4e72fd240f update travis directives 2014-12-23 19:29:55 +01:00
Sylvestre Ledru ce36b0e26e disable useless travis directives 2014-12-23 19:23:36 +01:00
Sylvestre Ledru 7b8343c9af add a travis configuration file 2014-12-23 19:16:47 +01:00
Sylvestre Ledru 8fc8fbe349 remove trailing spaces + warnings 2014-11-14 15:47:06 +01:00
Sylvestre Ledru 393e0c85a7 Regenerate files 2014-11-14 15:36:50 +01:00
Sylvestre Ledru 671a410c8e fix presentation 2014-11-14 15:35:44 +01:00
Sylvestre Ledru b8c7fdb000 Merge pull request #2 from thrasibule/dlahqr2
Dlahqr2
2014-11-14 15:31:19 +01:00
Guillaume Horel 6b9c613db7 update CHANGES 2014-11-06 22:13:54 -05:00
Guillaume Horel 793da95cb6 add note to explain the name change 2014-11-06 22:11:19 -05:00
Guillaume Horel f1fe1b7427 regenerate configure and Makefile.in 2014-11-06 20:56:01 -05:00
Guillaume Horel 97fbcbf6aa Add tests for bug 1315
since they're written in C, need to add AC_PROG_CC to config.ac as well
2014-11-06 20:53:51 -05:00
Guillaume Horel cbb0bf599d forgot some 2 2014-09-14 18:40:16 -04:00
Guillaume Horel d783b264da force the use of the old {d,s}lahqr 2014-09-14 18:30:24 -04:00
Sylvestre Ledru ff8c6d325f Working on the 3.2.0 release 2014-06-03 18:08:38 +02:00
Sylvestre Ledru 0dee07b43c Fix the URL 2014-06-03 18:08:12 +02:00
Sylvestre Ledru 3ab47c9e81 Switch to github 2014-05-17 16:26:26 +02:00
Sylvestre Ledru 2e58090484 remove trailing spaces + update my email 2014-05-17 16:24:27 +02:00
Sylvestre Ledru 8a82ceaa0a Revert "Fix the diagonal matrice example (dndrv5). Thanks to Nikita Styopin for the fix. close ticket 1397"
My bad. I missunderstood the bug report

This reverts commit cdfee6183f.
2014-02-21 20:14:41 +01:00
Sylvestre Ledru ab45bdb757 Fix typo + date 2014-02-15 15:04:14 +01:00
Sylvestre Ledru 1371fd6bf8 * Build all examples and run them as tests 2014-02-15 15:00:55 +01:00
Sylvestre Ledru d3796928af Update of the changelog 2014-02-14 13:37:51 +01:00
Sylvestre Ledru cdfee6183f Fix the diagonal matrice example (dndrv5). Thanks to Nikita Styopin for the fix. close ticket 1397 2014-02-14 12:05:10 +01:00
Sylvestre Ledru f28b75cf5d * Fix the version of arpack-ng itself 2014-02-14 12:02:05 +01:00
Sylvestre Ledru b0693f6bcd * Switch to automake 1.14.1 2014-02-14 12:01:45 +01:00
Ruediger Meier e90e4f65c4 Do not install test binaries 2013-12-10 13:48:39 +01:00
Sylvestre Ledru 9fe0e320ee Fix the symlink 2013-11-13 10:05:43 +01:00
Édouard Canot 30ee9d7c3d * dsaupd and 'BE' option returns wrong eigenvalues for a SPD matrix
Thanks to Edouard Canot (Closes: #1329)
2013-11-06 11:59:11 +01:00
Sylvestre Ledru 616222b89b Ignore the tests results 2013-11-06 11:46:00 +01:00
Sylvestre Ledru 8446648c95 Add the 'make check' target and add a test for bug 1323 2013-11-06 11:44:58 +01:00
Édouard Canot ca8f3fc66c * dseupd routine may lead to a segmentation fault
Thanks to Edouard Canot (Closes: #1323)
2013-11-06 11:39:52 +01:00
Sylvestre Ledru aa5cc620ec replace the symlink by a copy 2013-10-14 11:13:33 +02:00
Ward Poelmans 9e319b3c1a Updated autoconf, automake and libtool scripts
Using autoreconf -i -f and more recent version of the autotools. This
should fix a problem with libtool not recognizing Intel MPI.
2013-10-14 11:03:25 +02:00
Sylvestre Ledru 29d8cbe63f Update of the release notes 2013-10-07 14:25:51 +02:00
Ward Poelmans c124f0c2fc Use configure supplied blas and lapack in the pkg-config
Use the blas and lapack library found by the configure script in the
pkg-config file instead of hardcoded libraries.
2013-10-07 14:23:14 +02:00
Sylvestre Ledru 0fea7c6990 update of the changelog 2013-08-29 10:54:15 +02:00
Pauli Virtanen 1ae47e63dd Fix issue #1259 in DSEUPD and SSEUPD
The Ritz vector purification step assumes workl(iq) still contains the
original Q matrix. This is however overwritten by the call to xGEQR2
earlier.

This patch fixes the issue by making a copy of the last row of the
eigenvector matrix, after it is recomputed after QR by xORM2R. The work
space WORKL(IW+NCV:IW+2*NCV) is not used later in the routine, and can
be used for this.

Thanks to Wimmer for tracing the issue.

--HG--
extra : amend_source : 3ba6513783201433d5f7b9b2d1bcbc08a0554007
2013-08-28 15:20:28 -04:00
Sylvestre Ledru 94200e60c0 automake 1.13.3 + new upstream autoconf 2013-08-06 15:16:53 +02:00
Sylvestre Ledru 343b151f12 Update of the changelog 2013-08-06 15:16:18 +02:00
Sylvestre Ledru 072f08e313 Missing the dependency on mpi from libparpack. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718790 2013-08-06 15:14:46 +02:00
Jordi Gutiérrez Hermoso 8b60cd295c Replace LAPACK second function with ARPACK's own arscnd in PARPACK 2013-06-17 12:59:19 -04:00
Sylvestre Ledru c1264cfef0 Do not build but still ship the sources 2013-04-02 11:57:51 +02:00
Sylvestre Ledru 972038c699 Do not build the BLACS example (not sure BLACS has a long and prosper life + it is not managed in the configure 2013-04-02 11:55:01 +02:00
Sylvestre Ledru 0d0437a758 Rename the name of the library to match the MPI one 2013-04-02 11:54:18 +02:00
Sylvestre Ledru a6848a5c6c Compile libparpack before the examples 2013-04-02 11:36:23 +02:00
Sylvestre Ledru 2a3d8f7494 Remove the generated file 2013-04-02 11:35:58 +02:00
Sylvestre Ledru c555cdd10c Update of the changelog for the release 2013-04-02 10:54:54 +02:00
Sylvestre Ledru b437a82d17 Make sure all files are installed during the 'make dist' process 2013-04-02 10:48:46 +02:00
Sylvestre Ledru 7ff6566790 Also build libparpackblacssrc 2013-04-02 10:42:41 +02:00
Sylvestre Ledru 6243c08d44 Regenerate with same version of the autotools 2013-03-09 11:44:58 +01:00
Sylvestre Ledru 6365c9e931 Make sure that all arpack-ng is built
Prepare "make dist" (not finished yet)
2013-03-09 11:44:28 +01:00
Jordi Gutiérrez Hermoso d33ff2e405 Commit WIP towards ensuring that "make dist" works 2013-02-27 16:31:24 -05:00
Jordi Gutiérrez Hermoso 5c89955f38 restore auto-generated files 2013-01-09 17:14:55 -05:00
Jordi Gutiérrez Hermoso bf328ccd96 Document more 3.1.3 changes 2013-01-09 17:05:37 -05:00
Jordi Gutiérrez Hermoso 3d4e6942ea Add debug.h to sources in TESTS/Makefile.am 2013-01-09 17:04:16 -05:00
Jordi Gutiérrez Hermoso 5744ca1e18 Fix arpack.pc, turn it into arpack.pc.in
--HG--
rename : arpack.pc => arpack.pc.in
2013-01-09 16:23:09 -05:00
Jordi Gutiérrez Hermoso e2538f38f1 Update .gitignore and add .hgignore 2013-01-09 16:22:11 -05:00
Jordi Gutiérrez Hermoso 79526a1c62 Document 3.1.3 changes 2013-01-09 16:09:02 -05:00
Jordi Gutiérrez Hermoso d108516fd6 Version bump to 3.1.3 2013-01-09 15:32:00 -05:00
John W. Eaton b43a0eda6f Update libtool usage. Link with Fortran compiler.
* Makefile.am (libarpack_la_LDFLAGS): Use -no-undefined.
(nodist_EXTRA_libarpack_la_SOURCES): New variable.
(libarpack_la_LIBADD): Don't link with $(FLIBS).
* PARPACK/Makefile.am (libparpack_la_LDFLAGS): Use -no-undefined.
(nodist_EXTRA_libparpack_la_SOURCES): New variable.
(libparpack_la_LIBADD): Don't link with $(FLIBS) and $(MPILIBS).
* configure.ac: Use LT_INIT with win32-dll option instead of
AC_PROG_LIBTOOL.  Require libtool 2.2.2 or later.
2013-01-09 15:06:21 -05:00
Jordi Gutiérrez Hermoso 49887a41b0 Replace depcomp symlink with actual file 2013-01-09 15:44:23 -05:00
Jordi Gutiérrez Hermoso 7a25d0f10c Replace auto-generated files with bootstrap script 2013-01-09 15:43:13 -05:00
Sylvestre Ledru 576120a26c Description of the last changes 2012-08-02 11:36:39 +02:00
Umberto De Giovannini 168aaf5a3f Fixed division by zero in smlnum by usind p[d,s]lamch instead of the serial [d,s]lamch. I am not sure why but this fix all the issues (crash pcndrv1 and wrong numbers in pzndr1) with gfortran.. 2012-08-01 17:10:54 +02:00
Sylvestre Ledru b4b959850e * Configure detected built-in LAPACK and BLAS, but refused to use them
(Closes: #784)
2012-07-17 14:30:24 +02:00
Sylvestre Ledru 37120660f3 New version off automake 2012-07-12 03:53:09 -06:00
Sylvestre Ledru 30fca4c6c1 Update the git ignore list 2012-07-12 03:52:47 -06:00
Sylvestre Ledru 628e80b2ec * Compile also PARPACK / MPI example (Closes: #783) 2012-07-12 03:52:10 -06:00
Sylvestre Ledru 7834970e92 * Compile aussi PARPACK / MPI example (Closes: #783) 2012-07-11 23:23:58 -06:00
Sylvestre Ledru 1e814091ff * Get rid of the mpif.h occurences in the source code (Closes: #782) 2012-07-11 23:10:08 -06:00
Sylvestre Ledru b105070b63 Update of the changelog 2012-06-22 22:05:57 +02:00
Sylvestre Ledru 171f59a65a * Wrong call to pdlamch was causing segfaults
Thanks to Kyrre Sjøbæk for finding the bug and the fix.
2012-06-22 21:59:32 +02:00
Sylvestre Ledru 434a1a002a * Option --enable-maintainer-mode added to the configure
* --disable-mpi disables the build of parpack (Closes: #714)
   * Switch to automake 1.11.3
2012-05-21 09:24:05 +02:00
Sylvestre Ledru 9edcf7a494 Merge branch 'master' of git.forge.scilab.org:arpack-ng 2012-02-22 11:41:49 +01:00
Sylvestre Ledru 81ce8ecb6d Update of the gitignore 2012-02-22 11:40:45 +01:00
Sylvestre Ledru 2523fb7df5 Change the build order 2012-02-22 11:40:28 +01:00
Sylvestre Ledru 36aaa0570f Update of the date 2012-02-22 10:59:03 +01:00
Tim Mitchell 3c470ca5a2 Fix potential wrong eigenvalue return. (patch by Tim Mitchell at Courant)
"ARPACK can return the wrong eigenvalues if eigenvectors are
requested and the resulting number of converged eigenvalues is less than
the number requested."
2012-02-21 18:05:06 +01:00
Sylvestre Ledru 75fb014285 Revert "Fix potential wrong eigenvalue return. (patch by Tim Mitchell at Courant)"
This reverts commit 7625b2456e.
2012-02-21 18:04:35 +01:00
Tim Mitchell 7625b2456e Fix potential wrong eigenvalue return. (patch by Tim Mitchell at Courant)
"ARPACK can return the wrong eigenvalues if eigenvectors are
requested and the resulting number of converged eigenvalues is less than
the number requested."
2012-02-21 18:03:43 +01:00
Sylvestre Ledru b3d2f34a82 Revert " * Reorder bug fixed when eigenvectors are requested and the resulting"
This reverts commit f4e816d4d2.
2012-02-21 18:03:16 +01:00
Sylvestre Ledru bf945c1837 Prepare a working make dist 2012-02-21 18:00:12 +01:00
Sylvestre Ledru 933c31a183 Update the version of arpack-ng in the configure 2012-02-21 17:28:51 +01:00
Sylvestre Ledru e315ec7419 Update of the various changes 2012-02-21 17:23:15 +01:00
Sylvestre Ledru 9a1658d77d * TESTS/ directory added and built. 2012-02-21 17:23:02 +01:00
Tim Mitchell f4e816d4d2 * Reorder bug fixed when eigenvectors are requested and the resulting
number of converged eigenvalues is less than the number requested.
     Patches from Tim Mitchell. (Closes: #664)
2012-02-21 17:21:03 +01:00
Tim Mitchell db18628436 Cosmetic changes 2012-02-21 17:20:32 +01:00
Sylvestre Ledru 9b99af7e6b * Update of the doc about TOL in dnaupd. 2012-01-19 00:22:11 +01:00
Sylvestre Ledru 8a69318bb7 Update of the changelog 2012-01-19 00:10:51 +01:00
Pauli Virtanen a8b99df06d * ARPACK routines (at least dnaupd) modifieD its argument TOL, which
is listed in the documentation as input-only. Thanks to Pauli Virtanen
     for the patch (Closes: #632)
2012-01-19 00:10:38 +01:00
Sylvestre Ledru cd7c6b4379 * Many bug fixes in the parpack lib. It is an old patch from upstream.
Thanks to Viral Shah for pinging us on this subject.
     See the PARPACK_CHANGES file for the details.
2012-01-14 14:58:11 +01:00
Sylvestre Ledru beaad2654c * Provide a M4 macro (detect_arpack_bug.m4) to check if the underlying
arpack is buggy (ie not arpack-ng). This allows developper applications
     to perform the check in their autotools build system (configure).
2012-01-13 11:16:22 +01:00
Sylvestre Ledru 4ade42ebd7 * Change the bug report from arpack@caam.rice.edu to
http://forge.scilab.org/index.php/p/arpack-ng/issues/
2012-01-10 05:59:23 +01:00
Sylvestre Ledru 78b7d449b4 * Always search for MPILIBS (in order to have the variable correctly set)
* Explicitly link against MPI fortran libs for parpack
2011-12-29 12:25:28 +01:00
Sylvestre Ledru 7c791977a1 Update of the changelog 2011-12-28 14:36:02 +01:00
Sylvestre Ledru 2d3cdaf9e5 arpack 96 => arpack-ng 3 2011-12-28 14:35:54 +01:00
Sylvestre Ledru a8e958e2d8 Install arpack.pc 2011-12-28 14:35:22 +01:00
Sylvestre Ledru fea0aabce0 pkg-config file added 2011-12-28 14:26:29 +01:00
Sylvestre Ledru 4c8e2ecc9e Readme updated regarding recent changes 2011-12-28 14:26:18 +01:00
Sylvestre Ledru eeae72a071 * Fix a long line in pznaup2.f which was showing some wrong symbols
(Closes: #620)
2011-12-28 13:47:11 +01:00
Sylvestre Ledru 2bcad73e6c Remove a useless file 2011-12-13 16:59:39 +01:00
Sylvestre Ledru 9f77178d43 * Missing license information (Closes: #614) 2011-12-13 16:44:10 +01:00
Sylvestre Ledru 30b8cc4cd4 * libtool was missing (Closes: #615) 2011-12-13 16:36:39 +01:00
185 changed files with 8053 additions and 50191 deletions
+44 -8
View File
@@ -1,14 +1,50 @@
*.o
*.lo
Makefile
*.la
.libs/
SRC/.libs/
UTIL/.libs/
.hgignore
# Generated by `autoreconf`
Makefile.in
aclocal.m4
autom4te.cache/
m4/libtool.m4
m4/lt*.m4
configure
config.guess
config.sub
depcomp
install-sh
ltmain.sh
missing
# Generated by `./configure`
Makefile
config.log
config.status
libtool
.deps/
arpack.pc
# Generated by `make`
*.o
*.lo
*.la
.libs/
# Generated by `make check`
TESTS/dnsimp
TESTS/bug_1315_double
TESTS/bug_1315_single
TESTS/bug_1323
EXAMPLES/BAND/[sd][sn]bdr[123456]
EXAMPLES/BAND/[cz]nbdr[1234]
EXAMPLES/COMPLEX/[cz]ndrv[1234]
EXAMPLES/NONSYM/[sd]ndrv[123456]
EXAMPLES/SIMPLE/[sd]ssimp
EXAMPLES/SIMPLE/[sdcz]nsimp
EXAMPLES/SVD/[sd]svd
EXAMPLES/SYM/[sd]sdrv[123456]
PARPACK/EXAMPLES/MPI/p[sd]ndrv[13]
PARPACK/EXAMPLES/MPI/p[sd]sdrv1
PARPACK/EXAMPLES/MPI/p[cz]ndrv1
*.lib
*.def
*.dll
@@ -17,4 +53,4 @@ libtool
*.u2d
*.suo
VISUAL_STUDIO/Release MKL/
VISUAL_STUDIO/bin/
VISUAL_STUDIO/bin/
+34
View File
@@ -0,0 +1,34 @@
syntax: glob
.gitignore
Makefile
*.o
*.lo
*.la
.libs/
SRC/.libs/
UTIL/.libs/
arpack.pc
autom4te.cache/
config.log
config.status
libtool
*.lib
*.def
*.dll
*.bak
*.exp
*.u2d
*.suo
VISUAL_STUDIO/Release MKL/
VISUAL_STUDIO/bin/
TESTS/dnsimp
PARPACK/EXAMPLES/MPI/pcndrv1
PARPACK/EXAMPLES/MPI/pdndrv1
PARPACK/EXAMPLES/MPI/pdndrv3
PARPACK/EXAMPLES/MPI/pdsdrv1
PARPACK/EXAMPLES/MPI/psndrv3
PARPACK/EXAMPLES/MPI/pssdrv1
PARPACK/EXAMPLES/MPI/pzndrv1
+34
View File
@@ -0,0 +1,34 @@
sudo: false
language: c
compiler:
- gcc
addons:
apt:
packages:
- gfortran
- libblas-dev
- liblapack-dev
- libopenmpi-dev
- openmpi-bin
env:
- BUILD=cmake
- BUILD=configure
before_script:
- if [ "$BUILD" == "cmake" ]; then mkdir build ; fi
- if [ "$BUILD" == "cmake" ]; then cd build ; fi
- if [ "$BUILD" == "cmake" ]; then cmake -D EXAMPLES=ON -D MPI=ON .. ; fi
script:
# CMAKE
- if [ "$BUILD" == "cmake" ]; then make all check ; fi
# CONFIGURE
- if [ "$BUILD" == "configure" ]; then ./bootstrap ; fi
- if [ "$BUILD" == "configure" ]; then ./configure --enable-mpi ; fi
- if [ "$BUILD" == "configure" ]; then make all ; fi
- if [ "$BUILD" == "configure" ]; then make check ; fi
- if [ "$BUILD" == "configure" ]; then make distcheck ; fi
+159 -2
View File
@@ -1,3 +1,160 @@
arpack-ng - 3.4.0
[ Milan Bouchet-Valat]
* Allow adding suffixes to symbols and library names to build ILP64 version
based on ILP64 BLAS/LAPACK with suffixes. This avoids conflicts when loading
libraries with different integer sizes in the same program.
[ Martin Reuter ]
* Add the support of cmake build system
-- Sylvestre Ledru <sylvestre@debian.org> Sat, 02 Jul 2016 21:51:52 +0200
arpack-ng - 3.3.0
[ Denis Davydov ]
* Rename pdlamch to pdlamch10 to avoid symbol collision with Scalapack 2.0.2 in MPI context.
[ Kyle Guinn ]
* General improvements on the build system
* libparpack links against libarpack (instead of doing a static link)
[Guillaume Horel]
* reverts using {d,s}lahqr from lapack 2
* use dlahqr from lapack 3 instead of dlaqrb (credit to Marco Caliari)
-- Sylvestre Ledru <sylvestre@debian.org> Mon, 12 October 2015 08:40:51 +0200
arpack-ng - 3.2.0
* Switch to github - https://github.com/opencollab/arpack-ng/
* Fix dsneupd select/calculate wrong eigenpairs if rvec = true
by using dlahqr and slahqr from lapack2 (Closes: #3)
-- Sylvestre Ledru <sylvestre@debian.org> Sat, 14 Nov 2014 16:25:36 +0200
arpack-ng - 3.1.5
* Build all examples and run them as tests
* Fix the version of arpack-ng itself
* Switch to automake 1.14.1
[ Ruediger Meier ]
* Do not install test binaries (Closes: #1348)
[ Nikita Styopin ]
* Fix the diagonal matrix example (dndrv5) (Closes: #1397)
-- Sylvestre Ledru <sylvestre@debian.org> Sat, 15 Feb 2014 14:24:42 +0200
arpack-ng - 3.1.4
* libparpack2: missing dependency on MPI:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718790
* Replace LAPACK second function with ARPACK's own arscnd in PARPACK
* Fix issue #1259 in DSEUPD and SSEUPD
The Ritz vector purification step assumes workl(iq) still contains the
original Q matrix. This is however overwritten by the call to xGEQR2
earlier.
.
This patch fixes the issue by making a copy of the last row of the
eigenvector matrix, after it is recomputed after QR by xORM2R. The work
space WORKL(IW+NCV:IW+2*NCV) is not used later in the routine, and can
be used for this.
* Use configure supplied blas and lapack in the pkg-config.
Thanks to Ward Poelmans (Closes: #1320)
* Switch to automake 1.14 + libtool 2.4.2.
Thanks to Ward Poelmans (Closes: #1321)
* dseupd routine may lead to a segmentation fault
Thanks to Edouard Canot (Closes: #1323)
* dsaupd and 'BE' option returns wrong eigenvalues for a SPD matrix
Thanks to Edouard Canot (Closes: #1329)
-- Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com> Mon, 07 Oct 2013 14:24:42 +0200
arpack-ng - 3.1.3
[ Jordi Gutiérrez Hermoso ]
* Replace depcomp symlink with actual file.
* Update libtool usage. Thanks to John W. Eaton <jwe@octave.org>.
* Replace arpack.pc with proper autotooled arpack.pc.in
* Add debug.h to TESTS/Makefile.am sources
* "make dist" is functionnal
* Also build the library "libparpacksrcblacs" (PARPACK/UTIL/BLACS/)
-- Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com> Tue, 02 Apr 2013 10:53:08 +0200
arpack-ng - 3.1.2
* Wrong call to pdlamch was causing segfaults
Thanks to Kyrre Sjøbæk for finding the bug and the fix.
* Get rid of the mpif.h occurences in the source code (Closes: #782)
* Compile also PARPACK / MPI example (Closes: #783)
* Configure detected built-in LAPACK and BLAS, but refused to use them
(Closes: #784)
* Fixed division by zero in smlnum by usind p[d,s]lamch instead of the
serial. Thanks to Umberto De Giovannini.
-- Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com> Fri, 22 Jun 2012 22:05:41 +0200
arpack-ng - 3.1.1
* Option --enable-maintainer-mode added to the configure
* --disable-mpi disables the build of parpack (Closes: #714)
* Switch to automake 1.11.3
-- Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com> Mon, 21 May 2012 09:08:41 +0200
arpack-ng - 3.1.0
* Many bug fixes in the parpack lib. It is an old patch from upstream.
Thanks to Viral Shah for pinging us on this subject.
See the PARPACK_CHANGES file for the details.
* Change the bug report from arpack@caam.rice.edu to
http://forge.scilab.org/index.php/p/arpack-ng/issues/
* Provide a M4 macro (detect_arpack_bug.m4) to check if the underlying
arpack is buggy (ie not arpack-ng). This allows developper applications
to perform the check in their autotools build system (configure).
* Fixed a lack of appropriate bounds check in DNAUP2. Thanks to Pauli Virtanen
for the patch (Closes: #632)
* Update of the doc about TOL in dnaupd.
* Reorder bug fixed when eigenvectors are requested and the resulting
number of converged eigenvalues is less than the number requested.
Patches from Tim Mitchell. (Closes: #664)
* TESTS/ directory added and built.
-- Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com> Wed, 22 Feb 2012 10:58:39 +0100
arpack-ng - 3.0.2
* Fix a long line in pznaup2.f which was showing some wrong symbols
(Closes: #620)
* README content updated regarding ARPACK-NG
* arpack.pc (pkg-config) file added
* Update the title & version in the configure.ac
* Always search for MPILIBS (in order to have the variable correctly set)
* Explicitly link against MPI fortran libs for parpack
-- Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com> Wed, 28 Dec 2011 13:45:53 +0100
arpack-ng - 3.0.1
* libtool was missing (Closes: #615)
* Missing license information (Closes: #614)
* TODO added
-- Sylvestre Ledru <sylvestre.ledru@scilab-enterprises.com> Tue, 13 Dec 2011 16:33:25 +0100
arpack-ng - 3.0
* Patches from Scilab
@@ -5,8 +162,8 @@ arpack-ng - 3.0
second_NONE works with all fortrans compilers (used by default with Scilab)
sneupd.f, cneupd.f: modified for scilab add a check on nconv value (Scilab bug fix)
dnaupd.f: modified NEV Integer: INPUT/OUTPUT before only INPUT (Scilab bug fix)
dnaupd.f: modified NEV Integer: INPUT/OUTPUT before only INPUT (Scilab bug fix)
* Patches from Octave: (Thanks to John W. EATON)
dneupd.f: Restore value of nconv
dseupd.f: Restore value of nconv
+391
View File
@@ -0,0 +1,391 @@
cmake_minimum_required(VERSION 2.8.6)
project(arpack)
# Adopted from https://github.com/feymark/arpack.git
enable_language(Fortran)
option(MPI "Enable parallel support" OFF)
#option(SYSTEM_BLAS "Use system BLAS" ON)
#option(SYSTEM_LAPACK "Use system LAPACK" ON)
option(EXAMPLES "Compile ARPACK examples" OFF)
set(LIBSUFFIX ""
CACHE STRING "suffix to add to ARPACK libraries names")
set(SYMBOLSUFFIX ""
CACHE STRING "suffix to add to ARPACK, BLAS and LAPACK function names")
option(INTERFACE64 "use the 64-bit integer interface (ILP64) for ARPACK, BLAS and LAPACK")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
function(prefixlist list_name prefix)
set(${list_name}_TMP)
foreach(l ${${list_name}})
list(APPEND ${list_name}_TMP ${prefix}${l} )
endforeach()
set(${list_name} "${${list_name}_TMP}" PARENT_SCOPE)
endfunction(prefixlist)
function(examples list_name)
foreach(l ${${list_name}})
get_filename_component(lwe ${l} NAME_WE)
add_executable(${lwe} ${arpackexample_DIR}/${l} ${examples_EXTRA_SRCS})
target_link_libraries(${lwe} arpack ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
endforeach()
endfunction(examples)
function(pexamples list_name)
foreach(l ${${list_name}})
get_filename_component(lwe ${l} NAME_WE)
add_executable(${lwe} ${parpackexample_DIR}/${l} )
target_link_libraries(${lwe} parpack arpack ${MPI_Fortran_LIBRARIES})
endforeach()
endfunction(pexamples)
#if (SYSTEM_BLAS)
find_package(BLAS REQUIRED)
#endif()
#if (BLAS_LIBRARIES)
# set(SYSTEM_BLAS ON)
#endif()
if (MPI)
include(FindMPI)
find_package(MPI REQUIRED)
include_directories(${MPI_Fortran_INCLUDE_PATH})
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${MPI_Fortran_COMPILE_FLAG}")
endif()
#if (SYSTEM_LAPACK)
find_package(LAPACK REQUIRED)
#endif()
#if (BLAS_LIBRARIES)
# set(SYSTEM_LAPACK ON)
#endif()
if (MPI)
set(parpackutil_DIR ${arpack_SOURCE_DIR}/PARPACK/UTIL/)
set(parpacksrc_DIR ${arpack_SOURCE_DIR}/PARPACK/SRC/)
endif()
#if (NOT SYSTEM_BLAS)
# file(GLOB arpackblas_STAT_SRCS blas/*.f)
#endif()
#if (NOT SYSTEM_LAPACK)
# file(GLOB arpacklapack_STAT_SRCS lapack/*.f)
#endif()
#file(GLOB arpackutil_STAT_SRCS util/*.f)
file(GLOB arpacksrc_STAT_SRCS SRC/*.f)
set(arpackutil_STAT_SRCS
UTIL/icnteq.f
UTIL/icopy.f
UTIL/iset.f
UTIL/iswap.f
UTIL/ivout.f
UTIL/second_NONE.f
UTIL/svout.f
UTIL/smout.f
UTIL/dvout.f
UTIL/dmout.f
UTIL/cvout.f
UTIL/cmout.f
UTIL/zvout.f
UTIL/zmout.f )
if (MPI)
file(GLOB parpackutil_STAT_SRCS PARPACK/UTIL/MPI/*.f)
file(GLOB parpacksrc_STAT_SRCS PARPACK/SRC/MPI/*.f)
endif()
#add_library(arpack SHARED
# ${arpackblas_STAT_SRCS}
# ${arpacklapack_STAT_SRCS}
# ${arpackutil_STAT_SRCS}
# ${arpacksrc_STAT_SRCS})
add_library(arpack
${arpackutil_STAT_SRCS}
${arpacksrc_STAT_SRCS})
target_link_libraries(arpack ${BLAS_LIBRARIES})
target_link_libraries(arpack ${LAPACK_LIBRARIES})
set_target_properties(arpack PROPERTIES OUTPUT_NAME arpack${LIBSUFFIX})
if (MPI)
# add_library(parpack SHARED
add_library(parpack
${parpacksrc_STAT_SRCS}
${parpackutil_STAT_SRCS})
target_link_libraries(parpack ${MPI_Fortran_LIBRARIES})
set_target_properties(parpack PROPERTIES OUTPUT_NAME parpack${LIBSUFFIX})
endif ()
if (INTERFACE64)
if ("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-integer-8")
elseif ("${CMAKE_Fortran_COMPILER_ID}" MATCHES "Intel")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -i8")
else ()
message(WARNING "build script does not know how to make your Fortran compiler use 64-bit integers: set it manually via FFLAGS.")
endif ()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBLASINT=int64_t")
endif ()
if (SYMBOLSUFFIX)
if ("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -cpp -ffixed-line-length-none")
elseif ("${CMAKE_Fortran_COMPILER_ID}" MATCHES "Intel")
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fpp -extend-source")
else ()
message(WARNING "build script does not know how to enable your Fortran compiler's preprocessor and support for lines longer than 72 characters: set them manually via FFLAGS.")
endif ()
set(SCALARFUNS naitr napps naup2 naupd nconv neigh neupd ngets statn saitr sapps saup2 saupd sconv seigt seupd sgets stats getv0 sortc sortr sesrt stqrb)
set(COMPLEXFUNS, naitr napps naup2 naupd neigh neupd ngets statn getv0 sortc)
set(BLASFUNS1 axpy copy gemv geqr2 lacpy lae2 lahqr lanhs larnv lartg lascl laset lasrt scal trevc trmm trsen gbmv gbtrf gbtrs gttrf gttrs pttrf pttrs)
set(BLASFUNS2 dot ger labad laev2 lamch lanst lanv2 lapy2 larf larfg lasr nrm2 orm2r rot steqr swap)
set(BLASFUNS3 dotc geru unm2r)
set(BLASFUNS4 COPY LABAD LAMCH LANHS LANV2 LARFG ROT GEMV)
set(BLASFUNS5 scnrm2 dznrm2 csscal zdscal)
foreach (f IN LISTS SCALARFUNS BLASFUNS1 BLASFUNS2)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Ds${f}=s${f}${SYMBOLSUFFIX} -Dd${f}=d${f}${SYMBOLSUFFIX}")
endforeach ()
foreach (f IN LISTS COMPLEXFUNS BLASFUNS1 BLASFUNS3)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Dc${f}=c${f}${SYMBOLSUFFIX} -Dz${f}=z${f}${SYMBOLSUFFIX}")
endforeach ()
foreach (f IN LISTS BLASFUNS4)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DS${f}=S${f}${SYMBOLSUFFIX} -DD${f}=D${f}${SYMBOLSUFFIX}")
endforeach ()
foreach (f IN LISTS BLASFUNS5)
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -D${f}=${f}${SYMBOLSUFFIX}")
endforeach ()
endif ()
set(CFUNS sgemm snaupd sneupd dnaupd dneupd cheev)
foreach (f IN LISTS CFUNS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D${f}=${f}${SYMBOLSUFFIX}")
list(APPEND CFUNS_SUFFIXED ${f}${SYMBOLSUFFIX})
endforeach ()
include(FortranCInterface)
FortranCInterface_HEADER(FCMangle.h SYMBOLS ${CFUNS_SUFFIXED})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DINCLUDE_FCMANGLE")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
############################
# EXAMPLES
############################
if (EXAMPLES)
############################
# EXAMPLES/BAND
############################
set(arpackexample_DIR ${arpack_SOURCE_DIR}/EXAMPLES/BAND/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Examples/band/)
set(examples_EXTRA_SRCS ${arpackexample_DIR}/cnband.f)
set(examples_STAT_SRCS
cnbdr1.f
cnbdr2.f
cnbdr3.f
cnbdr4.f)
examples(examples_STAT_SRCS)
set(examples_EXTRA_SRCS ${arpackexample_DIR}/dnband.f)
set(examples_STAT_SRCS
dnbdr1.f
dnbdr2.f
dnbdr3.f
dnbdr4.f
dnbdr5.f
dnbdr6.f)
examples(examples_STAT_SRCS)
set(examples_EXTRA_SRCS ${arpackexample_DIR}/dsband.f)
set(examples_STAT_SRCS
dsbdr1.f
dsbdr2.f
dsbdr3.f
dsbdr4.f
dsbdr5.f
dsbdr6.f)
examples(examples_STAT_SRCS)
set(examples_EXTRA_SRCS ${arpackexample_DIR}/snband.f)
set(examples_STAT_SRCS
snbdr1.f
snbdr2.f
snbdr3.f
snbdr4.f
snbdr5.f
snbdr6.f)
examples(examples_STAT_SRCS)
set(examples_EXTRA_SRCS ${arpackexample_DIR}/ssband.f)
set(examples_STAT_SRCS
ssbdr1.f
ssbdr2.f
ssbdr3.f
ssbdr4.f
ssbdr5.f
ssbdr6.f)
examples(examples_STAT_SRCS)
set(examples_EXTRA_SRCS ${arpackexample_DIR}/znband.f)
set(examples_STAT_SRCS
znbdr1.f
znbdr2.f
znbdr3.f
znbdr4.f)
examples(examples_STAT_SRCS)
set(examples_EXTRA_SRCS)
############################
# EXAMPLES/COMPLEX
############################
set(arpackexample_DIR ${arpack_SOURCE_DIR}/EXAMPLES/COMPLEX/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Examples/complex/)
set(examples_STAT_SRCS
cndrv1.f
cndrv2.f
cndrv3.f
cndrv4.f
zndrv1.f
zndrv2.f
zndrv3.f
zndrv4.f)
examples(examples_STAT_SRCS)
############################
# examples/nonsym
############################
set(arpackexample_DIR ${arpack_SOURCE_DIR}/EXAMPLES/NONSYM/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Examples/nonsym/)
set(examples_STAT_SRCS
dndrv1.f
dndrv2.f
dndrv3.f
dndrv4.f
dndrv5.f
dndrv6.f
sndrv1.f
sndrv2.f
sndrv3.f
sndrv4.f
sndrv5.f
sndrv6.f)
examples(examples_STAT_SRCS)
############################
# examples/SIMPLE
############################
set(arpackexample_DIR ${arpack_SOURCE_DIR}/EXAMPLES/SIMPLE/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Examples/simple/)
set(examples_STAT_SRCS
cnsimp.f
dnsimp.f
dssimp.f
snsimp.f
sssimp.f
znsimp.f)
examples(examples_STAT_SRCS)
############################
# examples/svd
############################
set(arpackexample_DIR ${arpack_SOURCE_DIR}/EXAMPLES/SVD/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Examples/svd/)
set(examples_STAT_SRCS
ssvd.f)
examples(examples_STAT_SRCS)
############################
# examples/sym
############################
set(arpackexample_DIR ${arpack_SOURCE_DIR}/EXAMPLES/SYM/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Examples/sym/)
set(examples_STAT_SRCS
dsdrv1.f
dsdrv2.f
dsdrv3.f
dsdrv4.f
dsdrv5.f
dsdrv6.f
ssdrv1.f
ssdrv2.f
ssdrv3.f
ssdrv4.f
ssdrv5.f
ssdrv6.f)
examples(examples_STAT_SRCS)
############################
# parpack/examples
############################
if (MPI)
set(parpackexample_DIR ${arpack_SOURCE_DIR}/PARPACK/EXAMPLES/MPI/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Examples/parpack)
set(pexamples_STAT_SRCS
pcndrv1.f
pdndrv1.f
pdndrv3.f
pdsdrv1.f
psndrv1.f
psndrv3.f
pssdrv1.f
pzndrv1.f)
pexamples(pexamples_STAT_SRCS)
endif()
endif()
############################
# CHECK
############################
enable_testing()
set(CMAKE_CTEST_COMMAND ctest -V)
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Tests)
add_executable(dnsimp_test EXCLUDE_FROM_ALL TESTS/dnsimp.f TESTS/mmio.f TESTS/debug.h)
set_target_properties( dnsimp_test PROPERTIES OUTPUT_NAME dnsimp )
target_link_libraries(dnsimp_test arpack ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
add_custom_command(TARGET dnsimp_test POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/TESTS/testA.mtx testA.mtx
)
add_test(dnsimp_test Tests/dnsimp)
add_executable(bug_1315_single EXCLUDE_FROM_ALL TESTS/bug_1315_single.c)
target_link_libraries(bug_1315_single arpack ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
add_test(bug_1315_single Tests/bug_1315_single)
add_executable(bug_1315_double EXCLUDE_FROM_ALL TESTS/bug_1315_double.c)
target_link_libraries(bug_1315_double arpack ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
add_test(bug_1315_double Tests/bug_1315_double)
add_executable(bug_1323 EXCLUDE_FROM_ALL TESTS/bug_1323.f)
target_link_libraries(bug_1323 arpack ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES})
add_test(bug_1323 Tests/bug_1323)
add_dependencies(check dnsimp_test bug_1315_single bug_1315_double bug_1323)
+45
View File
@@ -0,0 +1,45 @@
BSD Software License
Pertains to ARPACK and P_ARPACK
Copyright (c) 1996-2008 Rice University.
Developed by D.C. Sorensen, R.B. Lehoucq, C. Yang, and K. Maschhoff.
All rights reserved.
Arpack has been renamed to arpack-ng.
Copyright (c) 2001-2011 - Scilab Enterprises
Updated by Allan Cornet, Sylvestre Ledru.
Copyright (c) 2010 - Jordi Gutiérrez Hermoso (Octave patch)
Copyright (c) 2007 - Sébastien Fabbro (gentoo patch)
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer listed
in this license in the documentation and/or other materials
provided with the distribution.
- Neither the name of the copyright holders nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+58
View File
@@ -0,0 +1,58 @@
LDADD = $(top_builddir)/SRC/libarpack$(LIBSUFFIX).la $(LAPACK_LIBS) $(BLAS_LIBS)
SSBDR = ssbdr1 ssbdr2 ssbdr3 ssbdr4 ssbdr5 ssbdr6
DSBDR = dsbdr1 dsbdr2 dsbdr3 dsbdr4 dsbdr5 dsbdr6
SNBDR = snbdr1 snbdr2 snbdr3 snbdr4 snbdr5 snbdr6
DNBDR = dnbdr1 dnbdr2 dnbdr3 dnbdr4 dnbdr5 dnbdr6
CNBDR = cnbdr1 cnbdr2 cnbdr3 cnbdr4
ZNBDR = znbdr1 znbdr2 znbdr3 znbdr4
BAND = $(SSBDR) $(DSBDR) $(SNBDR) $(DNBDR) $(CNBDR) $(ZNBDR)
check_PROGRAMS = $(BAND)
TESTS = $(check_PROGRAMS)
EXTRA_DIST = README
# Simple symetric problem using BAND solver (single precision)
ssbdr1_SOURCES = ssbdr1.f ssband.f
ssbdr2_SOURCES = ssbdr2.f ssband.f
ssbdr3_SOURCES = ssbdr3.f ssband.f
ssbdr4_SOURCES = ssbdr4.f ssband.f
ssbdr5_SOURCES = ssbdr5.f ssband.f
ssbdr6_SOURCES = ssbdr6.f ssband.f
# Simple symmetric problem using BAND solver (double precision)
dsbdr1_SOURCES = dsbdr1.f dsband.f
dsbdr2_SOURCES = dsbdr2.f dsband.f
dsbdr3_SOURCES = dsbdr3.f dsband.f
dsbdr4_SOURCES = dsbdr4.f dsband.f
dsbdr5_SOURCES = dsbdr5.f dsband.f
dsbdr6_SOURCES = dsbdr6.f dsband.f
# Simple nonsymmetric problem using BAND solver (single precision)
snbdr1_SOURCES = snbdr1.f snband.f
snbdr2_SOURCES = snbdr2.f snband.f
snbdr3_SOURCES = snbdr3.f snband.f
snbdr4_SOURCES = snbdr4.f snband.f
snbdr5_SOURCES = snbdr5.f snband.f
snbdr6_SOURCES = snbdr6.f snband.f
# Simple nonsymmetric problem using BAND solver (double precision)
dnbdr1_SOURCES = dnbdr1.f dnband.f
dnbdr2_SOURCES = dnbdr2.f dnband.f
dnbdr3_SOURCES = dnbdr3.f dnband.f
dnbdr4_SOURCES = dnbdr4.f dnband.f
dnbdr5_SOURCES = dnbdr5.f dnband.f
dnbdr6_SOURCES = dnbdr6.f dnband.f
# Complex problem using BAND solver (single precision complex)
cnbdr1_SOURCES = cnbdr1.f cnband.f
cnbdr2_SOURCES = cnbdr2.f cnband.f
cnbdr3_SOURCES = cnbdr3.f cnband.f
cnbdr4_SOURCES = cnbdr4.f cnband.f
# Complex problem using BAND solver (double precision complex)
znbdr1_SOURCES = znbdr1.f znband.f
znbdr2_SOURCES = znbdr2.f znband.f
znbdr3_SOURCES = znbdr3.f znband.f
znbdr4_SOURCES = znbdr4.f znband.f
-158
View File
@@ -1,158 +0,0 @@
#
# makefile to run simple examples of the reverse communication
# protocol.
#
# Modify if ARPACK library was built somewhere else.
#
# If ALIBS (defined in ../../ARmake.inc) contains the BLAS and LAPACK
# libraries installed on your system, you DO NOT need to change this
# makefile. OTHERWISE, you may need to modify the Makefile in the top level
# ARPACK directory tree to include sdrv, ddrv, cdrv, or zdrv in the
# definition of the PRECISION variable, and issue 'make lib' there.
# For example:
#
# PRECISION = single double sdrv ddrv
#
#\SCCS Information: @(#)
# FILE: makefile SID: 2.2 DATE OF SID: 9/24/96 RELEASE: 2
#
include ../../ARmake.inc
# Issue "make band" to make all 32 band drivers.
# Issue "make ssbdr" to make 6 single precision symmetric band drivers.
# Issue "make dsbdr" to make 6 double precision symmetric band drivers.
# Issue "make snbdr" to make 6 single precision nonsymmetric band drivers.
# Issue "make dnbdr" to make 6 double precision nonsymmetric band drivers.
# Issue "make cnbdr" to make 4 single precision complex band drivers.
# Issue "make znbdr" to make 4 double precision complex band drivers.
#
band: ssbdr dsbdr snbdr dnbdr cnbdr znbdr
#
#---------------------------------------------------------------------
# Simple symetric problem using BAND solver (single precision)
#
ssbdr: ssbdr1 ssbdr2 ssbdr3 ssbdr4 ssbdr5 ssbdr6
ssbdr1: ssbdr1.o ssband.o
$(FC) $(FFLAGS) ssbdr1.o ssband.o $(ALIBS) -o ssbdr1
#
ssbdr2: ssbdr2.o ssband.o
$(FC) $(FFLAGS) ssbdr2.o ssband.o $(ALIBS) -o ssbdr2
#
ssbdr3: ssbdr3.o ssband.o
$(FC) $(FFLAGS) ssbdr3.o ssband.o $(ALIBS) -o ssbdr3
#
ssbdr4: ssbdr4.o ssband.o
$(FC) $(FFLAGS) ssbdr4.o ssband.o $(ALIBS) -o ssbdr4
#
ssbdr5: ssbdr5.o ssband.o
$(FC) $(FFLAGS) ssbdr5.o ssband.o $(ALIBS) -o ssbdr5
#
ssbdr6: ssbdr6.o ssband.o
$(FC) $(FFLAGS) ssbdr6.o ssband.o $(ALIBS) -o ssbdr6
#
#-------------------------------------------------------------
#
# Simple symmetric problem using BAND solver (double precision)
#
dsbdr: dsbdr1 dsbdr2 dsbdr3 dsbdr4 dsbdr5 dsbdr6
dsbdr1: dsbdr1.o dsband.o
$(FC) $(FFLAGS) dsbdr1.o dsband.o $(ALIBS) -o dsbdr1
#
dsbdr2: dsbdr2.o dsband.o
$(FC) $(FFLAGS) dsbdr2.o dsband.o $(ALIBS) -o dsbdr2
#
dsbdr3: dsbdr3.o dsband.o
$(FC) $(FFLAGS) dsbdr3.o dsband.o $(ALIBS) -o dsbdr3
#
dsbdr4: dsbdr4.o dsband.o
$(FC) $(FFLAGS) dsbdr4.o dsband.o $(ALIBS) -o dsbdr4
#
dsbdr5: dsbdr5.o dsband.o
$(FC) $(FFLAGS) dsbdr5.o dsband.o $(ALIBS) -o dsbdr5
#
dsbdr6: dsbdr6.o dsband.o
$(FC) $(FFLAGS) dsbdr6.o dsband.o $(ALIBS) -o dsbdr6
#
#----------------------------------------------------------------------
# Simple nonsymmetric problem using BAND solver (single precision)
#
snbdr: snbdr1 snbdr2 snbdr3 snbdr4 snbdr5 snbdr6
snbdr1: snbdr1.o snband.o
$(FC) $(FFLAGS) snbdr1.o snband.o $(ALIBS) -o snbdr1
#
snbdr2: snbdr2.o snband.o
$(FC) $(FFLAGS) snbdr2.o snband.o $(ALIBS) -o snbdr2
#
snbdr3: snbdr3.o snband.o
$(FC) $(FFLAGS) snbdr3.o snband.o $(ALIBS) -o snbdr3
#
snbdr4: snbdr4.o snband.o
$(FC) $(FFLAGS) snbdr4.o snband.o $(ALIBS) -o snbdr4
#
snbdr5: snbdr5.o snband.o
$(FC) $(FFLAGS) snbdr5.o snband.o $(ALIBS) -o snbdr5
#
snbdr6: snbdr6.o snband.o
$(FC) $(FFLAGS) snbdr6.o snband.o $(ALIBS) -o snbdr6
#
#-------------------------------------------------------------------------
# Simple nonsymmetric problem using BAND solver (double precision)
#
dnbdr: dnbdr1 dnbdr2 dnbdr3 dnbdr4 dnbdr5 dnbdr6
dnbdr1: dnbdr1.o dnband.o
$(FC) $(FFLAGS) dnbdr1.o dnband.o $(ALIBS) -o dnbdr1
#
dnbdr2: dnbdr2.o dnband.o
$(FC) $(FFLAGS) dnbdr2.o dnband.o $(ALIBS) -o dnbdr2
#
dnbdr3: dnbdr3.o dnband.o
$(FC) $(FFLAGS) dnbdr3.o dnband.o $(ALIBS) -o dnbdr3
#
dnbdr4: dnbdr4.o dnband.o
$(FC) $(FFLAGS) dnbdr4.o dnband.o $(ALIBS) -o dnbdr4
#
dnbdr5: dnbdr5.o dnband.o
$(FC) $(FFLAGS) dnbdr5.o dnband.o $(ALIBS) -o dnbdr5
#
dnbdr6: dnbdr6.o dnband.o
$(FC) $(FFLAGS) dnbdr6.o dnband.o $(ALIBS) -o dnbdr6
#
#-------------------------------------------------------------------------
# Complex problem using BAND solver (single precision complex)
#
cnbdr: cnbdr1 cnbdr2 cnbdr3 cnbdr4
cnbdr1: cnbdr1.o cnband.o
$(FC) $(FFLAGS) cnbdr1.o cnband.o $(ALIBS) -o cnbdr1
#
cnbdr2: cnbdr2.o cnband.o
$(FC) $(FFLAGS) cnbdr2.o cnband.o $(ALIBS) -o cnbdr2
#
cnbdr3: cnbdr3.o cnband.o
$(FC) $(FFLAGS) cnbdr3.o cnband.o $(ALIBS) -o cnbdr3
#
cnbdr4: cnbdr4.o cnband.o
$(FC) $(FFLAGS) cnbdr4.o cnband.o $(ALIBS) -o cnbdr4
#
#-------------------------------------------------------------------------
# Complex problem using BAND solver (double precision complex)
#
znbdr: znbdr1 znbdr2 znbdr3 znbdr4
znbdr1: znbdr1.o znband.o
$(FC) $(FFLAGS) znbdr1.o znband.o $(ALIBS) -o znbdr1
#
znbdr2: znbdr2.o znband.o
$(FC) $(FFLAGS) znbdr2.o znband.o $(ALIBS) -o znbdr2
#
znbdr3: znbdr3.o znband.o
$(FC) $(FFLAGS) znbdr3.o znband.o $(ALIBS) -o znbdr3
#
znbdr4: znbdr4.o znband.o
$(FC) $(FFLAGS) znbdr4.o znband.o $(ALIBS) -o znbdr4
+22
View File
@@ -0,0 +1,22 @@
LDADD = $(top_builddir)/SRC/libarpack$(LIBSUFFIX).la $(LAPACK_LIBS) $(BLAS_LIBS)
CNDRV = cndrv1 cndrv2 cndrv3 cndrv4
ZNDRV = zndrv1 zndrv2 zndrv3 zndrv4
COMPLEX = $(CNDRV) $(ZNDRV)
check_PROGRAMS = $(COMPLEX)
TESTS = $(check_PROGRAMS)
EXTRA_DIST = README
# Complex problem using single complex
cndrv1_SOURCES = cndrv1.f
cndrv2_SOURCES = cndrv2.f
cndrv3_SOURCES = cndrv3.f
cndrv4_SOURCES = cndrv4.f
# Complex problem using double complex
zndrv1_SOURCES = zndrv1.f
zndrv2_SOURCES = zndrv2.f
zndrv3_SOURCES = zndrv3.f
zndrv4_SOURCES = zndrv4.f
-60
View File
@@ -1,60 +0,0 @@
#
# makefile to run simple examples of the reverse communication
# protocol.
#
# Modify if ALIBS library was built somewhere else.
#
# If ALIBS (defined in ../../ARmake.inc) contains the BLAS and LAPACK
# libraries installed on your system, you DO NOT need to change this
# makefile. OTHERWISE, you may need to modify the Makefile in the top level
# ARPACK directory tree to include cdrv and/or zdrv in the
# definition of the PRECISION variable, and issue 'make lib' from there.
# For example:
#
# PRECISION = single double sdrv ddrv
#
#\SCCS Information: @(#)
# FILE: makefile SID: 2.2 DATE OF SID: 9/24/96 RELEASE: 2
#
include ../../ARmake.inc
#
# Issue "complex" to make all 8 complex drivers.
# Issue "cndrv" to make 4 single precision complex drivers.
# Issue "zndrv" to make 4 double precision complex drivers.
#
complex: cndrv zndrv
#-----------------------------------------------------------------------
# Complex problem using single complex
#
cndrv: cndrv1 cndrv2 cndrv3 cndrv4
cndrv1: cndrv1.o
$(FC) $(FFLAGS) cndrv1.o $(ALIBS) -o cndrv1
#
cndrv2: cndrv2.o
$(FC) $(FFLAGS) cndrv2.o $(ALIBS) -o cndrv2
#
cndrv3: cndrv3.o
$(FC) $(FFLAGS) cndrv3.o $(ALIBS) -o cndrv3
#
cndrv4: cndrv4.o
$(FC) $(FFLAGS) cndrv4.o $(ALIBS) -o cndrv4
#
#----------------------------------------------------------------------
# Complex problem using double complex
#
zndrv: zndrv1 zndrv2 zndrv3 zndrv4
zndrv1: zndrv1.o
$(FC) $(FFLAGS) zndrv1.o $(ALIBS) -o zndrv1
#
zndrv2: zndrv2.o
$(FC) $(FFLAGS) zndrv2.o $(ALIBS) -o zndrv2
#
zndrv3: zndrv3.o
$(FC) $(FFLAGS) zndrv3.o $(ALIBS) -o zndrv3
#
zndrv4: zndrv4.o
$(FC) $(FFLAGS) zndrv4.o $(ALIBS) -o zndrv4
+2
View File
@@ -0,0 +1,2 @@
SUBDIRS = BAND COMPLEX NONSYM SIMPLE SVD SYM
EXTRA_DIST = README
+26
View File
@@ -0,0 +1,26 @@
LDADD = $(top_builddir)/SRC/libarpack$(LIBSUFFIX).la $(LAPACK_LIBS) $(BLAS_LIBS)
SNDRV = sndrv1 sndrv2 sndrv3 sndrv4 sndrv5 sndrv6
DNDRV = dndrv1 dndrv2 dndrv3 dndrv4 dndrv5 dndrv6
NONSYM = $(SNDRV) $(DNDRV)
check_PROGRAMS = $(NONSYM)
TESTS = $(check_PROGRAMS)
EXTRA_DIST = README
# Simple nonsymmetric problem using single precision
sndrv1_SOURCES = sndrv1.f
sndrv2_SOURCES = sndrv2.f
sndrv3_SOURCES = sndrv3.f
sndrv4_SOURCES = sndrv4.f
sndrv5_SOURCES = sndrv5.f
sndrv6_SOURCES = sndrv6.f
# Simple nonsymmetric problem using double precision
dndrv1_SOURCES = dndrv1.f
dndrv2_SOURCES = dndrv2.f
dndrv3_SOURCES = dndrv3.f
dndrv4_SOURCES = dndrv4.f
dndrv5_SOURCES = dndrv5.f
dndrv6_SOURCES = dndrv6.f
-71
View File
@@ -1,71 +0,0 @@
#
# makefile to run simple examples of the reverse communication
# protocol.
#
# Modify if ARPACK library was built somewhere else.
#
# If ALIBS (defined in ../../ARmake.inc) contains the BLAS and LAPACK
# libraries installed on your system, you DO NOT need to change this
# makefile. OTHERWISE, you may need to modify the Makefile in the top level
# ARPACK directory tree to include sdrv and/or ddrv in the
# definition of the PRECISION variable, and issue 'make lib' from there.
# For example:
#
# PRECISION = single double sdrv ddrv
#
#\SCCS Information: @(#)
# FILE: makefile SID: 2.2 DATE OF SID: 9/24/96 RELEASE: 2
#
include ../../ARmake.inc
#
# Issue "make nonsym" to make all 12 nonsymmetric drivers.
# Issue "make sndrv" to make 6 single precision nonsymmetric drivers.
# Issue "make dndrv" to make 6 double precision nonsymmetric drivers.
#
nonsym: sndrv dndrv
#
#-----------------------------------------------------------------------
# Simple nonsymmetric problem using single precision
#
sndrv: sndrv1 sndrv2 sndrv3 sndrv4 sndrv5 sndrv6
sndrv1: sndrv1.o
$(FC) $(FFLAGS) sndrv1.o $(ALIBS) -o sndrv1
#
sndrv2: sndrv2.o
$(FC) $(FFLAGS) sndrv2.o $(ALIBS) -o sndrv2
#
sndrv3: sndrv3.o
$(FC) $(FFLAGS) sndrv3.o $(ALIBS) -o sndrv3
#
sndrv4: sndrv4.o
$(FC) $(FFLAGS) sndrv4.o $(ALIBS) -o sndrv4
#
sndrv5: sndrv5.o
$(FC) $(FFLAGS) sndrv5.o $(ALIBS) -o sndrv5
#
sndrv6: sndrv6.o
$(FC) $(FFLAGS) sndrv6.o $(ALIBS) -o sndrv6
#
#------------------------------------------------------
# Simple nonsymmetric problem using double precision
#
dndrv: dndrv1 dndrv2 dndrv3 dndrv4 dndrv5 dndrv6
dndrv1: dndrv1.o
$(FC) $(FFLAGS) dndrv1.o $(ALIBS) -o dndrv1
#
dndrv2: dndrv2.o
$(FC) $(FFLAGS) dndrv2.o $(ALIBS) -o dndrv2
#
dndrv3: dndrv3.o
$(FC) $(FFLAGS) dndrv3.o $(ALIBS) -o dndrv3
#
dndrv4: dndrv4.o
$(FC) $(FFLAGS) dndrv4.o $(ALIBS) -o dndrv4
#
dndrv5: dndrv5.o
$(FC) $(FFLAGS) dndrv5.o $(ALIBS) -o dndrv5
#
dndrv6: dndrv6.o
$(FC) $(FFLAGS) dndrv6.o $(ALIBS) -o dndrv6
+15
View File
@@ -0,0 +1,15 @@
LDADD = $(top_builddir)/SRC/libarpack$(LIBSUFFIX).la $(LAPACK_LIBS) $(BLAS_LIBS)
SIMPLE = sssimp dssimp snsimp dnsimp cnsimp znsimp
check_PROGRAMS = $(SIMPLE)
TESTS = $(check_PROGRAMS)
EXTRA_DIST = README debug.h
sssimp_SOURCES = sssimp.f
dssimp_SOURCES = dssimp.f
snsimp_SOURCES = snsimp.f
dnsimp_SOURCES = dnsimp.f
cnsimp_SOURCES = cnsimp.f
znsimp_SOURCES = znsimp.f
-27
View File
@@ -1,27 +0,0 @@
#
# makefile to run simple examples of the reverse communication
# protocol.
#
# Modify if ARPACK library was built somewhere else.
#
#\SCCS Information: @(#)
# FILE: makefile SID: 2.2 DATE OF SID: 9/24/96 RELEASE: 2
#
include ../../ARmake.inc
#
# simple drivers
#
simple: sssimp dssimp snsimp dnsimp cnsimp znsimp
#
sssimp: sssimp.o
$(FC) $(FFLAGS) sssimp.o $(ALIBS) -o sssimp
dssimp: dssimp.o
$(FC) $(FFLAGS) dssimp.o $(ALIBS) -o dssimp
snsimp: snsimp.o
$(FC) $(FFLAGS) snsimp.o $(ALIBS) -o snsimp
dnsimp: dnsimp.o
$(FC) $(FFLAGS) dnsimp.o $(ALIBS) -o dnsimp
cnsimp: cnsimp.o
$(FC) $(FFLAGS) cnsimp.o $(ALIBS) -o cnsimp
znsimp: znsimp.o
$(FC) $(FFLAGS) znsimp.o $(ALIBS) -o znsimp
+11
View File
@@ -0,0 +1,11 @@
LDADD = $(top_builddir)/SRC/libarpack$(LIBSUFFIX).la $(LAPACK_LIBS) $(BLAS_LIBS)
SVD = ssvd dsvd
check_PROGRAMS = $(SVD)
TESTS = $(check_PROGRAMS)
EXTRA_DIST = README debug.h
ssvd_SOURCES = ssvd.f
dsvd_SOURCES = dsvd.f
-15
View File
@@ -1,15 +0,0 @@
#
# makefile to run simple examples of the reverse communication
# protocol.
#
# Modify if ARPACK library was built somewhere else.
#
#\SCCS Information: @(#)
# FILE: makefile SID: 2.2 DATE OF SID: 9/24/96 RELEASE: 2
#
include ../../ARmake.inc
ssvd: ssvd.o
$(FC) $(FFLAGS) ssvd.o $(ALIBS) -o ssvd
dsvd: dsvd.o
$(FC) $(FFLAGS) dsvd.o $(ALIBS) -o dsvd
+26
View File
@@ -0,0 +1,26 @@
LDADD = $(top_builddir)/SRC/libarpack$(LIBSUFFIX).la $(LAPACK_LIBS) $(BLAS_LIBS)
SSDRV = ssdrv1 ssdrv2 ssdrv3 ssdrv4 ssdrv5 ssdrv6
DSDRV = dsdrv1 dsdrv2 dsdrv3 dsdrv4 dsdrv5 dsdrv6
SYM = $(SSDRV) $(DSDRV)
check_PROGRAMS = $(SYM)
TESTS = $(check_PROGRAMS)
EXTRA_DIST = README
# simple symmetric problem using single precision
ssdrv1_SOURCES = ssdrv1.f
ssdrv2_SOURCES = ssdrv2.f
ssdrv3_SOURCES = ssdrv3.f
ssdrv4_SOURCES = ssdrv4.f
ssdrv5_SOURCES = ssdrv5.f
ssdrv6_SOURCES = ssdrv6.f
# simple symmetric problem using double precision
dsdrv1_SOURCES = dsdrv1.f
dsdrv2_SOURCES = dsdrv2.f
dsdrv3_SOURCES = dsdrv3.f
dsdrv4_SOURCES = dsdrv4.f
dsdrv5_SOURCES = dsdrv5.f
dsdrv6_SOURCES = dsdrv6.f
-64
View File
@@ -1,64 +0,0 @@
#
# makefile to run simple examples of the reverse communication
# protocol.
#
# Modify if ARPACK library was built somewhere else.
# We assume that the required BLAS and LAPACK routines
# are in the version of libarpack.a built. If not, you
# will need to modify the link step below and link to them.
#
#\SCCS Information: @(#)
# FILE: makefile SID: 2.1 DATE OF SID: 11/19/95 RELEASE: 2
#
include ../../ARmake.inc
#
# Issue "make sym" to make all 12 symmetric drivers
# Issue "make ssdrv" to make 6 single precision symmetric drivers
# Issue "make dsdrv" to make 6 double precision symmetric drivers
#
sym: ssdrv dsdrv
#
# simple symmetric problem using single precision
#
ssdrv: ssdrv1 ssdrv2 ssdrv3 ssdrv4 ssdrv5 ssdrv6
ssdrv1: ssdrv1.o
$(FC) $(FFLAGS) ssdrv1.o $(ALIBS) -o ssdrv1
#
ssdrv2: ssdrv2.o
$(FC) $(FFLAGS) ssdrv2.o $(ALIBS) -o ssdrv2
#
ssdrv3: ssdrv3.o
$(FC) $(FFLAGS) ssdrv3.o $(ALIBS) -o ssdrv3
#
ssdrv4: ssdrv4.o
$(FC) $(FFLAGS) ssdrv4.o $(ALIBS) -o ssdrv4
#
ssdrv5: ssdrv5.o
$(FC) $(FFLAGS) ssdrv5.o $(ALIBS) -o ssdrv5
#
ssdrv6: ssdrv6.o
$(FC) $(FFLAGS) ssdrv6.o $(ALIBS) -o ssdrv6
#
#-----------------------------------------------------------------------
# simple symmetric problem using double precision
#
dsdrv: dsdrv1 dsdrv2 dsdrv3 dsdrv4 dsdrv5 dsdrv6
dsdrv1: dsdrv1.o
$(FC) $(FFLAGS) dsdrv1.o $(ALIBS) -o dsdrv1
#
dsdrv2: dsdrv2.o
$(FC) $(FFLAGS) dsdrv2.o $(ALIBS) -o dsdrv2
#
dsdrv3: dsdrv3.o
$(FC) $(FFLAGS) dsdrv3.o $(ALIBS) -o dsdrv3
#
dsdrv4: dsdrv4.o
$(FC) $(FFLAGS) dsdrv4.o $(ALIBS) -o dsdrv4
#
dsdrv5: dsdrv5.o
$(FC) $(FFLAGS) dsdrv5.o $(ALIBS) -o dsdrv5
#
dsdrv6: dsdrv6.o
$(FC) $(FFLAGS) dsdrv6.o $(ALIBS) -o dsdrv6
+16 -10
View File
@@ -1,12 +1,18 @@
SUBDIRS = UTIL SRC @MPIDIR@
lib_LTLIBRARIES = libarpack.la
ACLOCAL_AMFLAGS = -I m4/
libarpack_la_SOURCES =
libarpack_la_LDFLAGS = -version-info 2:0
libarpack_la_LIBADD = \
$(top_builddir)/SRC/libarpacksrc.la \
$(top_builddir)/UTIL/libarpackutil.la \
$(BLAS_LIBS) $(LAPACK_LIBS) $(FLIBS)
EXTRA_DIST = README
ACLOCAL_AMFLAGS = -I m4
if MPI
AM_DISTCHECK_CONFIGURE_FLAGS = --enable-mpi
endif
SUBDIRS = UTIL SRC . TESTS EXAMPLES PARPACK
EXTRA_DIST = README PARPACK_CHANGES CHANGES DOCUMENTS VISUAL_STUDIO \
detect_arpack_bug.m4 CMakeLists.txt
# Pkgconfig directory
pkgconfigdir = $(libdir)/pkgconfig
# Files to install in Pkgconfig directory
pkgconfig_DATA = arpack@LIBSUFFIX@.pc
DISTCLEANFILES = $(pkgconfig_DATA)
-807
View File
@@ -1,807 +0,0 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = .
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/configure config.guess \
config.sub install-sh ltmain.sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_blas.m4 \
$(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/ax_mpi.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libarpack_la_DEPENDENCIES = $(top_builddir)/SRC/libarpacksrc.la \
$(top_builddir)/UTIL/libarpackutil.la $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_libarpack_la_OBJECTS =
libarpack_la_OBJECTS = $(am_libarpack_la_OBJECTS)
libarpack_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(libarpack_la_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libarpack_la_SOURCES)
DIST_SOURCES = $(libarpack_la_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir dist dist-all distcheck
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d "$(distdir)" \
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr "$(distdir)"; }; }
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BLAS_LIBS = @BLAS_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FLIBS = @FLIBS@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LAPACK_LIBS = @LAPACK_LIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MPIDIR = @MPIDIR@
MPIF77 = @MPIF77@
MPILIBS = @MPILIBS@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_F77 = @ac_ct_F77@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = UTIL SRC @MPIDIR@
lib_LTLIBRARIES = libarpack.la
ACLOCAL_AMFLAGS = -I m4/
libarpack_la_SOURCES =
libarpack_la_LDFLAGS = -version-info 2:0
libarpack_la_LIBADD = \
$(top_builddir)/SRC/libarpacksrc.la \
$(top_builddir)/UTIL/libarpackutil.la \
$(BLAS_LIBS) $(LAPACK_LIBS) $(FLIBS)
EXTRA_DIST = README
all: all-recursive
.SUFFIXES:
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
list2="$$list2 $$p"; \
else :; fi; \
done; \
test -z "$$list2" || { \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
for p in $$list; do \
$(am__strip_dir) \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
done
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libarpack.la: $(libarpack_la_OBJECTS) $(libarpack_la_DEPENDENCIES)
$(libarpack_la_LINK) -rpath $(libdir) $(libarpack_la_OBJECTS) $(libarpack_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool config.lt
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@$(am__cd) '$(distuninstallcheck_dir)' \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(LTLIBRARIES)
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(libdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-libLTLIBRARIES
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-libLTLIBRARIES
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool ctags ctags-recursive dist \
dist-all dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ \
dist-xz dist-zip distcheck distclean distclean-compile \
distclean-generic distclean-libtool distclean-tags \
distcleancheck distdir distuninstallcheck dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-libLTLIBRARIES install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs installdirs-am \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
uninstall-libLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
+38
View File
@@ -0,0 +1,38 @@
LDADD = $(top_builddir)/PARPACK/SRC/BLACS/libparpack$(LIBSUFFIX).la $(LAPACK_LIBS) $(BLAS_LIBS)
SNDRV = psndrv1 psndrv3
DNDRV = pdndrv1 pdndrv3
SSDRV = pssdrv1
DSDRV = pdsdrv1
CNDRV = pcndrv1
ZNDRV = pzndrv1
NTEST = psntest1 pdntest1
check_PROGRAMS = $(SNDRV) $(DNDRV) $(SSDRV) $(DSDRV) $(CNDRV) $(ZNDRV) $(NTEST)
TESTS = $(check_PROGRAMS)
EXTRA_DIST = debug.h stat.h
# Simple nonsymmetric problem using single precision
psndrv1_SOURCES = psndrv1.f
psndrv3_SOURCES = psndrv3.f
# Simple nonsymmetric problem using double precision
pdndrv1_SOURCES = pdndrv1.f
pdndrv3_SOURCES = pdndrv3.f
# Simple symmetric problem using single precision
pssdrv1_SOURCES = pssdrv1.f
# Simple symmetric problem using double precision
pdsdrv1_SOURCES = pdsdrv1.f
# Complex problem using single complex
pcndrv1_SOURCES = pcndrv1.f
# Complex problem using double complex
pzndrv1_SOURCES = pzndrv1.f
# Test routines for timing
psntest1_SOURCES = psntest1.f
pdntest1_SOURCES = pdntest1.f
-89
View File
@@ -1,89 +0,0 @@
#
# makefile to run simple examples of the reverse communication
# protocol.
#
# Modify if ARPACK library was built somewhere else.
# We assume that the required BLAS and LAPACK routines
# are in the version of libarpack.a built. If not, you
# will need to modify the link step below and link to them.
#
#
include ../../../ARmake.inc
# Issue "make nonsym" to make all nonsymmetric drivers.
# Issue "make psndrv" to make single precision nonsymmetric drivers.
# Issue "make pdndrv" to make double precision nonsymmetric drivers.
#
nonsym: psndrv pdndrv
#
# Issue "make sym" to make all symmetric drivers
# Issue "make pssdrv" to make single precision symmetric drivers
# Issue "make pdsdrv" to make double precision symmetric drivers
#
sym: pssdrv pdsdrv
#
# Issue "complex" to make all complex drivers.
# Issue "pcndrv" to make single precision complex drivers.
# Issue "pzndrv" to make double precision complex drivers.
#
complex: pcndrv pzndrv
#
#-----------------------------------------------------------------------
# Simple nonsymmetric problem using single precision
#
psndrv: psndrv1 psndrv3
psndrv1: psndrv1.o
$(PFC) $(LDFLAGS) psndrv1.o $(PLIBS) -o psndrv1_$(PLAT)
#
psndrv3: psndrv3.o
$(PFC) $(LDFLAGS) psndrv3.o $(PLIBS) -o psndrv3_$(PLAT)
#
#-----------------------------------------------------------------------
# Simple nonsymmetric problem using double precision
#
pdndrv: pdndrv1 pdndrv3
pdndrv1: pdndrv1.o
$(PFC) $(LDFLAGS) pdndrv1.o $(PLIBS) -o pdndrv1_$(PLAT)
#
pdndrv3: pdndrv3.o
$(PFC) $(LDFLAGS) pdndrv3.o $(PLIBS) -o pdndrv3_$(PLAT)
#
#-----------------------------------------------------------------------
# Simple symmetric problem using single precision
#
pssdrv: pssdrv1
pssdrv1: pssdrv1.o
$(PFC) $(LDFLAGS) pssdrv1.o $(PLIBS) -o pssdrv1_$(PLAT)
#
#-----------------------------------------------------------------------
# Simple symmetric problem using double precision
#
pdsdrv: pdsdrv1
pdsdrv1: pdsdrv1.o
$(PFC) $(LDFLAGS) pdsdrv1.o $(PLIBS) -o pdsdrv1_$(PLAT)
#-----------------------------------------------------------------------
# Complex problem using single complex
#
pcndrv: pcndrv1
pcndrv1: pcndrv1.o
$(PFC) $(LDFLAGS) pcndrv1.o $(PLIBS) -o pcndrv1_$(PLAT)
#
#----------------------------------------------------------------------
# Complex problem using double complex
#
pzndrv: pzndrv1
pzndrv1: pzndrv1.o
$(PFC) $(LDFLAGS) pzndrv1.o $(PLIBS) -o pzndrv1_$(PLAT)
#----------------------------------------------------------------------
# Test routines for timing
pdntest1: pdntest1.o
$(PFC) $(LDFLAGS) pdntest1.o $(PLIBS) -o pdntest1_$(PLAT)
+35
View File
@@ -0,0 +1,35 @@
F77 = $(MPIF77)
LDADD = $(top_builddir)/PARPACK/SRC/MPI/libparpack$(LIBSUFFIX).la $(LAPACK_LIBS) $(BLAS_LIBS)
SNDRV = psndrv1 psndrv3
DNDRV = pdndrv1 pdndrv3
SSDRV = pssdrv1
DSDRV = pdsdrv1
CNDRV = pcndrv1
ZNDRV = pzndrv1
check_PROGRAMS = $(SNDRV) $(DNDRV) $(SSDRV) $(DSDRV) $(CNDRV) $(ZNDRV)
# Disable tests for now. Needs to be run using mpirun
#TESTS = $(check_PROGRAMS)
EXTRA_DIST = debug.h stat.h
# Simple nonsymmetric problem using single precision
psndrv1_SOURCES = psndrv1.f
psndrv3_SOURCES = psndrv3.f
# Simple nonsymmetric problem using double precision
pdndrv1_SOURCES = pdndrv1.f
pdndrv3_SOURCES = pdndrv3.f
# Simple symmetric problem using single precision
pssdrv1_SOURCES = pssdrv1.f
# Simple symmetric problem using double precision
pdsdrv1_SOURCES = pdsdrv1.f
# Complex problem using single complex
pcndrv1_SOURCES = pcndrv1.f
# Complex problem using double complex
pzndrv1_SOURCES = pzndrv1.f
-83
View File
@@ -1,83 +0,0 @@
#
# makefile to run simple examples of the reverse communication
# protocol.
#
# Modify if ARPACK library was built somewhere else.
# We assume that the required BLAS and LAPACK routines
# are in the version of libarpack.a built. If not, you
# will need to modify the link step below and link to them.
#
#
include ../../../ARmake.inc
# Issue "make nonsym" to make all nonsymmetric drivers.
# Issue "make psndrv" to make single precision nonsymmetric drivers.
# Issue "make pdndrv" to make double precision nonsymmetric drivers.
#
nonsym: psndrv pdndrv
#
# Issue "make sym" to make all symmetric drivers
# Issue "make pssdrv" to make single precision symmetric drivers
# Issue "make pdsdrv" to make double precision symmetric drivers
#
sym: pssdrv pdsdrv
#
# Issue "complex" to make all complex drivers.
# Issue "pcndrv" to make single precision complex drivers.
# Issue "pzndrv" to make double precision complex drivers.
#
complex: pcndrv pzndrv
#
#-----------------------------------------------------------------------
# Simple nonsymmetric problem using single precision
#
psndrv: psndrv1 psndrv3
psndrv1: psndrv1.o
$(PFC) $(PFFLAGS) psndrv1.o $(PLIBS) -o psndrv1_$(PLAT)
#
psndrv3: psndrv3.o
$(PFC) $(PFFLAGS) psndrv3.o $(PLIBS) -o psndrv3_$(PLAT)
#
#------------------------------------------------------
# Simple nonsymmetric problem using double precision
#
pdndrv: pdndrv1 pdndrv3
pdndrv1: pdndrv1.o
$(PFC) $(PFFLAGS) pdndrv1.o $(PLIBS) -o pdndrv1_$(PLAT)
#
pdndrv3: pdndrv3.o
$(PFC) $(PFFLAGS) pdndrv3.o $(PLIBS) -o pdndrv3_$(PLAT)
#
#-----------------------------------------------------------------------
# Simple symmetric problem using single precision
#
pssdrv: pssdrv1
pssdrv1: pssdrv1.o
$(PFC) $(PFFLAGS) pssdrv1.o $(PLIBS) -o pssdrv1_$(PLAT)
#
#------------------------------------------------------
# Simple symmetric problem using double precision
#
pdsdrv: pdsdrv1
pdsdrv1: pdsdrv1.o
$(PFC) $(PFFLAGS) pdsdrv1.o $(PLIBS) -o pdsdrv1_$(PLAT)
#-----------------------------------------------------------------------
# Complex problem using single complex
#
pcndrv: pcndrv1
pcndrv1: pcndrv1.o
$(PFC) $(PFFLAGS) pcndrv1.o $(PLIBS) -o pcndrv1_$(PLAT)
#
#----------------------------------------------------------------------
# Complex problem using double complex
#
pzndrv: pzndrv1
pzndrv1: pzndrv1.o
$(PFC) $(PFFLAGS) pzndrv1.o $(PLIBS) -o pzndrv1_$(PLAT)
-130
View File
@@ -1,130 +0,0 @@
C/*
C *
C * (C) 1993 by Argonne National Laboratory and Mississipi State University.
C * All rights reserved. See COPYRIGHT in top-level directory.
C */
C
C/* user include file for MPI programs, with no dependencies */
C
C/* return codes */
integer MPI_SUCCESS,MPI_ERR_EXHAUSTED,MPI_ERR_TAG,
$ MPI_ERR_COMM_NULL,MPI_ERR_COMM_INTER,MPI_ERR_COMM_INTRA,
$ MPI_ERR_ARG,MPI_ERR_BUFFER,MPI_ERR_COUNT,MPI_ERR_TYPE,
$ MPI_ERR_ROOT,MPI_ERR_OP,MPI_ERR_ERRORCODE,
$ MPI_ERR_GROUP,MPI_ERR_RANK,MPI_ERR_TOPOLOGY,
$ MPI_ERR_DIMS,MPI_ERR_NULL,MPI_ERR_UNKNOWN,
$ MPI_ERR_REQUEST,MPI_ERR_LIMIT,MPI_ERR_INTERN,
$ MPI_ERR_NOMATCH,MPI_ERR_TRUNCATE,MPI_ERR_BAD_ARGS,
$ MPI_ERR_INIT,MPI_ERR_PERM_KEY,MPI_ERR_BUFFER_EXISTS,
$ MPI_ERR_COMM,MPI_ERR_PERM_TYPE,MPI_ERR_IN_STATUS,
$ MPI_ERR_OTHER,MPI_ERR_LASTCODE
parameter (MPI_SUCCESS=0,MPI_ERR_EXHAUSTED=1,MPI_ERR_TAG=2,
$ MPI_ERR_COMM_NULL=3,MPI_ERR_COMM_INTER=4,MPI_ERR_COMM_INTRA=5,
$ MPI_ERR_ARG=6,MPI_ERR_BUFFER=7,MPI_ERR_COUNT=8,MPI_ERR_TYPE=9,
$ MPI_ERR_ROOT=10,MPI_ERR_OP=11,MPI_ERR_ERRORCODE=12,
$ MPI_ERR_GROUP=13,MPI_ERR_RANK=14,MPI_ERR_TOPOLOGY=15,
$ MPI_ERR_DIMS=16,MPI_ERR_NULL=17,MPI_ERR_UNKNOWN=18,
$ MPI_ERR_REQUEST=19,MPI_ERR_LIMIT=20,MPI_ERR_INTERN=21,
$ MPI_ERR_NOMATCH=22,MPI_ERR_TRUNCATE=23,MPI_ERR_BAD_ARGS=24,
$ MPI_ERR_INIT=25,MPI_ERR_PERM_KEY=26,MPI_ERR_BUFFER_EXISTS=27,
$ MPI_ERR_COMM=28,MPI_ERR_PERM_TYPE=29,MPI_ERR_IN_STATUS=30,
$ MPI_ERR_OTHER=31,
$ MPI_ERR_LASTCODE=32)
C
integer MPI_UNDEFINED
parameter (MPI_UNDEFINED = (-32766))
C
INTEGER MPI_GRAPH, MPI_CART
PARAMETER (MPI_GRAPH = 1, MPI_CART = 2)
INTEGER MPI_PROC_NULL
PARAMETER ( MPI_PROC_NULL = (-1) )
C
INTEGER MPI_BSEND_OVERHEAD
PARAMETER ( MPI_BSEND_OVERHEAD = 512 )
INTEGER MPI_SOURCE, MPI_TAG, MPI_ERROR
PARAMETER(MPI_SOURCE=2, MPI_TAG=3, MPI_ERROR=4)
INTEGER MPI_STATUS_SIZE
PARAMETER (MPI_STATUS_SIZE=4)
INTEGER MPI_MAX_PROCESSOR_NAME, MPI_MAX_ERROR_STRING
PARAMETER (MPI_MAX_PROCESSOR_NAME=256,
$ MPI_MAX_ERROR_STRING=256)
C
INTEGER MPI_COMM_NULL
PARAMETER (MPI_COMM_NULL=0)
c
INTEGER MPI_DATATYPE_NULL
PARAMETER (MPI_DATATYPE_NULL = 0)
INTEGER MPI_ERRHANDLER_NULL
PARAMETER (MPI_ERRHANDLER_NULL = 0)
INTEGER MPI_GROUP_NULL
PARAMETER (MPI_GROUP_NULL = 0)
INTEGER MPI_KEYVAL_INVALID
PARAMETER (MPI_KEYVAL_INVALID = 0)
INTEGER MPI_REQUEST_NULL
PARAMETER (MPI_REQUEST_NULL = 0)
C
INTEGER MPI_IDENT, MPI_CONGRUENT, MPI_SIMILAR, MPI_UNEQUAL
PARAMETER (MPI_IDENT=0, MPI_CONGRUENT=1, MPI_SIMILAR=2,
$ MPI_UNEQUAL=3)
C
C We handle datatypes by putting the variables that hold them into
C common. This way, a Fortran program can directly use the various
C datatypes and can even give them to C programs.
C
C MPI_BOTTOM needs to be a known address; here we put it at the
C beginning of the common block. The point-to-point and collective
C routines know about MPI_BOTTOM, but MPI_TYPE_STRUCT as yet does not.
C
C The types MPI_INTEGER1,2,4 and MPI_REAL4,8 are OPTIONAL.
C Their values are zero if they are not available. Note that
C using these reduces the portability of code (though may enhance
C portability between Crays and other systems)
C
integer MPI_TAG_UB, MPI_HOST, MPI_IO
integer MPI_BOTTOM, MPI_INTEGER, MPI_REAL, MPI_DOUBLE_PRECISION,
$ MPI_COMPLEX, MPI_DOUBLE_COMPLEX,
$ MPI_LOGICAL, MPI_CHARACTER, MPI_BYTE,
$ MPI_2INTEGER, MPI_2REAL, MPI_2DOUBLE_PRECISION,
$ MPI_2COMPLEX, MPI_2DOUBLE_COMPLEX,
$ MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4,
$ MPI_REAL2, MPI_REAL4, MPI_REAL8, MPI_UB, MPI_LB,
$ MPI_PACKED
integer MPI_COMM_WORLD, MPI_COMM_SELF, MPI_GROUP_EMPTY
integer MPI_SUM, MPI_MAX, MPI_MIN, MPI_PROD, MPI_LAND, MPI_BAND,
$ MPI_LOR, MPI_BOR, MPI_LXOR, MPI_BXOR, MPI_MINLOC, MPI_MAXLOC,
$ MPI_OP_NULL
integer MPI_ERRORS_ARE_FATAL, MPI_ERRORS_RETURN
common /mpipriv/ MPI_BOTTOM, MPI_INTEGER, MPI_REAL,
$ MPI_DOUBLE_PRECISION,
$ MPI_COMPLEX, MPI_DOUBLE_COMPLEX,
$ MPI_LOGICAL, MPI_CHARACTER, MPI_BYTE,
$ MPI_2INTEGER, MPI_2REAL, MPI_2DOUBLE_PRECISION,
$ MPI_2COMPLEX, MPI_2DOUBLE_COMPLEX,
$ MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4,
$ MPI_REAL2, MPI_REAL4, MPI_REAL8,
$ MPI_UB, MPI_LB,
$ MPI_COMM_WORLD, MPI_COMM_SELF, MPI_GROUP_EMPTY,
$ MPI_SUM, MPI_MAX, MPI_MIN, MPI_PROD, MPI_LAND, MPI_BAND,
$ MPI_LOR, MPI_BOR, MPI_LXOR, MPI_BXOR, MPI_MINLOC, MPI_MAXLOC,
$ MPI_OP_NULL,
$ MPI_TAG_UB, MPI_HOST, MPI_IO, MPI_ERRORS_ARE_FATAL,
$ MPI_ERRORS_RETURN, MPI_PACKED
C
integer MPI_ANY_SOURCE
parameter (MPI_ANY_SOURCE = (-2))
integer MPI_ANY_TAG
parameter (MPI_ANY_TAG = (-1))
C
C All other MPI routines are subroutines
double precision MPI_WTIME, MPI_WTICK
external MPI_WTIME, MPI_WTICK
C
C The attribute copy/delete functions are symbols that can be passed
C to MPI routines
external MPI_NULL_COPY_FN, MPI_NULL_DELETE_FN, MPI_DUP_FN
+6 -10
View File
@@ -1,11 +1,7 @@
SUBDIRS = UTIL SRC
if MPI
SUBDIRS = UTIL/MPI SRC/MPI . EXAMPLES/MPI
endif
lib_LTLIBRARIES = libparpack.la
libparpack_la_SOURCES =
libparpack_la_LDFLAGS = -version-info 2:0
libparpack_la_LIBADD = \
$(top_builddir)/SRC/libarpacksrc.la \
$(top_builddir)/UTIL/libarpackutil.la \
$(top_builddir)/PARPACK/SRC/MPI/libparpacksrcmpi.la \
$(top_builddir)/PARPACK/UTIL/MPI/libparpackutilmpi.la \
$(BLAS_LIBS) $(LAPACK_LIBS) $(FLIBS)
if BLACS
SUBDIRS = UTIL/BLACS SRC/BLACS . EXAMPLES/BLACS
endif
-667
View File
@@ -1,667 +0,0 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = PARPACK
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_blas.m4 \
$(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/ax_mpi.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libparpack_la_DEPENDENCIES = $(top_builddir)/SRC/libarpacksrc.la \
$(top_builddir)/UTIL/libarpackutil.la \
$(top_builddir)/PARPACK/SRC/MPI/libparpacksrcmpi.la \
$(top_builddir)/PARPACK/UTIL/MPI/libparpackutilmpi.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
am_libparpack_la_OBJECTS =
libparpack_la_OBJECTS = $(am_libparpack_la_OBJECTS)
libparpack_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(libparpack_la_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libparpack_la_SOURCES)
DIST_SOURCES = $(libparpack_la_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BLAS_LIBS = @BLAS_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FGREP = @FGREP@
FLIBS = @FLIBS@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LAPACK_LIBS = @LAPACK_LIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MPIDIR = @MPIDIR@
MPIF77 = @MPIF77@
MPILIBS = @MPILIBS@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_F77 = @ac_ct_F77@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = UTIL SRC
lib_LTLIBRARIES = libparpack.la
libparpack_la_SOURCES =
libparpack_la_LDFLAGS = -version-info 2:0
libparpack_la_LIBADD = \
$(top_builddir)/SRC/libarpacksrc.la \
$(top_builddir)/UTIL/libarpackutil.la \
$(top_builddir)/PARPACK/SRC/MPI/libparpacksrcmpi.la \
$(top_builddir)/PARPACK/UTIL/MPI/libparpackutilmpi.la \
$(BLAS_LIBS) $(LAPACK_LIBS) $(FLIBS)
all: all-recursive
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign PARPACK/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign PARPACK/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
list2="$$list2 $$p"; \
else :; fi; \
done; \
test -z "$$list2" || { \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
for p in $$list; do \
$(am__strip_dir) \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
done
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libparpack.la: $(libparpack_la_OBJECTS) $(libparpack_la_DEPENDENCIES)
$(libparpack_la_LINK) -rpath $(libdir) $(libparpack_la_OBJECTS) $(libparpack_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-recursive
all-am: Makefile $(LTLIBRARIES)
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(libdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-recursive
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-libLTLIBRARIES
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-libLTLIBRARIES
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool ctags ctags-recursive \
distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-libLTLIBRARIES install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs installdirs-am \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
uninstall-libLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
-73
View File
@@ -1,73 +0,0 @@
############################################################################
#
# Program: PARPACK
#
# Module: Makefile
#
# Purpose: Sources Makefile
#
# Creation date: February 22, 1996
#
# Modified:
#
# Send bug reports, comments or suggestions to arpack.caam.rice.edu
#
############################################################################
include ../../../ARmake.inc
############################################################################
# To create or add to the library, enter make followed by one or
# more of the precisions desired. Some examples:
# make single
# make single complex
# make single double complex complex16
# Alternatively, the command
# make
# without any arguments creates a library of all four precisions.
# The name of the library is defined by $(PARPACKLIB) in
# $(home)/ARmake.inc and is created in the $(home) directory.
SOBJ = psgetv0.o \
psnaitr.o psnapps.o psnaup2.o psnaupd.o psneigh.o psngets.o \
pssaitr.o pssapps.o pssaup2.o pssaupd.o psseigt.o pssgets.o \
psneupd.o psseupd.o pslarnv.o pslamch.o psnorm2.o
DOBJ = pdgetv0.o \
pdnaitr.o pdnapps.o pdnaup2.o pdnaupd.o pdneigh.o pdngets.o \
pdsaitr.o pdsapps.o pdsaup2.o pdsaupd.o pdseigt.o pdsgets.o \
pdneupd.o pdseupd.o pdlarnv.o pdlamch.o pdnorm2.o
COBJ = pcnaitr.o pcnapps.o pcnaup2.o pcnaupd.o pcneigh.o \
pcneupd.o pcngets.o pcgetv0.o pscnorm2.o pclarnv.o
ZOBJ = pznaitr.o pznapps.o pznaup2.o pznaupd.o pzneigh.o \
pzneupd.o pzngets.o pzgetv0.o pdznorm2.o pzlarnv.o
.f.o:
$(FC) $(FFLAGS) -c $<
all: single complex double complex16
single: $(SOBJ)
$(AR) $(ARFLAGS) $(PARPACKLIB) $(SOBJ)
$(RANLIB) $(PARPACKLIB)
double: $(DOBJ)
$(AR) $(ARFLAGS) $(PARPACKLIB) $(DOBJ)
$(RANLIB) $(PARPACKLIB)
complex: $(COBJ)
$(AR) $(ARFLAGS) $(PARPACKLIB) $(COBJ)
$(RANLIB) $(PARPACKLIB)
complex16: $(ZOBJ)
$(AR) $(ARFLAGS) $(PARPACKLIB) $(ZOBJ)
$(RANLIB) $(PARPACKLIB)
#
# clean - remove all object files
#
clean:
rm -f *.o a.out core
+23
View File
@@ -0,0 +1,23 @@
SSRC = psnaitr.f psnapps.f psnaup2.f psnaupd.f psneigh.f psneupd.f psngets.f \
pssaitr.f pssapps.f pssaup2.f pssaupd.f psseigt.f psseupd.f pssgets.f \
psgetv0.f pslamch.f pslarnv.f psnorm2.f
DSRC = pdnaitr.f pdnapps.f pdnaup2.f pdnaupd.f pdneigh.f pdneupd.f pdngets.f \
pdsaitr.f pdsapps.f pdsaup2.f pdsaupd.f pdseigt.f pdseupd.f pdsgets.f \
pdgetv0.f pdlamch.f pdlarnv.f pdnorm2.f
CSRC = pcnaitr.f pcnapps.f pcnaup2.f pcnaupd.f pcneigh.f pcneupd.f pcngets.f \
pcgetv0.f pclarnv.f pscnorm2.f
ZSRC = pznaitr.f pznapps.f pznaup2.f pznaupd.f pzneigh.f pzneupd.f pzngets.f \
pzgetv0.f pzlarnv.f pdznorm2.f
EXTRA_DIST = debug.h stat.h
lib_LTLIBRARIES = libparpack@LIBSUFFIX@.la
libparpack@LIBSUFFIX@_la_SOURCES = $(SSRC) $(DSRC) $(CSRC) $(ZSRC)
libparpack@LIBSUFFIX@_la_LIBADD = \
$(top_builddir)/PARPACK/UTIL/BLACS/libparpackutil.la \
$(top_builddir)/SRC/libarpack@LIBSUFFIX@.la \
$(LAPACK_LIBS) $(BLAS_LIBS)
libparpack@LIBSUFFIX@_la_LDFLAGS = -no-undefined -version-info 2:0
+10 -10
View File
@@ -95,7 +95,7 @@ c a k-Step Arnoldi Method", SIAM J. Matr. Anal. Apps., 13 (1992),
c pp 357-385.
c
c\Routines called:
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcvout Parallel ARPACK utility routine that prints vectors.
c pclarnv Parallel wrapper for LAPACK routine clarnv (generates a random vector).
c cgemv Level 2 BLAS routine for matrix vector multiplication.
@@ -188,7 +188,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external ccopy, cgemv, pclarnv, pcvout, second
external ccopy, cgemv, pclarnv, pcvout, arscnd
c
c %--------------------%
c | External Functions |
@@ -255,7 +255,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mgetv0
c
ierr = 0
@@ -282,7 +282,7 @@ c | Force the starting vector into the range of OP to handle |
c | the generalized problem when B is possibly (singular). |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nopx = nopx + 1
ipntr(1) = 1
@@ -305,7 +305,7 @@ c %-----------------------------------------------%
c
if (orth) go to 40
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
c
c %------------------------------------------------------%
@@ -313,7 +313,7 @@ c | Starting vector is now in the range of OP; r = OP*r; |
c | Compute B-norm of starting vector. |
c %------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
first = .TRUE.
if (bmat .eq. 'G') then
nbx = nbx + 1
@@ -329,7 +329,7 @@ c
20 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -374,7 +374,7 @@ c %----------------------------------------------------------%
c | Compute the B-norm of the orthogonalized starting vector |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call ccopy (n, resid, 1, workd(n+1), 1)
@@ -389,7 +389,7 @@ c
40 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -449,7 +449,7 @@ c
end if
ido = 99
c
call second (t1)
call arscnd (t1)
tgetv0 = tgetv0 + (t1 - t0)
c
9000 continue
+15 -15
View File
@@ -137,7 +137,7 @@ c
c\Routines called:
c pcgetv0 Parallel ARPACK routine to generate the initial vector.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcmout Parallel ARPACK utility routine that prints matrices
c pcvout Parallel ARPACK utility routine that prints vectors.
c clanhs LAPACK routine that computes various norms of a matrix.
@@ -296,7 +296,7 @@ c | External Subroutines |
c %----------------------%
c
external caxpy, ccopy, cscal, cgemv, pcgetv0, slabad,
& csscal, pcvout, pcmout, pivout, second
& csscal, pcvout, pcmout, pivout, arscnd
c
c %--------------------%
c | External Functions |
@@ -349,7 +349,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mcaitr
c
c %------------------------------%
@@ -460,7 +460,7 @@ c | which spans OP and exit. |
c %------------------------------------------------%
c
info = j - 1
call second (t1)
call arscnd (t1)
tcaitr = tcaitr + (t1 - t0)
ido = 99
go to 9000
@@ -500,7 +500,7 @@ c %------------------------------------------------------%
c
step3 = .true.
nopx = nopx + 1
call second (t2)
call arscnd (t2)
call ccopy (n, v(1,j), 1, workd(ivj), 1)
ipntr(1) = ivj
ipntr(2) = irj
@@ -520,7 +520,7 @@ c | WORKD(IRJ:IRJ+N-1) := OP*v_{j} |
c | if step3 = .true. |
c %----------------------------------%
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
step3 = .false.
@@ -536,7 +536,7 @@ c | STEP 4: Finish extending the Arnoldi |
c | factorization to length j. |
c %---------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
step4 = .true.
@@ -561,7 +561,7 @@ c | if step4 = .true. |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -608,11 +608,11 @@ c
c
if (j .gt. 1) h(j,j-1) = cmplx(betaj, rzero)
c
call second (t4)
call arscnd (t4)
c
orth1 = .true.
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call ccopy (n, resid, 1, workd(irj), 1)
@@ -636,7 +636,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*r_{j}. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -716,7 +716,7 @@ c
call caxpy (j, one, workl(1), 1, h(1,j), 1)
c
orth2 = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call ccopy (n, resid, 1, workd(irj), 1)
@@ -740,7 +740,7 @@ c | Back from reverse communication if ORTH2 = .true. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -819,7 +819,7 @@ c
rstart = .false.
orth2 = .false.
c
call second (t5)
call arscnd (t5)
titref = titref + (t5 - t4)
c
c %------------------------------------%
@@ -828,7 +828,7 @@ c %------------------------------------%
c
j = j + 1
if (j .gt. k+np) then
call second (t1)
call arscnd (t1)
tcaitr = tcaitr + (t1 - t0)
ido = 99
do 110 i = max(1,k), k+np-1
+41 -6
View File
@@ -96,7 +96,7 @@ c pp 357-385.
c
c\Routines called:
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcmout Parallel ARPACK utility routine that prints matrices
c pcvout Parallel ARPACK utility routine that prints vectors.
c clacpy LAPACK matrix copy routine.
@@ -127,7 +127,7 @@ c\Revision history:
c Starting Point: Serial Complex Code FILE: napps.F SID: 2.1
c
c\SCCS Information:
c FILE: napps.F SID: 1.3 DATE OF SID: 06/04/98
c FILE: napps.F SID: 1.4 DATE OF SID: 10/25/03
c
c\Remarks
c 1. In this version, each shift is applied to all the sublocks of
@@ -200,7 +200,7 @@ c | External Subroutines |
c %----------------------%
c
external caxpy, ccopy, cgemv, cscal, clacpy, clartg,
& pcvout, claset, slabad, pcmout, second, pivout
& pcvout, claset, slabad, pcmout, arscnd, pivout
c
c %--------------------%
c | External Functions |
@@ -243,7 +243,7 @@ c | overflow should not occur. |
c | REFERENCE: LAPACK subroutine clahqr |
c %-----------------------------------------------%
c
unfl = slamch( 'safe minimum' )
unfl = pslamch( 'safe minimum' )
ovfl = real(one / unfl)
call slabad( unfl, ovfl )
ulp = slamch( 'precision' )
@@ -256,7 +256,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mcapps
c
kplusp = kev + np
@@ -282,6 +282,13 @@ c %----------------------------------------------%
c
do 110 jj = 1, np
sigma = shift(jj)
c
if (msglvl .gt. 2 ) then
call pivout (comm, logfil, 1, jj, ndigit,
& '_napps: shift number.')
call pcvout (comm, logfil, 1, sigma, ndigit,
& '_napps: Value of the shift ')
end if
c
istart = 1
20 continue
@@ -299,6 +306,14 @@ c
& tst1 = clanhs( '1', kplusp-jj+1, h, ldh, workl )
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,
& '_napps: matrix splitting at row/column no.')
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.')
end if
iend = i
h(i+1,i) = zero
go to 40
@@ -307,6 +322,12 @@ c
iend = kplusp
40 continue
c
if (msglvl .gt. 2) then
call pivout (comm, logfil, 1, istart, ndigit,
& '_napps: Start of current block ')
call pivout (comm, logfil, 1, iend, ndigit,
& '_napps: End of current block ')
end if
c
c %------------------------------------------------%
c | No reason to apply a shift to block of order 1 |
@@ -474,9 +495,23 @@ c
call cscal (n, q(kplusp,kev), resid, 1)
if ( real( h(kev+1,kev) ) .gt. rzero )
& call caxpy (n, h(kev+1,kev), v(1,kev+1), 1, resid, 1)
c
if (msglvl .gt. 1) then
call pcvout (comm, logfil, 1, q(kplusp,kev), ndigit,
& '_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,
& '_napps: Order of the final Hessenberg matrix ')
if (msglvl .gt. 2) then
call pcmout (comm, logfil, kev, kev, h, ldh, ndigit,
& '_napps: updated Hessenberg matrix H for next iteration')
end if
c
end if
c
9000 continue
call second (t1)
call arscnd (t1)
tcapps = tcapps + (t1 - t0)
c
return
+35 -36
View File
@@ -2,7 +2,7 @@ c\BeginDoc
c
c\Name: pcnaup2
c
c Message Passing Layer: BLACS
c Message Passing Layer: BLACS
c
c\Description:
c Intermediate level interface called by pcnaupd.
@@ -39,7 +39,7 @@ c IUPD Integer. (INPUT)
c IUPD .EQ. 0: use explicit restart instead implicit update.
c IUPD .NE. 0: use implicit update.
c
c V Complex N by (NEV+NP) array. (INPUT/OUTPUT)
c V Complex N by (NEV+NP) array. (INPUT/OUTPUT)
c The Arnoldi basis vectors are returned in the first NEV
c columns of V.
c
@@ -47,21 +47,21 @@ c LDV Integer. (INPUT)
c Leading dimension of V exactly as declared in the calling
c program.
c
c H Complex (NEV+NP) by (NEV+NP) array. (OUTPUT)
c H Complex (NEV+NP) by (NEV+NP) array. (OUTPUT)
c H is used to store the generated upper Hessenberg matrix
c
c LDH Integer. (INPUT)
c Leading dimension of H exactly as declared in the calling
c program.
c
c RITZ Complex array of length NEV+NP. (OUTPUT)
c RITZ Complex array of length NEV+NP. (OUTPUT)
c RITZ(1:NEV) contains the computed Ritz values of OP.
c
c BOUNDS Complex array of length NEV+NP. (OUTPUT)
c BOUNDS Complex array of length NEV+NP. (OUTPUT)
c BOUNDS(1:NEV) contain the error bounds corresponding to
c the computed Ritz values.
c
c Q Complex (NEV+NP) by (NEV+NP) array. (WORKSPACE)
c Q Complex (NEV+NP) by (NEV+NP) array. (WORKSPACE)
c Private (replicated) work array used to accumulate the
c rotation in the shift application step.
c
@@ -69,7 +69,7 @@ c LDQ Integer. (INPUT)
c Leading dimension of Q exactly as declared in the calling
c program.
c
c WORKL Complex work array of length at least
c WORKL Complex work array of length at least
c (NEV+NP)**2 + 3*(NEV+NP). (WORKSPACE)
c Private (replicated) array on each PE or array allocated on
c the front end. It is used in shifts calculation, shifts
@@ -86,13 +86,13 @@ c IPNTR(3): pointer to the vector B * X when used in the
c shift-and-invert mode. X is the current operand.
c -------------------------------------------------------------
c
c WORKD Complex work array of length 3*N. (WORKSPACE)
c WORKD Complex work array of length 3*N. (WORKSPACE)
c Distributed array to be used in the basic Arnoldi iteration
c for reverse communication. The user should not use WORKD
c as temporary workspace during the iteration !!!!!!!!!!
c See Data Distribution Note in PCNAUPD.
c
c RWORK Real work array of length NEV+NP ( WORKSPACE)
c RWORK Real work array of length NEV+NP ( WORKSPACE)
c Private (replicated) array on each PE or array allocated on
c the front end.
c
@@ -119,7 +119,7 @@ c
c\BeginLib
c
c\Local variables:
c xxxxxx Complex
c xxxxxx Complex
c
c\References:
c 1. D.C. Sorensen, "Implicit Application of Polynomial Filters in
@@ -137,7 +137,7 @@ c pcneigh Parallel ARPACK compute Ritz values and error bounds routine.
c pcngets Parallel ARPACK reorder Ritz values and error bounds routine.
c csortc ARPACK sorting routine.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcmout Parallel ARPACK utility routine that prints matrices
c pcvout Parallel ARPACK utility routine that prints vectors.
c psvout ARPACK utility routine that prints vectors.
@@ -156,7 +156,7 @@ c Applied Mathematics
c Rice University
c Houston, Texas
c
c FILE: naup2.F SID: 1.6 DATE OF SID: 06/01/00 RELEASE: 1
c FILE: naup2.F SID: 1.7 DATE OF SID: 10/25/03 RELEASE: 1
c
c\Remarks
c 1. None
@@ -192,7 +192,7 @@ c
character bmat*1, which*2
integer ido, info, ishift, iupd, mode, ldh, ldq, ldv, mxiter,
& n, nev, np
Real
Real
& tol
c
c %-----------------%
@@ -200,23 +200,23 @@ c | Array Arguments |
c %-----------------%
c
integer ipntr(13)
Complex
Complex
& bounds(nev+np), h(ldh,nev+np), q(ldq,nev+np),
& resid(n), ritz(nev+np), v(ldv,nev+np),
& workd(3*n), workl( (nev+np)*(nev+np+3) )
Real
Real
& rwork(nev+np)
c
c %------------%
c | Parameters |
c %------------%
c
Complex
Complex
& one, zero
Real
Real
& rzero
parameter (one = (1.0, 0.0) , zero = (0.0, 0.0) ,
& rzero = 0.0 )
parameter (one = (1.0, 0.0), zero = (0.0, 0.0),
& rzero = 0.0)
c
c %---------------%
c | Local Scalars |
@@ -226,9 +226,9 @@ c
integer ierr , iter , kplusp, msglvl, nconv,
& nevbef, nev0 , np0 , nptemp, i ,
& j
Complex
Complex
& cmpnorm
Real
Real
& rnorm, eps23, rtemp
character wprime*2
c
@@ -236,7 +236,6 @@ c
& rnorm, iter , kplusp, msglvl, nconv,
& nevbef, nev0 , np0, eps23
c
c %-----------------------%
c | Local array arguments |
c %-----------------------%
@@ -248,15 +247,15 @@ c | External Subroutines |
c %----------------------%
c
external ccopy, pcgetv0, pcnaitr, pcneigh, pcngets, pcnapps,
& csortc, cswap, pcmout, pcvout, pivout, second
& csortc, cswap, pcmout, pcvout, pivout, arscnd
c
c %--------------------%
c | External functions |
c %--------------------%
c
Complex
Complex
& cdotc
Real
Real
& pscnorm2, pslamch, slapy2
external cdotc, pscnorm2, pslamch, slapy2
c
@@ -264,7 +263,7 @@ c %---------------------%
c | Intrinsic Functions |
c %---------------------%
c
intrinsic aimag, real , min, max, sqrt
intrinsic aimag, real, min, max, sqrt
c
c %-----------------------%
c | Executable Statements |
@@ -272,7 +271,7 @@ c %-----------------------%
c
if (ido .eq. 0) then
c
call second (t0)
call arscnd (t0)
c
msglvl = mcaup2
c
@@ -297,7 +296,7 @@ c | Get machine dependent constant. |
c %---------------------------------%
c
eps23 = pslamch(comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0 )
eps23 = eps23**(2.0 / 3.0)
c
c %---------------------------------------%
c | Set flags for computing the first NEV |
@@ -500,9 +499,9 @@ c
nconv = 0
c
do 25 i = 1, nev
rtemp = max( eps23, slapy2( real (ritz(np+i)),
rtemp = max( eps23, slapy2( real(ritz(np+i)),
& aimag(ritz(np+i)) ) )
if ( slapy2(real (bounds(np+i)),aimag(bounds(np+i)))
if ( slapy2(real(bounds(np+i)),aimag(bounds(np+i)))
& .le. tol*rtemp ) then
nconv = nconv + 1
end if
@@ -587,7 +586,7 @@ c | by 1 / max(eps23, magnitude of the Ritz value). |
c %--------------------------------------------------%
c
do 35 j = 1, nev0
rtemp = max( eps23, slapy2( real (ritz(j)),
rtemp = max( eps23, slapy2( real(ritz(j)),
& aimag(ritz(j)) ) )
bounds(j) = bounds(j)/rtemp
35 continue
@@ -608,7 +607,7 @@ c | value. |
c %----------------------------------------------%
c
do 40 j = 1, nev0
rtemp = max( eps23, slapy2( real (ritz(j)),
rtemp = max( eps23, slapy2( real(ritz(j)),
& aimag(ritz(j)) ) )
bounds(j) = bounds(j)*rtemp
40 continue
@@ -738,7 +737,7 @@ c | the first step of the next call to pcnaitr. |
c %---------------------------------------------%
c
cnorm = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call ccopy (n, resid, 1, workd(n+1), 1)
@@ -763,14 +762,14 @@ c | WORKD(1:N) := B*RESID |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
if (bmat .eq. 'G') then
cmpnorm = cdotc (n, resid, 1, workd, 1)
call cgsum2d( comm, 'All', ' ', 1, 1, cmpnorm, 1, -1, -1 )
rnorm = sqrt(slapy2(real (cmpnorm),aimag(cmpnorm)))
rnorm = sqrt(slapy2(real(cmpnorm),aimag(cmpnorm)))
else if (bmat .eq. 'I') then
rnorm = pscnorm2(comm, n, resid, 1)
end if
@@ -803,7 +802,7 @@ c %------------%
c | Error Exit |
c %------------%
c
call second (t1)
call arscnd (t1)
tcaup2 = t1 - t0
c
9000 continue
+4 -4
View File
@@ -359,7 +359,7 @@ c Arnoldi Iteration.
c cstatn ARPACK routine that initializes the timing variables.
c pivout Parallel ARPACK utility routine that prints integers.
c pcvout Parallel ARPACK utility routine that prints vectors.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pslamch ScaLAPACK routine that determines machine constants.
c
c\Author
@@ -446,7 +446,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pcnaup2, pcvout, pivout, second, cstatn
external pcnaup2, pcvout, pivout, arscnd, cstatn
c
c %--------------------%
c | External Functions |
@@ -468,7 +468,7 @@ c | & message level for debugging |
c %-------------------------------%
c
call cstatn
call second (t0)
call arscnd (t0)
msglvl = mcaupd
c
c %----------------%
@@ -628,7 +628,7 @@ c
& '_naupd: Associated Ritz estimates')
end if
c
call second (t1)
call arscnd (t1)
tcaupd = t1 - t0
c
if (msglvl .gt. 0) then
+4 -4
View File
@@ -68,7 +68,7 @@ c xxxxxx Complex
c
c\Routines called:
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcmout Parallel ARPACK utility routine that prints matrices
c pcvout Parallel ARPACK utility routine that prints vectors.
c psvout Parallel ARPACK utility routine that prints vectors.
@@ -168,7 +168,7 @@ c | External Subroutines |
c %----------------------%
c
external clacpy, clahqr, csscal, ctrevc, ccopy,
& pcmout, pcvout, second
& pcmout, pcvout, arscnd
c
c %--------------------%
c | External Functions |
@@ -188,7 +188,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mceigh
c
if (msglvl .gt. 2) then
@@ -261,7 +261,7 @@ c
& '_neigh: Ritz estimates for the eigenvalues of H')
end if
c
call second(t1)
call arscnd(t1)
tceigh = tceigh + (t1 - t0)
c
9000 continue
+27 -27
View File
@@ -2,7 +2,7 @@ c\BeginDoc
c
c\Name: pcneupd
c
c Message Passing Layer: BLACS
c Message Passing Layer: BLACS
c
c\Description:
c This subroutine returns the converged approximations to eigenvalues
@@ -42,7 +42,7 @@ c N, WHICH, NEV, TOL, RESID, NCV, V, LDV, IPARAM, IPNTR, WORKD,
c WORKL, LWORKL, RWORK, INFO )
c
c\Arguments
c COMM BLACS Communicator for the processor grid. (INPUT)
c COMM BLACS Communicator for the processor grid. (INPUT)
c
c RVEC LOGICAL (INPUT)
c Specifies whether a basis for the invariant subspace corresponding
@@ -70,11 +70,11 @@ c Ritz value D(j), SELECT(j) must be set to .TRUE..
c If HOWMNY = 'A' or 'P', SELECT need not be initialized
c but it is used as internal workspace.
c
c D Complex array of dimension NEV+1. (OUTPUT)
c D Complex array of dimension NEV+1. (OUTPUT)
c On exit, D contains the Ritz approximations
c to the eigenvalues lambda for A*z = lambda*B*z.
c
c Z Complex N by NEV array (OUTPUT)
c Z Complex N by NEV array (OUTPUT)
c On exit, if RVEC = .TRUE. and HOWMNY = 'A', then the columns of
c Z represents approximate eigenvectors (Ritz vectors) corresponding
c to the NCONV=IPARAM(5) Ritz values for eigensystem
@@ -92,11 +92,11 @@ c The leading dimension of the array Z. If Ritz vectors are
c desired, then LDZ .ge. max( 1, N ) is required.
c In any case, LDZ .ge. 1 is required.
c
c SIGMA Complex (INPUT)
c SIGMA Complex (INPUT)
c If IPARAM(7) = 3 then SIGMA represents the shift.
c Not referenced if IPARAM(7) = 1 or 2.
c
c WORKEV Complex work array of dimension 2*NCV. (WORKSPACE)
c WORKEV Complex work array of dimension 2*NCV. (WORKSPACE)
c
c **** The remaining arguments MUST be the same as for the ****
c **** call to PCNAUPD that was just completed. ****
@@ -112,7 +112,7 @@ c the the last call to PCNAUPD and the call to CNEUPD.
c
c Three of these parameters (V, WORKL and INFO) are also output parameters:
c
c V Complex N by NCV array. (INPUT/OUTPUT)
c V Complex N by NCV array. (INPUT/OUTPUT)
c
c Upon INPUT: the NCV columns of V contain the Arnoldi basis
c vectors for OP as constructed by PCNAUPD .
@@ -128,7 +128,7 @@ c Ritz vectors. If a separate array Z has been passed then
c the first NCONV=IPARAM(5) columns of V will contain approximate
c Schur vectors that span the desired invariant subspace.
c
c WORKL Real work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL Real work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL(1:ncv*ncv+2*ncv) contains information obtained in
c PCNAUPD. They are not changed by PCNEUPD.
c WORKL(ncv*ncv+2*ncv+1:3*ncv*ncv+4*ncv) holds the
@@ -249,7 +249,7 @@ c\Revision history:
c Starting Point: Complex Serial Code FILE: neupd.F SID: 2.2
c
c\SCCS Information:
c FILE: neupd.F SID: 1.6 DATE OF SID: 04/10/01
c FILE: neupd.F SID: 1.9 DATE OF SID: 10/25/03
c
c\EndLib
c
@@ -262,7 +262,7 @@ c-----------------------------------------------------------------------
& workd, workl , lworkl, rwork , info )
c
c %--------------------%
c | BLACS Communicator |
c | BLACS Communicator |
c %--------------------%
c
integer comm
@@ -281,9 +281,9 @@ c
character bmat, howmny, which*2
logical rvec
integer info, ldz, ldv, lworkl, n, ncv, nev
Complex
Complex
& sigma
Real
Real
& tol
c
c %-----------------%
@@ -292,9 +292,9 @@ c %-----------------%
c
integer iparam(11), ipntr(14)
logical select(ncv)
Real
Real
& rwork(ncv)
Complex
Complex
& d(nev) , resid(n) , v(ldv,ncv) ,
& z(ldz, nev), workd(3*n), workl(lworkl),
& workev(2*ncv)
@@ -303,9 +303,9 @@ c %------------%
c | Parameters |
c %------------%
c
Complex
Complex
& one, zero
parameter (one = (1.0, 0.0) , zero = (0.0, 0.0) )
parameter (one = (1.0, 0.0), zero = (0.0, 0.0))
c
c %---------------%
c | Local Scalars |
@@ -317,9 +317,9 @@ c
& mode , msglvl, ritz , wr , k , irz ,
& ibd , outncv, iq , np , numcnv, jj ,
& ishift
Complex
Complex
& rnorm, temp, vl(1)
Real
Real
& conds, sep, rtemp, eps23
logical reord
c
@@ -335,11 +335,11 @@ c %--------------------%
c | External Functions |
c %--------------------%
c
Real
Real
& scnrm2,pslamch,slapy2
external scnrm2,pslamch,slapy2
c
Complex
Complex
& cdotc
external cdotc
c
@@ -368,7 +368,7 @@ c | Get machine dependent constant. |
c %---------------------------------%
c
eps23 = pslamch(comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0 )
eps23 = eps23**(2.0 / 3.0)
c
c %-------------------------------%
c | Quick return |
@@ -518,9 +518,9 @@ c %-------------------------------------%
c
np = ncv - nev
ishift = 0
call cngets(comm, ishift, which ,
& nev , np , workl(irz),
& workl(bounds))
call pcngets(comm, ishift, which ,
& nev , np , workl(irz),
& workl(bounds))
c
if (msglvl .gt. 2) then
call pcvout(comm,logfil, ncv, workl(irz), ndigit,
@@ -686,8 +686,8 @@ c | Note that since Q is orthogonal, R is a diagonal |
c | matrix consisting of plus or minus ones. |
c %---------------------------------------------------%
c
if ( real ( workl(invsub+(j-1)*ldq+j-1) ) .lt.
& real (zero) ) then
if ( real( workl(invsub+(j-1)*ldq+j-1) ) .lt.
& real(zero) ) then
call cscal(nconv, -one, workl(iuptri+j-1), ldq)
call cscal(nconv, -one, workl(iuptri+(j-1)*ldq), 1)
end if
@@ -730,7 +730,7 @@ c %------------------------------------------------%
c
do 40 j=1, nconv
rtemp = scnrm2(ncv, workl(invsub+(j-1)*ldq), 1)
rtemp = real (one) / rtemp
rtemp = real(one) / rtemp
call csscal ( ncv, rtemp,
& workl(invsub+(j-1)*ldq), 1 )
c
+4 -4
View File
@@ -67,7 +67,7 @@ c
c\Routines called:
c csortc ARPACK sorting routine.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcvout Parallel ARPACK utility routine that prints vectors.
c
c\Author
@@ -142,7 +142,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pcvout, csortc, second
external pcvout, csortc, arscnd
c
c %-----------------------%
c | Executable Statements |
@@ -153,7 +153,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mcgets
c
call csortc (which, .true., kev+np, ritz, bounds)
@@ -173,7 +173,7 @@ c
c
end if
c
call second (t1)
call arscnd (t1)
tcgets = tcgets + (t1 - t0)
c
if (msglvl .gt. 0) then
+10 -10
View File
@@ -99,7 +99,7 @@ c Restarted Arnoldi Iteration", Rice University Technical Report
c TR95-13, Department of Computational and Applied Mathematics.
c
c\Routines called:
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine for vector output.
c pdlarnv Parallel wrapper for LAPACK routine dlarnv (generates a random vector).
c dgemv Level 2 BLAS routine for matrix vector multiplication.
@@ -187,7 +187,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pdlarnv, pdvout, dcopy, dgemv, second
external pdlarnv, pdvout, dcopy, dgemv, arscnd
c
c %--------------------%
c | External Functions |
@@ -234,7 +234,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mgetv0
c
ierr = 0
@@ -261,7 +261,7 @@ c | Force the starting vector into the range of OP to handle |
c | the generalized problem when B is possibly (singular). |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nopx = nopx + 1
ipntr(1) = 1
@@ -284,7 +284,7 @@ c %-----------------------------------------------%
c
if (orth) go to 40
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
c
c %------------------------------------------------------%
@@ -292,7 +292,7 @@ c | Starting vector is now in the range of OP; r = OP*r; |
c | Compute B-norm of starting vector. |
c %------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
first = .TRUE.
if (bmat .eq. 'G') then
nbx = nbx + 1
@@ -308,7 +308,7 @@ c
20 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
endif
c
@@ -353,7 +353,7 @@ c %----------------------------------------------------------%
c | Compute the B-norm of the orthogonalized starting vector |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(n+1), 1)
@@ -368,7 +368,7 @@ c
40 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
endif
c
@@ -427,7 +427,7 @@ c
end if
ido = 99
c
call second (t1)
call arscnd (t1)
tgetv0 = tgetv0 + (t1 - t0)
c
9000 continue
+15 -15
View File
@@ -138,7 +138,7 @@ c
c\Routines called:
c pdgetv0 Parallel ARPACK routine to generate the initial vector.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdmout Parallel ARPACK utility routine that prints matrices
c pdvout Parallel ARPACK utility routine that prints vectors.
c dlabad LAPACK routine that computes machine constants.
@@ -287,7 +287,7 @@ c | External Subroutines |
c %----------------------%
c
external daxpy, dcopy, dscal, dgemv, pdgetv0, dlabad,
& pdvout, pdmout, pivout, second
& pdvout, pdmout, pivout, arscnd
c
c %--------------------%
c | External Functions |
@@ -338,7 +338,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mnaitr
c
c %------------------------------%
@@ -449,7 +449,7 @@ c | which spans OP and exit. |
c %------------------------------------------------%
c
info = j - 1
call second (t1)
call arscnd (t1)
tnaitr = tnaitr + (t1 - t0)
ido = 99
go to 9000
@@ -489,7 +489,7 @@ c %------------------------------------------------------%
c
step3 = .true.
nopx = nopx + 1
call second (t2)
call arscnd (t2)
call dcopy (n, v(1,j), 1, workd(ivj), 1)
ipntr(1) = ivj
ipntr(2) = irj
@@ -509,7 +509,7 @@ c | WORKD(IRJ:IRJ+N-1) := OP*v_{j} |
c | if step3 = .true. |
c %----------------------------------%
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
step3 = .false.
@@ -525,7 +525,7 @@ c | STEP 4: Finish extending the Arnoldi |
c | factorization to length j. |
c %---------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
step4 = .true.
@@ -550,7 +550,7 @@ c | if step4 = .true. |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -597,11 +597,11 @@ c
c
if (j .gt. 1) h(j,j-1) = betaj
c
call second (t4)
call arscnd (t4)
c
orth1 = .true.
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(irj), 1)
@@ -625,7 +625,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*r_{j}. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -704,7 +704,7 @@ c
call daxpy (j, one, workl(1), 1, h(1,j), 1)
c
orth2 = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(irj), 1)
@@ -728,7 +728,7 @@ c | Back from reverse communication if ORTH2 = .true. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -807,7 +807,7 @@ c
rstart = .false.
orth2 = .false.
c
call second (t5)
call arscnd (t5)
titref = titref + (t5 - t4)
c
c %------------------------------------%
@@ -816,7 +816,7 @@ c %------------------------------------%
c
j = j + 1
if (j .gt. k+np) then
call second (t1)
call arscnd (t1)
tnaitr = tnaitr + (t1 - t0)
ido = 99
do 110 i = max(1,k), k+np-1
+3 -3
View File
@@ -198,7 +198,7 @@ c | External Subroutines |
c %----------------------%
c
external daxpy, dcopy, dscal, dlacpy, dlarf, dlarfg, dlartg,
& dlaset, dlabad, second, pivout, pdvout, pdmout
& dlaset, dlabad, arscnd, pivout, pdvout, pdmout
c
c %--------------------%
c | External Functions |
@@ -246,7 +246,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mnapps
c
kplusp = kev + np
@@ -645,7 +645,7 @@ c
end if
c
9000 continue
call second (t1)
call arscnd (t1)
tnapps = tnapps + (t1 - t0)
c
return
+6 -6
View File
@@ -145,7 +145,7 @@ c pdneigh Parallel ARPACK compute Ritz values and error bounds routine.
c pdngets Parallel ARPACK reorder Ritz values and error bounds routine.
c dsortc ARPACK sorting routine.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdmout Parallel ARPACK utility routine that prints matrices
c pdvout ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
@@ -252,7 +252,7 @@ c %----------------------%
c
external dcopy , pdgetv0 , pdnaitr , dnconv ,
& pdneigh , pdngets , pdnapps ,
& pdvout , pivout, second
& pdvout , pivout, arscnd
c
c %--------------------%
c | External Functions |
@@ -274,7 +274,7 @@ c %-----------------------%
c
if (ido .eq. 0) then
c
call second (t0)
call arscnd (t0)
c
msglvl = mnaup2
c
@@ -776,7 +776,7 @@ c | the first step of the next call to pdnaitr . |
c %---------------------------------------------%
c
cnorm = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(n+1), 1)
@@ -801,7 +801,7 @@ c | WORKD(1:N) := B*RESID |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
endif
c
@@ -841,7 +841,7 @@ c %------------%
c | Error Exit |
c %------------%
c
call second (t1)
call arscnd (t1)
tnaup2 = t1 - t0
c
9000 continue
+4 -4
View File
@@ -382,7 +382,7 @@ c\Routines called:
c pdnaup2 Parallel ARPACK routine that implements the Implicitly Restarted
c Arnoldi Iteration.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c
@@ -468,7 +468,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pdnaup2 , pdvout , pivout, second, dstatn
external pdnaup2 , pdvout , pivout, arscnd, dstatn
c
c %--------------------%
c | External Functions |
@@ -490,7 +490,7 @@ c | & message level for debugging |
c %-------------------------------%
c
call dstatn
call second (t0)
call arscnd (t0)
msglvl = mnaupd
c
c %----------------%
@@ -654,7 +654,7 @@ c
& '_naupd: Associated Ritz estimates')
end if
c
call second (t1)
call arscnd (t1)
tnaupd = t1 - t0
c
if (msglvl .gt. 0) then
+13 -9
View File
@@ -53,7 +53,7 @@ c the front end. This is needed to keep the full Schur form
c of H and also in the calculation of the eigenvectors of H.
c
c IERR Integer. (OUTPUT)
c Error exit flag from dlaqrb or dtrevc.
c Error exit flag from dlahqr or dtrevc.
c
c\EndDoc
c
@@ -65,9 +65,9 @@ c\Local variables:
c xxxxxx real
c
c\Routines called:
c dlaqrb ARPACK routine to compute the real Schur form of an
c dlahqr ARPACK routine to compute the real Schur form of an
c upper Hessenberg matrix and last row of the Schur vectors.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c dmout ARPACK utility routine that prints matrices
c dvout ARPACK utility routine that prints vectors.
c dlacpy LAPACK matrix copy routine.
@@ -157,7 +157,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external dcopy, dlacpy, dlaqrb, dtrevc, pdvout, second
external dcopy, dlacpy, dlahqr, dtrevc, dvout, arscnd
c
c %--------------------%
c | External Functions |
@@ -183,7 +183,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mneigh
c
if (msglvl .gt. 2) then
@@ -195,13 +195,17 @@ c %-----------------------------------------------------------%
c | 1. Compute the eigenvalues, the last components of the |
c | corresponding Schur vectors and the full Schur form T |
c | of the current upper Hessenberg matrix H. |
c | dlaqrb returns the full Schur form of H in WORKL(1:N**2) |
c | dlahqr returns the full Schur form of H in WORKL(1:N**2) |
c | and the last components of the Schur vectors in BOUNDS. |
c %-----------------------------------------------------------%
c
call dlacpy ('All', n, n, h, ldh, workl, n)
call dlaqrb (.true., n, 1, n, workl, n, ritzr, ritzi, bounds,
& ierr)
do 5 j = 1, n-1
bounds(j) = zero
5 continue
bounds(n) = 1
call dlahqr(.true., .true., n, 1, n, workl, n, ritzr, ritzi, 1, 1,
& bounds, 1, ierr)
if (ierr .ne. 0) go to 9000
c
if (msglvl .gt. 1) then
@@ -314,7 +318,7 @@ c
& '_neigh: Ritz estimates for the eigenvalues of H')
end if
c
call second (t1)
call arscnd (t1)
tneigh = tneigh + (t1 - t0)
c
9000 continue
+3 -3
View File
@@ -149,7 +149,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external dcopy, dsortc, second
external dcopy, dsortc, arscnd
c
c %----------------------%
c | Intrinsics Functions |
@@ -166,7 +166,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mngets
c
c %----------------------------------------------------%
@@ -222,7 +222,7 @@ c
call dsortc ( 'SR', .true., np, bounds, ritzr, ritzi )
end if
c
call second (t1)
call arscnd (t1)
tngets = tngets + (t1 - t0)
c
if (msglvl .gt. 0) then
+14 -14
View File
@@ -280,7 +280,7 @@ c | External Subroutines |
c %----------------------%
c
external daxpy, dcopy, dscal, dgemv, pdgetv0, pdvout, pdmout,
& dlascl, pivout, second
& dlascl, pivout, arscnd
c
c %--------------------%
c | External Functions |
@@ -325,7 +325,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = msaitr
c
c %------------------------------%
@@ -445,7 +445,7 @@ c | which spans OP and exit. |
c %------------------------------------------------%
c
info = j - 1
call second (t1)
call arscnd (t1)
tsaitr = tsaitr + (t1 - t0)
ido = 99
go to 9000
@@ -485,7 +485,7 @@ c %------------------------------------------------------%
c
step3 = .true.
nopx = nopx + 1
call second (t2)
call arscnd (t2)
call dcopy (n, v(1,j), 1, workd(ivj), 1)
ipntr(1) = ivj
ipntr(2) = irj
@@ -504,7 +504,7 @@ c | Back from reverse communication; |
c | WORKD(IRJ:IRJ+N-1) := OP*v_{j}. |
c %-----------------------------------%
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
c
step3 = .false.
@@ -525,7 +525,7 @@ c | assumed to have A*v_{j}. |
c %-------------------------------------------%
c
if (mode .eq. 2) go to 65
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
step4 = .true.
@@ -549,7 +549,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*OP*v_{j}. |
c %-----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -621,12 +621,12 @@ c
else
h(j,1) = rnorm
end if
call second (t4)
call arscnd (t4)
c
orth1 = .true.
iter = 0
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(irj), 1)
@@ -650,7 +650,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*r_{j}. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -726,7 +726,7 @@ c
h(j,2) = h(j,2) + workl(j)
c
orth2 = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(irj), 1)
@@ -750,7 +750,7 @@ c | Back from reverse communication if ORTH2 = .true. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -823,7 +823,7 @@ c
rstart = .false.
orth2 = .false.
c
call second (t5)
call arscnd (t5)
titref = titref + (t5 - t4)
c
c %----------------------------------------------------------%
@@ -847,7 +847,7 @@ c %------------------------------------%
c
j = j + 1
if (j .gt. k+np) then
call second (t1)
call arscnd (t1)
tsaitr = tsaitr + (t1 - t0)
ido = 99
c
+4 -4
View File
@@ -93,7 +93,7 @@ c TR95-13, Department of Computational and Applied Mathematics.
c
c\Routines called:
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c dlartg LAPACK Givens rotation construction routine.
@@ -187,7 +187,7 @@ c | External Subroutines |
c %----------------------%
c
external daxpy, dcopy, dscal, dlacpy, dlartg, dlaset, pdvout,
& pivout, second, dgemv
& pivout, arscnd, dgemv
c
c %--------------------%
c | External Functions |
@@ -224,7 +224,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = msapps
c
kplusp = kev + np
@@ -514,7 +514,7 @@ c
end if
end if
c
call second (t1)
call arscnd (t1)
tsapps = tsapps + (t1 - t0)
c
9000 continue
+6 -6
View File
@@ -153,7 +153,7 @@ c sstrqb ARPACK routine that computes all eigenvalues and the
c last component of the eigenvectors of a symmetric
c tridiagonal matrix using the implicit QL or QR method.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c dcopy Level 1 BLAS that copies one vector to another.
@@ -253,7 +253,7 @@ c %----------------------%
c
external dcopy, pdgetv0, pdsaitr, dscal, dsconv,
& pdseigt, pdsgets, pdsapps,
& dsortr, pdvout, pivout, second
& dsortr, pdvout, pivout, arscnd
c
c %--------------------%
c | External Functions |
@@ -280,7 +280,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = msaup2
c
c %---------------------------------%
@@ -791,7 +791,7 @@ c | the first step of the next call to pdsaitr. |
c %---------------------------------------------%
c
cnorm = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(n+1), 1)
@@ -816,7 +816,7 @@ c | WORKD(1:N) := B*RESID |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -859,7 +859,7 @@ c %------------%
c | Error exit |
c %------------%
c
call second (t1)
call arscnd (t1)
tsaup2 = t1 - t0
c
9000 continue
+4 -4
View File
@@ -384,7 +384,7 @@ c Arnoldi Iteration.
c dstats ARPACK routine that initializes timing and other statistics
c variables.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c
@@ -472,7 +472,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pdsaup2 , pdvout , pivout, second, dstats
external pdsaup2 , pdvout , pivout, arscnd, dstats
c
c %--------------------%
c | External Functions |
@@ -494,7 +494,7 @@ c | & message level for debugging |
c %-------------------------------%
c
call dstats
call second (t0)
call arscnd (t0)
msglvl = msaupd
c
ierr = 0
@@ -654,7 +654,7 @@ c
& '_saupd: corresponding error bounds')
end if
c
call second (t1)
call arscnd (t1)
tsaupd = t1 - t0
c
if (msglvl .gt. 0) then
+4 -4
View File
@@ -63,7 +63,7 @@ c\Routines called:
c dstqrb ARPACK routine that computes the eigenvalues and the
c last components of the eigenvectors of a symmetric
c and tridiagonal matrix.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine that prints vectors.
c dcopy Level 1 BLAS that copies one vector to another.
c dscal Level 1 BLAS that scales a vector.
@@ -141,7 +141,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external dcopy, dstqrb, pdvout, second
external dcopy, dstqrb, pdvout, arscnd
c
c %---------------------%
c | Intrinsic Functions |
@@ -158,7 +158,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mseigt
c
if (msglvl .gt. 0) then
@@ -190,7 +190,7 @@ c
bounds(k) = rnorm*abs(bounds(k))
30 continue
c
call second (t1)
call arscnd (t1)
tseigt = tseigt + (t1 - t0)
c
9000 continue
+93 -93
View File
@@ -1,8 +1,8 @@
c\BeginDoc
c
c\Name: pdseupd
c\Name: pdseupd
c
c Message Passing Layer: BLACS
c Message Passing Layer: BLACS
c
c\Description:
c
@@ -41,12 +41,12 @@ c There is also the option of computing a selected set of these vectors
c with a single call.
c
c\Usage:
c call pdseupd
c call pdseupd
c ( COMM, RVEC, HOWMNY, SELECT, D, Z, LDZ, SIGMA, BMAT, N, WHICH, NEV, TOL,
c RESID, NCV, V, LDV, IPARAM, IPNTR, WORKD, WORKL, LWORKL, INFO )
c
c\Arguments
c COMM BLACS Communicator for the processor grid. (INPUT)
c COMM BLACS Communicator for the processor grid. (INPUT)
c
c RVEC LOGICAL (INPUT)
c Specifies whether Ritz vectors corresponding to the Ritz value
@@ -69,16 +69,16 @@ c computed. To select the Ritz vector corresponding to a
c Ritz value D(j), SELECT(j) must be set to .TRUE..
c If HOWMNY = 'A' , SELECT is used as workspace.
c
c D Double precision array of dimension NEV. (OUTPUT)
c D Double precision array of dimension NEV. (OUTPUT)
c On exit, D contains the Ritz value approximations to the
c eigenvalues of A*z = lambda*B*z. The values are returned
c in ascending order. If IPARAM(7) = 3,4,5 then D represents
c the Ritz values of OP computed by pdsaupd transformed to
c the Ritz values of OP computed by pdsaupd transformed to
c those of the original eigensystem A*z = lambda*B*z. If
c IPARAM(7) = 1,2 then the Ritz values of OP are the same
c as the those of A*z = lambda*B*z.
c
c Z Double precision N by NEV array if HOWMNY = 'A'. (OUTPUT)
c Z Double precision N by NEV array if HOWMNY = 'A'. (OUTPUT)
c On exit, Z contains the B-orthonormal Ritz vectors of the
c eigensystem A*z = lambda*B*z corresponding to the Ritz
c value approximations.
@@ -90,13 +90,13 @@ c LDZ Integer. (INPUT)
c The leading dimension of the array Z. If Ritz vectors are
c desired, then LDZ .ge. max( 1, N ). In any case, LDZ .ge. 1.
c
c SIGMA Double precision (INPUT)
c SIGMA Double precision (INPUT)
c If IPARAM(7) = 3,4,5 represents the shift. Not referenced if
c IPARAM(7) = 1 or 2.
c
c
c **** The remaining arguments MUST be the same as for the ****
c **** call to PDNAUPD that was just completed. ****
c **** call to PDNAUPD that was just completed. ****
c
c NOTE: The remaining arguments
c
@@ -109,7 +109,7 @@ c the the last call to PSSAUPD and the call to PSSEUPD.
c
c Two of these parameters (WORKL, INFO) are also output parameters:
c
c WORKL Double precision work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL Double precision work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL(1:4*ncv) contains information obtained in
c PSSAUPD. They are not changed by PSSEUPD.
c WORKL(4*ncv+1:ncv*ncv+8*ncv) holds the
@@ -136,7 +136,7 @@ c = -5: WHICH must be one of 'LM', 'SM', 'LA', 'SA' or 'BE'.
c = -6: BMAT must be one of 'I' or 'G'.
c = -7: Length of private work WORKL array is not sufficient.
c = -8: Error return from trid. eigenvalue calculation;
c Information error from LAPACK routine dsteqr .
c Information error from LAPACK routine dsteqr.
c = -9: Starting vector is zero.
c = -10: IPARAM(7) must be 1,2,3,4,5.
c = -11: IPARAM(7) = 1 and BMAT = 'G' are incompatible.
@@ -145,11 +145,11 @@ c = -14: PSSAUPD did not find any eigenvalues to sufficient
c accuracy.
c = -15: HOWMNY must be one of 'A' or 'S' if RVEC = .true.
c = -16: HOWMNY = 'S' not yet implemented
c = -17: DSEUPD got a different count of the number of converged
c Ritz values than DSAUPD got. This indicates the user
c probably made an error in passing data from DSAUPD to
c DSEUPD or that the data was modified before entering
c DSEUPD .
c = -17: DSEUPD got a different count of the number of converged
c Ritz values than DSAUPD got. This indicates the user
c probably made an error in passing data from DSAUPD to
c DSEUPD or that the data was modified before entering
c DSEUPD.
c
c\BeginLib
c
@@ -182,24 +182,24 @@ c 2. Currently only HOWMNY = 'A' is implemented. It is included at this
c stage for the user who wants to incorporate it.
c
c\Routines called:
c dsesrt ARPACK routine that sorts an array X, and applies the
c dsesrt ARPACK routine that sorts an array X, and applies the
c corresponding permutation to a matrix A.
c dsortr dsortr ARPACK sorting routine.
c pdnorm2 Parallel ARPACK routine that computes the 2-norm of a vector.
c dsortr dsortr ARPACK sorting routine.
c pdnorm2 Parallel ARPACK routine that computes the 2-norm of a vector.
c pivout Parallel ARPACK utility routine that prints integers.
c pdvout Parallel ARPACK utility routine that prints vectors.
c dgeqr2 LAPACK routine that computes the QR factorization of
c pdvout Parallel ARPACK utility routine that prints vectors.
c dgeqr2 LAPACK routine that computes the QR factorization of
c a matrix.
c dlacpy LAPACK matrix copy routine.
c pdlamch ScaLAPACK routine that determines machine constants.
c dorm2r LAPACK routine that applies an orthogonal matrix in
c dlacpy LAPACK matrix copy routine.
c pdlamch ScaLAPACK routine that determines machine constants.
c dorm2r LAPACK routine that applies an orthogonal matrix in
c factored form.
c dsteqr LAPACK routine that computes eigenvalues and eigenvectors
c dsteqr LAPACK routine that computes eigenvalues and eigenvectors
c of a tridiagonal matrix.
c dger Level 2 BLAS rank one update to a matrix.
c dcopy Level 1 BLAS that copies one vector to another .
c dscal Level 1 BLAS that scales a vector.
c dswap Level 1 BLAS that swaps the contents of two vectors.
c dger Level 2 BLAS rank one update to a matrix.
c dcopy Level 1 BLAS that copies one vector to another .
c dscal Level 1 BLAS that scales a vector.
c dswap Level 1 BLAS that swaps the contents of two vectors.
c\Authors
c Danny Sorensen Phuong Vu
c Richard Lehoucq CRPC / Rice University
@@ -216,12 +216,12 @@ c\Revision history:
c Starting Point: Serial Code FILE: seupd.F SID: 2.4
c
c\SCCS Information:
c FILE: seupd.F SID: 1.10 DATE OF SID: 04/10/01
c FILE: seupd.F SID: 1.11 DATE OF SID: 10/25/03
c
c\EndLib
c
c-----------------------------------------------------------------------
subroutine pdseupd
subroutine pdseupd
& (comm , rvec , howmny, select, d ,
& z , ldz , sigma , bmat , n ,
& which , nev , tol , resid , ncv ,
@@ -229,7 +229,7 @@ c-----------------------------------------------------------------------
& workl , lworkl, info )
c
c %--------------------%
c | BLACS Communicator |
c | BLACS Communicator |
c %--------------------%
c
integer comm
@@ -248,7 +248,7 @@ c
character bmat, howmny, which*2
logical rvec
integer info, ldz, ldv, lworkl, n, ncv, nev
Double precision
Double precision
& sigma, tol
c
c %-----------------%
@@ -257,7 +257,7 @@ c %-----------------%
c
integer iparam(7), ipntr(11)
logical select(ncv)
Double precision
Double precision
& d(nev), resid(n), v(ldv,ncv), z(ldz, nev),
& workd(2*n), workl(lworkl)
c
@@ -265,9 +265,9 @@ c %------------%
c | Parameters |
c %------------%
c
Double precision
Double precision
& one, zero
parameter (one = 1.0 , zero = 0.0 )
parameter (one = 1.0, zero = 0.0)
c
c %---------------%
c | Local Scalars |
@@ -279,7 +279,7 @@ c
& ldq , mode , msglvl, nconv , next ,
& ritz , irz , ibd , np , ishift,
& leftptr, rghtptr, numcnv, jj
Double precision
Double precision
& bnorm2, rnorm, temp, temp1, eps23
logical reord
c
@@ -287,16 +287,16 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external dcopy , dger , dgeqr2 , dlacpy , dorm2r , dscal ,
& dsesrt , dsteqr , dswap , pdvout , pivout, dsortr
external dcopy , dger , dgeqr2, dlacpy, dorm2r, dscal,
& dsesrt, dsteqr, dswap , pdvout, pivout, dsortr
c
c %--------------------%
c | External Functions |
c %--------------------%
c
Double precision
& pdnorm2 , pdlamch
external pdnorm2 , pdlamch
Double precision
& pdnorm2, pdlamch
external pdnorm2, pdlamch
c
c %---------------------%
c | Intrinsic Functions |
@@ -373,18 +373,18 @@ c | Memory is laid out as follows: |
c | workl(1:2*ncv) := generated tridiagonal matrix H |
c | The subdiagonal is stored in workl(2:ncv). |
c | The dead spot is workl(1) but upon exiting |
c | pdsaupd stores the B-norm of the last residual |
c | pdsaupd stores the B-norm of the last residual |
c | vector in workl(1). We use this !!! |
c | workl(2*ncv+1:2*ncv+ncv) := ritz values |
c | The wanted values are in the first NCONV spots. |
c | workl(3*ncv+1:3*ncv+ncv) := computed Ritz estimates |
c | The wanted values are in the first NCONV spots. |
c | NOTE: workl(1:4*ncv) is set by pdsaupd and is not |
c | modified by pdseupd . |
c | NOTE: workl(1:4*ncv) is set by pdsaupd and is not |
c | modified by pdseupd. |
c %-------------------------------------------------------%
c
c %-------------------------------------------------------%
c | The following is used and set by pdseupd . |
c | The following is used and set by pdseupd. |
c | workl(4*ncv+1:4*ncv+ncv) := used as workspace during |
c | computation of the eigenvectors of H. Stores |
c | the diagonal of H. Upon EXIT contains the NCV |
@@ -400,10 +400,10 @@ c | wanted values. If MODE = 1,2 then will equal |
c | workl(3*ncv+1:4*ncv). |
c | workl(6*ncv+1:6*ncv+ncv*ncv) := orthogonal Q that is |
c | the eigenvector matrix for H as returned by |
c | dsteqr . Not referenced if RVEC = .False. |
c | dsteqr. Not referenced if RVEC = .False. |
c | Ordering follows that of workl(4*ncv+1:5*ncv) |
c | workl(6*ncv+ncv*ncv+1:6*ncv+ncv*ncv+2*ncv) := |
c | Workspace. Needed by dsteqr and by pdseupd . |
c | Workspace. Needed by dsteqr and by pdseupd. |
c | GRAND total of NCV*(NCV+8) locations. |
c %-------------------------------------------------------%
c
@@ -439,13 +439,13 @@ c %---------------------------------%
c | Set machine dependent constant. |
c %---------------------------------%
c
eps23 = pdlamch (comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0 )
eps23 = pdlamch(comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0)
c
c %---------------------------------------%
c | RNORM is B-norm of the RESID(1:N). |
c | BNORM2 is the 2 norm of B*RESID(1:N). |
c | Upon exit of pdsaupd WORKD(1:N) has |
c | Upon exit of pdsaupd WORKD(1:N) has |
c | B*RESID(1:N). |
c %---------------------------------------%
c
@@ -453,13 +453,13 @@ c
if (bmat .eq. 'I') then
bnorm2 = rnorm
else if (bmat .eq. 'G') then
bnorm2 = pdnorm2 (comm, n, workd, 1)
bnorm2 = pdnorm2(comm, n, workd, 1)
end if
c
if (msglvl .gt. 2) then
call pdvout (comm, logfil, ncv, workl(irz), ndigit,
call pdvout(comm, logfil, ncv, workl(irz), ndigit,
& '_seupd: Ritz values passed in from _SAUPD.')
call pdvout (comm, logfil, ncv, workl(ibd), ndigit,
call pdvout(comm, logfil, ncv, workl(ibd), ndigit,
& '_seupd: Ritz estimates passed in from _SAUPD.')
end if
if (rvec) then
@@ -487,14 +487,14 @@ c %-------------------------------------%
c
np = ncv - nev
ishift = 0
call pdsgets (comm , ishift, which ,
call pdsgets(comm , ishift, which ,
& nev , np , workl(irz),
& workl(bounds), workl , workl(np+1))
& workl(bounds), workl)
c
if (msglvl .gt. 2) then
call pdvout (comm, logfil, ncv, workl(irz), ndigit,
call pdvout(comm, logfil, ncv, workl(irz), ndigit,
& '_seupd: Ritz values after calling _SGETS.')
call pdvout (comm, logfil, ncv, workl(bounds), ndigit,
call pdvout(comm, logfil, ncv, workl(bounds), ndigit,
& '_seupd: Ritz value indices after calling _SGETS.')
end if
c
@@ -540,10 +540,10 @@ c | eigenvectors of the final symmetric tridiagonal matrix H. |
c | Initialize the eigenvector matrix Q to the identity. |
c %-----------------------------------------------------------%
c
call dcopy (ncv-1, workl(ih+1) , 1, workl(ihb), 1)
call dcopy (ncv , workl(ih+ldh), 1, workl(ihd), 1)
call dcopy (ncv-1, workl(ih+1) , 1, workl(ihb), 1)
call dcopy (ncv , workl(ih+ldh), 1, workl(ihd), 1)
c
call dsteqr ('Identity', ncv , workl(ihd),
call dsteqr('Identity', ncv , workl(ihd),
& workl(ihb), workl(iq), ldq ,
& workl(iw) , ierr)
c
@@ -553,10 +553,10 @@ c
end if
c
if (msglvl .gt. 1) then
call dcopy (ncv, workl(iq+ncv-1), ldq, workl(iw), 1)
call pdvout (comm, logfil, ncv, workl(ihd), ndigit,
call dcopy (ncv, workl(iq+ncv-1), ldq, workl(iw), 1)
call pdvout (comm, logfil, ncv, workl(ihd), ndigit,
& '_seupd: NCV Ritz values of the final H matrix')
call pdvout (comm, logfil, ncv, workl(iw), ndigit,
call pdvout (comm, logfil, ncv, workl(iw), ndigit,
& '_seupd: last row of the eigenvector matrix for H')
end if
c
@@ -607,11 +607,11 @@ c
temp = workl(ihd+leftptr-1)
workl(ihd+leftptr-1) = workl(ihd+rghtptr-1)
workl(ihd+rghtptr-1) = temp
call dcopy (ncv, workl(iq+ncv*(leftptr-1)), 1,
call dcopy(ncv, workl(iq+ncv*(leftptr-1)), 1,
& workl(iw), 1)
call dcopy (ncv, workl(iq+ncv*(rghtptr-1)), 1,
call dcopy(ncv, workl(iq+ncv*(rghtptr-1)), 1,
& workl(iq+ncv*(leftptr-1)), 1)
call dcopy (ncv, workl(iw), 1,
call dcopy(ncv, workl(iw), 1,
& workl(iq+ncv*(rghtptr-1)), 1)
leftptr = leftptr + 1
rghtptr = rghtptr - 1
@@ -623,7 +623,7 @@ c
30 end if
c
if (msglvl .gt. 2) then
call pdvout (comm, logfil, ncv, workl(ihd), ndigit,
call pdvout (comm, logfil, ncv, workl(ihd), ndigit,
& '_seupd: The eigenvalues of H--reordered')
end if
c
@@ -631,7 +631,7 @@ c %----------------------------------------%
c | Load the converged Ritz values into D. |
c %----------------------------------------%
c
call dcopy (nconv, workl(ihd), 1, d, 1)
call dcopy(nconv, workl(ihd), 1, d, 1)
c
else
c
@@ -639,8 +639,8 @@ c %-----------------------------------------------------%
c | Ritz vectors not required. Load Ritz values into D. |
c %-----------------------------------------------------%
c
call dcopy (nconv, workl(ritz), 1, d, 1)
call dcopy (ncv, workl(ritz), 1, workl(ihd), 1)
call dcopy(nconv, workl(ritz), 1, d, 1)
call dcopy(ncv, workl(ritz), 1, workl(ihd), 1)
c
end if
c
@@ -658,9 +658,9 @@ c | bounds. Not necessary if only Ritz values are desired. |
c %---------------------------------------------------------%
c
if (rvec) then
call dsesrt ('LA', rvec , nconv, d, ncv, workl(iq), ldq)
call dsesrt('LA', rvec , nconv, d, ncv, workl(iq), ldq)
else
call dcopy (ncv, workl(bounds), 1, workl(ihb), 1)
call dcopy(ncv, workl(bounds), 1, workl(ihb), 1)
end if
c
else
@@ -674,13 +674,13 @@ c | For TYPE = 'BUCKLE' the transformation is |
c | lambda = sigma * theta / ( theta - 1 ) |
c | For TYPE = 'CAYLEY' the transformation is |
c | lambda = sigma * (theta + 1) / (theta - 1 ) |
c | where the theta are the Ritz values returned by pdsaupd . |
c | where the theta are the Ritz values returned by pdsaupd. |
c | NOTES: |
c | *The Ritz vectors are not affected by the transformation. |
c | They are only reordered. |
c %-------------------------------------------------------------%
c
call dcopy (ncv, workl(ihd), 1, workl(iw), 1)
call dcopy (ncv, workl(ihd), 1, workl(iw), 1)
if (type .eq. 'SHIFTI') then
do 40 k=1, ncv
workl(ihd+k-1) = one / workl(ihd+k-1) + sigma
@@ -712,14 +712,14 @@ c | match the ordering of the lambda. We`ll use them again for |
c | Ritz vector purification. |
c %-------------------------------------------------------------%
c
call dcopy (nconv, workl(ihd), 1, d, 1)
call dsortr ('LA', .true., nconv, workl(ihd), workl(iw))
call dcopy (nconv, workl(ihd), 1, d, 1)
call dsortr('LA', .true., nconv, workl(ihd), workl(iw))
if (rvec) then
call dsesrt ('LA', rvec , nconv, d, ncv, workl(iq), ldq)
call dsesrt('LA', rvec , nconv, d, ncv, workl(iq), ldq)
else
call dcopy (ncv, workl(bounds), 1, workl(ihb), 1)
call dscal (ncv, bnorm2/rnorm, workl(ihb), 1)
call dsortr ('LA', .true., nconv, d, workl(ihb))
call dcopy(ncv, workl(bounds), 1, workl(ihb), 1)
call dscal(ncv, bnorm2/rnorm, workl(ihb), 1)
call dsortr('LA', .true., nconv, d, workl(ihb))
end if
c
end if
@@ -738,7 +738,7 @@ c | the wanted invariant subspace located in the first NCONV |
c | columns of workl(iq,ldq). |
c %----------------------------------------------------------%
c
call dgeqr2 (ncv, nconv , workl(iq) ,
call dgeqr2(ncv, nconv , workl(iq) ,
& ldq, workl(iw+ncv), workl(ihb),
& ierr)
c
@@ -750,11 +750,11 @@ c | of the approximate invariant subspace associated with |
c | the Ritz values in workl(ihd). |
c %--------------------------------------------------------%
c
call dorm2r ('Right' , 'Notranspose', n ,
call dorm2r('Right' , 'Notranspose', n ,
& ncv , nconv , workl(iq),
& ldq , workl(iw+ncv), v ,
& ldv , workd(n+1) , ierr )
call dlacpy ('All', n, nconv, v, ldv, z, ldz)
call dlacpy('All', n, nconv, v, ldv, z, ldz)
c
c %-----------------------------------------------------%
c | In order to compute the Ritz estimates for the Ritz |
@@ -766,7 +766,7 @@ c
workl(ihb+j-1) = zero
65 continue
workl(ihb+ncv-1) = one
call dorm2r ('Left', 'Transpose' , ncv ,
call dorm2r('Left', 'Transpose' , ncv ,
& 1 , nconv , workl(iq) ,
& ldq , workl(iw+ncv), workl(ihb),
& ncv , temp , ierr )
@@ -790,11 +790,11 @@ c | * Determine Ritz estimates of the theta. |
c | If RVEC = .true. then compute Ritz estimates |
c | of the theta. |
c | If RVEC = .false. then copy Ritz estimates |
c | as computed by pdsaupd . |
c | as computed by pdsaupd. |
c | * Determine Ritz estimates of the lambda. |
c %-------------------------------------------------%
c
call dscal (ncv, bnorm2, workl(ihb), 1)
call dscal (ncv, bnorm2, workl(ihb), 1)
if (type .eq. 'SHIFTI') then
c
do 80 k=1, ncv
@@ -821,14 +821,14 @@ c
end if
c
if (type .ne. 'REGULR' .and. msglvl .gt. 1) then
call pdvout (comm, logfil, nconv, d, ndigit,
call pdvout (comm, logfil, nconv, d, ndigit,
& '_seupd: Untransformed converged Ritz values')
call pdvout (comm, logfil, nconv, workl(ihb), ndigit,
call pdvout (comm, logfil, nconv, workl(ihb), ndigit,
& '_seupd: Ritz estimates of the untransformed Ritz values')
else if (msglvl .gt. 1) then
call pdvout (comm, logfil, nconv, d, ndigit,
call pdvout (comm, logfil, nconv, d, ndigit,
& '_seupd: Converged Ritz values')
call pdvout (comm, logfil, nconv, workl(ihb), ndigit,
call pdvout (comm, logfil, nconv, workl(ihb), ndigit,
& '_seupd: Associated Ritz estimates')
end if
c
@@ -855,14 +855,14 @@ c
end if
c
if (type .ne. 'REGULR')
& call dger (n, nconv, one, resid, 1, workl(iw), 1, z, ldz)
& call dger(n, nconv, one, resid, 1, workl(iw), 1, z, ldz)
c
9000 continue
c
return
c
c %----------------%
c | End of pdseupd |
c | End of pdseupd |
c %----------------%
c
end
+4 -4
View File
@@ -69,7 +69,7 @@ c
c\Routines called:
c dsortr ARPACK utility sorting routine.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine that prints vectors.
c dcopy Level 1 BLAS that copies one vector to another.
c dswap Level 1 BLAS that swaps the contents of two vectors.
@@ -145,7 +145,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external dswap, dcopy, dsortr, second
external dswap, dcopy, dsortr, arscnd
c
c %---------------------%
c | Intrinsic Functions |
@@ -162,7 +162,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = msgets
c
if (which .eq. 'BE') then
@@ -212,7 +212,7 @@ c
call dcopy (np, ritz, 1, shifts, 1)
end if
c
call second (t1)
call arscnd (t1)
tsgets = tsgets + (t1 - t0)
c
if (msglvl .gt. 0) then
+10 -10
View File
@@ -99,7 +99,7 @@ c Restarted Arnoldi Iteration", Rice University Technical Report
c TR95-13, Department of Computational and Applied Mathematics.
c
c\Routines called:
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c psvout Parallel ARPACK utility routine for vector output.
c pslarnv Parallel wrapper for LAPACK routine slarnv (generates a random vector).
c sgemv Level 2 BLAS routine for matrix vector multiplication.
@@ -187,7 +187,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pslarnv, psvout, scopy, sgemv, second
external pslarnv, psvout, scopy, sgemv, arscnd
c
c %--------------------%
c | External Functions |
@@ -234,7 +234,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mgetv0
c
ierr = 0
@@ -261,7 +261,7 @@ c | Force the starting vector into the range of OP to handle |
c | the generalized problem when B is possibly (singular). |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nopx = nopx + 1
ipntr(1) = 1
@@ -284,7 +284,7 @@ c %-----------------------------------------------%
c
if (orth) go to 40
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
c
c %------------------------------------------------------%
@@ -292,7 +292,7 @@ c | Starting vector is now in the range of OP; r = OP*r; |
c | Compute B-norm of starting vector. |
c %------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
first = .TRUE.
if (bmat .eq. 'G') then
nbx = nbx + 1
@@ -308,7 +308,7 @@ c
20 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
endif
c
@@ -353,7 +353,7 @@ c %----------------------------------------------------------%
c | Compute the B-norm of the orthogonalized starting vector |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call scopy (n, resid, 1, workd(n+1), 1)
@@ -368,7 +368,7 @@ c
40 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
endif
c
@@ -427,7 +427,7 @@ c
end if
ido = 99
c
call second (t1)
call arscnd (t1)
tgetv0 = tgetv0 + (t1 - t0)
c
9000 continue
+15 -15
View File
@@ -138,7 +138,7 @@ c
c\Routines called:
c psgetv0 Parallel ARPACK routine to generate the initial vector.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c psmout Parallel ARPACK utility routine that prints matrices
c psvout Parallel ARPACK utility routine that prints vectors.
c slabad LAPACK routine that computes machine constants.
@@ -287,7 +287,7 @@ c | External Subroutines |
c %----------------------%
c
external saxpy, scopy, sscal, sgemv, psgetv0, slabad,
& psvout, psmout, pivout, second
& psvout, psmout, pivout, arscnd
c
c %--------------------%
c | External Functions |
@@ -338,7 +338,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mnaitr
c
c %------------------------------%
@@ -449,7 +449,7 @@ c | which spans OP and exit. |
c %------------------------------------------------%
c
info = j - 1
call second (t1)
call arscnd (t1)
tnaitr = tnaitr + (t1 - t0)
ido = 99
go to 9000
@@ -489,7 +489,7 @@ c %------------------------------------------------------%
c
step3 = .true.
nopx = nopx + 1
call second (t2)
call arscnd (t2)
call scopy (n, v(1,j), 1, workd(ivj), 1)
ipntr(1) = ivj
ipntr(2) = irj
@@ -509,7 +509,7 @@ c | WORKD(IRJ:IRJ+N-1) := OP*v_{j} |
c | if step3 = .true. |
c %----------------------------------%
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
step3 = .false.
@@ -525,7 +525,7 @@ c | STEP 4: Finish extending the Arnoldi |
c | factorization to length j. |
c %---------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
step4 = .true.
@@ -550,7 +550,7 @@ c | if step4 = .true. |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -597,11 +597,11 @@ c
c
if (j .gt. 1) h(j,j-1) = betaj
c
call second (t4)
call arscnd (t4)
c
orth1 = .true.
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call scopy (n, resid, 1, workd(irj), 1)
@@ -625,7 +625,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*r_{j}. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -704,7 +704,7 @@ c
call saxpy (j, one, workl(1), 1, h(1,j), 1)
c
orth2 = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call scopy (n, resid, 1, workd(irj), 1)
@@ -728,7 +728,7 @@ c | Back from reverse communication if ORTH2 = .true. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -807,7 +807,7 @@ c
rstart = .false.
orth2 = .false.
c
call second (t5)
call arscnd (t5)
titref = titref + (t5 - t4)
c
c %------------------------------------%
@@ -816,7 +816,7 @@ c %------------------------------------%
c
j = j + 1
if (j .gt. k+np) then
call second (t1)
call arscnd (t1)
tnaitr = tnaitr + (t1 - t0)
ido = 99
do 110 i = max(1,k), k+np-1
+3 -3
View File
@@ -198,7 +198,7 @@ c | External Subroutines |
c %----------------------%
c
external saxpy, scopy, sscal, slacpy, slarf, slarfg, slartg,
& slaset, slabad, second, pivout, psvout, psmout
& slaset, slabad, arscnd, pivout, psvout, psmout
c
c %--------------------%
c | External Functions |
@@ -246,7 +246,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mnapps
c
kplusp = kev + np
@@ -645,7 +645,7 @@ c
end if
c
9000 continue
call second (t1)
call arscnd (t1)
tnapps = tnapps + (t1 - t0)
c
return
+6 -6
View File
@@ -145,7 +145,7 @@ c psneigh Parallel ARPACK compute Ritz values and error bounds routine.
c psngets Parallel ARPACK reorder Ritz values and error bounds routine.
c ssortc ARPACK sorting routine.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c psmout Parallel ARPACK utility routine that prints matrices
c psvout ARPACK utility routine that prints vectors.
c pslamch ScaLAPACK routine that determines machine constants.
@@ -252,7 +252,7 @@ c %----------------------%
c
external scopy, psgetv0, psnaitr, snconv,
& psneigh, psngets, psnapps,
& psvout, pivout, second
& psvout, pivout, arscnd
c
c %--------------------%
c | External Functions |
@@ -274,7 +274,7 @@ c %-----------------------%
c
if (ido .eq. 0) then
c
call second (t0)
call arscnd (t0)
c
msglvl = mnaup2
c
@@ -776,7 +776,7 @@ c | the first step of the next call to psnaitr. |
c %---------------------------------------------%
c
cnorm = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call scopy (n, resid, 1, workd(n+1), 1)
@@ -801,7 +801,7 @@ c | WORKD(1:N) := B*RESID |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
endif
c
@@ -841,7 +841,7 @@ c %------------%
c | Error Exit |
c %------------%
c
call second (t1)
call arscnd (t1)
tnaup2 = t1 - t0
c
9000 continue
+4 -4
View File
@@ -382,7 +382,7 @@ c\Routines called:
c psnaup2 Parallel ARPACK routine that implements the Implicitly Restarted
c Arnoldi Iteration.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c psvout Parallel ARPACK utility routine that prints vectors.
c pslamch ScaLAPACK routine that determines machine constants.
c
@@ -468,7 +468,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external psnaup2, psvout, pivout, second, sstatn
external psnaup2, psvout, pivout, arscnd, sstatn
c
c %--------------------%
c | External Functions |
@@ -490,7 +490,7 @@ c | & message level for debugging |
c %-------------------------------%
c
call sstatn
call second (t0)
call arscnd (t0)
msglvl = mnaupd
c
c %----------------%
@@ -654,7 +654,7 @@ c
& '_naupd: Associated Ritz estimates')
end if
c
call second (t1)
call arscnd (t1)
tnaupd = t1 - t0
c
if (msglvl .gt. 0) then
+13 -9
View File
@@ -53,7 +53,7 @@ c the front end. This is needed to keep the full Schur form
c of H and also in the calculation of the eigenvectors of H.
c
c IERR Integer. (OUTPUT)
c Error exit flag from slaqrb or strevc.
c Error exit flag from slahqr or strevc.
c
c\EndDoc
c
@@ -65,9 +65,9 @@ c\Local variables:
c xxxxxx real
c
c\Routines called:
c slaqrb ARPACK routine to compute the real Schur form of an
c slahqr ARPACK routine to compute the real Schur form of an
c upper Hessenberg matrix and last row of the Schur vectors.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c smout ARPACK utility routine that prints matrices
c svout ARPACK utility routine that prints vectors.
c slacpy LAPACK matrix copy routine.
@@ -157,7 +157,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external scopy, slacpy, slaqrb, strevc, psvout, second
external scopy, slacpy, slahqr, strevc, svout, arscnd
c
c %--------------------%
c | External Functions |
@@ -183,7 +183,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mneigh
c
if (msglvl .gt. 2) then
@@ -195,13 +195,17 @@ c %-----------------------------------------------------------%
c | 1. Compute the eigenvalues, the last components of the |
c | corresponding Schur vectors and the full Schur form T |
c | of the current upper Hessenberg matrix H. |
c | slaqrb returns the full Schur form of H in WORKL(1:N**2) |
c | slahqr returns the full Schur form of H in WORKL(1:N**2) |
c | and the last components of the Schur vectors in BOUNDS. |
c %-----------------------------------------------------------%
c
call slacpy ('All', n, n, h, ldh, workl, n)
call slaqrb (.true., n, 1, n, workl, n, ritzr, ritzi, bounds,
& ierr)
do 5 j = 1, n-1
bounds(j) = zero
5 continue
bounds(n) = one
call slahqr(.true., .true., n, 1, n, workl, n, ritzr, ritzi, 1, 1,
& bounds, 1, ierr)
if (ierr .ne. 0) go to 9000
c
if (msglvl .gt. 1) then
@@ -314,7 +318,7 @@ c
& '_neigh: Ritz estimates for the eigenvalues of H')
end if
c
call second (t1)
call arscnd (t1)
tneigh = tneigh + (t1 - t0)
c
9000 continue
+3 -3
View File
@@ -149,7 +149,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external scopy, ssortc, second
external scopy, ssortc, arscnd
c
c %----------------------%
c | Intrinsics Functions |
@@ -166,7 +166,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mngets
c
c %----------------------------------------------------%
@@ -222,7 +222,7 @@ c
call ssortc ( 'SR', .true., np, bounds, ritzr, ritzi )
end if
c
call second (t1)
call arscnd (t1)
tngets = tngets + (t1 - t0)
c
if (msglvl .gt. 0) then
+14 -14
View File
@@ -280,7 +280,7 @@ c | External Subroutines |
c %----------------------%
c
external saxpy, scopy, sscal, sgemv, psgetv0, psvout, psmout,
& slascl, pivout, second
& slascl, pivout, arscnd
c
c %--------------------%
c | External Functions |
@@ -325,7 +325,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = msaitr
c
c %------------------------------%
@@ -445,7 +445,7 @@ c | which spans OP and exit. |
c %------------------------------------------------%
c
info = j - 1
call second (t1)
call arscnd (t1)
tsaitr = tsaitr + (t1 - t0)
ido = 99
go to 9000
@@ -485,7 +485,7 @@ c %------------------------------------------------------%
c
step3 = .true.
nopx = nopx + 1
call second (t2)
call arscnd (t2)
call scopy (n, v(1,j), 1, workd(ivj), 1)
ipntr(1) = ivj
ipntr(2) = irj
@@ -504,7 +504,7 @@ c | Back from reverse communication; |
c | WORKD(IRJ:IRJ+N-1) := OP*v_{j}. |
c %-----------------------------------%
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
c
step3 = .false.
@@ -525,7 +525,7 @@ c | assumed to have A*v_{j}. |
c %-------------------------------------------%
c
if (mode .eq. 2) go to 65
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
step4 = .true.
@@ -549,7 +549,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*OP*v_{j}. |
c %-----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -621,12 +621,12 @@ c
else
h(j,1) = rnorm
end if
call second (t4)
call arscnd (t4)
c
orth1 = .true.
iter = 0
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call scopy (n, resid, 1, workd(irj), 1)
@@ -650,7 +650,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*r_{j}. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -726,7 +726,7 @@ c
h(j,2) = h(j,2) + workl(j)
c
orth2 = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call scopy (n, resid, 1, workd(irj), 1)
@@ -750,7 +750,7 @@ c | Back from reverse communication if ORTH2 = .true. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -823,7 +823,7 @@ c
rstart = .false.
orth2 = .false.
c
call second (t5)
call arscnd (t5)
titref = titref + (t5 - t4)
c
c %----------------------------------------------------------%
@@ -847,7 +847,7 @@ c %------------------------------------%
c
j = j + 1
if (j .gt. k+np) then
call second (t1)
call arscnd (t1)
tsaitr = tsaitr + (t1 - t0)
ido = 99
c
+4 -4
View File
@@ -93,7 +93,7 @@ c TR95-13, Department of Computational and Applied Mathematics.
c
c\Routines called:
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c psvout Parallel ARPACK utility routine that prints vectors.
c pslamch ScaLAPACK routine that determines machine constants.
c slartg LAPACK Givens rotation construction routine.
@@ -187,7 +187,7 @@ c | External Subroutines |
c %----------------------%
c
external saxpy, scopy, sscal, slacpy, slartg, slaset, psvout,
& pivout, second, sgemv
& pivout, arscnd, sgemv
c
c %--------------------%
c | External Functions |
@@ -224,7 +224,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = msapps
c
kplusp = kev + np
@@ -514,7 +514,7 @@ c
end if
end if
c
call second (t1)
call arscnd (t1)
tsapps = tsapps + (t1 - t0)
c
9000 continue
+6 -6
View File
@@ -153,7 +153,7 @@ c sstrqb ARPACK routine that computes all eigenvalues and the
c last component of the eigenvectors of a symmetric
c tridiagonal matrix using the implicit QL or QR method.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c psvout Parallel ARPACK utility routine that prints vectors.
c pslamch ScaLAPACK routine that determines machine constants.
c scopy Level 1 BLAS that copies one vector to another.
@@ -253,7 +253,7 @@ c %----------------------%
c
external scopy, psgetv0, pssaitr, sscal, ssconv,
& psseigt, pssgets, pssapps,
& ssortr, psvout, pivout, second
& ssortr, psvout, pivout, arscnd
c
c %--------------------%
c | External Functions |
@@ -280,7 +280,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = msaup2
c
c %---------------------------------%
@@ -791,7 +791,7 @@ c | the first step of the next call to pssaitr. |
c %---------------------------------------------%
c
cnorm = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call scopy (n, resid, 1, workd(n+1), 1)
@@ -816,7 +816,7 @@ c | WORKD(1:N) := B*RESID |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -859,7 +859,7 @@ c %------------%
c | Error exit |
c %------------%
c
call second (t1)
call arscnd (t1)
tsaup2 = t1 - t0
c
9000 continue
+4 -4
View File
@@ -384,7 +384,7 @@ c Arnoldi Iteration.
c sstats ARPACK routine that initializes timing and other statistics
c variables.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c psvout Parallel ARPACK utility routine that prints vectors.
c pslamch ScaLAPACK routine that determines machine constants.
c
@@ -472,7 +472,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pssaup2, psvout, pivout, second, sstats
external pssaup2, psvout, pivout, arscnd, sstats
c
c %--------------------%
c | External Functions |
@@ -494,7 +494,7 @@ c | & message level for debugging |
c %-------------------------------%
c
call sstats
call second (t0)
call arscnd (t0)
msglvl = msaupd
c
ierr = 0
@@ -654,7 +654,7 @@ c
& '_saupd: corresponding error bounds')
end if
c
call second (t1)
call arscnd (t1)
tsaupd = t1 - t0
c
if (msglvl .gt. 0) then
+4 -4
View File
@@ -63,7 +63,7 @@ c\Routines called:
c sstqrb ARPACK routine that computes the eigenvalues and the
c last components of the eigenvectors of a symmetric
c and tridiagonal matrix.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c psvout Parallel ARPACK utility routine that prints vectors.
c scopy Level 1 BLAS that copies one vector to another.
c sscal Level 1 BLAS that scales a vector.
@@ -141,7 +141,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external scopy, sstqrb, psvout, second
external scopy, sstqrb, psvout, arscnd
c
c %---------------------%
c | Intrinsic Functions |
@@ -158,7 +158,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mseigt
c
if (msglvl .gt. 0) then
@@ -190,7 +190,7 @@ c
bounds(k) = rnorm*abs(bounds(k))
30 continue
c
call second (t1)
call arscnd (t1)
tseigt = tseigt + (t1 - t0)
c
9000 continue
+16 -16
View File
@@ -2,7 +2,7 @@ c\BeginDoc
c
c\Name: psseupd
c
c Message Passing Layer: BLACS
c Message Passing Layer: BLACS
c
c\Description:
c
@@ -46,7 +46,7 @@ c ( COMM, RVEC, HOWMNY, SELECT, D, Z, LDZ, SIGMA, BMAT, N, WHICH, NEV, TOL,
c RESID, NCV, V, LDV, IPARAM, IPNTR, WORKD, WORKL, LWORKL, INFO )
c
c\Arguments
c COMM BLACS Communicator for the processor grid. (INPUT)
c COMM BLACS Communicator for the processor grid. (INPUT)
c
c RVEC LOGICAL (INPUT)
c Specifies whether Ritz vectors corresponding to the Ritz value
@@ -69,7 +69,7 @@ c computed. To select the Ritz vector corresponding to a
c Ritz value D(j), SELECT(j) must be set to .TRUE..
c If HOWMNY = 'A' , SELECT is used as workspace.
c
c D Real array of dimension NEV. (OUTPUT)
c D Real array of dimension NEV. (OUTPUT)
c On exit, D contains the Ritz value approximations to the
c eigenvalues of A*z = lambda*B*z. The values are returned
c in ascending order. If IPARAM(7) = 3,4,5 then D represents
@@ -78,7 +78,7 @@ c those of the original eigensystem A*z = lambda*B*z. If
c IPARAM(7) = 1,2 then the Ritz values of OP are the same
c as the those of A*z = lambda*B*z.
c
c Z Real N by NEV array if HOWMNY = 'A'. (OUTPUT)
c Z Real N by NEV array if HOWMNY = 'A'. (OUTPUT)
c On exit, Z contains the B-orthonormal Ritz vectors of the
c eigensystem A*z = lambda*B*z corresponding to the Ritz
c value approximations.
@@ -90,7 +90,7 @@ c LDZ Integer. (INPUT)
c The leading dimension of the array Z. If Ritz vectors are
c desired, then LDZ .ge. max( 1, N ). In any case, LDZ .ge. 1.
c
c SIGMA Real (INPUT)
c SIGMA Real (INPUT)
c If IPARAM(7) = 3,4,5 represents the shift. Not referenced if
c IPARAM(7) = 1 or 2.
c
@@ -109,7 +109,7 @@ c the the last call to PSSAUPD and the call to PSSEUPD.
c
c Two of these parameters (WORKL, INFO) are also output parameters:
c
c WORKL Real work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL Real work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL(1:4*ncv) contains information obtained in
c PSSAUPD. They are not changed by PSSEUPD.
c WORKL(4*ncv+1:ncv*ncv+8*ncv) holds the
@@ -216,7 +216,7 @@ c\Revision history:
c Starting Point: Serial Code FILE: seupd.F SID: 2.4
c
c\SCCS Information:
c FILE: seupd.F SID: 1.10 DATE OF SID: 04/10/01
c FILE: seupd.F SID: 1.11 DATE OF SID: 10/25/03
c
c\EndLib
c
@@ -229,7 +229,7 @@ c-----------------------------------------------------------------------
& workl , lworkl, info )
c
c %--------------------%
c | BLACS Communicator |
c | BLACS Communicator |
c %--------------------%
c
integer comm
@@ -248,7 +248,7 @@ c
character bmat, howmny, which*2
logical rvec
integer info, ldz, ldv, lworkl, n, ncv, nev
Real
Real
& sigma, tol
c
c %-----------------%
@@ -257,7 +257,7 @@ c %-----------------%
c
integer iparam(7), ipntr(11)
logical select(ncv)
Real
Real
& d(nev), resid(n), v(ldv,ncv), z(ldz, nev),
& workd(2*n), workl(lworkl)
c
@@ -265,9 +265,9 @@ c %------------%
c | Parameters |
c %------------%
c
Real
Real
& one, zero
parameter (one = 1.0 , zero = 0.0 )
parameter (one = 1.0, zero = 0.0)
c
c %---------------%
c | Local Scalars |
@@ -279,7 +279,7 @@ c
& ldq , mode , msglvl, nconv , next ,
& ritz , irz , ibd , np , ishift,
& leftptr, rghtptr, numcnv, jj
Real
Real
& bnorm2, rnorm, temp, temp1, eps23
logical reord
c
@@ -294,7 +294,7 @@ c %--------------------%
c | External Functions |
c %--------------------%
c
Real
Real
& psnorm2, pslamch
external psnorm2, pslamch
c
@@ -440,7 +440,7 @@ c | Set machine dependent constant. |
c %---------------------------------%
c
eps23 = pslamch(comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0 )
eps23 = eps23**(2.0 / 3.0)
c
c %---------------------------------------%
c | RNORM is B-norm of the RESID(1:N). |
@@ -489,7 +489,7 @@ c
ishift = 0
call pssgets(comm , ishift, which ,
& nev , np , workl(irz),
& workl(bounds), workl , workl(np+1))
& workl(bounds), workl)
c
if (msglvl .gt. 2) then
call psvout(comm, logfil, ncv, workl(irz), ndigit,
+4 -4
View File
@@ -69,7 +69,7 @@ c
c\Routines called:
c ssortr ARPACK utility sorting routine.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c psvout Parallel ARPACK utility routine that prints vectors.
c scopy Level 1 BLAS that copies one vector to another.
c sswap Level 1 BLAS that swaps the contents of two vectors.
@@ -145,7 +145,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external sswap, scopy, ssortr, second
external sswap, scopy, ssortr, arscnd
c
c %---------------------%
c | Intrinsic Functions |
@@ -162,7 +162,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = msgets
c
if (which .eq. 'BE') then
@@ -212,7 +212,7 @@ c
call scopy (np, ritz, 1, shifts, 1)
end if
c
call second (t1)
call arscnd (t1)
tsgets = tsgets + (t1 - t0)
c
if (msglvl .gt. 0) then
+10 -10
View File
@@ -95,7 +95,7 @@ c a k-Step Arnoldi Method", SIAM J. Matr. Anal. Apps., 13 (1992),
c pp 357-385.
c
c\Routines called:
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pzvout Parallel ARPACK utility routine that prints vectors.
c pzlarnv Parallel wrapper for LAPACK routine zlarnv (generates a random vector).
c zgemv Level 2 BLAS routine for matrix vector multiplication.
@@ -188,7 +188,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external zcopy , zgemv , pzlarnv , pzvout , second
external zcopy , zgemv , pzlarnv , pzvout , arscnd
c
c %--------------------%
c | External Functions |
@@ -255,7 +255,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mgetv0
c
ierr = 0
@@ -282,7 +282,7 @@ c | Force the starting vector into the range of OP to handle |
c | the generalized problem when B is possibly (singular). |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nopx = nopx + 1
ipntr(1) = 1
@@ -305,7 +305,7 @@ c %-----------------------------------------------%
c
if (orth) go to 40
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
c
c %------------------------------------------------------%
@@ -313,7 +313,7 @@ c | Starting vector is now in the range of OP; r = OP*r; |
c | Compute B-norm of starting vector. |
c %------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
first = .TRUE.
if (bmat .eq. 'G') then
nbx = nbx + 1
@@ -329,7 +329,7 @@ c
20 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -374,7 +374,7 @@ c %----------------------------------------------------------%
c | Compute the B-norm of the orthogonalized starting vector |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call zcopy (n, resid, 1, workd(n+1), 1)
@@ -389,7 +389,7 @@ c
40 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -449,7 +449,7 @@ c
end if
ido = 99
c
call second (t1)
call arscnd (t1)
tgetv0 = tgetv0 + (t1 - t0)
c
9000 continue
+15 -15
View File
@@ -137,7 +137,7 @@ c
c\Routines called:
c pzgetv0 Parallel ARPACK routine to generate the initial vector.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pzmout Parallel ARPACK utility routine that prints matrices
c pzvout Parallel ARPACK utility routine that prints vectors.
c zlanhs LAPACK routine that computes various norms of a matrix.
@@ -296,7 +296,7 @@ c | External Subroutines |
c %----------------------%
c
external zaxpy, zcopy, zscal, zgemv, pzgetv0, dlabad,
& zdscal, pzvout, pzmout, pivout, second
& zdscal, pzvout, pzmout, pivout, arscnd
c
c %--------------------%
c | External Functions |
@@ -349,7 +349,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mcaitr
c
c %------------------------------%
@@ -460,7 +460,7 @@ c | which spans OP and exit. |
c %------------------------------------------------%
c
info = j - 1
call second (t1)
call arscnd (t1)
tcaitr = tcaitr + (t1 - t0)
ido = 99
go to 9000
@@ -500,7 +500,7 @@ c %------------------------------------------------------%
c
step3 = .true.
nopx = nopx + 1
call second (t2)
call arscnd (t2)
call zcopy (n, v(1,j), 1, workd(ivj), 1)
ipntr(1) = ivj
ipntr(2) = irj
@@ -520,7 +520,7 @@ c | WORKD(IRJ:IRJ+N-1) := OP*v_{j} |
c | if step3 = .true. |
c %----------------------------------%
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
step3 = .false.
@@ -536,7 +536,7 @@ c | STEP 4: Finish extending the Arnoldi |
c | factorization to length j. |
c %---------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
step4 = .true.
@@ -561,7 +561,7 @@ c | if step4 = .true. |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -608,11 +608,11 @@ c
c
if (j .gt. 1) h(j,j-1) = dcmplx(betaj, rzero)
c
call second (t4)
call arscnd (t4)
c
orth1 = .true.
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call zcopy (n, resid, 1, workd(irj), 1)
@@ -636,7 +636,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*r_{j}. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -716,7 +716,7 @@ c
call zaxpy (j, one, workl(1), 1, h(1,j), 1)
c
orth2 = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call zcopy (n, resid, 1, workd(irj), 1)
@@ -740,7 +740,7 @@ c | Back from reverse communication if ORTH2 = .true. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -819,7 +819,7 @@ c
rstart = .false.
orth2 = .false.
c
call second (t5)
call arscnd (t5)
titref = titref + (t5 - t4)
c
c %------------------------------------%
@@ -828,7 +828,7 @@ c %------------------------------------%
c
j = j + 1
if (j .gt. k+np) then
call second (t1)
call arscnd (t1)
tcaitr = tcaitr + (t1 - t0)
ido = 99
do 110 i = max(1,k), k+np-1
+41 -6
View File
@@ -96,7 +96,7 @@ c pp 357-385.
c
c\Routines called:
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pzmout Parallel ARPACK utility routine that prints matrices
c pzvout Parallel ARPACK utility routine that prints vectors.
c zlacpy LAPACK matrix copy routine.
@@ -127,7 +127,7 @@ c\Revision history:
c Starting Point: Serial Complex Code FILE: napps.F SID: 2.1
c
c\SCCS Information:
c FILE: napps.F SID: 1.3 DATE OF SID: 06/04/98
c FILE: napps.F SID: 1.4 DATE OF SID: 10/25/03
c
c\Remarks
c 1. In this version, each shift is applied to all the sublocks of
@@ -200,7 +200,7 @@ c | External Subroutines |
c %----------------------%
c
external zaxpy, zcopy, zgemv, zscal, zlacpy, zlartg,
& pzvout, zlaset, dlabad, pzmout, second, pivout
& pzvout, zlaset, dlabad, pzmout, arscnd, pivout
c
c %--------------------%
c | External Functions |
@@ -243,7 +243,7 @@ c | overflow should not occur. |
c | REFERENCE: LAPACK subroutine zlahqr |
c %-----------------------------------------------%
c
unfl = dlamch( 'safe minimum' )
unfl = pdlamch( comm, 'safe minimum' )
ovfl = dble(one / unfl)
call dlabad( unfl, ovfl )
ulp = dlamch( 'precision' )
@@ -256,7 +256,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mcapps
c
kplusp = kev + np
@@ -282,6 +282,13 @@ c %----------------------------------------------%
c
do 110 jj = 1, np
sigma = shift(jj)
c
if (msglvl .gt. 2 ) then
call pivout (comm, logfil, 1, jj, ndigit,
& '_napps: shift number.')
call pzvout (comm, logfil, 1, sigma, ndigit,
& '_napps: Value of the shift ')
end if
c
istart = 1
20 continue
@@ -299,6 +306,14 @@ c
& tst1 = zlanhs( '1', kplusp-jj+1, h, ldh, workl )
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,
& '_napps: matrix splitting at row/column no.')
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.')
end if
iend = i
h(i+1,i) = zero
go to 40
@@ -307,6 +322,12 @@ c
iend = kplusp
40 continue
c
if (msglvl .gt. 2) then
call pivout (comm, logfil, 1, istart, ndigit,
& '_napps: Start of current block ')
call pivout (comm, logfil, 1, iend, ndigit,
& '_napps: End of current block ')
end if
c
c %------------------------------------------------%
c | No reason to apply a shift to block of order 1 |
@@ -474,9 +495,23 @@ c
call zscal (n, q(kplusp,kev), resid, 1)
if ( dble( h(kev+1,kev) ) .gt. rzero )
& call zaxpy (n, h(kev+1,kev), v(1,kev+1), 1, resid, 1)
c
if (msglvl .gt. 1) then
call pzvout (comm, logfil, 1, q(kplusp,kev), ndigit,
& '_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,
& '_napps: Order of the final Hessenberg matrix ')
if (msglvl .gt. 2) then
call pzmout (comm, logfil, kev, kev, h, ldh, ndigit,
& '_napps: updated Hessenberg matrix H for next iteration')
end if
c
end if
c
9000 continue
call second (t1)
call arscnd (t1)
tcapps = tcapps + (t1 - t0)
c
return
+103 -104
View File
@@ -1,22 +1,22 @@
c\BeginDoc
c
c\Name: pznaup2
c\Name: pznaup2
c
c Message Passing Layer: BLACS
c Message Passing Layer: BLACS
c
c\Description:
c Intermediate level interface called by pznaupd .
c Intermediate level interface called by pznaupd.
c
c\Usage:
c call pznaup2
c call pznaup2
c ( COMM, IDO, BMAT, N, WHICH, NEV, NP, TOL, RESID, MODE, IUPD,
c ISHIFT, MXITER, V, LDV, H, LDH, RITZ, BOUNDS,
c Q, LDQ, WORKL, IPNTR, WORKD, RWORK, INFO )
c
c\Arguments
c
c COMM, IDO, BMAT, N, WHICH, NEV, TOL, RESID: same as defined in pznaupd .
c MODE, ISHIFT, MXITER: see the definition of IPARAM in pznaupd .
c COMM, IDO, BMAT, N, WHICH, NEV, TOL, RESID: same as defined in pznaupd.
c MODE, ISHIFT, MXITER: see the definition of IPARAM in pznaupd.
c
c NP Integer. (INPUT/OUTPUT)
c Contains the number of implicit shifts to apply during
@@ -39,7 +39,7 @@ c IUPD Integer. (INPUT)
c IUPD .EQ. 0: use explicit restart instead implicit update.
c IUPD .NE. 0: use implicit update.
c
c V Complex*16 N by (NEV+NP) array. (INPUT/OUTPUT)
c V Complex*16 N by (NEV+NP) array. (INPUT/OUTPUT)
c The Arnoldi basis vectors are returned in the first NEV
c columns of V.
c
@@ -47,21 +47,21 @@ c LDV Integer. (INPUT)
c Leading dimension of V exactly as declared in the calling
c program.
c
c H Complex*16 (NEV+NP) by (NEV+NP) array. (OUTPUT)
c H Complex*16 (NEV+NP) by (NEV+NP) array. (OUTPUT)
c H is used to store the generated upper Hessenberg matrix
c
c LDH Integer. (INPUT)
c Leading dimension of H exactly as declared in the calling
c program.
c
c RITZ Complex*16 array of length NEV+NP. (OUTPUT)
c RITZ Complex*16 array of length NEV+NP. (OUTPUT)
c RITZ(1:NEV) contains the computed Ritz values of OP.
c
c BOUNDS Complex*16 array of length NEV+NP. (OUTPUT)
c BOUNDS Complex*16 array of length NEV+NP. (OUTPUT)
c BOUNDS(1:NEV) contain the error bounds corresponding to
c the computed Ritz values.
c
c Q Complex*16 (NEV+NP) by (NEV+NP) array. (WORKSPACE)
c Q Complex*16 (NEV+NP) by (NEV+NP) array. (WORKSPACE)
c Private (replicated) work array used to accumulate the
c rotation in the shift application step.
c
@@ -69,7 +69,7 @@ c LDQ Integer. (INPUT)
c Leading dimension of Q exactly as declared in the calling
c program.
c
c WORKL Complex*16 work array of length at least
c WORKL Complex*16 work array of length at least
c (NEV+NP)**2 + 3*(NEV+NP). (WORKSPACE)
c Private (replicated) array on each PE or array allocated on
c the front end. It is used in shifts calculation, shifts
@@ -86,13 +86,13 @@ c IPNTR(3): pointer to the vector B * X when used in the
c shift-and-invert mode. X is the current operand.
c -------------------------------------------------------------
c
c WORKD Complex*16 work array of length 3*N. (WORKSPACE)
c WORKD Complex*16 work array of length 3*N. (WORKSPACE)
c Distributed array to be used in the basic Arnoldi iteration
c for reverse communication. The user should not use WORKD
c as temporary workspace during the iteration !!!!!!!!!!
c See Data Distribution Note in PZNAUPD .
c See Data Distribution Note in PZNAUPD.
c
c RWORK Double precision work array of length NEV+NP ( WORKSPACE)
c RWORK Double precision work array of length NEV+NP ( WORKSPACE)
c Private (replicated) array on each PE or array allocated on
c the front end.
c
@@ -119,7 +119,7 @@ c
c\BeginLib
c
c\Local variables:
c xxxxxx Complex*16
c xxxxxx Complex*16
c
c\References:
c 1. D.C. Sorensen, "Implicit Application of Polynomial Filters in
@@ -130,23 +130,23 @@ c Restarted Arnoldi Iteration", Rice University Technical Report
c TR95-13, Department of Computational and Applied Mathematics.
c
c\Routines called:
c pzgetv0 Parallel ARPACK initial vector generation routine.
c pznaitr Parallel ARPACK Arnoldi factorization routine.
c pznapps Parallel ARPACK application of implicit shifts routine.
c pzneigh Parallel ARPACK compute Ritz values and error bounds routine.
c pzngets Parallel ARPACK reorder Ritz values and error bounds routine.
c zsortc ARPACK sorting routine.
c pzgetv0 Parallel ARPACK initial vector generation routine.
c pznaitr Parallel ARPACK Arnoldi factorization routine.
c pznapps Parallel ARPACK application of implicit shifts routine.
c pzneigh Parallel ARPACK compute Ritz values and error bounds routine.
c pzngets Parallel ARPACK reorder Ritz values and error bounds routine.
c zsortc ARPACK sorting routine.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c pzmout Parallel ARPACK utility routine that prints matrices
c pzvout Parallel ARPACK utility routine that prints vectors.
c pdvout ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c dlapy2 LAPACK routine to compute sqrt(x**2+y**2) carefully.
c zcopy Level 1 BLAS that copies one vector to another .
c zdotc Level 1 BLAS that computes the scalar product of two vectors.
c zswap Level 1 BLAS that swaps two vectors.
c pdznorm2 Parallel version of Level 1 BLAS that computes the norm of a vector.
c arscnd ARPACK utility routine for timing.
c pzmout Parallel ARPACK utility routine that prints matrices
c pzvout Parallel ARPACK utility routine that prints vectors.
c pdvout ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c dlapy2 LAPACK routine to compute sqrt(x**2+y**2) carefully.
c zcopy Level 1 BLAS that copies one vector to another .
c zdotc Level 1 BLAS that computes the scalar product of two vectors.
c zswap Level 1 BLAS that swaps two vectors.
c pdznorm2 Parallel version of Level 1 BLAS that computes the norm of a vector.
c
c\Author
c Danny Sorensen Phuong Vu
@@ -156,7 +156,7 @@ c Applied Mathematics
c Rice University
c Houston, Texas
c
c FILE: naup2.F SID: 1.6 DATE OF SID: 06/01/00 RELEASE: 1
c FILE: naup2.F SID: 1.7 DATE OF SID: 10/25/03 RELEASE: 1
c
c\Remarks
c 1. None
@@ -165,7 +165,7 @@ c\EndLib
c
c-----------------------------------------------------------------------
c
subroutine pznaup2
subroutine pznaup2
& ( comm, ido, bmat, n, which, nev, np, tol, resid, mode, iupd,
& ishift, mxiter, v, ldv, h, ldh, ritz, bounds,
& q, ldq, workl, ipntr, workd, rwork, info )
@@ -176,7 +176,7 @@ c | BLACS Variables and Routines |
c %------------------------------%
c
integer comm
external zgsum2d
external zgsum2d
c
c %----------------------------------------------------%
c | Include files for debugging and timing information |
@@ -192,7 +192,7 @@ c
character bmat*1, which*2
integer ido, info, ishift, iupd, mode, ldh, ldq, ldv, mxiter,
& n, nev, np
Double precision
Double precision
& tol
c
c %-----------------%
@@ -200,23 +200,23 @@ c | Array Arguments |
c %-----------------%
c
integer ipntr(13)
Complex*16
Complex*16
& bounds(nev+np), h(ldh,nev+np), q(ldq,nev+np),
& resid(n), ritz(nev+np), v(ldv,nev+np),
& workd(3*n), workl( (nev+np)*(nev+np+3) )
Double precision
Double precision
& rwork(nev+np)
c
c %------------%
c | Parameters |
c %------------%
c
Complex*16
Complex*16
& one, zero
Double precision
Double precision
& rzero
parameter (one = (1.0, 0.0) , zero = (0.0, 0.0) ,
& rzero = 0.0 )
parameter (one = (1.0, 0.0), zero = (0.0, 0.0),
& rzero = 0.0)
c
c %---------------%
c | Local Scalars |
@@ -226,9 +226,9 @@ c
integer ierr , iter , kplusp, msglvl, nconv,
& nevbef, nev0 , np0 , nptemp, i ,
& j
Complex*16
Complex*16
& cmpnorm
Double precision
Double precision
& rnorm, eps23, rtemp
character wprime*2
c
@@ -236,7 +236,6 @@ c
& rnorm, iter , kplusp, msglvl, nconv,
& nevbef, nev0 , np0, eps23
c
c %-----------------------%
c | Local array arguments |
c %-----------------------%
@@ -247,24 +246,24 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external zcopy , pzgetv0 , pznaitr , pzneigh , pzngets , pznapps ,
& zsortc , zswap , pzmout , pzvout , pivout, second
external zcopy, pzgetv0, pznaitr, pzneigh, pzngets, pznapps,
& zsortc, zswap, pzmout, pzvout, pivout, arscnd
c
c %--------------------%
c | External functions |
c %--------------------%
c
Complex*16
& zdotc
Double precision
& pdznorm2 , pdlamch , dlapy2
external zdotc , pdznorm2 , pdlamch , dlapy2
Complex*16
& zdotc
Double precision
& pdznorm2, pdlamch, dlapy2
external zdotc, pdznorm2, pdlamch, dlapy2
c
c %---------------------%
c | Intrinsic Functions |
c %---------------------%
c
intrinsic dimag , dble , min, max, sqrt
intrinsic dimag, dble, min, max, sqrt
c
c %-----------------------%
c | Executable Statements |
@@ -272,7 +271,7 @@ c %-----------------------%
c
if (ido .eq. 0) then
c
call second (t0)
call arscnd (t0)
c
msglvl = mcaup2
c
@@ -296,8 +295,8 @@ c %---------------------------------%
c | Get machine dependent constant. |
c %---------------------------------%
c
eps23 = pdlamch (comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0 )
eps23 = pdlamch(comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0)
c
c %---------------------------------------%
c | Set flags for computing the first NEV |
@@ -330,7 +329,7 @@ c
10 continue
c
if (getv0) then
call pzgetv0 (comm, ido, bmat, 1, initv, n, 1, v, ldv,
call pzgetv0 (comm, ido, bmat, 1, initv, n, 1, v, ldv,
& resid, rnorm, ipntr, workd, workl, info)
c
if (ido .ne. 99) go to 9000
@@ -372,7 +371,7 @@ c %----------------------------------------------------------%
c | Compute the first NEV steps of the Arnoldi factorization |
c %----------------------------------------------------------%
c
call pznaitr (comm, ido, bmat, n, 0, nev, mode,
call pznaitr (comm, ido, bmat, n, 0, nev, mode,
& resid, rnorm, v, ldv,
& h, ldh, ipntr, workd, workl, info)
c
@@ -406,7 +405,7 @@ c
c %-----------------------------------------------------------%
c | Compute NP additional steps of the Arnoldi factorization. |
c | Adjust NP since NEV might have been updated by last call |
c | to the shift application routine pznapps . |
c | to the shift application routine pznapps. |
c %-----------------------------------------------------------%
c
np = kplusp - nev
@@ -426,7 +425,7 @@ c
20 continue
update = .true.
c
call pznaitr (comm, ido, bmat, n, nev, np, mode,
call pznaitr (comm, ido, bmat, n, nev, np, mode,
& resid, rnorm, v, ldv,
& h, ldh, ipntr, workd, workl, info)
c
@@ -441,7 +440,7 @@ c
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
@@ -450,7 +449,7 @@ c | Compute the eigenvalues and corresponding error bounds |
c | of the current upper Hessenberg matrix. |
c %--------------------------------------------------------%
c
call pzneigh ( comm, rnorm, kplusp, h, ldh, ritz, bounds,
call pzneigh ( comm, rnorm, kplusp, h, ldh, ritz, bounds,
& q, ldq, workl, rwork, ierr)
c
if (ierr .ne. 0) then
@@ -471,11 +470,11 @@ c
c
c %--------------------------------------------------%
c | Make a copy of Ritz values and the corresponding |
c | Ritz estimates obtained from pzneigh . |
c | Ritz estimates obtained from pzneigh. |
c %--------------------------------------------------%
c
call zcopy (kplusp,ritz,1,workl(kplusp**2+1),1)
call zcopy (kplusp,bounds,1,workl(kplusp**2+kplusp+1),1)
call zcopy(kplusp,ritz,1,workl(kplusp**2+1),1)
call zcopy(kplusp,bounds,1,workl(kplusp**2+kplusp+1),1)
c
c %---------------------------------------------------%
c | Select the wanted Ritz values and their bounds |
@@ -485,7 +484,7 @@ c | bounds are in the last NEV loc. of RITZ |
c | BOUNDS respectively. |
c %---------------------------------------------------%
c
call pzngets ( comm, ishift, which, nev, np, ritz,
call pzngets ( comm, ishift, which, nev, np, ritz,
& bounds)
c
c %------------------------------------------------------------%
@@ -500,9 +499,9 @@ c
nconv = 0
c
do 25 i = 1, nev
rtemp = max( eps23, dlapy2 ( dble (ritz(np+i)),
& dimag (ritz(np+i)) ) )
if ( dlapy2 (dble (bounds(np+i)),dimag (bounds(np+i)))
rtemp = max( eps23, dlapy2( dble(ritz(np+i)),
& dimag(ritz(np+i)) ) )
if ( dlapy2(dble(bounds(np+i)),dimag(bounds(np+i)))
& .le. tol*rtemp ) then
nconv = nconv + 1
end if
@@ -514,9 +513,9 @@ c
kp(3) = nconv
call pivout (comm, logfil, 3, kp, ndigit,
& '_naup2: NEV, NP, NCONV are')
call pzvout (comm, logfil, kplusp, ritz, ndigit,
call pzvout (comm, logfil, kplusp, ritz, ndigit,
& '_naup2: The eigenvalues of H')
call pzvout (comm, logfil, kplusp, bounds, ndigit,
call pzvout (comm, logfil, kplusp, bounds, ndigit,
& '_naup2: Ritz estimates of the current NCV Ritz values')
end if
c
@@ -543,10 +542,10 @@ c
& (np .eq. 0) ) then
c
if (msglvl .gt. 4) then
call pzvout (comm, logfil, kplusp,
call pzvout(comm, logfil, kplusp,
& workl(kplusp**2+1), ndigit,
& '_naup2: Eigenvalues computed by _neigh:')
call pzvout (comm, logfil, kplusp,
call pzvout(comm, logfil, kplusp,
& workl(kplusp**2+kplusp+1), ndigit,
& '_naup2: Ritz eistmates computed by _neigh:')
end if
@@ -560,10 +559,10 @@ c %------------------------------------------------%
c
c %------------------------------------------%
c | Use h( 3,1 ) as storage to communicate |
c | rnorm to pzneupd if needed |
c | rnorm to pzneupd if needed |
c %------------------------------------------%
c
h(3,1) = dcmplx (rnorm,rzero)
h(3,1) = dcmplx(rnorm,rzero)
c
c %----------------------------------------------%
c | Sort Ritz values so that converged Ritz |
@@ -579,7 +578,7 @@ c
if (which .eq. 'LI') wprime = 'SI'
if (which .eq. 'SI') wprime = 'LI'
c
call zsortc (wprime, .true., kplusp, ritz, bounds)
call zsortc(wprime, .true., kplusp, ritz, bounds)
c
c %--------------------------------------------------%
c | Scale the Ritz estimate of each Ritz value |
@@ -587,8 +586,8 @@ c | by 1 / max(eps23, magnitude of the Ritz value). |
c %--------------------------------------------------%
c
do 35 j = 1, nev0
rtemp = max( eps23, dlapy2 ( dble (ritz(j)),
& dimag (ritz(j)) ) )
rtemp = max( eps23, dlapy2( dble(ritz(j)),
& dimag(ritz(j)) ) )
bounds(j) = bounds(j)/rtemp
35 continue
c
@@ -600,7 +599,7 @@ c | when NCONV < NEV.) |
c %---------------------------------------------------%
c
wprime = 'LM'
call zsortc (wprime, .true., nev0, bounds, ritz)
call zsortc(wprime, .true., nev0, bounds, ritz)
c
c %----------------------------------------------%
c | Scale the Ritz estimate back to its original |
@@ -608,8 +607,8 @@ c | value. |
c %----------------------------------------------%
c
do 40 j = 1, nev0
rtemp = max( eps23, dlapy2 ( dble (ritz(j)),
& dimag (ritz(j)) ) )
rtemp = max( eps23, dlapy2( dble(ritz(j)),
& dimag(ritz(j)) ) )
bounds(j) = bounds(j)*rtemp
40 continue
c
@@ -619,12 +618,12 @@ c | the "threshold" value appears at the front of |
c | ritz and bound. |
c %-----------------------------------------------%
c
call zsortc (which, .true., nconv, ritz, bounds)
call zsortc(which, .true., nconv, ritz, bounds)
c
if (msglvl .gt. 1) then
call pzvout (comm, logfil, kplusp, ritz, ndigit,
call pzvout (comm, logfil, kplusp, ritz, ndigit,
& '_naup2: Sorted eigenvalues')
call pzvout (comm, logfil, kplusp, bounds, ndigit,
call pzvout (comm, logfil, kplusp, bounds, ndigit,
& '_naup2: Sorted ritz estimates.')
end if
c
@@ -666,7 +665,7 @@ c | resort the eigenvalues. |
c %---------------------------------------%
c
if (nevbef .lt. nev)
& call pzngets (comm, ishift, which, nev, np, ritz,
& call pzngets (comm, ishift, which, nev, np, ritz,
& bounds)
c
end if
@@ -679,9 +678,9 @@ c
kp(2) = np
call pivout (comm, logfil, 2, kp, ndigit,
& '_naup2: NEV and NP are')
call pzvout (comm, logfil, nev, ritz(np+1), ndigit,
call pzvout (comm, logfil, nev, ritz(np+1), ndigit,
& '_naup2: "wanted" Ritz values ')
call pzvout (comm, logfil, nev, bounds(np+1), ndigit,
call pzvout (comm, logfil, nev, bounds(np+1), ndigit,
& '_naup2: Ritz estimates of the "wanted" values ')
end if
end if
@@ -708,16 +707,16 @@ c | RITZ, to free up WORKL |
c | for non-exact shift case. |
c %----------------------------------%
c
call zcopy (np, workl, 1, ritz, 1)
call zcopy (np, workl, 1, ritz, 1)
end if
c
if (msglvl .gt. 2) then
call pivout (comm, logfil, 1, np, ndigit,
& '_naup2: The number of shifts to apply ')
call pzvout (comm, logfil, np, ritz, ndigit,
call pzvout (comm, logfil, np, ritz, ndigit,
& '_naup2: values of the shifts')
if ( ishift .eq. 1 )
& call pzvout (comm, logfil, np, bounds, ndigit,
& call pzvout (comm, logfil, np, bounds, ndigit,
& '_naup2: Ritz estimates of the shifts')
end if
c
@@ -728,20 +727,20 @@ c | matrix H. |
c | The first 2*N locations of WORKD are used as workspace. |
c %---------------------------------------------------------%
c
call pznapps (comm, n, nev, np, ritz, v, ldv,
call pznapps(comm, n, nev, np, ritz, v, ldv,
& h, ldh, resid, q, ldq, workl, workd)
c
c %---------------------------------------------%
c | Compute the B-norm of the updated residual. |
c | Keep B*RESID in WORKD(1:N) to be used in |
c | the first step of the next call to pznaitr . |
c | the first step of the next call to pznaitr. |
c %---------------------------------------------%
c
cnorm = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call zcopy (n, resid, 1, workd(n+1), 1)
call zcopy (n, resid, 1, workd(n+1), 1)
ipntr(1) = n + 1
ipntr(2) = 1
ido = 2
@@ -752,7 +751,7 @@ c %----------------------------------%
c
go to 9000
else if (bmat .eq. 'I') then
call zcopy (n, resid, 1, workd, 1)
call zcopy (n, resid, 1, workd, 1)
end if
c
100 continue
@@ -763,23 +762,23 @@ c | WORKD(1:N) := B*RESID |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
if (bmat .eq. 'G') then
cmpnorm = zdotc (n, resid, 1, workd, 1)
call zgsum2d ( comm, 'All', ' ', 1, 1, cmpnorm, 1, -1, -1 )
rnorm = sqrt(dlapy2 (dble (cmpnorm),dimag (cmpnorm)))
cmpnorm = zdotc (n, resid, 1, workd, 1)
call zgsum2d( comm, 'All', ' ', 1, 1, cmpnorm, 1, -1, -1 )
rnorm = sqrt(dlapy2(dble(cmpnorm),dimag(cmpnorm)))
else if (bmat .eq. 'I') then
rnorm = pdznorm2 (comm, n, resid, 1)
rnorm = pdznorm2(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 pzmout (comm, logfil, nev, nev, h, ldh, ndigit,
call pzmout (comm, logfil, nev, nev, h, ldh, ndigit,
& '_naup2: Compressed upper Hessenberg matrix H')
end if
c
@@ -803,13 +802,13 @@ c %------------%
c | Error Exit |
c %------------%
c
call second (t1)
call arscnd (t1)
tcaup2 = t1 - t0
c
9000 continue
c
c %----------------%
c | End of pznaup2 |
c | End of pznaup2 |
c %----------------%
c
return
+4 -4
View File
@@ -359,7 +359,7 @@ c Arnoldi Iteration.
c zstatn ARPACK routine that initializes the timing variables.
c pivout Parallel ARPACK utility routine that prints integers.
c pzvout Parallel ARPACK utility routine that prints vectors.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdlamch ScaLAPACK routine that determines machine constants.
c
c\Author
@@ -446,7 +446,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pznaup2 , pzvout , pivout, second, zstatn
external pznaup2 , pzvout , pivout, arscnd, zstatn
c
c %--------------------%
c | External Functions |
@@ -468,7 +468,7 @@ c | & message level for debugging |
c %-------------------------------%
c
call zstatn
call second (t0)
call arscnd (t0)
msglvl = mcaupd
c
c %----------------%
@@ -628,7 +628,7 @@ c
& '_naupd: Associated Ritz estimates')
end if
c
call second (t1)
call arscnd (t1)
tcaupd = t1 - t0
c
if (msglvl .gt. 0) then
+4 -4
View File
@@ -68,7 +68,7 @@ c xxxxxx Complex*16
c
c\Routines called:
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pzmout Parallel ARPACK utility routine that prints matrices
c pzvout Parallel ARPACK utility routine that prints vectors.
c pdvout Parallel ARPACK utility routine that prints vectors.
@@ -168,7 +168,7 @@ c | External Subroutines |
c %----------------------%
c
external zlacpy, zlahqr, zdscal, ztrevc, zcopy,
& pzmout, pzvout, second
& pzmout, pzvout, arscnd
c
c %--------------------%
c | External Functions |
@@ -188,7 +188,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mceigh
c
if (msglvl .gt. 2) then
@@ -261,7 +261,7 @@ c
& '_neigh: Ritz estimates for the eigenvalues of H')
end if
c
call second(t1)
call arscnd(t1)
tceigh = tceigh + (t1 - t0)
c
9000 continue
+126 -126
View File
@@ -1,8 +1,8 @@
c\BeginDoc
c
c\Name: pzneupd
c\Name: pzneupd
c
c Message Passing Layer: BLACS
c Message Passing Layer: BLACS
c
c\Description:
c This subroutine returns the converged approximations to eigenvalues
@@ -22,7 +22,7 @@ c
c The approximate eigenvalues and eigenvectors of A*z = lambda*B*z
c are derived from approximate eigenvalues and eigenvectors of
c of the linear operator OP prescribed by the MODE selection in the
c call to PZNAUPD . PZNAUPD must be called before this routine is called.
c call to PZNAUPD. PZNAUPD must be called before this routine is called.
c These approximate eigenvalues and vectors are commonly called Ritz
c values and Ritz vectors respectively. They are referred to as such
c in the comments that follow. The computed orthonormal basis for the
@@ -31,18 +31,18 @@ c Schur basis.
c
c The definition of OP as well as other terms and the relation of computed
c Ritz values and vectors of OP with respect to the given problem
c A*z = lambda*B*z may be found in the header of PZNAUPD . For a brief
c A*z = lambda*B*z may be found in the header of PZNAUPD. For a brief
c description, see definitions of IPARAM(7), MODE and WHICH in the
c documentation of PZNAUPD .
c documentation of PZNAUPD.
c
c\Usage:
c call pzneupd
c call pzneupd
c ( COMM, RVEC, HOWMNY, SELECT, D, Z, LDZ, SIGMA, WORKEV, BMAT,
c N, WHICH, NEV, TOL, RESID, NCV, V, LDV, IPARAM, IPNTR, WORKD,
c WORKL, LWORKL, RWORK, INFO )
c
c\Arguments
c COMM BLACS Communicator for the processor grid. (INPUT)
c COMM BLACS Communicator for the processor grid. (INPUT)
c
c RVEC LOGICAL (INPUT)
c Specifies whether a basis for the invariant subspace corresponding
@@ -70,11 +70,11 @@ c Ritz value D(j), SELECT(j) must be set to .TRUE..
c If HOWMNY = 'A' or 'P', SELECT need not be initialized
c but it is used as internal workspace.
c
c D Complex*16 array of dimension NEV+1. (OUTPUT)
c D Complex*16 array of dimension NEV+1. (OUTPUT)
c On exit, D contains the Ritz approximations
c to the eigenvalues lambda for A*z = lambda*B*z.
c
c Z Complex*16 N by NEV array (OUTPUT)
c Z Complex*16 N by NEV array (OUTPUT)
c On exit, if RVEC = .TRUE. and HOWMNY = 'A', then the columns of
c Z represents approximate eigenvectors (Ritz vectors) corresponding
c to the NCONV=IPARAM(5) Ritz values for eigensystem
@@ -84,7 +84,7 @@ c If RVEC = .FALSE. or HOWMNY = 'P', then Z is NOT REFERENCED.
c
c NOTE: If if RVEC = .TRUE. and a Schur basis is not required,
c the array Z may be set equal to first NEV+1 columns of the Arnoldi
c basis array V computed by PZNAUPD . In this case the Arnoldi basis
c basis array V computed by PZNAUPD. In this case the Arnoldi basis
c will be destroyed and overwritten with the eigenvector basis.
c
c LDZ Integer. (INPUT)
@@ -92,30 +92,30 @@ c The leading dimension of the array Z. If Ritz vectors are
c desired, then LDZ .ge. max( 1, N ) is required.
c In any case, LDZ .ge. 1 is required.
c
c SIGMA Complex*16 (INPUT)
c SIGMA Complex*16 (INPUT)
c If IPARAM(7) = 3 then SIGMA represents the shift.
c Not referenced if IPARAM(7) = 1 or 2.
c
c WORKEV Complex*16 work array of dimension 2*NCV. (WORKSPACE)
c WORKEV Complex*16 work array of dimension 2*NCV. (WORKSPACE)
c
c **** The remaining arguments MUST be the same as for the ****
c **** call to PZNAUPD that was just completed. ****
c **** call to PZNAUPD that was just completed. ****
c
c NOTE: The remaining arguments
c
c BMAT, N, WHICH, NEV, TOL, RESID, NCV, V, LDV, IPARAM, IPNTR,
c WORKD, WORKL, LWORKL, RWORK, INFO
c
c must be passed directly to ZNEUPD following the last call
c to PZNAUPD . These arguments MUST NOT BE MODIFIED between
c the the last call to PZNAUPD and the call to ZNEUPD .
c must be passed directly to ZNEUPD following the last call
c to PZNAUPD. These arguments MUST NOT BE MODIFIED between
c the the last call to PZNAUPD and the call to ZNEUPD.
c
c Three of these parameters (V, WORKL and INFO) are also output parameters:
c
c V Complex*16 N by NCV array. (INPUT/OUTPUT)
c V Complex*16 N by NCV array. (INPUT/OUTPUT)
c
c Upon INPUT: the NCV columns of V contain the Arnoldi basis
c vectors for OP as constructed by PZNAUPD .
c vectors for OP as constructed by PZNAUPD .
c
c Upon OUTPUT: If RVEC = .TRUE. the first NCONV=IPARAM(5) columns
c contain approximate Schur vectors that span the
@@ -128,16 +128,16 @@ c Ritz vectors. If a separate array Z has been passed then
c the first NCONV=IPARAM(5) columns of V will contain approximate
c Schur vectors that span the desired invariant subspace.
c
c WORKL Double precision work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL Double precision work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL(1:ncv*ncv+2*ncv) contains information obtained in
c PZNAUPD . They are not changed by PZNEUPD .
c PZNAUPD. They are not changed by PZNEUPD.
c WORKL(ncv*ncv+2*ncv+1:3*ncv*ncv+4*ncv) holds the
c untransformed Ritz values, the untransformed error estimates of
c the Ritz values, the upper triangular matrix for H, and the
c associated matrix representation of the invariant subspace for H.
c
c Note: IPNTR(9:13) contains the pointer into WORKL for addresses
c of the above information computed by PZNEUPD .
c of the above information computed by PZNEUPD.
c -------------------------------------------------------------
c IPNTR(9): pointer to the NCV RITZ values of the
c original system.
@@ -147,7 +147,7 @@ c IPNTR(12): pointer to the NCV by NCV upper triangular
c Schur matrix for H.
c IPNTR(13): pointer to the NCV by NCV matrix of eigenvectors
c of the upper Hessenberg matrix H. Only referenced by
c PZNEUPD if RVEC = .TRUE. See Remark 2 below.
c PZNEUPD if RVEC = .TRUE. See Remark 2 below.
c -------------------------------------------------------------
c
c INFO Integer. (OUTPUT)
@@ -155,8 +155,8 @@ c Error flag on output.
c = 0: Normal exit.
c
c = 1: The Schur form computed by LAPACK routine csheqr
c could not be reordered by LAPACK routine ztrsen .
c Re-enter subroutine pzneupd with IPARAM(5)=NCV and
c could not be reordered by LAPACK routine ztrsen.
c Re-enter subroutine pzneupd with IPARAM(5)=NCV and
c increase the size of the array D to have
c dimension at least dimension NCV and allocate at least NCV
c columns for Z. NOTE: Not necessary if Z and V share
@@ -172,18 +172,18 @@ c = -7: Length of private work WORKL array is not sufficient.
c = -8: Error return from LAPACK eigenvalue calculation.
c This should never happened.
c = -9: Error return from calculation of eigenvectors.
c Informational error from LAPACK routine ztrevc .
c Informational error from LAPACK routine ztrevc.
c = -10: IPARAM(7) must be 1,2,3
c = -11: IPARAM(7) = 1 and BMAT = 'G' are incompatible.
c = -12: HOWMNY = 'S' not yet implemented
c = -13: HOWMNY must be one of 'A' or 'P' if RVEC = .true.
c = -14: PZNAUPD did not find any eigenvalues to sufficient
c = -14: PZNAUPD did not find any eigenvalues to sufficient
c accuracy.
c = -15: ZNEUPD got a different count of the number of converged
c Ritz values than ZNAUPD got. This indicates the user
c probably made an error in passing data from ZNAUPD to
c ZNEUPD or that the data was modified before entering
c ZNEUPD .
c = -15: ZNEUPD got a different count of the number of converged
c Ritz values than ZNAUPD got. This indicates the user
c probably made an error in passing data from ZNAUPD to
c ZNEUPD or that the data was modified before entering
c ZNEUPD.
c
c\BeginLib
c
@@ -200,26 +200,26 @@ c Vol. 48, No. 178, April, 1987 pp. 664-673.
c
c\Routines called:
c pivout Parallel ARPACK utility routine that prints integers.
c pzmout Parallel ARPACK utility routine that prints matrices
c pzvout Parallel ARPACK utility routine that prints vectors.
c zgeqr2 LAPACK routine that computes the QR factorization of
c pzmout Parallel ARPACK utility routine that prints matrices
c pzvout Parallel ARPACK utility routine that prints vectors.
c zgeqr2 LAPACK routine that computes the QR factorization of
c a matrix.
c zlacpy LAPACK matrix copy routine.
c zlahqr LAPACK routine that computes the Schur form of a
c zlacpy LAPACK matrix copy routine.
c zlahqr LAPACK routine that computes the Schur form of a
c upper Hessenberg matrix.
c zlaset LAPACK matrix initialization routine.
c ztrevc LAPACK routine to compute the eigenvectors of a matrix
c zlaset LAPACK matrix initialization routine.
c ztrevc LAPACK routine to compute the eigenvectors of a matrix
c in upper triangular form.
c ztrsen LAPACK routine that re-orders the Schur form.
c zunm2r LAPACK routine that applies an orthogonal matrix in
c ztrsen LAPACK routine that re-orders the Schur form.
c zunm2r LAPACK routine that applies an orthogonal matrix in
c factored form.
c pdlamch ScaLAPACK routine that determines machine constants.
c ztrmm Level 3 BLAS matrix times an upper triangular matrix.
c zgeru Level 2 BLAS rank one update to a matrix.
c zcopy Level 1 BLAS that copies one vector to another .
c zscal Level 1 BLAS that scales a vector.
c zdscal Level 1 BLAS that scales a complex vector by a real number.
c dznrm2 Level 1 BLAS that computes the norm of a complex vector.
c pdlamch ScaLAPACK routine that determines machine constants.
c ztrmm Level 3 BLAS matrix times an upper triangular matrix.
c zgeru Level 2 BLAS rank one update to a matrix.
c zcopy Level 1 BLAS that copies one vector to another .
c zscal Level 1 BLAS that scales a vector.
c zdscal Level 1 BLAS that scales a complex vector by a real number.
c dznrm2 Level 1 BLAS that computes the norm of a complex vector.
c
c\Remarks
c
@@ -249,12 +249,12 @@ c\Revision history:
c Starting Point: Complex Serial Code FILE: neupd.F SID: 2.2
c
c\SCCS Information:
c FILE: neupd.F SID: 1.6 DATE OF SID: 04/10/01
c FILE: neupd.F SID: 1.9 DATE OF SID: 10/25/03
c
c\EndLib
c
c-----------------------------------------------------------------------
subroutine pzneupd
subroutine pzneupd
& ( comm , rvec , howmny, select, d ,
& z , ldz , sigma , workev, bmat ,
& n , which , nev , tol , resid,
@@ -262,7 +262,7 @@ c-----------------------------------------------------------------------
& workd, workl , lworkl, rwork , info )
c
c %--------------------%
c | BLACS Communicator |
c | BLACS Communicator |
c %--------------------%
c
integer comm
@@ -281,9 +281,9 @@ c
character bmat, howmny, which*2
logical rvec
integer info, ldz, ldv, lworkl, n, ncv, nev
Complex*16
Complex*16
& sigma
Double precision
Double precision
& tol
c
c %-----------------%
@@ -292,9 +292,9 @@ c %-----------------%
c
integer iparam(11), ipntr(14)
logical select(ncv)
Double precision
Double precision
& rwork(ncv)
Complex*16
Complex*16
& d(nev) , resid(n) , v(ldv,ncv) ,
& z(ldz, nev), workd(3*n), workl(lworkl),
& workev(2*ncv)
@@ -303,9 +303,9 @@ c %------------%
c | Parameters |
c %------------%
c
Complex*16
Complex*16
& one, zero
parameter (one = (1.0, 0.0) , zero = (0.0, 0.0) )
parameter (one = (1.0, 0.0), zero = (0.0, 0.0))
c
c %---------------%
c | Local Scalars |
@@ -317,9 +317,9 @@ c
& mode , msglvl, ritz , wr , k , irz ,
& ibd , outncv, iq , np , numcnv, jj ,
& ishift
Complex*16
Complex*16
& rnorm, temp, vl(1)
Double precision
Double precision
& conds, sep, rtemp, eps23
logical reord
c
@@ -327,21 +327,21 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external zcopy ,zgeru ,zgeqr2 ,zlacpy ,pzmout ,
& zunm2r ,ztrmm ,pzvout ,pivout,
& zlahqr
external zcopy ,zgeru,zgeqr2,zlacpy,pzmout,
& zunm2r,ztrmm,pzvout,pivout,
& zlahqr
c
c %--------------------%
c | External Functions |
c %--------------------%
c
Double precision
& dznrm2 ,pdlamch ,dlapy2
external dznrm2 ,pdlamch ,dlapy2
Double precision
& dznrm2,pdlamch,dlapy2
external dznrm2,pdlamch,dlapy2
c
Complex*16
& zdotc
external zdotc
Complex*16
& zdotc
external zdotc
c
c %---------------------%
c | Intrinsic Functions |
@@ -367,8 +367,8 @@ c %---------------------------------%
c | Get machine dependent constant. |
c %---------------------------------%
c
eps23 = pdlamch (comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0 )
eps23 = pdlamch(comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0)
c
c %-------------------------------%
c | Quick return |
@@ -433,7 +433,7 @@ c | workl(ncv*ncv+ncv+1:ncv*ncv+2*ncv) := error bounds |
c %--------------------------------------------------------%
c
c %-----------------------------------------------------------%
c | The following is used and set by ZNEUPD . |
c | The following is used and set by ZNEUPD. |
c | workl(ncv*ncv+2*ncv+1:ncv*ncv+3*ncv) := The untransformed |
c | Ritz values. |
c | workl(ncv*ncv+3*ncv+1:ncv*ncv+4*ncv) := The untransformed |
@@ -486,9 +486,9 @@ c
workl(ih+2) = zero
c
if (msglvl .gt. 2) then
call pzvout (comm, logfil, ncv, workl(irz), ndigit,
call pzvout(comm, logfil, ncv, workl(irz), ndigit,
& '_neupd: Ritz values passed in from _NAUPD.')
call pzvout (comm, logfil, ncv, workl(ibd), ndigit,
call pzvout(comm, logfil, ncv, workl(ibd), ndigit,
& '_neupd: Ritz estimates passed in from _NAUPD.')
end if
c
@@ -518,14 +518,14 @@ c %-------------------------------------%
c
np = ncv - nev
ishift = 0
call zngets (comm, ishift, which ,
& nev , np , workl(irz),
& workl(bounds))
call pzngets(comm, ishift, which ,
& nev , np , workl(irz),
& workl(bounds))
c
if (msglvl .gt. 2) then
call pzvout (comm,logfil, ncv, workl(irz), ndigit,
call pzvout(comm,logfil, ncv, workl(irz), ndigit,
& '_neupd: Ritz values after calling _NGETS.')
call pzvout (comm,logfil, ncv, workl(bounds), ndigit,
call pzvout(comm,logfil, ncv, workl(bounds), ndigit,
& '_neupd: Ritz value indices after calling _NGETS.')
end if
c
@@ -537,12 +537,12 @@ c
numcnv = 0
do 11 j = 1,ncv
rtemp = max(eps23,
& dlapy2 ( real (workl(irz+ncv-j)),
& dimag (workl(irz+ncv-j)) ))
& dlapy2 ( dble (workl(irz+ncv-j)),
& dimag(workl(irz+ncv-j)) ))
jj = workl(bounds + ncv - j)
if (numcnv .lt. nconv .and.
& dlapy2 ( real (workl(ibd+jj-1)),
& dimag (workl(ibd+jj-1)) )
& dlapy2( dble (workl(ibd+jj-1)),
& dimag(workl(ibd+jj-1)) )
& .le. tol*rtemp) then
select(jj) = .true.
numcnv = numcnv + 1
@@ -570,20 +570,20 @@ c
end if
c
c %-------------------------------------------------------%
c | Call LAPACK routine zlahqr to compute the Schur form |
c | of the upper Hessenberg matrix returned by PZNAUPD . |
c | Call LAPACK routine zlahqr to compute the Schur form |
c | of the upper Hessenberg matrix returned by PZNAUPD. |
c | Make a copy of the upper Hessenberg matrix. |
c | Initialize the Schur vector matrix Q to the identity. |
c %-------------------------------------------------------%
c
call zcopy (ldh*ncv, workl(ih), 1, workl(iuptri), 1)
call zlaset ('All', ncv, ncv, zero, one, workl(invsub), ldq)
call zlahqr (.true. , .true. , ncv ,
call zcopy(ldh*ncv, workl(ih), 1, workl(iuptri), 1)
call zlaset('All', ncv, ncv, zero, one, workl(invsub), ldq)
call zlahqr(.true. , .true. , ncv ,
& 1 , ncv , workl(iuptri),
& ldh , workl(iheig) , 1 ,
& ncv , workl(invsub), ldq ,
& ierr )
call zcopy (ncv, workl(invsub+ncv-1), ldq, workl(ihbds), 1)
call zcopy(ncv, workl(invsub+ncv-1), ldq, workl(ihbds), 1)
c
if (ierr .ne. 0) then
info = -8
@@ -591,12 +591,12 @@ c
end if
c
if (msglvl .gt. 1) then
call pzvout (comm, logfil, ncv, workl(iheig), ndigit,
call pzvout(comm, logfil, ncv, workl(iheig), ndigit,
& '_neupd: Eigenvalues of H')
call pzvout (comm, logfil, ncv, workl(ihbds), ndigit,
call pzvout(comm, logfil, ncv, workl(ihbds), ndigit,
& '_neupd: Last row of the Schur vector matrix')
if (msglvl .gt. 3) then
call pzmout (comm, logfil, ncv, ncv,
call pzmout(comm, logfil, ncv, ncv,
& workl(iuptri), ldh, ndigit,
& '_neupd: The upper triangular matrix ')
end if
@@ -607,7 +607,7 @@ c %-----------------------------------------------%
c | Reorder the computed upper triangular matrix. |
c %-----------------------------------------------%
c
call ztrsen ('None' , 'V' , select ,
call ztrsen('None' , 'V' , select ,
& ncv , workl(iuptri), ldh ,
& workl(invsub), ldq , workl(iheig),
& nconv , conds , sep ,
@@ -619,10 +619,10 @@ c
end if
c
if (msglvl .gt. 2) then
call pzvout (comm, logfil, ncv, workl(iheig), ndigit,
call pzvout (comm, logfil, ncv, workl(iheig), ndigit,
& '_neupd: Eigenvalues of H--reordered')
if (msglvl .gt. 3) then
call pzmout (comm, logfil, ncv, ncv,
call pzmout (comm, logfil, ncv, ncv,
& workl(iuptri), ldq, ndigit,
& '_neupd: Triangular matrix after re-ordering')
end if
@@ -636,7 +636,7 @@ c | to compute the Ritz estimates of converged |
c | Ritz values. |
c %---------------------------------------------%
c
call zcopy (ncv, workl(invsub+ncv-1), ldq, workl(ihbds), 1)
call zcopy(ncv, workl(invsub+ncv-1), ldq, workl(ihbds), 1)
c
c %--------------------------------------------%
c | Place the computed eigenvalues of H into D |
@@ -644,7 +644,7 @@ c | if a spectral transformation was not used. |
c %--------------------------------------------%
c
if (type .eq. 'REGULR') then
call zcopy (nconv, workl(iheig), 1, d, 1)
call zcopy(nconv, workl(iheig), 1, d, 1)
end if
c
c %----------------------------------------------------------%
@@ -653,12 +653,12 @@ c | the wanted invariant subspace located in the first NCONV |
c | columns of workl(invsub,ldq). |
c %----------------------------------------------------------%
c
call zgeqr2 (ncv, nconv , workl(invsub),
call zgeqr2(ncv, nconv , workl(invsub),
& ldq, workev, workev(ncv+1),
& ierr)
c
c %--------------------------------------------------------%
c | * Postmultiply V by Q using zunm2r . |
c | * Postmultiply V by Q using zunm2r. |
c | * Copy the first NCONV columns of VQ into Z. |
c | * Postmultiply Z by R. |
c | The N by NCONV matrix Z is now a matrix representation |
@@ -669,11 +669,11 @@ c | associated with the upper triangular matrix of order |
c | NCONV in workl(iuptri). |
c %--------------------------------------------------------%
c
call zunm2r ('Right', 'Notranspose', n ,
call zunm2r('Right', 'Notranspose', n ,
& ncv , nconv , workl(invsub),
& ldq , workev , v ,
& ldv , workd(n+1) , ierr )
call zlacpy ('All', n, nconv, v, ldv, z, ldz)
call zlacpy('All', n, nconv, v, ldv, z, ldz)
c
do 20 j=1, nconv
c
@@ -686,10 +686,10 @@ c | Note that since Q is orthogonal, R is a diagonal |
c | matrix consisting of plus or minus ones. |
c %---------------------------------------------------%
c
if ( dble ( workl(invsub+(j-1)*ldq+j-1) ) .lt.
& dble (zero) ) then
call zscal (nconv, -one, workl(iuptri+j-1), ldq)
call zscal (nconv, -one, workl(iuptri+(j-1)*ldq), 1)
if ( dble( workl(invsub+(j-1)*ldq+j-1) ) .lt.
& dble(zero) ) then
call zscal(nconv, -one, workl(iuptri+j-1), ldq)
call zscal(nconv, -one, workl(iuptri+(j-1)*ldq), 1)
end if
c
20 continue
@@ -709,7 +709,7 @@ c
end if
30 continue
c
call ztrevc ('Right', 'Select' , select ,
call ztrevc('Right', 'Select' , select ,
& ncv , workl(iuptri), ldq ,
& vl , 1 , workl(invsub),
& ldq , ncv , outncv ,
@@ -723,15 +723,15 @@ c
c %------------------------------------------------%
c | Scale the returning eigenvectors so that their |
c | Euclidean norms are all one. LAPACK subroutine |
c | ztrevc returns each eigenvector normalized so |
c | ztrevc returns each eigenvector normalized so |
c | that the element of largest magnitude has |
c | magnitude 1. |
c %------------------------------------------------%
c
do 40 j=1, nconv
rtemp = dznrm2 (ncv, workl(invsub+(j-1)*ldq), 1)
rtemp = dble (one) / rtemp
call zdscal ( ncv, rtemp,
rtemp = dznrm2(ncv, workl(invsub+(j-1)*ldq), 1)
rtemp = dble(one) / rtemp
call zdscal ( ncv, rtemp,
& workl(invsub+(j-1)*ldq), 1 )
c
c %------------------------------------------%
@@ -743,17 +743,17 @@ c | upper triangular, thus the length of the |
c | inner product can be set to j. |
c %------------------------------------------%
c
workev(j) = zdotc (j, workl(ihbds), 1,
workev(j) = zdotc(j, workl(ihbds), 1,
& workl(invsub+(j-1)*ldq), 1)
40 continue
c
if (msglvl .gt. 2) then
call zcopy (nconv, workl(invsub+ncv-1), ldq,
call zcopy(nconv, workl(invsub+ncv-1), ldq,
& workl(ihbds), 1)
call pzvout (comm, logfil, nconv, workl(ihbds), ndigit,
call pzvout(comm, logfil, nconv, workl(ihbds), ndigit,
& '_neupd: Last row of the eigenvector matrix for T')
if (msglvl .gt. 3) then
call pzmout (comm, logfil, nconv, ncv,
call pzmout(comm, logfil, nconv, ncv,
& workl(invsub), ldq, ndigit,
& '_neupd: The eigenvector matrix for T')
end if
@@ -763,14 +763,14 @@ c %---------------------------------------%
c | Copy Ritz estimates into workl(ihbds) |
c %---------------------------------------%
c
call zcopy (nconv, workev, 1, workl(ihbds), 1)
call zcopy(nconv, workev, 1, workl(ihbds), 1)
c
c %----------------------------------------------%
c | The eigenvector matrix Q of T is triangular. |
c | Form Z*Q. |
c %----------------------------------------------%
c
call ztrmm ('Right' , 'Upper' , 'No transpose',
call ztrmm('Right' , 'Upper' , 'No transpose',
& 'Non-unit', n , nconv ,
& one , workl(invsub), ldq ,
& z , ldz)
@@ -781,12 +781,12 @@ c
c
c %--------------------------------------------------%
c | An approximate invariant subspace is not needed. |
c | Place the Ritz values computed PZNAUPD into D. |
c | Place the Ritz values computed PZNAUPD into D. |
c %--------------------------------------------------%
c
call zcopy (nconv, workl(ritz), 1, d, 1)
call zcopy (nconv, workl(ritz), 1, workl(iheig), 1)
call zcopy (nconv, workl(bounds), 1, workl(ihbds), 1)
call zcopy(nconv, workl(ritz), 1, d, 1)
call zcopy(nconv, workl(ritz), 1, workl(iheig), 1)
call zcopy(nconv, workl(bounds), 1, workl(ihbds), 1)
c
end if
c
@@ -799,7 +799,7 @@ c
if (type .eq. 'REGULR') then
c
if (rvec)
& call zscal (ncv, rnorm, workl(ihbds), 1)
& call zscal(ncv, rnorm, workl(ihbds), 1)
c
else
c
@@ -810,7 +810,7 @@ c | Ritz values in the original system. |
c %---------------------------------------%
c
if (rvec)
& call zscal (ncv, rnorm, workl(ihbds), 1)
& call zscal(ncv, rnorm, workl(ihbds), 1)
c
do 50 k=1, ncv
temp = workl(iheig+k-1)
@@ -834,14 +834,14 @@ c
end if
c
if (type .ne. 'REGULR' .and. msglvl .gt. 1) then
call pzvout (comm, logfil, nconv, d, ndigit,
call pzvout (comm, logfil, nconv, d, ndigit,
& '_neupd: Untransformed Ritz values.')
call pzvout (comm, logfil, nconv, workl(ihbds), ndigit,
call pzvout (comm, logfil, nconv, workl(ihbds), ndigit,
& '_neupd: Ritz estimates of the untransformed Ritz values.')
else if ( msglvl .gt. 1) then
call pzvout (comm, logfil, nconv, d, ndigit,
call pzvout (comm, logfil, nconv, d, ndigit,
& '_neupd: Converged Ritz values.')
call pzvout (comm, logfil, nconv, workl(ihbds), ndigit,
call pzvout (comm, logfil, nconv, workl(ihbds), ndigit,
& '_neupd: Associated Ritz estimates.')
end if
c
@@ -873,7 +873,7 @@ c | Perform a rank one update to Z and |
c | purify all the Ritz vectors together. |
c %---------------------------------------%
c
call zgeru (n, nconv, one, resid, 1, workev, 1, z, ldz)
call zgeru(n, nconv, one, resid, 1, workev, 1, z, ldz)
c
end if
c
@@ -882,7 +882,7 @@ c
return
c
c %----------------%
c | End of pzneupd |
c | End of pzneupd |
c %----------------%
c
end
+4 -4
View File
@@ -67,7 +67,7 @@ c
c\Routines called:
c zsortc ARPACK sorting routine.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pzvout Parallel ARPACK utility routine that prints vectors.
c
c\Author
@@ -142,7 +142,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pzvout, zsortc, second
external pzvout, zsortc, arscnd
c
c %-----------------------%
c | Executable Statements |
@@ -153,7 +153,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mcgets
c
call zsortc (which, .true., kev+np, ritz, bounds)
@@ -173,7 +173,7 @@ c
c
end if
c
call second (t1)
call arscnd (t1)
tcgets = tcgets + (t1 - t0)
c
if (msglvl .gt. 0) then
+28 -19
View File
@@ -1,23 +1,32 @@
F77 = $(MPIF77)
noinst_LTLIBRARIES = libparpack_noopt.la libparpacksrcmpi.la
FFLAGS_SAV = @FFLAGS@
FFLAGS =
libparpack_noopt_la_SOURCES = pslamch.f pdlamch.f
libparpack_noopt_la_FFLAGS = -O0
FFLAGS =
libparpacksrcmpi_la_SOURCES = \
psgetv0.f \
psnaitr.f psnapps.f psnaup2.f psnaupd.f psneigh.f psngets.f \
pssaitr.f pssapps.f pssaup2.f pssaupd.f psseigt.f pssgets.f \
psneupd.f psseupd.f pslarnv.f psnorm2.f pdgetv0.f \
pdnaitr.f pdnapps.f pdnaup2.f pdnaupd.f pdneigh.f pdngets.f \
pdsaitr.f pdsapps.f pdsaup2.f pdsaupd.f pdseigt.f pdsgets.f \
pdneupd.f pdseupd.f pdlarnv.f pdnorm2.f \
pcnaitr.f pcnapps.f pcnaup2.f pcnaupd.f pcneigh.f \
pcneupd.f pcngets.f pcgetv0.f pscnorm2.f pclarnv.f \
pznaitr.f pznapps.f pznaup2.f pznaupd.f pzneigh.f \
pzneupd.f pzngets.f pzgetv0.f pdznorm2.f pzlarnv.f
SSRC = psnaitr.f psnapps.f psnaup2.f psnaupd.f psneigh.f psneupd.f psngets.f \
pssaitr.f pssapps.f pssaup2.f pssaupd.f psseigt.f psseupd.f pssgets.f \
psgetv0.f pslarnv.f psnorm2.f
libparpacksrcmpi_la_FFLAGS = $(FFLAGS_SAV)
libparpacksrcmpi_la_LIBADD = libparpack_noopt.la
DSRC = pdnaitr.f pdnapps.f pdnaup2.f pdnaupd.f pdneigh.f pdneupd.f pdngets.f \
pdsaitr.f pdsapps.f pdsaup2.f pdsaupd.f pdseigt.f pdseupd.f pdsgets.f \
pdgetv0.f pdlarnv.f pdnorm2.f
CSRC = pcnaitr.f pcnapps.f pcnaup2.f pcnaupd.f pcneigh.f pcneupd.f pcngets.f \
pcgetv0.f pclarnv.f pscnorm2.f
ZSRC = pznaitr.f pznapps.f pznaup2.f pznaupd.f pzneigh.f pzneupd.f pzngets.f \
pzgetv0.f pzlarnv.f pdznorm2.f
EXTRA_DIST = debug.h stat.h
noinst_LTLIBRARIES = libparpack@LIBSUFFIX@_noopt.la
libparpack@LIBSUFFIX@_noopt_la_SOURCES = pslamch.f pdlamch10.f
libparpack@LIBSUFFIX@_noopt_la_FFLAGS = -O0
lib_LTLIBRARIES = libparpack@LIBSUFFIX@.la
libparpack@LIBSUFFIX@_la_SOURCES = $(SSRC) $(DSRC) $(CSRC) $(ZSRC)
libparpack@LIBSUFFIX@_la_FFLAGS = $(FFLAGS_SAV)
libparpack@LIBSUFFIX@_la_LIBADD = libparpack@LIBSUFFIX@_noopt.la \
$(top_builddir)/PARPACK/UTIL/MPI/libparpackutil.la \
$(top_builddir)/SRC/libarpack@LIBSUFFIX@.la \
$(LAPACK_LIBS) $(BLAS_LIBS) $(MPILIBS)
libparpack@LIBSUFFIX@_la_LDFLAGS = -no-undefined -version-info 2:0
-684
View File
@@ -1,684 +0,0 @@
# Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = PARPACK/SRC/MPI
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_blas.m4 \
$(top_srcdir)/m4/ax_lapack.m4 $(top_srcdir)/m4/ax_mpi.m4 \
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
libparpack_noopt_la_LIBADD =
am_libparpack_noopt_la_OBJECTS = libparpack_noopt_la-pslamch.lo \
libparpack_noopt_la-pdlamch.lo
libparpack_noopt_la_OBJECTS = $(am_libparpack_noopt_la_OBJECTS)
libparpack_noopt_la_LINK = $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(F77LD) \
$(libparpack_noopt_la_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
libparpacksrcmpi_la_DEPENDENCIES = libparpack_noopt.la
am_libparpacksrcmpi_la_OBJECTS = libparpacksrcmpi_la-psgetv0.lo \
libparpacksrcmpi_la-psnaitr.lo libparpacksrcmpi_la-psnapps.lo \
libparpacksrcmpi_la-psnaup2.lo libparpacksrcmpi_la-psnaupd.lo \
libparpacksrcmpi_la-psneigh.lo libparpacksrcmpi_la-psngets.lo \
libparpacksrcmpi_la-pssaitr.lo libparpacksrcmpi_la-pssapps.lo \
libparpacksrcmpi_la-pssaup2.lo libparpacksrcmpi_la-pssaupd.lo \
libparpacksrcmpi_la-psseigt.lo libparpacksrcmpi_la-pssgets.lo \
libparpacksrcmpi_la-psneupd.lo libparpacksrcmpi_la-psseupd.lo \
libparpacksrcmpi_la-pslarnv.lo libparpacksrcmpi_la-psnorm2.lo \
libparpacksrcmpi_la-pdgetv0.lo libparpacksrcmpi_la-pdnaitr.lo \
libparpacksrcmpi_la-pdnapps.lo libparpacksrcmpi_la-pdnaup2.lo \
libparpacksrcmpi_la-pdnaupd.lo libparpacksrcmpi_la-pdneigh.lo \
libparpacksrcmpi_la-pdngets.lo libparpacksrcmpi_la-pdsaitr.lo \
libparpacksrcmpi_la-pdsapps.lo libparpacksrcmpi_la-pdsaup2.lo \
libparpacksrcmpi_la-pdsaupd.lo libparpacksrcmpi_la-pdseigt.lo \
libparpacksrcmpi_la-pdsgets.lo libparpacksrcmpi_la-pdneupd.lo \
libparpacksrcmpi_la-pdseupd.lo libparpacksrcmpi_la-pdlarnv.lo \
libparpacksrcmpi_la-pdnorm2.lo libparpacksrcmpi_la-pcnaitr.lo \
libparpacksrcmpi_la-pcnapps.lo libparpacksrcmpi_la-pcnaup2.lo \
libparpacksrcmpi_la-pcnaupd.lo libparpacksrcmpi_la-pcneigh.lo \
libparpacksrcmpi_la-pcneupd.lo libparpacksrcmpi_la-pcngets.lo \
libparpacksrcmpi_la-pcgetv0.lo libparpacksrcmpi_la-pscnorm2.lo \
libparpacksrcmpi_la-pclarnv.lo libparpacksrcmpi_la-pznaitr.lo \
libparpacksrcmpi_la-pznapps.lo libparpacksrcmpi_la-pznaup2.lo \
libparpacksrcmpi_la-pznaupd.lo libparpacksrcmpi_la-pzneigh.lo \
libparpacksrcmpi_la-pzneupd.lo libparpacksrcmpi_la-pzngets.lo \
libparpacksrcmpi_la-pzgetv0.lo libparpacksrcmpi_la-pdznorm2.lo \
libparpacksrcmpi_la-pzlarnv.lo
libparpacksrcmpi_la_OBJECTS = $(am_libparpacksrcmpi_la_OBJECTS)
libparpacksrcmpi_la_LINK = $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(F77LD) \
$(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@
F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS)
LTF77COMPILE = $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS)
F77LD = $(F77)
F77LINK = $(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libparpack_noopt_la_SOURCES) \
$(libparpacksrcmpi_la_SOURCES)
DIST_SOURCES = $(libparpack_noopt_la_SOURCES) \
$(libparpacksrcmpi_la_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BLAS_LIBS = @BLAS_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = $(MPIF77)
FFLAGS =
FGREP = @FGREP@
FLIBS = @FLIBS@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LAPACK_LIBS = @LAPACK_LIBS@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MPIDIR = @MPIDIR@
MPIF77 = @MPIF77@
MPILIBS = @MPILIBS@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_F77 = @ac_ct_F77@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
noinst_LTLIBRARIES = libparpack_noopt.la libparpacksrcmpi.la
FFLAGS_SAV = @FFLAGS@
libparpack_noopt_la_SOURCES = pslamch.f pdlamch.f
libparpack_noopt_la_FFLAGS = -O0
libparpacksrcmpi_la_SOURCES = \
psgetv0.f \
psnaitr.f psnapps.f psnaup2.f psnaupd.f psneigh.f psngets.f \
pssaitr.f pssapps.f pssaup2.f pssaupd.f psseigt.f pssgets.f \
psneupd.f psseupd.f pslarnv.f psnorm2.f pdgetv0.f \
pdnaitr.f pdnapps.f pdnaup2.f pdnaupd.f pdneigh.f pdngets.f \
pdsaitr.f pdsapps.f pdsaup2.f pdsaupd.f pdseigt.f pdsgets.f \
pdneupd.f pdseupd.f pdlarnv.f pdnorm2.f \
pcnaitr.f pcnapps.f pcnaup2.f pcnaupd.f pcneigh.f \
pcneupd.f pcngets.f pcgetv0.f pscnorm2.f pclarnv.f \
pznaitr.f pznapps.f pznaup2.f pznaupd.f pzneigh.f \
pzneupd.f pzngets.f pzgetv0.f pdznorm2.f pzlarnv.f
libparpacksrcmpi_la_FFLAGS = $(FFLAGS_SAV)
libparpacksrcmpi_la_LIBADD = libparpack_noopt.la
all: all-am
.SUFFIXES:
.SUFFIXES: .f .lo .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign PARPACK/SRC/MPI/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign PARPACK/SRC/MPI/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
clean-noinstLTLIBRARIES:
-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libparpack_noopt.la: $(libparpack_noopt_la_OBJECTS) $(libparpack_noopt_la_DEPENDENCIES)
$(libparpack_noopt_la_LINK) $(libparpack_noopt_la_OBJECTS) $(libparpack_noopt_la_LIBADD) $(LIBS)
libparpacksrcmpi.la: $(libparpacksrcmpi_la_OBJECTS) $(libparpacksrcmpi_la_DEPENDENCIES)
$(libparpacksrcmpi_la_LINK) $(libparpacksrcmpi_la_OBJECTS) $(libparpacksrcmpi_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
.f.o:
$(F77COMPILE) -c -o $@ $<
.f.obj:
$(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.f.lo:
$(LTF77COMPILE) -c -o $@ $<
libparpack_noopt_la-pslamch.lo: pslamch.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpack_noopt_la_FFLAGS) $(FFLAGS) -c -o libparpack_noopt_la-pslamch.lo `test -f 'pslamch.f' || echo '$(srcdir)/'`pslamch.f
libparpack_noopt_la-pdlamch.lo: pdlamch.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpack_noopt_la_FFLAGS) $(FFLAGS) -c -o libparpack_noopt_la-pdlamch.lo `test -f 'pdlamch.f' || echo '$(srcdir)/'`pdlamch.f
libparpacksrcmpi_la-psgetv0.lo: psgetv0.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-psgetv0.lo `test -f 'psgetv0.f' || echo '$(srcdir)/'`psgetv0.f
libparpacksrcmpi_la-psnaitr.lo: psnaitr.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-psnaitr.lo `test -f 'psnaitr.f' || echo '$(srcdir)/'`psnaitr.f
libparpacksrcmpi_la-psnapps.lo: psnapps.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-psnapps.lo `test -f 'psnapps.f' || echo '$(srcdir)/'`psnapps.f
libparpacksrcmpi_la-psnaup2.lo: psnaup2.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-psnaup2.lo `test -f 'psnaup2.f' || echo '$(srcdir)/'`psnaup2.f
libparpacksrcmpi_la-psnaupd.lo: psnaupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-psnaupd.lo `test -f 'psnaupd.f' || echo '$(srcdir)/'`psnaupd.f
libparpacksrcmpi_la-psneigh.lo: psneigh.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-psneigh.lo `test -f 'psneigh.f' || echo '$(srcdir)/'`psneigh.f
libparpacksrcmpi_la-psngets.lo: psngets.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-psngets.lo `test -f 'psngets.f' || echo '$(srcdir)/'`psngets.f
libparpacksrcmpi_la-pssaitr.lo: pssaitr.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pssaitr.lo `test -f 'pssaitr.f' || echo '$(srcdir)/'`pssaitr.f
libparpacksrcmpi_la-pssapps.lo: pssapps.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pssapps.lo `test -f 'pssapps.f' || echo '$(srcdir)/'`pssapps.f
libparpacksrcmpi_la-pssaup2.lo: pssaup2.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pssaup2.lo `test -f 'pssaup2.f' || echo '$(srcdir)/'`pssaup2.f
libparpacksrcmpi_la-pssaupd.lo: pssaupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pssaupd.lo `test -f 'pssaupd.f' || echo '$(srcdir)/'`pssaupd.f
libparpacksrcmpi_la-psseigt.lo: psseigt.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-psseigt.lo `test -f 'psseigt.f' || echo '$(srcdir)/'`psseigt.f
libparpacksrcmpi_la-pssgets.lo: pssgets.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pssgets.lo `test -f 'pssgets.f' || echo '$(srcdir)/'`pssgets.f
libparpacksrcmpi_la-psneupd.lo: psneupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-psneupd.lo `test -f 'psneupd.f' || echo '$(srcdir)/'`psneupd.f
libparpacksrcmpi_la-psseupd.lo: psseupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-psseupd.lo `test -f 'psseupd.f' || echo '$(srcdir)/'`psseupd.f
libparpacksrcmpi_la-pslarnv.lo: pslarnv.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pslarnv.lo `test -f 'pslarnv.f' || echo '$(srcdir)/'`pslarnv.f
libparpacksrcmpi_la-psnorm2.lo: psnorm2.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-psnorm2.lo `test -f 'psnorm2.f' || echo '$(srcdir)/'`psnorm2.f
libparpacksrcmpi_la-pdgetv0.lo: pdgetv0.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdgetv0.lo `test -f 'pdgetv0.f' || echo '$(srcdir)/'`pdgetv0.f
libparpacksrcmpi_la-pdnaitr.lo: pdnaitr.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdnaitr.lo `test -f 'pdnaitr.f' || echo '$(srcdir)/'`pdnaitr.f
libparpacksrcmpi_la-pdnapps.lo: pdnapps.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdnapps.lo `test -f 'pdnapps.f' || echo '$(srcdir)/'`pdnapps.f
libparpacksrcmpi_la-pdnaup2.lo: pdnaup2.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdnaup2.lo `test -f 'pdnaup2.f' || echo '$(srcdir)/'`pdnaup2.f
libparpacksrcmpi_la-pdnaupd.lo: pdnaupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdnaupd.lo `test -f 'pdnaupd.f' || echo '$(srcdir)/'`pdnaupd.f
libparpacksrcmpi_la-pdneigh.lo: pdneigh.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdneigh.lo `test -f 'pdneigh.f' || echo '$(srcdir)/'`pdneigh.f
libparpacksrcmpi_la-pdngets.lo: pdngets.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdngets.lo `test -f 'pdngets.f' || echo '$(srcdir)/'`pdngets.f
libparpacksrcmpi_la-pdsaitr.lo: pdsaitr.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdsaitr.lo `test -f 'pdsaitr.f' || echo '$(srcdir)/'`pdsaitr.f
libparpacksrcmpi_la-pdsapps.lo: pdsapps.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdsapps.lo `test -f 'pdsapps.f' || echo '$(srcdir)/'`pdsapps.f
libparpacksrcmpi_la-pdsaup2.lo: pdsaup2.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdsaup2.lo `test -f 'pdsaup2.f' || echo '$(srcdir)/'`pdsaup2.f
libparpacksrcmpi_la-pdsaupd.lo: pdsaupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdsaupd.lo `test -f 'pdsaupd.f' || echo '$(srcdir)/'`pdsaupd.f
libparpacksrcmpi_la-pdseigt.lo: pdseigt.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdseigt.lo `test -f 'pdseigt.f' || echo '$(srcdir)/'`pdseigt.f
libparpacksrcmpi_la-pdsgets.lo: pdsgets.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdsgets.lo `test -f 'pdsgets.f' || echo '$(srcdir)/'`pdsgets.f
libparpacksrcmpi_la-pdneupd.lo: pdneupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdneupd.lo `test -f 'pdneupd.f' || echo '$(srcdir)/'`pdneupd.f
libparpacksrcmpi_la-pdseupd.lo: pdseupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdseupd.lo `test -f 'pdseupd.f' || echo '$(srcdir)/'`pdseupd.f
libparpacksrcmpi_la-pdlarnv.lo: pdlarnv.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdlarnv.lo `test -f 'pdlarnv.f' || echo '$(srcdir)/'`pdlarnv.f
libparpacksrcmpi_la-pdnorm2.lo: pdnorm2.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdnorm2.lo `test -f 'pdnorm2.f' || echo '$(srcdir)/'`pdnorm2.f
libparpacksrcmpi_la-pcnaitr.lo: pcnaitr.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pcnaitr.lo `test -f 'pcnaitr.f' || echo '$(srcdir)/'`pcnaitr.f
libparpacksrcmpi_la-pcnapps.lo: pcnapps.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pcnapps.lo `test -f 'pcnapps.f' || echo '$(srcdir)/'`pcnapps.f
libparpacksrcmpi_la-pcnaup2.lo: pcnaup2.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pcnaup2.lo `test -f 'pcnaup2.f' || echo '$(srcdir)/'`pcnaup2.f
libparpacksrcmpi_la-pcnaupd.lo: pcnaupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pcnaupd.lo `test -f 'pcnaupd.f' || echo '$(srcdir)/'`pcnaupd.f
libparpacksrcmpi_la-pcneigh.lo: pcneigh.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pcneigh.lo `test -f 'pcneigh.f' || echo '$(srcdir)/'`pcneigh.f
libparpacksrcmpi_la-pcneupd.lo: pcneupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pcneupd.lo `test -f 'pcneupd.f' || echo '$(srcdir)/'`pcneupd.f
libparpacksrcmpi_la-pcngets.lo: pcngets.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pcngets.lo `test -f 'pcngets.f' || echo '$(srcdir)/'`pcngets.f
libparpacksrcmpi_la-pcgetv0.lo: pcgetv0.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pcgetv0.lo `test -f 'pcgetv0.f' || echo '$(srcdir)/'`pcgetv0.f
libparpacksrcmpi_la-pscnorm2.lo: pscnorm2.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pscnorm2.lo `test -f 'pscnorm2.f' || echo '$(srcdir)/'`pscnorm2.f
libparpacksrcmpi_la-pclarnv.lo: pclarnv.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pclarnv.lo `test -f 'pclarnv.f' || echo '$(srcdir)/'`pclarnv.f
libparpacksrcmpi_la-pznaitr.lo: pznaitr.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pznaitr.lo `test -f 'pznaitr.f' || echo '$(srcdir)/'`pznaitr.f
libparpacksrcmpi_la-pznapps.lo: pznapps.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pznapps.lo `test -f 'pznapps.f' || echo '$(srcdir)/'`pznapps.f
libparpacksrcmpi_la-pznaup2.lo: pznaup2.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pznaup2.lo `test -f 'pznaup2.f' || echo '$(srcdir)/'`pznaup2.f
libparpacksrcmpi_la-pznaupd.lo: pznaupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pznaupd.lo `test -f 'pznaupd.f' || echo '$(srcdir)/'`pznaupd.f
libparpacksrcmpi_la-pzneigh.lo: pzneigh.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pzneigh.lo `test -f 'pzneigh.f' || echo '$(srcdir)/'`pzneigh.f
libparpacksrcmpi_la-pzneupd.lo: pzneupd.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pzneupd.lo `test -f 'pzneupd.f' || echo '$(srcdir)/'`pzneupd.f
libparpacksrcmpi_la-pzngets.lo: pzngets.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pzngets.lo `test -f 'pzngets.f' || echo '$(srcdir)/'`pzngets.f
libparpacksrcmpi_la-pzgetv0.lo: pzgetv0.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pzgetv0.lo `test -f 'pzgetv0.f' || echo '$(srcdir)/'`pzgetv0.f
libparpacksrcmpi_la-pdznorm2.lo: pdznorm2.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pdznorm2.lo `test -f 'pdznorm2.f' || echo '$(srcdir)/'`pdznorm2.f
libparpacksrcmpi_la-pzlarnv.lo: pzlarnv.f
$(LIBTOOL) --tag=F77 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(F77) $(libparpacksrcmpi_la_FFLAGS) $(FFLAGS) -c -o libparpacksrcmpi_la-pzlarnv.lo `test -f 'pzlarnv.f' || echo '$(srcdir)/'`pzlarnv.f
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES)
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am:
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool clean-noinstLTLIBRARIES ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
-130
View File
@@ -1,130 +0,0 @@
C/*
C *
C * (C) 1993 by Argonne National Laboratory and Mississipi State University.
C * All rights reserved. See COPYRIGHT in top-level directory.
C */
C
C/* user include file for MPI programs, with no dependencies */
C
C/* return codes */
integer MPI_SUCCESS,MPI_ERR_EXHAUSTED,MPI_ERR_TAG,
$ MPI_ERR_COMM_NULL,MPI_ERR_COMM_INTER,MPI_ERR_COMM_INTRA,
$ MPI_ERR_ARG,MPI_ERR_BUFFER,MPI_ERR_COUNT,MPI_ERR_TYPE,
$ MPI_ERR_ROOT,MPI_ERR_OP,MPI_ERR_ERRORCODE,
$ MPI_ERR_GROUP,MPI_ERR_RANK,MPI_ERR_TOPOLOGY,
$ MPI_ERR_DIMS,MPI_ERR_NULL,MPI_ERR_UNKNOWN,
$ MPI_ERR_REQUEST,MPI_ERR_LIMIT,MPI_ERR_INTERN,
$ MPI_ERR_NOMATCH,MPI_ERR_TRUNCATE,MPI_ERR_BAD_ARGS,
$ MPI_ERR_INIT,MPI_ERR_PERM_KEY,MPI_ERR_BUFFER_EXISTS,
$ MPI_ERR_COMM,MPI_ERR_PERM_TYPE,MPI_ERR_IN_STATUS,
$ MPI_ERR_OTHER,MPI_ERR_LASTCODE
parameter (MPI_SUCCESS=0,MPI_ERR_EXHAUSTED=1,MPI_ERR_TAG=2,
$ MPI_ERR_COMM_NULL=3,MPI_ERR_COMM_INTER=4,MPI_ERR_COMM_INTRA=5,
$ MPI_ERR_ARG=6,MPI_ERR_BUFFER=7,MPI_ERR_COUNT=8,MPI_ERR_TYPE=9,
$ MPI_ERR_ROOT=10,MPI_ERR_OP=11,MPI_ERR_ERRORCODE=12,
$ MPI_ERR_GROUP=13,MPI_ERR_RANK=14,MPI_ERR_TOPOLOGY=15,
$ MPI_ERR_DIMS=16,MPI_ERR_NULL=17,MPI_ERR_UNKNOWN=18,
$ MPI_ERR_REQUEST=19,MPI_ERR_LIMIT=20,MPI_ERR_INTERN=21,
$ MPI_ERR_NOMATCH=22,MPI_ERR_TRUNCATE=23,MPI_ERR_BAD_ARGS=24,
$ MPI_ERR_INIT=25,MPI_ERR_PERM_KEY=26,MPI_ERR_BUFFER_EXISTS=27,
$ MPI_ERR_COMM=28,MPI_ERR_PERM_TYPE=29,MPI_ERR_IN_STATUS=30,
$ MPI_ERR_OTHER=31,
$ MPI_ERR_LASTCODE=32)
C
integer MPI_UNDEFINED
parameter (MPI_UNDEFINED = (-32766))
C
INTEGER MPI_GRAPH, MPI_CART
PARAMETER (MPI_GRAPH = 1, MPI_CART = 2)
INTEGER MPI_PROC_NULL
PARAMETER ( MPI_PROC_NULL = (-1) )
C
INTEGER MPI_BSEND_OVERHEAD
PARAMETER ( MPI_BSEND_OVERHEAD = 512 )
INTEGER MPI_SOURCE, MPI_TAG, MPI_ERROR
PARAMETER(MPI_SOURCE=2, MPI_TAG=3, MPI_ERROR=4)
INTEGER MPI_STATUS_SIZE
PARAMETER (MPI_STATUS_SIZE=4)
INTEGER MPI_MAX_PROCESSOR_NAME, MPI_MAX_ERROR_STRING
PARAMETER (MPI_MAX_PROCESSOR_NAME=256,
$ MPI_MAX_ERROR_STRING=256)
C
INTEGER MPI_COMM_NULL
PARAMETER (MPI_COMM_NULL=0)
c
INTEGER MPI_DATATYPE_NULL
PARAMETER (MPI_DATATYPE_NULL = 0)
INTEGER MPI_ERRHANDLER_NULL
PARAMETER (MPI_ERRHANDLER_NULL = 0)
INTEGER MPI_GROUP_NULL
PARAMETER (MPI_GROUP_NULL = 0)
INTEGER MPI_KEYVAL_INVALID
PARAMETER (MPI_KEYVAL_INVALID = 0)
INTEGER MPI_REQUEST_NULL
PARAMETER (MPI_REQUEST_NULL = 0)
C
INTEGER MPI_IDENT, MPI_CONGRUENT, MPI_SIMILAR, MPI_UNEQUAL
PARAMETER (MPI_IDENT=0, MPI_CONGRUENT=1, MPI_SIMILAR=2,
$ MPI_UNEQUAL=3)
C
C We handle datatypes by putting the variables that hold them into
C common. This way, a Fortran program can directly use the various
C datatypes and can even give them to C programs.
C
C MPI_BOTTOM needs to be a known address; here we put it at the
C beginning of the common block. The point-to-point and collective
C routines know about MPI_BOTTOM, but MPI_TYPE_STRUCT as yet does not.
C
C The types MPI_INTEGER1,2,4 and MPI_REAL4,8 are OPTIONAL.
C Their values are zero if they are not available. Note that
C using these reduces the portability of code (though may enhance
C portability between Crays and other systems)
C
integer MPI_TAG_UB, MPI_HOST, MPI_IO
integer MPI_BOTTOM, MPI_INTEGER, MPI_REAL, MPI_DOUBLE_PRECISION,
$ MPI_COMPLEX, MPI_DOUBLE_COMPLEX,
$ MPI_LOGICAL, MPI_CHARACTER, MPI_BYTE,
$ MPI_2INTEGER, MPI_2REAL, MPI_2DOUBLE_PRECISION,
$ MPI_2COMPLEX, MPI_2DOUBLE_COMPLEX,
$ MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4,
$ MPI_REAL2, MPI_REAL4, MPI_REAL8, MPI_UB, MPI_LB,
$ MPI_PACKED
integer MPI_COMM_WORLD, MPI_COMM_SELF, MPI_GROUP_EMPTY
integer MPI_SUM, MPI_MAX, MPI_MIN, MPI_PROD, MPI_LAND, MPI_BAND,
$ MPI_LOR, MPI_BOR, MPI_LXOR, MPI_BXOR, MPI_MINLOC, MPI_MAXLOC,
$ MPI_OP_NULL
integer MPI_ERRORS_ARE_FATAL, MPI_ERRORS_RETURN
common /mpipriv/ MPI_BOTTOM, MPI_INTEGER, MPI_REAL,
$ MPI_DOUBLE_PRECISION,
$ MPI_COMPLEX, MPI_DOUBLE_COMPLEX,
$ MPI_LOGICAL, MPI_CHARACTER, MPI_BYTE,
$ MPI_2INTEGER, MPI_2REAL, MPI_2DOUBLE_PRECISION,
$ MPI_2COMPLEX, MPI_2DOUBLE_COMPLEX,
$ MPI_INTEGER1, MPI_INTEGER2, MPI_INTEGER4,
$ MPI_REAL2, MPI_REAL4, MPI_REAL8,
$ MPI_UB, MPI_LB,
$ MPI_COMM_WORLD, MPI_COMM_SELF, MPI_GROUP_EMPTY,
$ MPI_SUM, MPI_MAX, MPI_MIN, MPI_PROD, MPI_LAND, MPI_BAND,
$ MPI_LOR, MPI_BOR, MPI_LXOR, MPI_BXOR, MPI_MINLOC, MPI_MAXLOC,
$ MPI_OP_NULL,
$ MPI_TAG_UB, MPI_HOST, MPI_IO, MPI_ERRORS_ARE_FATAL,
$ MPI_ERRORS_RETURN, MPI_PACKED
C
integer MPI_ANY_SOURCE
parameter (MPI_ANY_SOURCE = (-2))
integer MPI_ANY_TAG
parameter (MPI_ANY_TAG = (-1))
C
C All other MPI routines are subroutines
double precision MPI_WTIME, MPI_WTICK
external MPI_WTIME, MPI_WTICK
C
C The attribute copy/delete functions are symbols that can be passed
C to MPI routines
external MPI_NULL_COPY_FN, MPI_NULL_DELETE_FN, MPI_DUP_FN
+10 -10
View File
@@ -95,7 +95,7 @@ c a k-Step Arnoldi Method", SIAM J. Matr. Anal. Apps., 13 (1992),
c pp 357-385.
c
c\Routines called:
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcvout Parallel ARPACK utility routine that prints vectors.
c pclarnv Parallel wrapper for LAPACK routine clarnv (generates a random vector).
c cgemv Level 2 BLAS routine for matrix vector multiplication.
@@ -191,7 +191,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external ccopy, cgemv, pclarnv, pcvout, second
external ccopy, cgemv, pclarnv, pcvout, arscnd
c
c %--------------------%
c | External Functions |
@@ -251,7 +251,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mgetv0
c
ierr = 0
@@ -278,7 +278,7 @@ c | Force the starting vector into the range of OP to handle |
c | the generalized problem when B is possibly (singular). |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nopx = nopx + 1
ipntr(1) = 1
@@ -301,7 +301,7 @@ c %-----------------------------------------------%
c
if (orth) go to 40
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
c
c %------------------------------------------------------%
@@ -309,7 +309,7 @@ c | Starting vector is now in the range of OP; r = OP*r; |
c | Compute B-norm of starting vector. |
c %------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
first = .TRUE.
if (bmat .eq. 'G') then
nbx = nbx + 1
@@ -325,7 +325,7 @@ c
20 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -372,7 +372,7 @@ c %----------------------------------------------------------%
c | Compute the B-norm of the orthogonalized starting vector |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call ccopy (n, resid, 1, workd(n+1), 1)
@@ -387,7 +387,7 @@ c
40 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -448,7 +448,7 @@ c
end if
ido = 99
c
call second (t1)
call arscnd (t1)
tgetv0 = tgetv0 + (t1 - t0)
c
9000 continue
+15 -15
View File
@@ -137,7 +137,7 @@ c
c\Routines called:
c pcgetv0 Parallel ARPACK routine to generate the initial vector.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcmout Parallel ARPACK utility routine that prints matrices
c pcvout Parallel ARPACK utility routine that prints vectors.
c clanhs LAPACK routine that computes various norms of a matrix.
@@ -299,7 +299,7 @@ c | External Subroutines |
c %----------------------%
c
external caxpy, ccopy, cscal, cgemv, pcgetv0, slabad,
& csscal, pcvout, pcmout, pivout, second
& csscal, pcvout, pcmout, pivout, arscnd
c
c %--------------------%
c | External Functions |
@@ -352,7 +352,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mcaitr
c
c %------------------------------%
@@ -463,7 +463,7 @@ c | which spans OP and exit. |
c %------------------------------------------------%
c
info = j - 1
call second (t1)
call arscnd (t1)
tcaitr = tcaitr + (t1 - t0)
ido = 99
go to 9000
@@ -503,7 +503,7 @@ c %------------------------------------------------------%
c
step3 = .true.
nopx = nopx + 1
call second (t2)
call arscnd (t2)
call ccopy (n, v(1,j), 1, workd(ivj), 1)
ipntr(1) = ivj
ipntr(2) = irj
@@ -523,7 +523,7 @@ c | WORKD(IRJ:IRJ+N-1) := OP*v_{j} |
c | if step3 = .true. |
c %----------------------------------%
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
step3 = .false.
@@ -539,7 +539,7 @@ c | STEP 4: Finish extending the Arnoldi |
c | factorization to length j. |
c %---------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
step4 = .true.
@@ -564,7 +564,7 @@ c | if step4 = .true. |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -613,11 +613,11 @@ c
c
if (j .gt. 1) h(j,j-1) = cmplx(betaj, rzero)
c
call second (t4)
call arscnd (t4)
c
orth1 = .true.
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call ccopy (n, resid, 1, workd(irj), 1)
@@ -641,7 +641,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*r_{j}. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -723,7 +723,7 @@ c
call caxpy (j, one, workl(1), 1, h(1,j), 1)
c
orth2 = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call ccopy (n, resid, 1, workd(irj), 1)
@@ -747,7 +747,7 @@ c | Back from reverse communication if ORTH2 = .true. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -827,7 +827,7 @@ c
rstart = .false.
orth2 = .false.
c
call second (t5)
call arscnd (t5)
titref = titref + (t5 - t4)
c
c %------------------------------------%
@@ -836,7 +836,7 @@ c %------------------------------------%
c
j = j + 1
if (j .gt. k+np) then
call second (t1)
call arscnd (t1)
tcaitr = tcaitr + (t1 - t0)
ido = 99
do 110 i = max(1,k), k+np-1
+7 -7
View File
@@ -96,7 +96,7 @@ c pp 357-385.
c
c\Routines called:
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcmout Parallel ARPACK utility routine that prints matrices
c pcvout Parallel ARPACK utility routine that prints vectors.
c clacpy LAPACK matrix copy routine.
@@ -127,7 +127,7 @@ c\Revision history:
c Starting Point: Serial Complex Code FILE: napps.F SID: 2.1
c
c\SCCS Information:
c FILE: napps.F SID: 1.3 DATE OF SID: 06/04/98
c FILE: napps.F SID: 1.4 DATE OF SID: 10/25/03
c
c\Remarks
c 1. In this version, each shift is applied to all the sublocks of
@@ -200,7 +200,7 @@ c | External Subroutines |
c %----------------------%
c
external caxpy, ccopy, cgemv, cscal, clacpy, clartg,
& pcvout, claset, slabad, pcmout, second, pivout
& pcvout, claset, slabad, pcmout, arscnd, pivout
c
c %--------------------%
c | External Functions |
@@ -243,10 +243,10 @@ c | overflow should not occur. |
c | REFERENCE: LAPACK subroutine clahqr |
c %-----------------------------------------------%
c
unfl = slamch( 'safe minimum' )
unfl = pslamch( comm, 'safe minimum' )
ovfl = real(one / unfl)
call slabad( unfl, ovfl )
ulp = slamch( 'precision' )
ulp = pslamch( comm, 'precision' )
smlnum = unfl*( n / ulp )
first = .false.
end if
@@ -256,7 +256,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mcapps
c
kplusp = kev + np
@@ -511,7 +511,7 @@ c
end if
c
9000 continue
call second (t1)
call arscnd (t1)
tcapps = tcapps + (t1 - t0)
c
return
+36 -37
View File
@@ -2,7 +2,7 @@ c\BeginDoc
c
c\Name: pcnaup2
c
c Message Passing Layer: MPI
c Message Passing Layer: MPI
c
c\Description:
c Intermediate level interface called by pcnaupd.
@@ -39,7 +39,7 @@ c IUPD Integer. (INPUT)
c IUPD .EQ. 0: use explicit restart instead implicit update.
c IUPD .NE. 0: use implicit update.
c
c V Complex N by (NEV+NP) array. (INPUT/OUTPUT)
c V Complex N by (NEV+NP) array. (INPUT/OUTPUT)
c The Arnoldi basis vectors are returned in the first NEV
c columns of V.
c
@@ -47,21 +47,21 @@ c LDV Integer. (INPUT)
c Leading dimension of V exactly as declared in the calling
c program.
c
c H Complex (NEV+NP) by (NEV+NP) array. (OUTPUT)
c H Complex (NEV+NP) by (NEV+NP) array. (OUTPUT)
c H is used to store the generated upper Hessenberg matrix
c
c LDH Integer. (INPUT)
c Leading dimension of H exactly as declared in the calling
c program.
c
c RITZ Complex array of length NEV+NP. (OUTPUT)
c RITZ Complex array of length NEV+NP. (OUTPUT)
c RITZ(1:NEV) contains the computed Ritz values of OP.
c
c BOUNDS Complex array of length NEV+NP. (OUTPUT)
c BOUNDS Complex array of length NEV+NP. (OUTPUT)
c BOUNDS(1:NEV) contain the error bounds corresponding to
c the computed Ritz values.
c
c Q Complex (NEV+NP) by (NEV+NP) array. (WORKSPACE)
c Q Complex (NEV+NP) by (NEV+NP) array. (WORKSPACE)
c Private (replicated) work array used to accumulate the
c rotation in the shift application step.
c
@@ -69,7 +69,7 @@ c LDQ Integer. (INPUT)
c Leading dimension of Q exactly as declared in the calling
c program.
c
c WORKL Complex work array of length at least
c WORKL Complex work array of length at least
c (NEV+NP)**2 + 3*(NEV+NP). (WORKSPACE)
c Private (replicated) array on each PE or array allocated on
c the front end. It is used in shifts calculation, shifts
@@ -86,13 +86,13 @@ c IPNTR(3): pointer to the vector B * X when used in the
c shift-and-invert mode. X is the current operand.
c -------------------------------------------------------------
c
c WORKD Complex work array of length 3*N. (WORKSPACE)
c WORKD Complex work array of length 3*N. (WORKSPACE)
c Distributed array to be used in the basic Arnoldi iteration
c for reverse communication. The user should not use WORKD
c as temporary workspace during the iteration !!!!!!!!!!
c See Data Distribution Note in PCNAUPD.
c
c RWORK Real work array of length NEV+NP ( WORKSPACE)
c RWORK Real work array of length NEV+NP ( WORKSPACE)
c Private (replicated) array on each PE or array allocated on
c the front end.
c
@@ -119,7 +119,7 @@ c
c\BeginLib
c
c\Local variables:
c xxxxxx Complex
c xxxxxx Complex
c
c\References:
c 1. D.C. Sorensen, "Implicit Application of Polynomial Filters in
@@ -137,7 +137,7 @@ c pcneigh Parallel ARPACK compute Ritz values and error bounds routine.
c pcngets Parallel ARPACK reorder Ritz values and error bounds routine.
c csortc ARPACK sorting routine.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcmout Parallel ARPACK utility routine that prints matrices
c pcvout Parallel ARPACK utility routine that prints vectors.
c psvout ARPACK utility routine that prints vectors.
@@ -156,7 +156,7 @@ c Applied Mathematics
c Rice University
c Houston, Texas
c
c FILE: naup2.F SID: 1.6 DATE OF SID: 06/01/00 RELEASE: 1
c FILE: naup2.F SID: 1.7 DATE OF SID: 10/25/03 RELEASE: 1
c
c\Remarks
c 1. None
@@ -192,7 +192,7 @@ c
character bmat*1, which*2
integer ido, info, ishift, iupd, mode, ldh, ldq, ldv, mxiter,
& n, nev, np
Real
Real
& tol
c
c %-----------------%
@@ -200,23 +200,23 @@ c | Array Arguments |
c %-----------------%
c
integer ipntr(13)
Complex
Complex
& bounds(nev+np), h(ldh,nev+np), q(ldq,nev+np),
& resid(n), ritz(nev+np), v(ldv,nev+np),
& workd(3*n), workl( (nev+np)*(nev+np+3) )
Real
Real
& rwork(nev+np)
c
c %------------%
c | Parameters |
c %------------%
c
Complex
Complex
& one, zero
Real
Real
& rzero
parameter (one = (1.0, 0.0) , zero = (0.0, 0.0) ,
& rzero = 0.0 )
parameter (one = (1.0, 0.0), zero = (0.0, 0.0),
& rzero = 0.0)
c
c %---------------%
c | Local Scalars |
@@ -226,9 +226,9 @@ c
integer ierr , iter , kplusp, msglvl, nconv,
& nevbef, nev0 , np0 , nptemp, i ,
& j
Complex
Complex
& cmpnorm
Real
Real
& rnorm, eps23, rtemp
character wprime*2
c
@@ -236,8 +236,7 @@ c
& rnorm, iter , kplusp, msglvl, nconv,
& nevbef, nev0 , np0, eps23
c
Real
Real
& cmpnorm_buf
c
c %-----------------------%
@@ -251,15 +250,15 @@ c | External Subroutines |
c %----------------------%
c
external ccopy, pcgetv0, pcnaitr, pcneigh, pcngets, pcnapps,
& csortc, cswap, pcmout, pcvout, pivout, second
& csortc, cswap, pcmout, pcvout, pivout, arscnd
c
c %--------------------%
c | External functions |
c %--------------------%
c
Complex
Complex
& cdotc
Real
Real
& pscnorm2, pslamch, slapy2
external cdotc, pscnorm2, pslamch, slapy2
c
@@ -267,7 +266,7 @@ c %---------------------%
c | Intrinsic Functions |
c %---------------------%
c
intrinsic aimag, real , min, max, sqrt
intrinsic aimag, real, min, max, sqrt
c
c %-----------------------%
c | Executable Statements |
@@ -275,7 +274,7 @@ c %-----------------------%
c
if (ido .eq. 0) then
c
call second (t0)
call arscnd (t0)
c
msglvl = mcaup2
c
@@ -300,7 +299,7 @@ c | Get machine dependent constant. |
c %---------------------------------%
c
eps23 = pslamch(comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0 )
eps23 = eps23**(2.0 / 3.0)
c
c %---------------------------------------%
c | Set flags for computing the first NEV |
@@ -503,9 +502,9 @@ c
nconv = 0
c
do 25 i = 1, nev
rtemp = max( eps23, slapy2( real (ritz(np+i)),
rtemp = max( eps23, slapy2( real(ritz(np+i)),
& aimag(ritz(np+i)) ) )
if ( slapy2(real (bounds(np+i)),aimag(bounds(np+i)))
if ( slapy2(real(bounds(np+i)),aimag(bounds(np+i)))
& .le. tol*rtemp ) then
nconv = nconv + 1
end if
@@ -590,7 +589,7 @@ c | by 1 / max(eps23, magnitude of the Ritz value). |
c %--------------------------------------------------%
c
do 35 j = 1, nev0
rtemp = max( eps23, slapy2( real (ritz(j)),
rtemp = max( eps23, slapy2( real(ritz(j)),
& aimag(ritz(j)) ) )
bounds(j) = bounds(j)/rtemp
35 continue
@@ -611,7 +610,7 @@ c | value. |
c %----------------------------------------------%
c
do 40 j = 1, nev0
rtemp = max( eps23, slapy2( real (ritz(j)),
rtemp = max( eps23, slapy2( real(ritz(j)),
& aimag(ritz(j)) ) )
bounds(j) = bounds(j)*rtemp
40 continue
@@ -741,7 +740,7 @@ c | the first step of the next call to pcnaitr. |
c %---------------------------------------------%
c
cnorm = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call ccopy (n, resid, 1, workd(n+1), 1)
@@ -766,7 +765,7 @@ c | WORKD(1:N) := B*RESID |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -774,7 +773,7 @@ c
cmpnorm_buf = cdotc (n, resid, 1, workd, 1)
call MPI_ALLREDUCE( cmpnorm_buf, cmpnorm, 1,
& MPI_COMPLEX, MPI_SUM, comm, ierr )
rnorm = sqrt(slapy2(real (cmpnorm),aimag(cmpnorm)))
rnorm = sqrt(slapy2(real(cmpnorm),aimag(cmpnorm)))
else if (bmat .eq. 'I') then
rnorm = pscnorm2(comm, n, resid, 1)
end if
@@ -807,7 +806,7 @@ c %------------%
c | Error Exit |
c %------------%
c
call second (t1)
call arscnd (t1)
tcaup2 = t1 - t0
c
9000 continue
+4 -4
View File
@@ -359,7 +359,7 @@ c Arnoldi Iteration.
c cstatn ARPACK routine that initializes the timing variables.
c pivout Parallel ARPACK utility routine that prints integers.
c pcvout Parallel ARPACK utility routine that prints vectors.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pslamch ScaLAPACK routine that determines machine constants.
c
c\Author
@@ -446,7 +446,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pcnaup2, pcvout, pivout, second, cstatn
external pcnaup2, pcvout, pivout, arscnd, cstatn
c
c %--------------------%
c | External Functions |
@@ -468,7 +468,7 @@ c | & message level for debugging |
c %-------------------------------%
c
call cstatn
call second (t0)
call arscnd (t0)
msglvl = mcaupd
c
c %----------------%
@@ -628,7 +628,7 @@ c
& '_naupd: Associated Ritz estimates')
end if
c
call second (t1)
call arscnd (t1)
tcaupd = t1 - t0
c
if (msglvl .gt. 0) then
+4 -4
View File
@@ -68,7 +68,7 @@ c xxxxxx Complex
c
c\Routines called:
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcmout Parallel ARPACK utility routine that prints matrices
c pcvout Parallel ARPACK utility routine that prints vectors.
c psvout Parallel ARPACK utility routine that prints vectors.
@@ -168,7 +168,7 @@ c | External Subroutines |
c %----------------------%
c
external clacpy, clahqr, csscal, ctrevc, ccopy,
& pcmout, pcvout, second
& pcmout, pcvout, arscnd
c
c %--------------------%
c | External Functions |
@@ -188,7 +188,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mceigh
c
if (msglvl .gt. 2) then
@@ -261,7 +261,7 @@ c
& '_neigh: Ritz estimates for the eigenvalues of H')
end if
c
call second(t1)
call arscnd(t1)
tceigh = tceigh + (t1 - t0)
c
9000 continue
+27 -27
View File
@@ -2,7 +2,7 @@ c\BeginDoc
c
c\Name: pcneupd
c
c Message Passing Layer: MPI
c Message Passing Layer: MPI
c
c\Description:
c This subroutine returns the converged approximations to eigenvalues
@@ -42,7 +42,7 @@ c N, WHICH, NEV, TOL, RESID, NCV, V, LDV, IPARAM, IPNTR, WORKD,
c WORKL, LWORKL, RWORK, INFO )
c
c\Arguments
c COMM MPI Communicator for the processor grid. (INPUT)
c COMM MPI Communicator for the processor grid. (INPUT)
c
c RVEC LOGICAL (INPUT)
c Specifies whether a basis for the invariant subspace corresponding
@@ -70,11 +70,11 @@ c Ritz value D(j), SELECT(j) must be set to .TRUE..
c If HOWMNY = 'A' or 'P', SELECT need not be initialized
c but it is used as internal workspace.
c
c D Complex array of dimension NEV+1. (OUTPUT)
c D Complex array of dimension NEV+1. (OUTPUT)
c On exit, D contains the Ritz approximations
c to the eigenvalues lambda for A*z = lambda*B*z.
c
c Z Complex N by NEV array (OUTPUT)
c Z Complex N by NEV array (OUTPUT)
c On exit, if RVEC = .TRUE. and HOWMNY = 'A', then the columns of
c Z represents approximate eigenvectors (Ritz vectors) corresponding
c to the NCONV=IPARAM(5) Ritz values for eigensystem
@@ -92,11 +92,11 @@ c The leading dimension of the array Z. If Ritz vectors are
c desired, then LDZ .ge. max( 1, N ) is required.
c In any case, LDZ .ge. 1 is required.
c
c SIGMA Complex (INPUT)
c SIGMA Complex (INPUT)
c If IPARAM(7) = 3 then SIGMA represents the shift.
c Not referenced if IPARAM(7) = 1 or 2.
c
c WORKEV Complex work array of dimension 2*NCV. (WORKSPACE)
c WORKEV Complex work array of dimension 2*NCV. (WORKSPACE)
c
c **** The remaining arguments MUST be the same as for the ****
c **** call to PCNAUPD that was just completed. ****
@@ -112,7 +112,7 @@ c the the last call to PCNAUPD and the call to CNEUPD.
c
c Three of these parameters (V, WORKL and INFO) are also output parameters:
c
c V Complex N by NCV array. (INPUT/OUTPUT)
c V Complex N by NCV array. (INPUT/OUTPUT)
c
c Upon INPUT: the NCV columns of V contain the Arnoldi basis
c vectors for OP as constructed by PCNAUPD .
@@ -128,7 +128,7 @@ c Ritz vectors. If a separate array Z has been passed then
c the first NCONV=IPARAM(5) columns of V will contain approximate
c Schur vectors that span the desired invariant subspace.
c
c WORKL Real work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL Real work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL(1:ncv*ncv+2*ncv) contains information obtained in
c PCNAUPD. They are not changed by PCNEUPD.
c WORKL(ncv*ncv+2*ncv+1:3*ncv*ncv+4*ncv) holds the
@@ -249,7 +249,7 @@ c\Revision history:
c Starting Point: Complex Serial Code FILE: neupd.F SID: 2.2
c
c\SCCS Information:
c FILE: neupd.F SID: 1.6 DATE OF SID: 04/10/01
c FILE: neupd.F SID: 1.9 DATE OF SID: 10/25/03
c
c\EndLib
c
@@ -262,7 +262,7 @@ c-----------------------------------------------------------------------
& workd, workl , lworkl, rwork , info )
c
c %--------------------%
c | MPI Communicator |
c | MPI Communicator |
c %--------------------%
c
integer comm
@@ -281,9 +281,9 @@ c
character bmat, howmny, which*2
logical rvec
integer info, ldz, ldv, lworkl, n, ncv, nev
Complex
Complex
& sigma
Real
Real
& tol
c
c %-----------------%
@@ -292,9 +292,9 @@ c %-----------------%
c
integer iparam(11), ipntr(14)
logical select(ncv)
Real
Real
& rwork(ncv)
Complex
Complex
& d(nev) , resid(n) , v(ldv,ncv) ,
& z(ldz, nev), workd(3*n), workl(lworkl),
& workev(2*ncv)
@@ -303,9 +303,9 @@ c %------------%
c | Parameters |
c %------------%
c
Complex
Complex
& one, zero
parameter (one = (1.0, 0.0) , zero = (0.0, 0.0) )
parameter (one = (1.0, 0.0), zero = (0.0, 0.0))
c
c %---------------%
c | Local Scalars |
@@ -317,9 +317,9 @@ c
& mode , msglvl, ritz , wr , k , irz ,
& ibd , outncv, iq , np , numcnv, jj ,
& ishift
Complex
Complex
& rnorm, temp, vl(1)
Real
Real
& conds, sep, rtemp, eps23
logical reord
c
@@ -335,11 +335,11 @@ c %--------------------%
c | External Functions |
c %--------------------%
c
Real
Real
& scnrm2,pslamch,slapy2
external scnrm2,pslamch,slapy2
c
Complex
Complex
& cdotc
external cdotc
c
@@ -368,7 +368,7 @@ c | Get machine dependent constant. |
c %---------------------------------%
c
eps23 = pslamch(comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0 )
eps23 = eps23**(2.0 / 3.0)
c
c %-------------------------------%
c | Quick return |
@@ -518,9 +518,9 @@ c %-------------------------------------%
c
np = ncv - nev
ishift = 0
call cngets(comm, ishift, which ,
& nev , np , workl(irz),
& workl(bounds))
call pcngets(comm, ishift, which ,
& nev , np , workl(irz),
& workl(bounds))
c
if (msglvl .gt. 2) then
call pcvout(comm,logfil, ncv, workl(irz), ndigit,
@@ -686,8 +686,8 @@ c | Note that since Q is orthogonal, R is a diagonal |
c | matrix consisting of plus or minus ones. |
c %---------------------------------------------------%
c
if ( real ( workl(invsub+(j-1)*ldq+j-1) ) .lt.
& real (zero) ) then
if ( real( workl(invsub+(j-1)*ldq+j-1) ) .lt.
& real(zero) ) then
call cscal(nconv, -one, workl(iuptri+j-1), ldq)
call cscal(nconv, -one, workl(iuptri+(j-1)*ldq), 1)
end if
@@ -730,7 +730,7 @@ c %------------------------------------------------%
c
do 40 j=1, nconv
rtemp = scnrm2(ncv, workl(invsub+(j-1)*ldq), 1)
rtemp = real (one) / rtemp
rtemp = real(one) / rtemp
call csscal ( ncv, rtemp,
& workl(invsub+(j-1)*ldq), 1 )
c
+4 -4
View File
@@ -67,7 +67,7 @@ c
c\Routines called:
c csortc ARPACK sorting routine.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pcvout Parallel ARPACK utility routine that prints vectors.
c
c\Author
@@ -142,7 +142,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pcvout, csortc, second
external pcvout, csortc, arscnd
c
c %-----------------------%
c | Executable Statements |
@@ -153,7 +153,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mcgets
c
call csortc (which, .true., kev+np, ritz, bounds)
@@ -173,7 +173,7 @@ c
c
end if
c
call second (t1)
call arscnd (t1)
tcgets = tcgets + (t1 - t0)
c
if (msglvl .gt. 0) then
+10 -10
View File
@@ -99,7 +99,7 @@ c Restarted Arnoldi Iteration", Rice University Technical Report
c TR95-13, Department of Computational and Applied Mathematics.
c
c\Routines called:
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine for vector output.
c pdlarnv Parallel wrapper for LAPACK routine dlarnv (generates a random vector).
c dgemv Level 2 BLAS routine for matrix vector multiplication.
@@ -190,7 +190,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pdlarnv, pdvout, dcopy, dgemv, second
external pdlarnv, pdvout, dcopy, dgemv, arscnd
c
c %--------------------%
c | External Functions |
@@ -237,7 +237,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mgetv0
c
ierr = 0
@@ -264,7 +264,7 @@ c | Force the starting vector into the range of OP to handle |
c | the generalized problem when B is possibly (singular). |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nopx = nopx + 1
ipntr(1) = 1
@@ -287,7 +287,7 @@ c %-----------------------------------------------%
c
if (orth) go to 40
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
c
c %------------------------------------------------------%
@@ -295,7 +295,7 @@ c | Starting vector is now in the range of OP; r = OP*r; |
c | Compute B-norm of starting vector. |
c %------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
first = .TRUE.
if (bmat .eq. 'G') then
nbx = nbx + 1
@@ -311,7 +311,7 @@ c
20 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
endif
c
@@ -358,7 +358,7 @@ c %----------------------------------------------------------%
c | Compute the B-norm of the orthogonalized starting vector |
c %----------------------------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(n+1), 1)
@@ -373,7 +373,7 @@ c
40 continue
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
endif
c
@@ -433,7 +433,7 @@ c
end if
ido = 99
c
call second (t1)
call arscnd (t1)
tgetv0 = tgetv0 + (t1 - t0)
c
9000 continue
@@ -1,4 +1,4 @@
DOUBLE PRECISION FUNCTION PDLAMCH( ICTXT, CMACH )
DOUBLE PRECISION FUNCTION PDLAMCH10( ICTXT, CMACH )
include "mpif.h"
*
* -- ScaLAPACK auxilliary routine (version 1.0) --
@@ -6,6 +6,10 @@
* and University of California, Berkeley.
* February 28, 1995
*
* The name has been changed in order to avoid symbol collision with
* the newer version of PDLAMCH in Scalapack which can not be used
* with MPI context.
*
* .. Scalar Arguments ..
CHARACTER CMACH
INTEGER ICTXT
@@ -20,7 +24,7 @@
* =========
*
* ICTXT (global input) INTEGER
* The BLACS context handle in which the computation takes
* The MPI context handle in which the computation takes
* place.
*
* CMACH (global input) CHARACTER*1
@@ -82,8 +86,8 @@
TEMP = TEMP1
END IF
*
PDLAMCH = TEMP
PDLAMCH10 = TEMP
*
* End of PDLAMCH
* End of PDLAMCH10
*
END
+20 -20
View File
@@ -138,11 +138,11 @@ c
c\Routines called:
c pdgetv0 Parallel ARPACK routine to generate the initial vector.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdmout Parallel ARPACK utility routine that prints matrices
c pdvout Parallel ARPACK utility routine that prints vectors.
c dlabad LAPACK routine that computes machine constants.
c pdlamch ScaLAPACK routine that determines machine constants.
c pdlamch10 ScaLAPACK routine that determines machine constants.
c dlascl LAPACK routine for careful scaling of a matrix.
c dlanhs LAPACK routine that computes various norms of a matrix.
c dgemv Level 2 BLAS routine for matrix vector multiplication.
@@ -290,15 +290,15 @@ c | External Subroutines |
c %----------------------%
c
external daxpy, dcopy, dscal, dgemv, pdgetv0, dlabad,
& pdvout, pdmout, pivout, second
& pdvout, pdmout, pivout, arscnd
c
c %--------------------%
c | External Functions |
c %--------------------%
c
Double precision
& ddot, pdnorm2, dlanhs, pdlamch
external ddot, pdnorm2, dlanhs, pdlamch
& ddot, pdnorm2, dlanhs, pdlamch10
external ddot, pdnorm2, dlanhs, pdlamch10
c
c %---------------------%
c | Intrinsic Functions |
@@ -326,10 +326,10 @@ c | overflow should not occur. |
c | REFERENCE: LAPACK subroutine dlahqr |
c %-----------------------------------------%
c
unfl = pdlamch(comm, 'safe minimum' )
unfl = pdlamch10(comm, 'safe minimum' )
ovfl = one / unfl
call dlabad( unfl, ovfl )
ulp = pdlamch( comm, 'precision' )
ulp = pdlamch10( comm, 'precision' )
smlnum = unfl*( n / ulp )
first = .false.
end if
@@ -341,7 +341,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mnaitr
c
c %------------------------------%
@@ -452,7 +452,7 @@ c | which spans OP and exit. |
c %------------------------------------------------%
c
info = j - 1
call second (t1)
call arscnd (t1)
tnaitr = tnaitr + (t1 - t0)
ido = 99
go to 9000
@@ -492,7 +492,7 @@ c %------------------------------------------------------%
c
step3 = .true.
nopx = nopx + 1
call second (t2)
call arscnd (t2)
call dcopy (n, v(1,j), 1, workd(ivj), 1)
ipntr(1) = ivj
ipntr(2) = irj
@@ -512,7 +512,7 @@ c | WORKD(IRJ:IRJ+N-1) := OP*v_{j} |
c | if step3 = .true. |
c %----------------------------------%
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
step3 = .false.
@@ -528,7 +528,7 @@ c | STEP 4: Finish extending the Arnoldi |
c | factorization to length j. |
c %---------------------------------------%
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
step4 = .true.
@@ -553,7 +553,7 @@ c | if step4 = .true. |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -602,11 +602,11 @@ c
c
if (j .gt. 1) h(j,j-1) = betaj
c
call second (t4)
call arscnd (t4)
c
orth1 = .true.
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(irj), 1)
@@ -630,7 +630,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*r_{j}. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -711,7 +711,7 @@ c
call daxpy (j, one, workl(1), 1, h(1,j), 1)
c
orth2 = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(irj), 1)
@@ -735,7 +735,7 @@ c | Back from reverse communication if ORTH2 = .true. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -815,7 +815,7 @@ c
rstart = .false.
orth2 = .false.
c
call second (t5)
call arscnd (t5)
titref = titref + (t5 - t4)
c
c %------------------------------------%
@@ -824,7 +824,7 @@ c %------------------------------------%
c
j = j + 1
if (j .gt. k+np) then
call second (t1)
call arscnd (t1)
tnaitr = tnaitr + (t1 - t0)
ido = 99
do 110 i = max(1,k), k+np-1
+8 -8
View File
@@ -102,7 +102,7 @@ c
c\Routines called:
c dlabad LAPACK routine that computes machine constants.
c dlacpy LAPACK matrix copy routine.
c pdlamch ScaLAPACK routine that determines machine constants.
c pdlamch10 ScaLAPACK routine that determines machine constants.
c dlanhs LAPACK routine that computes various norms of a matrix.
c dlapy2 LAPACK routine to compute sqrt(x**2+y**2) carefully.
c dlarf LAPACK routine that applies Householder reflection to
@@ -198,15 +198,15 @@ c | External Subroutines |
c %----------------------%
c
external daxpy, dcopy, dscal, dlacpy, dlarf, dlarfg, dlartg,
& dlaset, dlabad, second, pivout, pdvout, pdmout
& dlaset, dlabad, arscnd, pivout, pdvout, pdmout
c
c %--------------------%
c | External Functions |
c %--------------------%
c
Double precision
& pdlamch, dlanhs, dlapy2
external pdlamch, dlanhs, dlapy2
& pdlamch10, dlanhs, dlapy2
external pdlamch10, dlanhs, dlapy2
c
c %----------------------%
c | Intrinsics Functions |
@@ -233,10 +233,10 @@ c | overflow should not occur. |
c | REFERENCE: LAPACK subroutine dlahqr |
c %-----------------------------------------------%
c
unfl = pdlamch( comm, 'safe minimum' )
unfl = pdlamch10( comm, 'safe minimum' )
ovfl = one / unfl
call dlabad( unfl, ovfl )
ulp = pdlamch( comm, 'precision' )
ulp = pdlamch10( comm, 'precision' )
smlnum = unfl*( n / ulp )
first = .false.
end if
@@ -246,7 +246,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mnapps
c
kplusp = kev + np
@@ -645,7 +645,7 @@ c
end if
c
9000 continue
call second (t1)
call arscnd (t1)
tnapps = tnapps + (t1 - t0)
c
return
+10 -10
View File
@@ -145,10 +145,10 @@ c pdneigh Parallel ARPACK compute Ritz values and error bounds routine.
c pdngets Parallel ARPACK reorder Ritz values and error bounds routine.
c dsortc ARPACK sorting routine.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdmout Parallel ARPACK utility routine that prints matrices
c pdvout ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c pdlamch10 ScaLAPACK routine that determines machine constants.
c dlapy2 LAPACK routine to compute sqrt(x**2+y**2) carefully.
c dcopy Level 1 BLAS that copies one vector to another .
c ddot Level 1 BLAS that computes the scalar product of two vectors.
@@ -255,15 +255,15 @@ c %----------------------%
c
external dcopy , pdgetv0 , pdnaitr , dnconv ,
& pdneigh , pdngets , pdnapps ,
& pdvout , pivout, second
& pdvout , pivout, arscnd
c
c %--------------------%
c | External Functions |
c %--------------------%
c
Double precision
& ddot , pdnorm2 , dlapy2 , pdlamch
external ddot , pdnorm2 , dlapy2 , pdlamch
& ddot , pdnorm2 , dlapy2 , pdlamch10
external ddot , pdnorm2 , dlapy2 , pdlamch10
c
c %---------------------%
c | Intrinsic Functions |
@@ -277,7 +277,7 @@ c %-----------------------%
c
if (ido .eq. 0) then
c
call second (t0)
call arscnd (t0)
c
msglvl = mnaup2
c
@@ -285,7 +285,7 @@ c %-------------------------------------%
c | Get the machine dependent constant. |
c %-------------------------------------%
c
eps23 = pdlamch (comm, 'Epsilon-Machine')
eps23 = pdlamch10 (comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0 )
c
nev0 = nev
@@ -779,7 +779,7 @@ c | the first step of the next call to pdnaitr . |
c %---------------------------------------------%
c
cnorm = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(n+1), 1)
@@ -804,7 +804,7 @@ c | WORKD(1:N) := B*RESID |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
endif
c
@@ -845,7 +845,7 @@ c %------------%
c | Error Exit |
c %------------%
c
call second (t1)
call arscnd (t1)
tnaup2 = t1 - t0
c
9000 continue
+8 -8
View File
@@ -382,9 +382,9 @@ c\Routines called:
c pdnaup2 Parallel ARPACK routine that implements the Implicitly Restarted
c Arnoldi Iteration.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c pdlamch10 ScaLAPACK routine that determines machine constants.
c
c\Author
c Danny Sorensen Phuong Vu
@@ -468,15 +468,15 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pdnaup2 , pdvout , pivout, second, dstatn
external pdnaup2 , pdvout , pivout, arscnd, dstatn
c
c %--------------------%
c | External Functions |
c %--------------------%
c
Double precision
& pdlamch
external pdlamch
& pdlamch10
external pdlamch10
c
c %-----------------------%
c | Executable Statements |
@@ -490,7 +490,7 @@ c | & message level for debugging |
c %-------------------------------%
c
call dstatn
call second (t0)
call arscnd (t0)
msglvl = mnaupd
c
c %----------------%
@@ -553,7 +553,7 @@ c | Set default parameters |
c %------------------------%
c
if (nb .le. 0) nb = 1
if (tol .le. zero) tol = pdlamch (comm, 'EpsMach')
if (tol .le. zero) tol = pdlamch10 (comm, 'EpsMach')
c
c %----------------------------------------------%
c | NP is the number of additional steps to |
@@ -654,7 +654,7 @@ c
& '_naupd: Associated Ritz estimates')
end if
c
call second (t1)
call arscnd (t1)
tnaupd = t1 - t0
c
if (msglvl .gt. 0) then
+12 -8
View File
@@ -65,9 +65,9 @@ c\Local variables:
c xxxxxx real
c
c\Routines called:
c dlaqrb ARPACK routine to compute the real Schur form of an
c dlahqr ARPACK routine to compute the real Schur form of an
c upper Hessenberg matrix and last row of the Schur vectors.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c dmout ARPACK utility routine that prints matrices
c dvout ARPACK utility routine that prints vectors.
c dlacpy LAPACK matrix copy routine.
@@ -157,7 +157,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external dcopy, dlacpy, dlaqrb, dtrevc, pdvout, second
external dcopy, dlacpy, dlahqr, dtrevc, dvout, arscnd
c
c %--------------------%
c | External Functions |
@@ -183,7 +183,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mneigh
c
if (msglvl .gt. 2) then
@@ -195,13 +195,17 @@ c %-----------------------------------------------------------%
c | 1. Compute the eigenvalues, the last components of the |
c | corresponding Schur vectors and the full Schur form T |
c | of the current upper Hessenberg matrix H. |
c | dlaqrb returns the full Schur form of H in WORKL(1:N**2) |
c | dlahqr returns the full Schur form of H in WORKL(1:N**2) |
c | and the last components of the Schur vectors in BOUNDS. |
c %-----------------------------------------------------------%
c
call dlacpy ('All', n, n, h, ldh, workl, n)
call dlaqrb (.true., n, 1, n, workl, n, ritzr, ritzi, bounds,
& ierr)
do 5 j = 1, n-1
bounds(j) = zero
5 continue
bounds(n) = 1
call dlahqr(.true., .true., n, 1, n, workl, n, ritzr, ritzi, 1, 1,
& bounds, 1, ierr)
if (ierr .ne. 0) go to 9000
c
if (msglvl .gt. 1) then
@@ -314,7 +318,7 @@ c
& '_neigh: Ritz estimates for the eigenvalues of H')
end if
c
call second (t1)
call arscnd (t1)
tneigh = tneigh + (t1 - t0)
c
9000 continue
+4 -4
View File
@@ -238,7 +238,7 @@ c a matrix.
c dlacpy LAPACK matrix copy routine.
c dlahqr LAPACK routine to compute the real Schur form of an
c upper Hessenberg matrix.
c pdlamch ScaLAPACK routine that determines machine constants.
c pdlamch10 ScaLAPACK routine that determines machine constants.
c dlapy2 LAPACK routine to compute sqrt(x**2+y**2) carefully.
c dlaset LAPACK matrix initialization routine.
c dorm2r LAPACK routine that applies an orthogonal matrix in
@@ -388,8 +388,8 @@ c | External Functions |
c %--------------------%
c
Double precision
& dlapy2 , dnrm2 , pdlamch
external dlapy2 , dnrm2 , pdlamch
& dlapy2 , dnrm2 , pdlamch10
external dlapy2 , dnrm2 , pdlamch10
c
c %---------------------%
c | Intrinsic Functions |
@@ -414,7 +414,7 @@ c %---------------------------------%
c | Get machine dependent constant. |
c %---------------------------------%
c
eps23 = pdlamch (comm, 'Epsilon-Machine')
eps23 = pdlamch10 (comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0 )
c
c %--------------%
+3 -3
View File
@@ -149,7 +149,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external dcopy, dsortc, second
external dcopy, dsortc, arscnd
c
c %----------------------%
c | Intrinsics Functions |
@@ -166,7 +166,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mngets
c
c %----------------------------------------------------%
@@ -222,7 +222,7 @@ c
call dsortc ( 'SR', .true., np, bounds, ritzr, ritzi )
end if
c
call second (t1)
call arscnd (t1)
tngets = tngets + (t1 - t0)
c
if (msglvl .gt. 0) then
+18 -18
View File
@@ -139,7 +139,7 @@ c pdgetv0 Parallel ARPACK routine to generate the initial vector.
c pivout Parallel ARPACK utility routine that prints integers.
c pdmout Parallel ARPACK utility routine that prints matrices.
c pdvout Parallel ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c pdlamch10 ScaLAPACK routine that determines machine constants.
c dlascl LAPACK routine for careful scaling of a matrix.
c dgemv Level 2 BLAS routine for matrix vector multiplication.
c daxpy Level 1 BLAS that computes a vector triad.
@@ -283,15 +283,15 @@ c | External Subroutines |
c %----------------------%
c
external daxpy, dcopy, dscal, dgemv, pdgetv0, pdvout, pdmout,
& dlascl, pivout, second
& dlascl, pivout, arscnd
c
c %--------------------%
c | External Functions |
c %--------------------%
c
Double precision
& ddot, pdnorm2, pdlamch
external ddot, pdnorm2, pdlamch
& ddot, pdnorm2, pdlamch10
external ddot, pdnorm2, pdlamch10
c
c %-----------------%
c | Data statements |
@@ -318,7 +318,7 @@ c | safmin = safe minimum is such |
c | that 1/sfmin does not overflow |
c %--------------------------------%
c
safmin = pdlamch(comm,'safmin')
safmin = pdlamch10(comm,'safmin')
end if
c
if (ido .eq. 0) then
@@ -328,7 +328,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = msaitr
c
c %------------------------------%
@@ -448,7 +448,7 @@ c | which spans OP and exit. |
c %------------------------------------------------%
c
info = j - 1
call second (t1)
call arscnd (t1)
tsaitr = tsaitr + (t1 - t0)
ido = 99
go to 9000
@@ -488,7 +488,7 @@ c %------------------------------------------------------%
c
step3 = .true.
nopx = nopx + 1
call second (t2)
call arscnd (t2)
call dcopy (n, v(1,j), 1, workd(ivj), 1)
ipntr(1) = ivj
ipntr(2) = irj
@@ -507,7 +507,7 @@ c | Back from reverse communication; |
c | WORKD(IRJ:IRJ+N-1) := OP*v_{j}. |
c %-----------------------------------%
c
call second (t3)
call arscnd (t3)
tmvopx = tmvopx + (t3 - t2)
c
step3 = .false.
@@ -528,7 +528,7 @@ c | assumed to have A*v_{j}. |
c %-------------------------------------------%
c
if (mode .eq. 2) go to 65
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
step4 = .true.
@@ -552,7 +552,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*OP*v_{j}. |
c %-----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -628,12 +628,12 @@ c
else
h(j,1) = rnorm
end if
call second (t4)
call arscnd (t4)
c
orth1 = .true.
iter = 0
c
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(irj), 1)
@@ -657,7 +657,7 @@ c | WORKD(IPJ:IPJ+N-1) := B*r_{j}. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -735,7 +735,7 @@ c
h(j,2) = h(j,2) + workl(j)
c
orth2 = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(irj), 1)
@@ -759,7 +759,7 @@ c | Back from reverse communication if ORTH2 = .true. |
c %---------------------------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -833,7 +833,7 @@ c
rstart = .false.
orth2 = .false.
c
call second (t5)
call arscnd (t5)
titref = titref + (t5 - t4)
c
c %----------------------------------------------------------%
@@ -857,7 +857,7 @@ c %------------------------------------%
c
j = j + 1
if (j .gt. k+np) then
call second (t1)
call arscnd (t1)
tsaitr = tsaitr + (t1 - t0)
ido = 99
c
+8 -8
View File
@@ -93,9 +93,9 @@ c TR95-13, Department of Computational and Applied Mathematics.
c
c\Routines called:
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c pdlamch10 ScaLAPACK routine that determines machine constants.
c dlartg LAPACK Givens rotation construction routine.
c dlacpy LAPACK matrix copy routine.
c dlaset LAPACK matrix initialization routine.
@@ -187,15 +187,15 @@ c | External Subroutines |
c %----------------------%
c
external daxpy, dcopy, dscal, dlacpy, dlartg, dlaset, pdvout,
& pivout, second, dgemv
& pivout, arscnd, dgemv
c
c %--------------------%
c | External Functions |
c %--------------------%
c
Double precision
& pdlamch
external pdlamch
& pdlamch10
external pdlamch10
c
c %----------------------%
c | Intrinsics Functions |
@@ -214,7 +214,7 @@ c | Executable Statements |
c %-----------------------%
c
if (first) then
epsmch = pdlamch(comm, 'Epsilon-Machine')
epsmch = pdlamch10(comm, 'Epsilon-Machine')
first = .false.
end if
itop = 1
@@ -224,7 +224,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = msapps
c
kplusp = kev + np
@@ -514,7 +514,7 @@ c
end if
end if
c
call second (t1)
call arscnd (t1)
tsapps = tsapps + (t1 - t0)
c
9000 continue
+10 -10
View File
@@ -153,9 +153,9 @@ c sstrqb ARPACK routine that computes all eigenvalues and the
c last component of the eigenvectors of a symmetric
c tridiagonal matrix using the implicit QL or QR method.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c pdlamch10 ScaLAPACK routine that determines machine constants.
c dcopy Level 1 BLAS that copies one vector to another.
c ddot Level 1 BLAS that computes the scalar product of two vectors.
c pdnorm2 Parallel version of Level 1 BLAS that computes the norm of a vector.
@@ -256,15 +256,15 @@ c %----------------------%
c
external dcopy, pdgetv0, pdsaitr, dscal, dsconv,
& pdseigt, pdsgets, pdsapps,
& dsortr, pdvout, pivout, second
& dsortr, pdvout, pivout, arscnd
c
c %--------------------%
c | External Functions |
c %--------------------%
c
Double precision
& ddot, pdnorm2, pdlamch
external ddot, pdnorm2, pdlamch
& ddot, pdnorm2, pdlamch10
external ddot, pdnorm2, pdlamch10
c
c %---------------------%
c | Intrinsic Functions |
@@ -283,14 +283,14 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = msaup2
c
c %---------------------------------%
c | Set machine dependent constant. |
c %---------------------------------%
c
eps23 = pdlamch(comm, 'Epsilon-Machine')
eps23 = pdlamch10(comm, 'Epsilon-Machine')
eps23 = eps23**(2.0/3.0)
c
c %-------------------------------------%
@@ -794,7 +794,7 @@ c | the first step of the next call to pdsaitr. |
c %---------------------------------------------%
c
cnorm = .true.
call second (t2)
call arscnd (t2)
if (bmat .eq. 'G') then
nbx = nbx + 1
call dcopy (n, resid, 1, workd(n+1), 1)
@@ -819,7 +819,7 @@ c | WORKD(1:N) := B*RESID |
c %----------------------------------%
c
if (bmat .eq. 'G') then
call second (t3)
call arscnd (t3)
tmvbx = tmvbx + (t3 - t2)
end if
c
@@ -863,7 +863,7 @@ c %------------%
c | Error exit |
c %------------%
c
call second (t1)
call arscnd (t1)
tsaup2 = t1 - t0
c
9000 continue
+8 -8
View File
@@ -384,9 +384,9 @@ c Arnoldi Iteration.
c dstats ARPACK routine that initializes timing and other statistics
c variables.
c pivout Parallel ARPACK utility routine that prints integers.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine that prints vectors.
c pdlamch ScaLAPACK routine that determines machine constants.
c pdlamch10 ScaLAPACK routine that determines machine constants.
c
c\Authors
c Kristi Maschhoff ( Parallel Code )
@@ -472,15 +472,15 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external pdsaup2 , pdvout , pivout, second, dstats
external pdsaup2 , pdvout , pivout, arscnd, dstats
c
c %--------------------%
c | External Functions |
c %--------------------%
c
Double precision
& pdlamch
external pdlamch
& pdlamch10
external pdlamch10
c
c %-----------------------%
c | Executable Statements |
@@ -494,7 +494,7 @@ c | & message level for debugging |
c %-------------------------------%
c
call dstats
call second (t0)
call arscnd (t0)
msglvl = msaupd
c
ierr = 0
@@ -563,7 +563,7 @@ c | Set default parameters |
c %------------------------%
c
if (nb .le. 0) nb = 1
if (tol .le. zero) tol = pdlamch (comm, 'EpsMach')
if (tol .le. zero) tol = pdlamch10 (comm, 'EpsMach')
c
c %----------------------------------------------%
c | NP is the number of additional steps to |
@@ -654,7 +654,7 @@ c
& '_saupd: corresponding error bounds')
end if
c
call second (t1)
call arscnd (t1)
tsaupd = t1 - t0
c
if (msglvl .gt. 0) then
+4 -4
View File
@@ -63,7 +63,7 @@ c\Routines called:
c dstqrb ARPACK routine that computes the eigenvalues and the
c last components of the eigenvectors of a symmetric
c and tridiagonal matrix.
c second ARPACK utility routine for timing.
c arscnd ARPACK utility routine for timing.
c pdvout Parallel ARPACK utility routine that prints vectors.
c dcopy Level 1 BLAS that copies one vector to another.
c dscal Level 1 BLAS that scales a vector.
@@ -141,7 +141,7 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external dcopy, dstqrb, pdvout, second
external dcopy, dstqrb, pdvout, arscnd
c
c %---------------------%
c | Intrinsic Functions |
@@ -158,7 +158,7 @@ c | Initialize timing statistics |
c | & message level for debugging |
c %-------------------------------%
c
call second (t0)
call arscnd (t0)
msglvl = mseigt
c
if (msglvl .gt. 0) then
@@ -190,7 +190,7 @@ c
bounds(k) = rnorm*abs(bounds(k))
30 continue
c
call second (t1)
call arscnd (t1)
tseigt = tseigt + (t1 - t0)
c
9000 continue
+93 -93
View File
@@ -1,8 +1,8 @@
c\BeginDoc
c
c\Name: pdseupd
c\Name: pdseupd
c
c Message Passing Layer: MPI
c Message Passing Layer: MPI
c
c\Description:
c
@@ -41,12 +41,12 @@ c There is also the option of computing a selected set of these vectors
c with a single call.
c
c\Usage:
c call pdseupd
c call pdseupd
c ( COMM, RVEC, HOWMNY, SELECT, D, Z, LDZ, SIGMA, BMAT, N, WHICH, NEV, TOL,
c RESID, NCV, V, LDV, IPARAM, IPNTR, WORKD, WORKL, LWORKL, INFO )
c
c\Arguments
c COMM MPI Communicator for the processor grid. (INPUT)
c COMM MPI Communicator for the processor grid. (INPUT)
c
c RVEC LOGICAL (INPUT)
c Specifies whether Ritz vectors corresponding to the Ritz value
@@ -69,16 +69,16 @@ c computed. To select the Ritz vector corresponding to a
c Ritz value D(j), SELECT(j) must be set to .TRUE..
c If HOWMNY = 'A' , SELECT is used as workspace.
c
c D Double precision array of dimension NEV. (OUTPUT)
c D Double precision array of dimension NEV. (OUTPUT)
c On exit, D contains the Ritz value approximations to the
c eigenvalues of A*z = lambda*B*z. The values are returned
c in ascending order. If IPARAM(7) = 3,4,5 then D represents
c the Ritz values of OP computed by pdsaupd transformed to
c the Ritz values of OP computed by pdsaupd transformed to
c those of the original eigensystem A*z = lambda*B*z. If
c IPARAM(7) = 1,2 then the Ritz values of OP are the same
c as the those of A*z = lambda*B*z.
c
c Z Double precision N by NEV array if HOWMNY = 'A'. (OUTPUT)
c Z Double precision N by NEV array if HOWMNY = 'A'. (OUTPUT)
c On exit, Z contains the B-orthonormal Ritz vectors of the
c eigensystem A*z = lambda*B*z corresponding to the Ritz
c value approximations.
@@ -90,13 +90,13 @@ c LDZ Integer. (INPUT)
c The leading dimension of the array Z. If Ritz vectors are
c desired, then LDZ .ge. max( 1, N ). In any case, LDZ .ge. 1.
c
c SIGMA Double precision (INPUT)
c SIGMA Double precision (INPUT)
c If IPARAM(7) = 3,4,5 represents the shift. Not referenced if
c IPARAM(7) = 1 or 2.
c
c
c **** The remaining arguments MUST be the same as for the ****
c **** call to PDNAUPD that was just completed. ****
c **** call to PDNAUPD that was just completed. ****
c
c NOTE: The remaining arguments
c
@@ -109,7 +109,7 @@ c the the last call to PSSAUPD and the call to PSSEUPD.
c
c Two of these parameters (WORKL, INFO) are also output parameters:
c
c WORKL Double precision work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL Double precision work array of length LWORKL. (OUTPUT/WORKSPACE)
c WORKL(1:4*ncv) contains information obtained in
c PSSAUPD. They are not changed by PSSEUPD.
c WORKL(4*ncv+1:ncv*ncv+8*ncv) holds the
@@ -136,7 +136,7 @@ c = -5: WHICH must be one of 'LM', 'SM', 'LA', 'SA' or 'BE'.
c = -6: BMAT must be one of 'I' or 'G'.
c = -7: Length of private work WORKL array is not sufficient.
c = -8: Error return from trid. eigenvalue calculation;
c Information error from LAPACK routine dsteqr .
c Information error from LAPACK routine dsteqr.
c = -9: Starting vector is zero.
c = -10: IPARAM(7) must be 1,2,3,4,5.
c = -11: IPARAM(7) = 1 and BMAT = 'G' are incompatible.
@@ -145,11 +145,11 @@ c = -14: PSSAUPD did not find any eigenvalues to sufficient
c accuracy.
c = -15: HOWMNY must be one of 'A' or 'S' if RVEC = .true.
c = -16: HOWMNY = 'S' not yet implemented
c = -17: DSEUPD got a different count of the number of converged
c Ritz values than DSAUPD got. This indicates the user
c probably made an error in passing data from DSAUPD to
c DSEUPD or that the data was modified before entering
c DSEUPD .
c = -17: DSEUPD got a different count of the number of converged
c Ritz values than DSAUPD got. This indicates the user
c probably made an error in passing data from DSAUPD to
c DSEUPD or that the data was modified before entering
c DSEUPD.
c
c\BeginLib
c
@@ -182,24 +182,24 @@ c 2. Currently only HOWMNY = 'A' is implemented. It is included at this
c stage for the user who wants to incorporate it.
c
c\Routines called:
c dsesrt ARPACK routine that sorts an array X, and applies the
c dsesrt ARPACK routine that sorts an array X, and applies the
c corresponding permutation to a matrix A.
c dsortr dsortr ARPACK sorting routine.
c pdnorm2 Parallel ARPACK routine that computes the 2-norm of a vector.
c dsortr dsortr ARPACK sorting routine.
c pdnorm2 Parallel ARPACK routine that computes the 2-norm of a vector.
c pivout Parallel ARPACK utility routine that prints integers.
c pdvout Parallel ARPACK utility routine that prints vectors.
c dgeqr2 LAPACK routine that computes the QR factorization of
c pdvout Parallel ARPACK utility routine that prints vectors.
c dgeqr2 LAPACK routine that computes the QR factorization of
c a matrix.
c dlacpy LAPACK matrix copy routine.
c pdlamch ScaLAPACK routine that determines machine constants.
c dorm2r LAPACK routine that applies an orthogonal matrix in
c dlacpy LAPACK matrix copy routine.
c pdlamch10 ScaLAPACK routine that determines machine constants.
c dorm2r LAPACK routine that applies an orthogonal matrix in
c factored form.
c dsteqr LAPACK routine that computes eigenvalues and eigenvectors
c dsteqr LAPACK routine that computes eigenvalues and eigenvectors
c of a tridiagonal matrix.
c dger Level 2 BLAS rank one update to a matrix.
c dcopy Level 1 BLAS that copies one vector to another .
c dscal Level 1 BLAS that scales a vector.
c dswap Level 1 BLAS that swaps the contents of two vectors.
c dger Level 2 BLAS rank one update to a matrix.
c dcopy Level 1 BLAS that copies one vector to another .
c dscal Level 1 BLAS that scales a vector.
c dswap Level 1 BLAS that swaps the contents of two vectors.
c\Authors
c Danny Sorensen Phuong Vu
c Richard Lehoucq CRPC / Rice University
@@ -216,12 +216,12 @@ c\Revision history:
c Starting Point: Serial Code FILE: seupd.F SID: 2.4
c
c\SCCS Information:
c FILE: seupd.F SID: 1.10 DATE OF SID: 04/10/01
c FILE: seupd.F SID: 1.11 DATE OF SID: 10/25/03
c
c\EndLib
c
c-----------------------------------------------------------------------
subroutine pdseupd
subroutine pdseupd
& (comm , rvec , howmny, select, d ,
& z , ldz , sigma , bmat , n ,
& which , nev , tol , resid , ncv ,
@@ -229,7 +229,7 @@ c-----------------------------------------------------------------------
& workl , lworkl, info )
c
c %--------------------%
c | MPI Communicator |
c | MPI Communicator |
c %--------------------%
c
integer comm
@@ -248,7 +248,7 @@ c
character bmat, howmny, which*2
logical rvec
integer info, ldz, ldv, lworkl, n, ncv, nev
Double precision
Double precision
& sigma, tol
c
c %-----------------%
@@ -257,7 +257,7 @@ c %-----------------%
c
integer iparam(7), ipntr(11)
logical select(ncv)
Double precision
Double precision
& d(nev), resid(n), v(ldv,ncv), z(ldz, nev),
& workd(2*n), workl(lworkl)
c
@@ -265,9 +265,9 @@ c %------------%
c | Parameters |
c %------------%
c
Double precision
Double precision
& one, zero
parameter (one = 1.0 , zero = 0.0 )
parameter (one = 1.0, zero = 0.0)
c
c %---------------%
c | Local Scalars |
@@ -279,7 +279,7 @@ c
& ldq , mode , msglvl, nconv , next ,
& ritz , irz , ibd , np , ishift,
& leftptr, rghtptr, numcnv, jj
Double precision
Double precision
& bnorm2, rnorm, temp, temp1, eps23
logical reord
c
@@ -287,16 +287,16 @@ c %----------------------%
c | External Subroutines |
c %----------------------%
c
external dcopy , dger , dgeqr2 , dlacpy , dorm2r , dscal ,
& dsesrt , dsteqr , dswap , pdvout , pivout, dsortr
external dcopy , dger , dgeqr2, dlacpy, dorm2r, dscal,
& dsesrt, dsteqr, dswap , pdvout, pivout, dsortr
c
c %--------------------%
c | External Functions |
c %--------------------%
c
Double precision
& pdnorm2 , pdlamch
external pdnorm2 , pdlamch
Double precision
& pdnorm2, pdlamch10
external pdnorm2, pdlamch10
c
c %---------------------%
c | Intrinsic Functions |
@@ -373,18 +373,18 @@ c | Memory is laid out as follows: |
c | workl(1:2*ncv) := generated tridiagonal matrix H |
c | The subdiagonal is stored in workl(2:ncv). |
c | The dead spot is workl(1) but upon exiting |
c | pdsaupd stores the B-norm of the last residual |
c | pdsaupd stores the B-norm of the last residual |
c | vector in workl(1). We use this !!! |
c | workl(2*ncv+1:2*ncv+ncv) := ritz values |
c | The wanted values are in the first NCONV spots. |
c | workl(3*ncv+1:3*ncv+ncv) := computed Ritz estimates |
c | The wanted values are in the first NCONV spots. |
c | NOTE: workl(1:4*ncv) is set by pdsaupd and is not |
c | modified by pdseupd . |
c | NOTE: workl(1:4*ncv) is set by pdsaupd and is not |
c | modified by pdseupd. |
c %-------------------------------------------------------%
c
c %-------------------------------------------------------%
c | The following is used and set by pdseupd . |
c | The following is used and set by pdseupd. |
c | workl(4*ncv+1:4*ncv+ncv) := used as workspace during |
c | computation of the eigenvectors of H. Stores |
c | the diagonal of H. Upon EXIT contains the NCV |
@@ -400,10 +400,10 @@ c | wanted values. If MODE = 1,2 then will equal |
c | workl(3*ncv+1:4*ncv). |
c | workl(6*ncv+1:6*ncv+ncv*ncv) := orthogonal Q that is |
c | the eigenvector matrix for H as returned by |
c | dsteqr . Not referenced if RVEC = .False. |
c | dsteqr. Not referenced if RVEC = .False. |
c | Ordering follows that of workl(4*ncv+1:5*ncv) |
c | workl(6*ncv+ncv*ncv+1:6*ncv+ncv*ncv+2*ncv) := |
c | Workspace. Needed by dsteqr and by pdseupd . |
c | Workspace. Needed by dsteqr and by pdseupd. |
c | GRAND total of NCV*(NCV+8) locations. |
c %-------------------------------------------------------%
c
@@ -439,13 +439,13 @@ c %---------------------------------%
c | Set machine dependent constant. |
c %---------------------------------%
c
eps23 = pdlamch (comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0 )
eps23 = pdlamch10(comm, 'Epsilon-Machine')
eps23 = eps23**(2.0 / 3.0)
c
c %---------------------------------------%
c | RNORM is B-norm of the RESID(1:N). |
c | BNORM2 is the 2 norm of B*RESID(1:N). |
c | Upon exit of pdsaupd WORKD(1:N) has |
c | Upon exit of pdsaupd WORKD(1:N) has |
c | B*RESID(1:N). |
c %---------------------------------------%
c
@@ -453,13 +453,13 @@ c
if (bmat .eq. 'I') then
bnorm2 = rnorm
else if (bmat .eq. 'G') then
bnorm2 = pdnorm2 (comm, n, workd, 1)
bnorm2 = pdnorm2(comm, n, workd, 1)
end if
c
if (msglvl .gt. 2) then
call pdvout (comm, logfil, ncv, workl(irz), ndigit,
call pdvout(comm, logfil, ncv, workl(irz), ndigit,
& '_seupd: Ritz values passed in from _SAUPD.')
call pdvout (comm, logfil, ncv, workl(ibd), ndigit,
call pdvout(comm, logfil, ncv, workl(ibd), ndigit,
& '_seupd: Ritz estimates passed in from _SAUPD.')
end if
if (rvec) then
@@ -487,14 +487,14 @@ c %-------------------------------------%
c
np = ncv - nev
ishift = 0
call pdsgets (comm , ishift, which ,
call pdsgets(comm , ishift, which ,
& nev , np , workl(irz),
& workl(bounds), workl , workl(np+1))
& workl(bounds), workl)
c
if (msglvl .gt. 2) then
call pdvout (comm, logfil, ncv, workl(irz), ndigit,
call pdvout(comm, logfil, ncv, workl(irz), ndigit,
& '_seupd: Ritz values after calling _SGETS.')
call pdvout (comm, logfil, ncv, workl(bounds), ndigit,
call pdvout(comm, logfil, ncv, workl(bounds), ndigit,
& '_seupd: Ritz value indices after calling _SGETS.')
end if
c
@@ -540,10 +540,10 @@ c | eigenvectors of the final symmetric tridiagonal matrix H. |
c | Initialize the eigenvector matrix Q to the identity. |
c %-----------------------------------------------------------%
c
call dcopy (ncv-1, workl(ih+1) , 1, workl(ihb), 1)
call dcopy (ncv , workl(ih+ldh), 1, workl(ihd), 1)
call dcopy (ncv-1, workl(ih+1) , 1, workl(ihb), 1)
call dcopy (ncv , workl(ih+ldh), 1, workl(ihd), 1)
c
call dsteqr ('Identity', ncv , workl(ihd),
call dsteqr('Identity', ncv , workl(ihd),
& workl(ihb), workl(iq), ldq ,
& workl(iw) , ierr)
c
@@ -553,10 +553,10 @@ c
end if
c
if (msglvl .gt. 1) then
call dcopy (ncv, workl(iq+ncv-1), ldq, workl(iw), 1)
call pdvout (comm, logfil, ncv, workl(ihd), ndigit,
call dcopy (ncv, workl(iq+ncv-1), ldq, workl(iw), 1)
call pdvout (comm, logfil, ncv, workl(ihd), ndigit,
& '_seupd: NCV Ritz values of the final H matrix')
call pdvout (comm, logfil, ncv, workl(iw), ndigit,
call pdvout (comm, logfil, ncv, workl(iw), ndigit,
& '_seupd: last row of the eigenvector matrix for H')
end if
c
@@ -607,11 +607,11 @@ c
temp = workl(ihd+leftptr-1)
workl(ihd+leftptr-1) = workl(ihd+rghtptr-1)
workl(ihd+rghtptr-1) = temp
call dcopy (ncv, workl(iq+ncv*(leftptr-1)), 1,
call dcopy(ncv, workl(iq+ncv*(leftptr-1)), 1,
& workl(iw), 1)
call dcopy (ncv, workl(iq+ncv*(rghtptr-1)), 1,
call dcopy(ncv, workl(iq+ncv*(rghtptr-1)), 1,
& workl(iq+ncv*(leftptr-1)), 1)
call dcopy (ncv, workl(iw), 1,
call dcopy(ncv, workl(iw), 1,
& workl(iq+ncv*(rghtptr-1)), 1)
leftptr = leftptr + 1
rghtptr = rghtptr - 1
@@ -623,7 +623,7 @@ c
30 end if
c
if (msglvl .gt. 2) then
call pdvout (comm, logfil, ncv, workl(ihd), ndigit,
call pdvout (comm, logfil, ncv, workl(ihd), ndigit,
& '_seupd: The eigenvalues of H--reordered')
end if
c
@@ -631,7 +631,7 @@ c %----------------------------------------%
c | Load the converged Ritz values into D. |
c %----------------------------------------%
c
call dcopy (nconv, workl(ihd), 1, d, 1)
call dcopy(nconv, workl(ihd), 1, d, 1)
c
else
c
@@ -639,8 +639,8 @@ c %-----------------------------------------------------%
c | Ritz vectors not required. Load Ritz values into D. |
c %-----------------------------------------------------%
c
call dcopy (nconv, workl(ritz), 1, d, 1)
call dcopy (ncv, workl(ritz), 1, workl(ihd), 1)
call dcopy(nconv, workl(ritz), 1, d, 1)
call dcopy(ncv, workl(ritz), 1, workl(ihd), 1)
c
end if
c
@@ -658,9 +658,9 @@ c | bounds. Not necessary if only Ritz values are desired. |
c %---------------------------------------------------------%
c
if (rvec) then
call dsesrt ('LA', rvec , nconv, d, ncv, workl(iq), ldq)
call dsesrt('LA', rvec , nconv, d, ncv, workl(iq), ldq)
else
call dcopy (ncv, workl(bounds), 1, workl(ihb), 1)
call dcopy(ncv, workl(bounds), 1, workl(ihb), 1)
end if
c
else
@@ -674,13 +674,13 @@ c | For TYPE = 'BUCKLE' the transformation is |
c | lambda = sigma * theta / ( theta - 1 ) |
c | For TYPE = 'CAYLEY' the transformation is |
c | lambda = sigma * (theta + 1) / (theta - 1 ) |
c | where the theta are the Ritz values returned by pdsaupd . |
c | where the theta are the Ritz values returned by pdsaupd. |
c | NOTES: |
c | *The Ritz vectors are not affected by the transformation. |
c | They are only reordered. |
c %-------------------------------------------------------------%
c
call dcopy (ncv, workl(ihd), 1, workl(iw), 1)
call dcopy (ncv, workl(ihd), 1, workl(iw), 1)
if (type .eq. 'SHIFTI') then
do 40 k=1, ncv
workl(ihd+k-1) = one / workl(ihd+k-1) + sigma
@@ -712,14 +712,14 @@ c | match the ordering of the lambda. We`ll use them again for |
c | Ritz vector purification. |
c %-------------------------------------------------------------%
c
call dcopy (nconv, workl(ihd), 1, d, 1)
call dsortr ('LA', .true., nconv, workl(ihd), workl(iw))
call dcopy (nconv, workl(ihd), 1, d, 1)
call dsortr('LA', .true., nconv, workl(ihd), workl(iw))
if (rvec) then
call dsesrt ('LA', rvec , nconv, d, ncv, workl(iq), ldq)
call dsesrt('LA', rvec , nconv, d, ncv, workl(iq), ldq)
else
call dcopy (ncv, workl(bounds), 1, workl(ihb), 1)
call dscal (ncv, bnorm2/rnorm, workl(ihb), 1)
call dsortr ('LA', .true., nconv, d, workl(ihb))
call dcopy(ncv, workl(bounds), 1, workl(ihb), 1)
call dscal(ncv, bnorm2/rnorm, workl(ihb), 1)
call dsortr('LA', .true., nconv, d, workl(ihb))
end if
c
end if
@@ -738,7 +738,7 @@ c | the wanted invariant subspace located in the first NCONV |
c | columns of workl(iq,ldq). |
c %----------------------------------------------------------%
c
call dgeqr2 (ncv, nconv , workl(iq) ,
call dgeqr2(ncv, nconv , workl(iq) ,
& ldq, workl(iw+ncv), workl(ihb),
& ierr)
c
@@ -750,11 +750,11 @@ c | of the approximate invariant subspace associated with |
c | the Ritz values in workl(ihd). |
c %--------------------------------------------------------%
c
call dorm2r ('Right' , 'Notranspose', n ,
call dorm2r('Right' , 'Notranspose', n ,
& ncv , nconv , workl(iq),
& ldq , workl(iw+ncv), v ,
& ldv , workd(n+1) , ierr )
call dlacpy ('All', n, nconv, v, ldv, z, ldz)
call dlacpy('All', n, nconv, v, ldv, z, ldz)
c
c %-----------------------------------------------------%
c | In order to compute the Ritz estimates for the Ritz |
@@ -766,7 +766,7 @@ c
workl(ihb+j-1) = zero
65 continue
workl(ihb+ncv-1) = one
call dorm2r ('Left', 'Transpose' , ncv ,
call dorm2r('Left', 'Transpose' , ncv ,
& 1 , nconv , workl(iq) ,
& ldq , workl(iw+ncv), workl(ihb),
& ncv , temp , ierr )
@@ -790,11 +790,11 @@ c | * Determine Ritz estimates of the theta. |
c | If RVEC = .true. then compute Ritz estimates |
c | of the theta. |
c | If RVEC = .false. then copy Ritz estimates |
c | as computed by pdsaupd . |
c | as computed by pdsaupd. |
c | * Determine Ritz estimates of the lambda. |
c %-------------------------------------------------%
c
call dscal (ncv, bnorm2, workl(ihb), 1)
call dscal (ncv, bnorm2, workl(ihb), 1)
if (type .eq. 'SHIFTI') then
c
do 80 k=1, ncv
@@ -821,14 +821,14 @@ c
end if
c
if (type .ne. 'REGULR' .and. msglvl .gt. 1) then
call pdvout (comm, logfil, nconv, d, ndigit,
call pdvout (comm, logfil, nconv, d, ndigit,
& '_seupd: Untransformed converged Ritz values')
call pdvout (comm, logfil, nconv, workl(ihb), ndigit,
call pdvout (comm, logfil, nconv, workl(ihb), ndigit,
& '_seupd: Ritz estimates of the untransformed Ritz values')
else if (msglvl .gt. 1) then
call pdvout (comm, logfil, nconv, d, ndigit,
call pdvout (comm, logfil, nconv, d, ndigit,
& '_seupd: Converged Ritz values')
call pdvout (comm, logfil, nconv, workl(ihb), ndigit,
call pdvout (comm, logfil, nconv, workl(ihb), ndigit,
& '_seupd: Associated Ritz estimates')
end if
c
@@ -855,14 +855,14 @@ c
end if
c
if (type .ne. 'REGULR')
& call dger (n, nconv, one, resid, 1, workl(iw), 1, z, ldz)
& call dger(n, nconv, one, resid, 1, workl(iw), 1, z, ldz)
c
9000 continue
c
return
c
c %----------------%
c | End of pdseupd |
c | End of pdseupd |
c %----------------%
c
end

Some files were not shown because too many files have changed in this diff Show More