Skip to content

Commit

Permalink
Merge 30082c5 into cfdb5f6
Browse files Browse the repository at this point in the history
  • Loading branch information
fghoussen committed Feb 27, 2020
2 parents cfdb5f6 + 30082c5 commit 8c140ce
Show file tree
Hide file tree
Showing 18 changed files with 14 additions and 37 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ jobs:
export FCFLAGS='-I/usr/include/mkl' && \
export LIBS='-Wl,--no-as-needed -lmkl_sequential -lmkl_core -lpthread -lm -ldl' && \
export INTERFACE64=1 && \
./configure --with-blas=mkl_gf_ilp64 --with-lapack=mkl_gf_ilp64 --enable-icb --enable-mpi \
./configure --with-blas=mkl_gf_ilp64 --with-lapack=mkl_gf_ilp64 --enable-mpi --enable-icb-exmm \
--disable-dependency-tracking && \
export VERBOSE=1 && \
make all && \
Expand Down
12 changes: 6 additions & 6 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ arpack-ng - 3.8.0
* [BUG FIX]: fix 'Unknown CMake command "check_symbol_exists".' when ICB=ON.

[ Franck Houssen ]
* [BUG FIX] fix arpackdef.h: must not be included by F77/F90.
* pyarpack: python binding based on Boost.Python.Numpy exposing C++ API.
* [CLEAN] arpackSolver API: more convenient, suppress template parameters when possible.
* [BUG FIX] ICB using rvec/select: rvec/select turned to integer
Expand Down Expand Up @@ -34,12 +35,11 @@ arpack-ng - 3.7.0
* arpackmm: utility to test arpack with matrix market files.
* ICB: add ILP64 support.
The idea is:
- cmake generates arpackdef.h from arpackdef.cmake.h.in
- autoheader generates arpackdef.h from arpackdef.autotools.h[.in]
- arpack includes arpackdef.h when/where needed:
- #define provide c_int/a_int according to architecture.
- all f90 who need to include "arpackdef.h" must be moved to F90.
Note: by convention, F90 are preprocessed (f90 are not).
- cmake generates arpackdef.h from arpackdef.h.in
- autoheader generates arpackdef.h from arpackdef.h.in
- using arpackdef.h:
- in C/C++ files: arpackdef.h defines c_int/a_int according to architecture.
- in f90/F90 files: arpackdef.h must NOT be included (as it may need C header).
- MPI does not support ILP64: integer*4 must be imposed in all
calls involving MPI (f90 example/test code).
To enable ILP64 users to compile/link, arpackdef.h is added in
Expand Down
1 change: 0 additions & 1 deletion ICB/debug_icb.F90
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ subroutine debug_c(logfil_c, ndigit_c, mgetv0_c,
bind(c, name="debug_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: logfil_c, ndigit_c, mgetv0_c
integer(kind=c_int), value, intent(in) :: msaupd_c, msaup2_c, msaitr_c, mseigt_c, msapps_c, msgets_c, mseupd_c
integer(kind=c_int), value, intent(in) :: mnaupd_c, mnaup2_c, mnaitr_c, mneigh_c, mnapps_c, mngets_c, mneupd_c
Expand Down
1 change: 0 additions & 1 deletion ICB/stat_icb.F90
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ subroutine stat_c( nopx_c, nbx_c, nrorth_c, nitref_c, nrstrt_c,
bind(c, name="stat_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), intent(out) :: nopx_c, nbx_c, nrorth_c, nitref_c, nrstrt_c
real(kind=c_float), intent(out) :: tsaupd_c, tsaup2_c, tsaitr_c, tseigt_c, tsgets_c, tsapps_c, tsconv_c,&
tnaupd_c, tnaup2_c, tnaitr_c, tneigh_c, tngets_c, tnapps_c, tnconv_c,&
Expand Down
2 changes: 0 additions & 2 deletions PARPACK/SRC/MPI/icbpcn.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine pcnaupd_c(comm, ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="pcnaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
Expand Down Expand Up @@ -34,7 +33,6 @@ subroutine pcneupd_c(comm, rvec, howmny, select, d, z, ldz, sigma, workev,&
bind(c, name="pcneupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
Expand Down
2 changes: 0 additions & 2 deletions PARPACK/SRC/MPI/icbpdn.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine pdnaupd_c(comm, ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="pdnaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
Expand Down Expand Up @@ -34,7 +33,6 @@ subroutine pdneupd_c(comm, rvec, howmny, select, &
bind(c, name="pdneupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
Expand Down
2 changes: 0 additions & 2 deletions PARPACK/SRC/MPI/icbpds.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine pdsaupd_c(comm, ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="pdsaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
Expand Down Expand Up @@ -33,7 +32,6 @@ subroutine pdseupd_c(comm, rvec, howmny, select, d, z, ldz, sigma,&
bind(c, name="pdseupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
Expand Down
2 changes: 0 additions & 2 deletions PARPACK/SRC/MPI/icbpsn.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine psnaupd_c(comm, ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="psnaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
Expand Down Expand Up @@ -34,7 +33,6 @@ subroutine psneupd_c(comm, rvec, howmny, select, &
bind(c, name="psneupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
Expand Down
2 changes: 0 additions & 2 deletions PARPACK/SRC/MPI/icbpss.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine pssaupd_c(comm, ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="pssaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
Expand Down Expand Up @@ -33,7 +32,6 @@ subroutine psseupd_c(comm, rvec, howmny, select, d, z, ldz, sigma,&
bind(c, name="psseupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
Expand Down
2 changes: 0 additions & 2 deletions PARPACK/SRC/MPI/icbpzn.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine pznaupd_c(comm, ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="pznaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
Expand Down Expand Up @@ -34,7 +33,6 @@ subroutine pzneupd_c(comm, rvec, howmny, select, d, z, ldz, sigma, workev,&
bind(c, name="pzneupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: comm
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
Expand Down
2 changes: 0 additions & 2 deletions SRC/icbacn.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine cnaupd_c(ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="cnaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
integer(kind=c_int), value, intent(in) :: n
Expand Down Expand Up @@ -33,7 +32,6 @@ subroutine cneupd_c(rvec, howmny, select, d, z, ldz, sigma, workev, &
bind(c, name="cneupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
integer(kind=c_int), dimension(ncv), intent(in) :: select
Expand Down
2 changes: 0 additions & 2 deletions SRC/icbadn.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine dnaupd_c(ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="dnaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
integer(kind=c_int), value, intent(in) :: n
Expand Down Expand Up @@ -33,7 +32,6 @@ subroutine dneupd_c(rvec, howmny, select, &
bind(c, name="dneupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
integer(kind=c_int), dimension(ncv), intent(in) :: select
Expand Down
2 changes: 0 additions & 2 deletions SRC/icbads.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine dsaupd_c(ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="dsaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
integer(kind=c_int), value, intent(in) :: n
Expand All @@ -32,7 +31,6 @@ subroutine dseupd_c(rvec, howmny, select, d, z, ldz, sigma, &
bind(c, name="dseupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
integer(kind=c_int), dimension(ncv), intent(in) :: select
Expand Down
2 changes: 0 additions & 2 deletions SRC/icbasn.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine snaupd_c(ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="snaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
integer(kind=c_int), value, intent(in) :: n
Expand Down Expand Up @@ -33,7 +32,6 @@ subroutine sneupd_c(rvec, howmny, select, &
bind(c, name="sneupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
integer(kind=c_int), dimension(ncv), intent(in) :: select
Expand Down
2 changes: 0 additions & 2 deletions SRC/icbass.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine ssaupd_c(ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="ssaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
integer(kind=c_int), value, intent(in) :: n
Expand All @@ -32,7 +31,6 @@ subroutine sseupd_c(rvec, howmny, select, d, z, ldz, sigma, &
bind(c, name="sseupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
integer(kind=c_int), dimension(ncv), intent(in) :: select
Expand Down
2 changes: 0 additions & 2 deletions SRC/icbazn.F90
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ subroutine znaupd_c(ido, bmat, n, which, nev, tol, resid, ncv, v, ldv,&
bind(c, name="znaupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), intent(inout) :: ido
character(kind=c_char), dimension(1), intent(in) :: bmat
integer(kind=c_int), value, intent(in) :: n
Expand Down Expand Up @@ -33,7 +32,6 @@ subroutine zneupd_c(rvec, howmny, select, d, z, ldz, sigma, workev, &
bind(c, name="zneupd_c")
use :: iso_c_binding
implicit none
#include "arpackdef.h"
integer(kind=c_int), value, intent(in) :: rvec
character(kind=c_char), dimension(1), intent(in) :: howmny
integer(kind=c_int), dimension(ncv), intent(in) :: select
Expand Down
8 changes: 4 additions & 4 deletions TESTS/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,17 @@ bug_142_gen_SOURCES = bug_142_gen.f

if ICB
icb_arpack_c_SOURCES = icb_arpack_c.c
icb_arpack_c_LDADD = $(top_builddir)/SRC/libarpack$(LIBSUFFIX).la
icb_arpack_c_LDADD = $(LDADD)
icb_arpack_c_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_builddir) -I$(top_srcdir)/ICB

icb_arpack_cpp_SOURCES = icb_arpack_cpp.cpp
icb_arpack_cpp_LDADD = $(top_builddir)/SRC/libarpack$(LIBSUFFIX).la
icb_arpack_cpp_LDADD = $(LDADD)
icb_arpack_cpp_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_builddir) -I$(top_srcdir)/ICB
else
bug_1315_single_SOURCES = bug_1315_single.c
bug_1315_double_SOURCES = bug_1315_double.c
bug_1315_single_LDADD = $(top_builddir)/SRC/libarpack$(LIBSUFFIX).la
bug_1315_double_LDADD = $(top_builddir)/SRC/libarpack$(LIBSUFFIX).la
bug_1315_single_LDADD = $(LDADD)
bug_1315_double_LDADD = $(LDADD)
bug_1315_single_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_builddir)
bug_1315_double_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_builddir)
endif
3 changes: 3 additions & 0 deletions arpackdef.h.in
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
#ifndef __ARPACKDEF_H__
#define __ARPACKDEF_H__

/* arpackdef.h must be included only by C/C++, not by F77/F90. */

#define INTERFACE64 @INTERFACE64@

#if INTERFACE64
#include <stdint.h> /* Include this header for int64_t, uint64_t definition. */
#define c_int c_int64_t
#define a_int int64_t
#define a_uint uint64_t
Expand Down

0 comments on commit 8c140ce

Please sign in to comment.