Commit db77d245 authored by Andreas Marek's avatar Andreas Marek
Browse files

Merge branch 'master' into ELPA_GPU

parents f686272f 612ed368
This diff is collapsed.
......@@ -53,7 +53,7 @@ EXTRA_libelpa@SUFFIX@_private_la_DEPENDENCIES = \
src/redist_band.X90
lib_LTLIBRARIES = libelpa@SUFFIX@.la
libelpa@SUFFIX@_la_LINK = $(FCLINK) $(AM_LDFLAGS) -version-info $(ELPA_SO_VERSION) -lstdc++
libelpa@SUFFIX@_la_LINK = $(FCLINK) $(AM_LDFLAGS) -version-info $(ELPA_SO_VERSION)
libelpa@SUFFIX@_la_LIBADD = libelpa@SUFFIX@_public.la libelpa@SUFFIX@_private.la
libelpa@SUFFIX@_la_SOURCES =
......@@ -302,20 +302,13 @@ noinst_PROGRAMS = \
elpa2_test_complex@SUFFIX@ \
elpa2_test_complex_default@SUFFIX@ \
elpa2_test_complex_api@SUFFIX@ \
elpa1_real_toeplitz@SUFFIX@
#if WITH_OPENMP
# nothing yet
#endif
if !WITH_OPENMP
noinst_PROGRAMS += \
elpa1_real_toeplitz@SUFFIX@ \
elpa1_test_real_with_c@SUFFIX@ \
elpa1_test_real_c_version@SUFFIX@ \
elpa1_test_complex_c_version@SUFFIX@ \
elpa2_test_real_c_version@SUFFIX@ \
elpa2_test_complex_c_version@SUFFIX@
endif
if WANT_SINGLE_PRECISION_COMPLEX
noinst_PROGRAMS += \
......@@ -374,11 +367,9 @@ libelpatest@SUFFIX@_la_SOURCES += \
test/shared/redirect.F90
endif
if !WITH_OPENMP
elpa1_test_real_c_version@SUFFIX@_SOURCES = test/C/elpa1_test_real_c_version.c
elpa1_test_real_c_version@SUFFIX@_LDADD = $(build_lib)
elpa1_test_real_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS)
elpa1_test_real_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) @FC_MODOUT@private_modules @FC_MODINC@private_modules
elpa1_test_real_c_version@SUFFIX@_LINK = $(LINK) $(FCLIBS)
EXTRA_elpa1_test_real_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90
elpa1_test_real_with_c@SUFFIX@_SOURCES = test/Fortran/test_real_with_c.F90
......@@ -387,23 +378,19 @@ elpa1_test_real_with_c@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) @FC_MODOUT@private_module
EXTRA_elpa1_test_real_with_c@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90
elpa1_test_complex_c_version@SUFFIX@_SOURCES = test/C/elpa1_test_complex_c_version.c
elpa1_test_complex_c_version@SUFFIX@_LDADD = $(build_lib)
elpa1_test_complex_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS)
elpa1_test_complex_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) @FC_MODOUT@private_modules @FC_MODINC@private_modules
elpa1_test_complex_c_version@SUFFIX@_LINK = $(LINK) $(FCLIBS)
EXTRA_elpa1_test_complex_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90
elpa2_test_real_c_version@SUFFIX@_SOURCES = test/C/elpa2_test_real_c_version.c
elpa2_test_real_c_version@SUFFIX@_LDADD = $(build_lib)
elpa2_test_real_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS)
elpa2_test_real_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) @FC_MODOUT@private_modules @FC_MODINC@private_modules
elpa2_test_real_c_version@SUFFIX@_LINK = $(LINK) $(FCLIBS)
EXTRA_elpa2_test_real_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90
elpa2_test_complex_c_version@SUFFIX@_SOURCES = test/C/elpa2_test_complex_c_version.c
elpa2_test_complex_c_version@SUFFIX@_LDADD = $(build_lib)
elpa2_test_complex_c_version@SUFFIX@_LDADD = $(build_lib) $(FCLIBS)
elpa2_test_complex_c_version@SUFFIX@_FCFLAGS = $(AM_FCFLAGS) @FC_MODOUT@private_modules @FC_MODINC@private_modules
elpa2_test_complex_c_version@SUFFIX@_LINK = $(LINK) $(FCLIBS)
EXTRA_elpa2_test_complex_c_version@SUFFIX@_DEPENDENCIES = test/Fortran/elpa_print_headers.X90
endif
elpa1_test_real@SUFFIX@_SOURCES = test/Fortran/test_real.F90
elpa1_test_real@SUFFIX@_LDADD = $(build_lib)
......@@ -556,17 +543,12 @@ check_SCRIPTS = \
elpa2_test_real_api@SUFFIX@.sh \
elpa2_test_complex_api@SUFFIX@.sh \
elpa1_real_toeplitz@SUFFIX@.sh \
elpa2_print_kernels@SUFFIX@
if !WITH_OPENMP
check_SCRIPTS += \
elpa1_test_real_with_c@SUFFIX@.sh \
elpa2_print_kernels@SUFFIX@ \
elpa1_test_real_c_version@SUFFIX@.sh \
elpa1_test_complex_c_version@SUFFIX@.sh \
elpa2_test_real_c_version@SUFFIX@.sh \
elpa2_test_complex_c_version@SUFFIX@.sh
endif
if WANT_SINGLE_PRECISION_REAL
check_SCRIPTS += \
......
......@@ -300,26 +300,26 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
)
AC_MSG_RESULT([${can_compile_avx}])
#if test "${can_compile_avx}" = "yes" ; then
# AC_MSG_CHECKING([whether we can compile AVX intrinsics in C++])
# AC_LANG_PUSH([C++])
# AC_COMPILE_IFELSE([AC_LANG_SOURCE([
# #include <x86intrin.h>
# int main(int argc, char **argv){
# double* q;
# __m256d a1_1 = _mm256_load_pd(q);
# return 0;
# }
# ])],
# [can_compile_avx=yes],
# [can_compile_avx=no]
# )
# AC_LANG_POP([C++])
# AC_MSG_RESULT([${can_compile_avx}])
# if test "${can_compile_avx}" = "no" ; then
# AC_MSG_WARN([Cannot compile C++ with AVX: disabling AVX alltogether])
# fi
#fi
dnl if test "${can_compile_avx}" = "yes" ; then
dnl AC_MSG_CHECKING([whether we can compile AVX intrinsics in C++])
dnl AC_LANG_PUSH([C++])
dnl AC_COMPILE_IFELSE([AC_LANG_SOURCE([
dnl #include <x86intrin.h>
dnl int main(int argc, char **argv){
dnl double* q;
dnl __m256d a1_1 = _mm256_load_pd(q);
dnl return 0;
dnl }
dnl ])],
dnl [can_compile_avx=yes],
dnl [can_compile_avx=no]
dnl )
dnl AC_LANG_POP([C++])
dnl AC_MSG_RESULT([${can_compile_avx}])
dnl if test "${can_compile_avx}" = "no" ; then
dnl AC_MSG_WARN([Cannot compile C++ with AVX: disabling AVX alltogether])
dnl fi
dnl fi
AC_MSG_CHECKING([whether we can compile AVX2 intrinsics in C])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
......@@ -335,27 +335,28 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
[can_compile_avx2=no]
)
AC_MSG_RESULT([${can_compile_avx2}])
#if test "${can_compile_avx2}" = "yes" ; then
# AC_MSG_CHECKING([whether we can compile AVX2 intrinsics in C++])
# AC_LANG_PUSH([C++])
# AC_COMPILE_IFELSE([AC_LANG_SOURCE([
# #include <x86intrin.h>
# int main(int argc, char **argv){
# double* q;
# __m256d q1 = _mm256_load_pd(q);
# __m256d y1 = _mm256_fmadd_pd(q1, q1, q1);
# return 0;
# }
# ])],
# [can_compile_avx2=yes],
# [can_compile_avx2=no]
# )
# AC_LANG_POP([C++])
# AC_MSG_RESULT([${can_compile_avx2}])
# if test "${can_compile_avx2}" = "no" ; then
# AC_MSG_WARN([Cannot compile C++ with AVX2!])
# fi
#fi
dnl if test "${can_compile_avx2}" = "yes" ; then
dnl AC_MSG_CHECKING([whether we can compile AVX2 intrinsics in C++])
dnl AC_LANG_PUSH([C++])
dnl AC_COMPILE_IFELSE([AC_LANG_SOURCE([
dnl #include <x86intrin.h>
dnl int main(int argc, char **argv){
dnl double* q;
dnl __m256d q1 = _mm256_load_pd(q);
dnl __m256d y1 = _mm256_fmadd_pd(q1, q1, q1);
dnl return 0;
dnl }
dnl ])],
dnl [can_compile_avx2=yes],
dnl [can_compile_avx2=no]
dnl )
dnl AC_LANG_POP([C++])
dnl AC_MSG_RESULT([${can_compile_avx2}])
dnl if test "${can_compile_avx2}" = "no" ; then
dnl AC_MSG_WARN([Cannot compile C++ with AVX2!])
dnl fi
dnl fi
if test "${can_compile_avx}" = "yes" ; then
install_real_avx_block2=yes
......@@ -586,6 +587,9 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
[fortran_can_check_environment=no]
)
AC_MSG_RESULT([${fortran_can_check_environment}])
if test x"${fortran_can_check_environment}" = x"yes" ; then
AC_DEFINE([HAVE_ENVIRONMENT_CHECKING],[1],[Fortran can query environment variables])
fi
dnl check whether GPU version is requested
......@@ -687,10 +691,32 @@ else
install_complex_bgq=no
fi
dnl environment variable setting of kernel
if test x"${fortran_can_check_environment}" = x"yes" ; then
AC_DEFINE([HAVE_ENVIRONMENT_CHECKING],[1],[Fortran can querry environment variables])
dnl Test possibility of 'use mpi', if requested
if test x"${with_mpi}" = x"yes" ; then
AC_ARG_ENABLE([mpi-module],
AS_HELP_STRING([--disable-mpi-module],
[Do not use the Fortran MPI module, get interfaces by 'include "mpif.h')]),
[],
[enable_mpi_module=yes])
if test x"${enable_mpi_module}" = x"yes" ; then
AC_MSG_CHECKING(whether Fortran mpi module can be used)
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
program test_mpi_module
use mpi
real :: time
time = MPI_WTime()
end program
])],
[can_use_fortran_mpi_module=yes],
[can_use_fortran_mpi_module=no]
)
AC_MSG_RESULT([${can_use_fortran_mpi_module}])
if test x"${can_use_fortran_mpi_module}" = x"yes" ; then
AC_DEFINE([HAVE_MPI_MODULE],[1],[can use the Fortran mpi module])
else
AC_MSG_ERROR([Could not compile a Fortran program with an 'use mpi' statement. You can try again with --disable-mpi-module])
fi
fi
fi
dnl default value
......
......@@ -39,17 +39,15 @@ License: LGPL-3.0
Group: System/Libraries
Url: https://elpa.rzg.mpg.de/
Source0: https://elpa.mpcdf.mpg.de/html/Releases/%{version}/%{name}-%{version}.tar.gz
Requires: openmpi
BuildRequires: c_compiler
# For SLE_11_SP4:
%if %{sle_11_sp4} == 1
BuildRequires: gcc48-c++
BuildRequires: gcc48-fortran
%else
BuildRequires: gcc-c++ >= 4.8
BuildRequires: gcc-fortran >= 4.8
%endif
BuildRequires: strace
BuildRequires: openmpi-devel
Requires: openmpi
BuildRequires: blas-devel
BuildRequires: lapack-devel
BuildRequires: pkg-config
......@@ -123,7 +121,6 @@ Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}
Requires: openmpi
Requires: libstdc++-devel
Requires: lapack-devel
Requires: blas-devel
Requires: libscalapack2-openmpi-devel
......@@ -169,7 +166,6 @@ Summary: Development files for %{name}_openmp
Group: Development/Libraries
Requires: %{name}_openmp = %{version}
Requires: openmpi
Requires: libstdc++-devel
Requires: lapack-devel
Requires: blas-devel
Requires: libscalapack2-openmpi-devel
......@@ -229,7 +225,12 @@ pushd build
ln -s ../configure .
%endif
%configure --docdir=%{_docdir}/%{name}-%{version}
%configure \
%if %{sle_11_sp4} == 1
--disable-mpi-module \
%endif
--docdir=%{_docdir}/%{name}-%{version}
make %{?_smp_mflags} V=1
popd
......@@ -245,10 +246,17 @@ pushd build_openmp
ln -s ../configure .
%endif
%configure --docdir=%{_docdir}/%{name}_openmp-%{version} --enable-openmp
%configure \
%if %{sle_11_sp4} == 1
--disable-mpi-module \
%endif
--docdir=%{_docdir}/%{name}_openmp-%{version} \
--enable-openmp
make %{?_smp_mflags} V=1
popd
%endif
%endif # OpenMP
%check
......
......@@ -11,6 +11,9 @@ endef
_f90_verbose = $(_f90_verbose_$(V))
_f90_verbose_ = $(_f90_verbose_$(AM_DEFAULT_VERBOSITY))
_f90_verbose_0 = @echo " $1";
_f90_only_verbose = $(_f90_only_verbose_$(V))
_f90_only_verbose_ = @
_f90_only_verbose_0 = @
_f90_targets = $(call translate_name,$(PROGRAMS) $(LTLIBRARIES))
FORTRAN_CPP ?= cpp -P -traditional -Wall -Werror
......@@ -92,9 +95,26 @@ endef
ifneq ($(call is_clean),1)
include $(_f90_depfile)
endif
# $1 string
# $2 file
define append_to
$(_f90_only_verbose)echo '$1' >> $2
endef
# $1 program
define program_dependencies
$(_f90_only_verbose)rm -f .$p.dep.args
$(foreach argument,$(_$p_use_mods) $(_$p_def_mods) $(foreach l,$(call recursive_lib_deps,$p),$(_$l_use_mods) $(_$l_def_mods)),$(call append_to,$(argument),.$p.dep.args))
$(_f90_only_verbose)$(top_srcdir)/fdep/fortran_dependencies.pl $p < .$p.dep.args >> $@ || { rm $@; exit 1; }
$(_f90_only_verbose)rm -f .$p.dep.args
endef
$(_f90_depfile): $(top_srcdir)/fdep/fortran_dependencies.pl $(foreach p,$(_f90_targets),$(_$p_use_mods) $(_$p_def_mods)) | $(foreach p,$(_f90_targets),$(_f90_depdir)/$p)
$(call _f90_verbose,F90 DEPS $@)echo > $@;
$(foreach p,$(_f90_targets),$(top_srcdir)/fdep/fortran_dependencies.pl $p $(_$p_use_mods) $(_$p_def_mods) $(foreach l,$(call recursive_lib_deps,$p),$(_$l_use_mods) $(_$l_def_mods)) >> $@; $(newline))
$(foreach p,$(_f90_targets),$(call program_dependencies,$p))
$(_f90_depdir):
@mkdir $@
......
......@@ -42,7 +42,8 @@ sub add_def {
my $target = shift;
foreach my $file (@ARGV) {
foreach my $file (<>) {
chomp($file);
if (exists $files{$file}) {
next;
} else {
......
......@@ -78,7 +78,7 @@ AC_DEFUN([AX_ELPA_OPENMP],
dnl will fail (since we know that it failed without the option),
dnl therefore the loop will continue searching for an option, and
dnl no output file called 'penmp' or 'mp' is created.
for ac_option in -qopenmp -openmp -fopenmp -xopenmp -mp -omp -qsmp=omp; do
for ac_option in -fopenmp -qopenmp -xopenmp -mp -omp -qsmp=omp -openmp; do
ac_save_[]_AC_LANG_PREFIX[]FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $ac_option"
AC_LINK_IFELSE([AC_LANG_SOURCE([_AX_ELPA_LANG_OPENMP])],
......
......@@ -1235,7 +1235,7 @@
integer(kind=ik) :: np_off, nprocs
integer(kind=ik) :: np1, np2, noff, nlen, nmid, n
#ifdef WITH_MPI
integer(kind=ik) :: mpi_status(mpi_status_size)
integer(kind=ik) :: my_mpi_status(mpi_status_size)
#endif
logical, intent(in) :: wantDebug
logical, intent(out) :: success
......@@ -1284,9 +1284,9 @@
#ifdef WITH_MPI
#ifdef DOUBLE_PRECISION_REAL
call mpi_recv(d(noff+1), nmid, MPI_REAL8, np_off, 1, mpi_comm_cols, mpi_status, mpierr)
call mpi_recv(d(noff+1), nmid, MPI_REAL8, np_off, 1, mpi_comm_cols, my_mpi_status, mpierr)
#else
call mpi_recv(d(noff+1), nmid, MPI_REAL4, np_off, 1, mpi_comm_cols, mpi_status, mpierr)
call mpi_recv(d(noff+1), nmid, MPI_REAL4, np_off, 1, mpi_comm_cols, my_mpi_status, mpierr)
#endif
#else /* WITH_MPI */
......@@ -1312,9 +1312,9 @@
#ifdef WITH_MPI
#ifdef DOUBLE_PRECISION_REAL
call mpi_recv(d(noff+nmid+1), nlen-nmid, MPI_REAL8, np_off+np1, 1,mpi_comm_cols, mpi_status, mpierr)
call mpi_recv(d(noff+nmid+1), nlen-nmid, MPI_REAL8, np_off+np1, 1,mpi_comm_cols, my_mpi_status, mpierr)
#else
call mpi_recv(d(noff+nmid+1), nlen-nmid, MPI_REAL4, np_off+np1, 1,mpi_comm_cols, mpi_status, mpierr)
call mpi_recv(d(noff+nmid+1), nlen-nmid, MPI_REAL4, np_off+np1, 1,mpi_comm_cols, my_mpi_status, mpierr)
#endif
#else /* WITH_MPI */
......@@ -1847,7 +1847,7 @@
integer(kind=ik) :: my_proc, n_procs, my_prow, my_pcol, np_rows, &
np_cols, mpierr
#ifdef WITH_MPI
integer(kind=ik) :: mpi_status(mpi_status_size)
integer(kind=ik) :: my_mpi_status(mpi_status_size)
#endif
integer(kind=ik) :: np_next, np_prev, np_rem
integer(kind=ik) :: idx(na), idx1(na), idx2(na)
......@@ -2545,11 +2545,11 @@
#ifdef DOUBLE_PRECISION_REAL
call MPI_Sendrecv_replace(qtmp1, l_rows*max_local_cols, MPI_REAL8, &
np_next, 1111, np_prev, 1111, &
mpi_comm_cols, mpi_status, mpierr)
mpi_comm_cols, my_mpi_status, mpierr)
#else
call MPI_Sendrecv_replace(qtmp1, l_rows*max_local_cols, MPI_REAL4, &
np_next, 1111, np_prev, 1111, &
mpi_comm_cols, mpi_status, mpierr)
mpi_comm_cols, my_mpi_status, mpierr)
#endif
#endif /* WITH_MPI */
......@@ -2801,9 +2801,9 @@
#ifdef WITH_MPI
#ifdef DOUBLE_PRECISION_REAL
call mpi_recv(qtmp(1,nc), l_rows, MPI_REAL8, pc1, mod(i,4096), mpi_comm_cols, mpi_status, mpierr)
call mpi_recv(qtmp(1,nc), l_rows, MPI_REAL8, pc1, mod(i,4096), mpi_comm_cols, my_mpi_status, mpierr)
#else
call mpi_recv(qtmp(1,nc), l_rows, MPI_REAL4, pc1, mod(i,4096), mpi_comm_cols, mpi_status, mpierr)
call mpi_recv(qtmp(1,nc), l_rows, MPI_REAL4, pc1, mod(i,4096), mpi_comm_cols, my_mpi_status, mpierr)
#endif
#else /* WITH_MPI */
......@@ -2868,11 +2868,11 @@
#ifdef DOUBLE_PRECISION_REAL
call mpi_sendrecv(q(l_rqs,lc1), l_rows, MPI_REAL8, pc2, 1, &
tmp, l_rows, MPI_REAL8, pc2, 1, &
mpi_comm_cols, mpi_status, mpierr)
mpi_comm_cols, my_mpi_status, mpierr)
#else
call mpi_sendrecv(q(l_rqs,lc1), l_rows, MPI_REAL4, pc2, 1, &
tmp, l_rows, MPI_REAL4, pc2, 1, &
mpi_comm_cols, mpi_status, mpierr)
mpi_comm_cols, my_mpi_status, mpierr)
#endif
#else /* WITH_MPI */
......@@ -2886,11 +2886,11 @@
#ifdef DOUBLE_PRECISION_REAL
call mpi_sendrecv(q(l_rqs,lc2), l_rows, MPI_REAL8, pc1, 1, &
tmp, l_rows, MPI_REAL8, pc1, 1, &
mpi_comm_cols, mpi_status, mpierr)
mpi_comm_cols, my_mpi_status, mpierr)
#else
call mpi_sendrecv(q(l_rqs,lc2), l_rows, MPI_REAL4, pc1, 1, &
tmp, l_rows, MPI_REAL4, pc1, 1, &
mpi_comm_cols, mpi_status, mpierr)
mpi_comm_cols, my_mpi_status, mpierr)
#endif
#else /* WITH_MPI */
......@@ -2966,10 +2966,10 @@
#ifdef DOUBLE_PRECISION_REAL
call MPI_Sendrecv_replace(z, n, MPI_REAL8, np_next, 1111, np_prev, 1111, &
mpi_comm_cols, mpi_status, mpierr)
mpi_comm_cols, my_mpi_status, mpierr)
#else
call MPI_Sendrecv_replace(z, n, MPI_REAL4, np_next, 1111, np_prev, 1111, &
mpi_comm_cols, mpi_status, mpierr)
mpi_comm_cols, my_mpi_status, mpierr)
#endif
#endif /* WITH_MPI */
......@@ -3039,9 +3039,9 @@
#ifdef WITH_MPI
#ifdef DOUBLE_PRECISION_REAL
call mpi_recv(tmp, n, MPI_REAL8, np, 1111, mpi_comm_cols, mpi_status, mpierr)
call mpi_recv(tmp, n, MPI_REAL8, np, 1111, mpi_comm_cols, my_mpi_status, mpierr)
#else
call mpi_recv(tmp, n, MPI_REAL4, np, 1111, mpi_comm_cols, mpi_status, mpierr)
call mpi_recv(tmp, n, MPI_REAL4, np, 1111, mpi_comm_cols, my_mpi_status, mpierr)
#endif
#else /* WITH_MPI */
......@@ -3065,10 +3065,10 @@
#ifdef DOUBLE_PRECISION_REAL
call mpi_send(tmp, n, MPI_REAL8, npc_0, 1111, mpi_comm_cols, mpierr)
call mpi_recv(z ,n, MPI_REAL8, npc_0, 1111, mpi_comm_cols, mpi_status, mpierr)
call mpi_recv(z ,n, MPI_REAL8, npc_0, 1111, mpi_comm_cols, my_mpi_status, mpierr)
#else
call mpi_send(tmp, n, MPI_REAL4, npc_0, 1111, mpi_comm_cols, mpierr)
call mpi_recv(z ,n, MPI_REAL4, npc_0, 1111, mpi_comm_cols, mpi_status, mpierr)
call mpi_recv(z ,n, MPI_REAL4, npc_0, 1111, mpi_comm_cols, my_mpi_status, mpierr)
#endif
#else /* WITH_MPI */
......
......@@ -1768,7 +1768,7 @@
integer(kind=ik) :: max_threads, my_thread, my_block_s, my_block_e, iter
integer(kind=ik) :: omp_get_max_threads
#ifdef WITH_MPI
integer(kind=ik) :: mpi_status(MPI_STATUS_SIZE)
integer(kind=ik) :: my_mpi_status(MPI_STATUS_SIZE)
#endif
complex(kind=COMPLEX_DATATYPE), allocatable :: hv_t(:,:), tau_t(:)
#endif
......@@ -2138,9 +2138,9 @@
#ifdef WITH_MPI
#ifdef DOUBLE_PRECISION_COMPLEX
call mpi_recv(hv, nb, MPI_COMPLEX16, my_pe-1, 2, mpi_comm, mpi_status, mpierr)
call mpi_recv(hv, nb, MPI_COMPLEX16, my_pe-1, 2, mpi_comm, my_mpi_status, mpierr)
#else
call mpi_recv(hv, nb, MPI_COMPLEX8, my_pe-1, 2, mpi_comm, mpi_status, mpierr)
call mpi_recv(hv, nb, MPI_COMPLEX8, my_pe-1, 2, mpi_comm, my_mpi_status, mpierr)
#endif
#else /* WITH_MPI */
......@@ -2357,7 +2357,7 @@
! Send our first column to previous PE
if (my_pe>0 .and. na_s <= na) then
#ifdef WITH_MPI
call mpi_wait(ireq_ab,mpi_status,mpierr)
call mpi_wait(ireq_ab, my_mpi_status,mpierr)
#endif
ab_s(1:nb+1) = ab(1:nb+1,na_s-n_off)
#ifdef WITH_MPI
......@@ -2378,9 +2378,9 @@
#ifdef WITH_MPI
#ifdef DOUBLE_PRECISION_COMPLEX
call mpi_recv(ab(1,ne-n_off), nb+1, MPI_COMPLEX16, my_pe+1, 1, mpi_comm, mpi_status, mpierr)
call mpi_recv(ab(1,ne-n_off), nb+1, MPI_COMPLEX16, my_pe+1, 1, mpi_comm, my_mpi_status, mpierr)
#else
call mpi_recv(ab(1,ne-n_off), nb+1, MPI_COMPLEX8, my_pe+1, 1, mpi_comm, mpi_status, mpierr)
call mpi_recv(ab(1,ne-n_off), nb+1, MPI_COMPLEX8, my_pe+1, 1, mpi_comm, my_mpi_status, mpierr)
#endif
#else /* WITH_MPI */
......@@ -2397,7 +2397,7 @@
if (istep>=max_threads .and. ne < na) then
#ifdef WITH_MPI
call mpi_wait(ireq_hv,mpi_status,mpierr)
call mpi_wait(ireq_hv, my_mpi_status,mpierr)
#endif
hv_s(1) = tau_t(max_threads)
hv_s(2:) = hv_t(2:,max_threads)
......@@ -2512,7 +2512,7 @@
#ifdef WITH_MPI
#ifdef WITH_OPENMP
call mpi_recv(ab(1,ne), nb+1, MPI_COMPLEX16, my_pe+1, 1, mpi_comm, mpi_status, mpierr)
call mpi_recv(ab(1,ne), nb+1, MPI_COMPLEX16, my_pe+1, 1, mpi_comm, my_mpi_status, mpierr)
#else
call mpi_recv(ab(1,ne), nb+1, MPI_COMPLEX16, my_pe+1, 1, mpi_comm, MPI_STATUS_IGNORE, mpierr)
......@@ -2544,7 +2544,7 @@
#ifdef WITH_MPI
#ifdef WITH_OPENMP
call mpi_recv(ab(1,ne), nb+1, MPI_COMPLEX8, my_pe+1, 1, mpi_comm, mpi_status, mpierr)
call mpi_recv(ab(1,ne), nb+1, MPI_COMPLEX8, my_pe+1, 1, mpi_comm, my_mpi_status, mpierr)
#else
call mpi_recv(ab(1,ne), nb+1, MPI_COMPLEX8, my_pe+1, 1, mpi_comm, MPI_STATUS_IGNORE, mpierr)
......@@ -2612,7 +2612,7 @@
#ifdef WITH_MPI
#ifdef WITH_OPENMP
call mpi_wait(ireq_hv,mpi_status,mpierr)
call mpi_wait(ireq_hv, my_mpi_status,mpierr)
#else
call mpi_wait(ireq_hv,MPI_STATUS_IGNORE,mpierr)
#endif
......@@ -2670,7 +2670,7 @@
#ifdef WITH_MPI
#ifdef WITH_OPENMP
call mpi_wait(ireq_ab,mpi_status,mpierr)
call mpi_wait(ireq_ab, my_mpi_status,mpierr)
#else
call mpi_wait(ireq_ab,MPI_STATUS_IGNORE,mpierr)
#endif
......@@ -2797,7 +2797,7 @@
if (hh_cnt(iblk) == snd_limits(hh_dst(iblk)+1,iblk)-snd_limits(hh_dst(iblk),iblk)) then
! Wait for last transfer to finish
#ifdef WITH_MPI
call mpi_wait(ireq_hhs(iblk), mpi_status, mpierr)
call mpi_wait(ireq_hhs(iblk), my_mpi_status, mpierr)
#endif
! Copy vectors into send buffer
hh_send(:,1:hh_cnt(iblk),iblk) = hh_gath(:,1:hh_cnt(iblk),iblk)
......@@ -2835,8 +2835,8 @@
#ifdef WITH_OPENMP
#ifdef WITH_MPI
call mpi_wait(ireq_ab,mpi_status,mpierr)
call mpi_wait(ireq_hv,mpi_status,mpierr)
call mpi_wait(ireq_ab, my_mpi_status,mpierr)
call mpi_wait(ireq_hv, my_mpi_status,mpierr)
allocate(mpi_statuses(MPI_STATUS_SIZE,max(nblocks,num_chunks)), stat=istat, errmsg=errorMessage)
if (istat .ne. 0) then
......@@ -3114,7 +3114,7 @@
#ifdef WITH_OPENMP
integer(kind=ik), allocatable :: mpi_statuses(:,:)
#ifdef WITH_MPI
integer(kind=ik) :: mpi_status(MPI_STATUS_SIZE)
integer(kind=ik) :: my_mpi_status(MPI_STATUS_SIZE)
#endif
#endif
......@@ -3478,9 +3478,9 @@
#ifdef WITH_MPI
#ifdef DOUBLE_PRECISION_COMPLEX
call MPI_Recv(row, l_nev, MPI_COMPLEX16, src, 0, mpi_comm_rows, mpi_status, mpierr)
call MPI_Recv(row, l_nev, MPI_COMPLEX16, src, 0, mpi_comm_rows, my_mpi_status, mpierr)
#else
call MPI_Recv(row, l_nev, MPI_COMPLEX8, src, 0, mpi_comm_rows, mpi_status, mpierr)
call MPI_Recv(row, l_nev, MPI_COMPLEX8, src, 0, mpi_comm_rows, my_mpi_status, mpierr)
#endif
#else /* WITH_MPI */
......@@ -3683,9 +3683,9 @@
#ifdef WITH_MPI
#ifdef DOUBLE_PRECISION_COMPLEX
call MPI_Recv(row, l_nev, MPI_COMPLEX16, src, 0, mpi_comm_rows, mpi_status, mpierr)
call MPI_Recv(row, l_nev, MPI_COMPLEX16, src, 0, mpi_comm_rows, my_mpi_status, mpierr)
#else
call MPI_Recv(row, l_nev, MPI_COMPLEX8, src, 0, mpi_comm_rows, mpi_status, mpierr)
call MPI_Recv(row, l_nev, MPI_COMPLEX8, src, 0, mpi_comm_rows, my_mpi_status, mpierr)
#endif
#else /* WITH_MPI */
......@@ -4235,7 +4235,7 @@
stop
endif
#ifdef WITH_MPI
call MPI_Wait(bottom_recv_request(i), mpi_status, mpierr)
call MPI_Wait(bottom_recv_request(i), my_mpi_status, mpierr)
#endif
#else /* WITH_OPENMP */
......@@ -4370,7 +4370,7 @@
stop
endif
#ifdef WITH_MPI
call MPI_Wait(top_recv_request(i), mpi_status, mpierr)
call MPI_Wait(top_recv_request(i), my_mpi_status, mpierr)
#endif
#else /* WITH_OPENMP */
......@@ -4493,7 +4493,7 @@
stop
endif
#ifdef WITH_MPI
call MPI_Wait(bottom_send_request(i), mpi_status, mpierr)
call MPI_Wait(bottom_send_request(i), my_mpi_status, mpierr)
#endif
#else /* WITH_OPENMP */
......@@ -4669,7 +4669,7 @@
stop
endif
#ifdef WITH_MPI
call MPI_Wait(bottom_send_request(i), mpi_status, mpierr)