Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
elpa
elpa
Commits
0ccc9d8f
Commit
0ccc9d8f
authored
Sep 28, 2016
by
Andreas Marek
Browse files
Rename preprocessor flag for using assumed size arrays
parent
e531f75e
Changes
19
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Makefile.am
View file @
0ccc9d8f
...
...
@@ -15,13 +15,13 @@ libelpa@SUFFIX@_public_la_SOURCES = \
src/elpa2.F90
\
src/elpa1_auxiliary.F90
\
src/elpa2_utilities.F90
\
src/elpa_utilities.F90
src/elpa_utilities.F90
\
src/mod_precision.F90
# internal parts
noinst_LTLIBRARIES
+=
libelpa@SUFFIX@_private.la
libelpa@SUFFIX@
_private_la_FCFLAGS
=
$(AM_FCFLAGS)
@FC_MODOUT@private_modules @FC_MODINC@private_modules
libelpa@SUFFIX@
_private_la_SOURCES
=
\
src/mod_precision.F90
\
src/mod_mpi.F90
\
src/mod_mpi_stubs.F90
\
src/mod_pack_unpack_real.F90
\
...
...
configure.ac
View file @
0ccc9d8f
...
...
@@ -983,17 +983,17 @@ DX_MAN_FEATURE(ON)
DX_HTML_FEATURE(ON)
DX_INIT_DOXYGEN([ELPA], [Doxyfile], [docs])
DESPERATELY_WANT
_ASSUMED_SIZE=no
USE
_ASSUMED_SIZE=no
AC_MSG_CHECKING(whether --enable-assumed-size is specified)
AC_ARG_ENABLE([assumed-size],
AS_HELP_STRING([--enable-assumed-size],
[use assumed-size Fortran arrays]),
[],
[
DESPERATELY_WANT
_ASSUMED_SIZE=no])
AC_MSG_RESULT([${
DESPERATELY_WANT
_ASSUMED_SIZE}])
AM_CONDITIONAL([WITH_
DESPERATELY_WANT
_ASSUMED_SIZE],[test x"$
DESPERATELY_WANT
_ASSUMED_SIZE" = x"yes"])
if test x"${
DESPERATELY_WANT
_ASSUMED_SIZE}" = x"yes" ; then
AC_DEFINE([
DESPERATELY_WANT
_ASSUMED_SIZE],[1],[use assumed size Fortran arrays, even if not debuggable])
[
USE
_ASSUMED_SIZE=no])
AC_MSG_RESULT([${
USE
_ASSUMED_SIZE}])
AM_CONDITIONAL([WITH_
USE
_ASSUMED_SIZE],[test x"$
USE
_ASSUMED_SIZE" = x"yes"])
if test x"${
USE
_ASSUMED_SIZE}" = x"yes" ; then
AC_DEFINE([
USE
_ASSUMED_SIZE],[1],[use assumed size Fortran arrays, even if not debuggable])
fi
if test x"${want_single_precision}" = x"yes" ; then
...
...
src/elpa1.F90
View file @
0ccc9d8f
...
...
@@ -353,10 +353,11 @@ function solve_evp_real_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, &
implicit
none
integer
(
kind
=
ik
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef DESPERATELY_WANT_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
real
(
kind
=
REAL_DATATYPE
)
::
ev
(
na
)
#ifdef USE_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#else
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
),
ev
(
na
),
q
(
ldq
,
matrixCols
)
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
mpierr
...
...
@@ -483,10 +484,11 @@ function solve_evp_real_1stage_single(na, nev, a, lda, ev, q, ldq, nblk, matrixC
implicit
none
integer
(
kind
=
ik
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef DESPERATELY_WANT_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
real
(
kind
=
REAL_DATATYPE
)
::
ev
(
na
)
#ifdef USE_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#else
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
),
ev
(
na
),
q
(
ldq
,
matrixCols
)
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
mpierr
...
...
@@ -612,12 +614,12 @@ function solve_evp_complex_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, matr
implicit
none
integer
(
kind
=
ik
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#ifdef
USE
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#else
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
#endif
real
(
kind
=
REAL_DATATYPE
)
::
ev
(
na
)
real
(
kind
=
REAL_DATATYPE
)
::
ev
(
na
)
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
l_rows
,
l_cols
,
l_cols_nev
...
...
@@ -757,12 +759,12 @@ function solve_evp_complex_1stage_single(na, nev, a, lda, ev, q, ldq, nblk, matr
implicit
none
integer
(
kind
=
ik
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#ifdef
USE
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#else
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
#endif
real
(
kind
=
REAL_DATATYPE
)
::
ev
(
na
)
real
(
kind
=
REAL_DATATYPE
)
::
ev
(
na
)
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
l_rows
,
l_cols
,
l_cols_nev
...
...
src/elpa1_auxiliary.F90
View file @
0ccc9d8f
...
...
@@ -295,10 +295,10 @@ module elpa1_auxiliary
implicit
none
integer
(
kind
=
ik
)
::
na
,
lda
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
)
#ifdef
USE
_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
)
#else
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
)
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
l_cols
,
l_rows
,
l_col1
,
l_row1
,
l_colx
,
l_rowx
...
...
@@ -549,10 +549,11 @@ module elpa1_auxiliary
implicit
none
integer
(
kind
=
ik
)
::
na
,
lda
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
)
! was
! real a(lda, *)
#ifdef USE_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
)
#else
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
l_cols
,
l_rows
,
l_col1
,
l_row1
,
l_colx
,
l_rowx
integer
(
kind
=
ik
)
::
n
,
nc
,
i
,
info
...
...
@@ -797,10 +798,10 @@ module elpa1_auxiliary
implicit
none
integer
(
kind
=
ik
)
::
na
,
lda
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
)
#ifdef
USE
_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
)
#else
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
)
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
l_cols
,
l_rows
,
l_col1
,
l_row1
,
l_colx
,
l_rowx
...
...
@@ -984,10 +985,10 @@ module elpa1_auxiliary
implicit
none
integer
(
kind
=
ik
)
::
na
,
lda
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
)
#ifdef
USE
_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
)
#else
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
)
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
l_cols
,
l_rows
,
l_col1
,
l_row1
,
l_colx
,
l_rowx
...
...
@@ -1179,10 +1180,10 @@ module elpa1_auxiliary
implicit
none
integer
(
kind
=
ik
)
::
na
,
lda
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
)
#ifdef
USE
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
)
#else
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
)
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
l_cols
,
l_rows
,
l_col1
,
l_row1
,
l_colx
,
l_rowx
...
...
@@ -1433,10 +1434,10 @@ module elpa1_auxiliary
implicit
none
integer
(
kind
=
ik
)
::
na
,
lda
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
)
#ifdef
USE
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
)
#else
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
)
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
l_cols
,
l_rows
,
l_col1
,
l_row1
,
l_colx
,
l_rowx
...
...
@@ -1688,10 +1689,10 @@ module elpa1_auxiliary
#endif
implicit
none
integer
(
kind
=
ik
)
::
na
,
lda
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
)
#ifdef
USE
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
)
#else
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
)
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
l_cols
,
l_rows
,
l_col1
,
l_row1
,
l_colx
,
l_rowx
...
...
@@ -1896,10 +1897,10 @@ module elpa1_auxiliary
#endif
implicit
none
integer
(
kind
=
ik
)
::
na
,
lda
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
)
#ifdef
USE
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
)
#else
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
)
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
l_cols
,
l_rows
,
l_col1
,
l_row1
,
l_colx
,
l_rowx
...
...
@@ -2748,10 +2749,10 @@ module elpa1_auxiliary
character
*
1
::
uplo_a
,
uplo_c
integer
(
kind
=
ik
),
intent
(
in
)
::
lda
,
ldaCols
,
ldb
,
ldbCols
,
ldc
,
ldcCols
integer
(
kind
=
ik
)
::
na
,
ncb
,
nblk
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
),
b
(
ldb
,
*
),
c
(
ldc
,
*
)
#ifdef
USE
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)::
a
(
lda
,
*
),
b
(
ldb
,
*
),
c
(
ldc
,
*
)
#else
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
ldaCols
),
b
(
ldb
,
ldbCols
),
c
(
ldc
,
ldcCols
)
! removed assumed_size
complex
(
kind
=
COMPLEX_DATATYPE
)::
a
(
lda
,
ldaCols
),
b
(
ldb
,
ldbCols
),
c
(
ldc
,
ldcCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
l_cols
,
l_rows
,
l_rows_np
...
...
@@ -3067,10 +3068,10 @@ module elpa1_auxiliary
character
*
1
::
uplo_a
,
uplo_c
integer
(
kind
=
ik
),
intent
(
in
)
::
lda
,
ldaCols
,
ldb
,
ldbCols
,
ldc
,
ldcCols
integer
(
kind
=
ik
)
::
na
,
ncb
,
nblk
,
mpi_comm_rows
,
mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
),
b
(
ldb
,
*
),
c
(
ldc
,
*
)
#ifdef
USE
_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)::
a
(
lda
,
*
),
b
(
ldb
,
*
),
c
(
ldc
,
*
)
#else
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
ldaCols
),
b
(
ldb
,
ldbCols
),
c
(
ldc
,
ldcCols
)
! removed assumed_size
complex
(
kind
=
COMPLEX_DATATYPE
)::
a
(
lda
,
ldaCols
),
b
(
ldb
,
ldbCols
),
c
(
ldc
,
ldcCols
)
#endif
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
...
...
@@ -3363,7 +3364,7 @@ module elpa1_auxiliary
implicit
none
integer
(
kind
=
ik
)
::
na
,
nev
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
real
(
kind
=
rk8
)
::
d
(
na
),
e
(
na
)
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real
(
kind
=
rk8
)
::
q
(
ldq
,
*
)
#else
real
(
kind
=
rk8
)
::
q
(
ldq
,
matrixCols
)
...
...
@@ -3406,7 +3407,7 @@ module elpa1_auxiliary
implicit
none
integer
(
kind
=
ik
)
::
na
,
nev
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
real
(
kind
=
rk4
)
::
d
(
na
),
e
(
na
)
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real
(
kind
=
rk4
)
::
q
(
ldq
,
*
)
#else
real
(
kind
=
rk4
)
::
q
(
ldq
,
matrixCols
)
...
...
src/elpa1_compute_complex_template.X90
View file @
0ccc9d8f
...
...
@@ -94,7 +94,7 @@
integer(kind=ik) :: na, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
complex(kind=COMPLEX_DATATYPE) :: tau(na)
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
complex(kind=COMPLEX_DATATYPE) :: a(lda,*)
#else
complex(kind=COMPLEX_DATATYPE) :: a(lda,matrixCols)
...
...
@@ -683,7 +683,7 @@
integer(kind=ik) :: na, nqc, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
complex(kind=COMPLEX_DATATYPE) :: tau(na)
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
complex(kind=COMPLEX_DATATYPE) :: a(lda,*), q(ldq,*)
#else
complex(kind=COMPLEX_DATATYPE) :: a(lda,matrixCols), q(ldq,matrixCols)
...
...
src/elpa1_compute_private.F90
View file @
0ccc9d8f
...
...
@@ -73,7 +73,6 @@ module ELPA1_compute
module
procedure
tridiag_real_double
end
interface
interface
trans_ev_real
module
procedure
trans_ev_real_double
end
interface
...
...
src/elpa1_compute_real_template.X90
View file @
0ccc9d8f
...
...
@@ -94,7 +94,7 @@
integer(kind=ik) :: na, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
real(kind=REAL_DATATYPE) :: d(na), e(na), tau(na)
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real(kind=REAL_DATATYPE) :: a(lda,*)
#else
real(kind=REAL_DATATYPE) :: a(lda,matrixCols)
...
...
@@ -697,7 +697,7 @@
integer(kind=ik) :: na, nqc, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
real(kind=REAL_DATATYPE) :: tau(na)
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real(kind=REAL_DATATYPE) :: a(lda,*), q(ldq,*)
#else
real(kind=REAL_DATATYPE) :: a(lda,matrixCols), q(ldq,matrixCols)
...
...
@@ -1006,7 +1006,7 @@
integer(kind=ik) :: na, nev, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
real(kind=REAL_DATATYPE) :: d(na), e(na)
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real(kind=REAL_DATATYPE) :: q(ldq,*)
#else
real(kind=REAL_DATATYPE) :: q(ldq,matrixCols)
...
...
@@ -1375,7 +1375,7 @@
integer(kind=ik) :: na, nev, nqoff, ldq, nblk, matrixCols, mpi_comm_rows
real(kind=REAL_DATATYPE) :: d(na), e(na)
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real(kind=REAL_DATATYPE) :: q(ldq,*)
#else
real(kind=REAL_DATATYPE) :: q(ldq,matrixCols)
...
...
@@ -1818,7 +1818,7 @@
mpi_comm_cols, npc_0, npc_n
integer(kind=ik) :: l_col(na), p_col(na), l_col_out(na), p_col_out(na)
real(kind=REAL_DATATYPE) :: d(na), e
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real(kind=REAL_DATATYPE) :: q(ldq,*)
#else
real(kind=REAL_DATATYPE) :: q(ldq,matrixCols)
...
...
src/elpa2.F90
View file @
0ccc9d8f
...
...
@@ -176,7 +176,7 @@ contains
mpi_comm_cols
,
mpi_comm_all
integer
(
kind
=
ik
),
intent
(
in
)
::
nblk
real
(
kind
=
rk8
),
intent
(
inout
)
::
ev
(
na
)
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real
(
kind
=
rk8
),
intent
(
inout
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#else
real
(
kind
=
rk8
),
intent
(
inout
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
...
...
@@ -533,7 +533,7 @@ contains
mpi_comm_cols
,
mpi_comm_all
integer
(
kind
=
ik
),
intent
(
in
)
::
nblk
real
(
kind
=
rk4
),
intent
(
inout
)
::
ev
(
na
)
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real
(
kind
=
rk4
),
intent
(
inout
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#else
...
...
@@ -879,7 +879,7 @@ function solve_evp_complex_2stage_single(na, nev, a, lda, ev, q, ldq, nblk, &
integer
(
kind
=
ik
)
::
THIS_COMPLEX_ELPA_KERNEL
integer
(
kind
=
ik
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
,
mpi_comm_all
real
(
kind
=
rk8
),
intent
(
inout
)
::
ev
(
na
)
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
complex
(
kind
=
ck8
),
intent
(
inout
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#else
complex
(
kind
=
ck8
),
intent
(
inout
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
...
...
@@ -1199,7 +1199,7 @@ function solve_evp_complex_2stage_single(na, nev, a, lda, ev, q, ldq, nblk, &
integer
(
kind
=
ik
),
intent
(
in
),
optional
::
THIS_COMPLEX_ELPA_KERNEL_API
integer
(
kind
=
ik
)
::
THIS_COMPLEX_ELPA_KERNEL
integer
(
kind
=
ik
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
,
mpi_comm_all
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
complex
(
kind
=
ck4
),
intent
(
inout
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#else
complex
(
kind
=
ck4
),
intent
(
inout
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
...
...
src/elpa2_compute_complex_template.X90
View file @
0ccc9d8f
...
...
@@ -108,7 +108,7 @@
logical, intent(in) :: useGPU
integer(kind=ik) :: na, lda, nblk, nbw, matrixCols, numBlocks, mpi_comm_rows, mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
complex(kind=COMPLEX_DATATYPE) :: a(lda,*), tmat(nbw,nbw,*)
#else
complex(kind=COMPLEX_DATATYPE) :: a(lda,matrixCols), tmat(nbw,nbw,numBlocks)
...
...
@@ -1265,7 +1265,7 @@
logical, intent(in) :: useGPU
integer(kind=ik) :: na, nqc, lda, ldq, nblk, nbw, matrixCols, numBlocks, &
mpi_comm_rows, mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
complex(kind=COMPLEX_DATATYPE) :: a(lda,*), q(ldq,*), tmat(nbw,nbw,*)
#else
complex(kind=COMPLEX_DATATYPE) :: a(lda,matrixCols), q(ldq,matrixCols), tmat(nbw, nbw, numBlocks)
...
...
@@ -1744,7 +1744,7 @@
!#endif
integer(kind=ik), intent(in) :: na, nb, nblk, lda, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
complex(kind=COMPLEX_DATATYPE),intent(in) :: a(lda,*)
#else
complex(kind=COMPLEX_DATATYPE), intent(in) :: a(lda,matrixCols)
...
...
@@ -3051,7 +3051,7 @@
logical, intent(in) :: useGPU
integer(kind=ik), intent(in) :: THIS_COMPLEX_ELPA_KERNEL
integer(kind=ik), intent(in) :: na, nev, nblk, nbw, ldq, matrixCols, mpi_comm_rows, mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
complex(kind=COMPLEX_DATATYPE) :: q(ldq,*)
#else
complex(kind=COMPLEX_DATATYPE) :: q(ldq,matrixCols)
...
...
src/elpa2_compute_real_template.X90
View file @
0ccc9d8f
...
...
@@ -111,7 +111,7 @@
implicit none
integer(kind=ik) :: na, lda, nblk, nbw, matrixCols, numBlocks, mpi_comm_rows, mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real(kind=REAL_DATATYPE) :: a(lda,*), tmat(nbw,nbw,*)
#else
real(kind=REAL_DATATYPE) :: a(lda,matrixCols), tmat(nbw,nbw,numBlocks)
...
...
@@ -233,7 +233,7 @@
vmrCols = na
#ifdef DOUBLE_PRECISION_REAL
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE_QR
#ifdef
USE
_ASSUMED_SIZE_QR
call qr_pdgeqrf_2dcomm_double(a, lda, matrixCols, vmrCPU, max(l_rows,1), vmrCols, tauvector(1), na, tmat(1,1,1), &
nbw, nbw, dwork_size, 1, -1, na, nbw, nblk, nblk, na, na, 1, 0, PQRPARAM(1:11), &
mpi_comm_rows, mpi_comm_cols, blockheuristic)
...
...
@@ -247,7 +247,7 @@
#else /* DOUBLE_PRECISION_REAL */
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE_QR
#ifdef
USE
_ASSUMED_SIZE_QR
call qr_pdgeqrf_2dcomm_single(a, lda, matrixCols, vmrCPU, max(l_rows,1), vmrCols, tauvector(1), na, tmat(1,1,1), &
nbw, nbw, dwork_size, 1, -1, na, nbw, nblk, nblk, na, na, 1, 0, PQRPARAM(1:11), &
mpi_comm_rows, mpi_comm_cols, blockheuristic)
...
...
@@ -510,7 +510,7 @@
vmrCols = 2*n_cols
#ifdef DOUBLE_PRECISION_REAL
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE_QR
#ifdef
USE
_ASSUMED_SIZE_QR
call qr_pdgeqrf_2dcomm_double(a, lda, matrixCols, vmrCPU, max(l_rows,1), vmrCols, tauvector(1), &
na, tmat(1,1,istep), nbw, nbw, work_blocked, work_size, &
work_size, na, n_cols, nblk, nblk, &
...
...
@@ -530,7 +530,7 @@
#else /* DOUBLE_PRECISION_REAL */
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE_QR
#ifdef
USE
_ASSUMED_SIZE_QR
call qr_pdgeqrf_2dcomm_single(a, lda, matrixCols, vmrCPU, max(l_rows,1), vmrCols, tauvector(1), &
na, tmat(1,1,istep), nbw, nbw, work_blocked, work_size, &
work_size, na, n_cols, nblk, nblk, &
...
...
@@ -1574,7 +1574,7 @@
use precision
implicit none
integer(kind=ik) :: n, lda, ldb, comm
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real(kind=REAL_DATATYPE) :: a(lda,*)
#else
real(kind=REAL_DATATYPE) :: a(lda,ldb)
...
...
@@ -1697,7 +1697,7 @@
implicit none
integer(kind=ik) :: na, nqc, lda, ldq, nblk, nbw, matrixCols, numBlocks, mpi_comm_rows, mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real(kind=REAL_DATATYPE) :: a(lda,*), q(ldq,*), tmat(nbw,nbw,*)
#else
real(kind=REAL_DATATYPE) :: a(lda,matrixCols), q(ldq,matrixCols), tmat(nbw, nbw, numBlocks)
...
...
@@ -2414,7 +2414,7 @@
implicit none
integer(kind=ik), intent(in) :: na, nb, nblk, lda, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real(kind=REAL_DATATYPE), intent(in) :: a(lda,*)
#else
real(kind=REAL_DATATYPE), intent(in) :: a(lda,matrixCols)
...
...
@@ -3536,7 +3536,7 @@
integer(kind=ik), intent(in) :: THIS_REAL_ELPA_KERNEL
integer(kind=ik), intent(in) :: na, nev, nblk, nbw, ldq, matrixCols, mpi_comm_rows, mpi_comm_cols
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
real(kind=REAL_DATATYPE) :: q(ldq,*)
#else
real(kind=REAL_DATATYPE) :: q(ldq,matrixCols)
...
...
src/elpa2_kernels/elpa2_kernels_complex_simple.F90
View file @
0ccc9d8f
...
...
@@ -86,6 +86,5 @@ module complex_generic_simple_kernel
#undef COMPLEXCASE
#endif
end
module
complex_generic_simple_kernel
! --------------------------------------------------------------------------------------------------
src/elpa2_kernels/elpa2_kernels_complex_template.X90
View file @
0ccc9d8f
...
...
@@ -70,7 +70,7 @@
implicit none
integer(kind=ik), intent(in) :: nb, nq, ldq
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
complex(kind=COMPLEX_DATATYPE), intent(inout) :: q(ldq,*)
complex(kind=COMPLEX_DATATYPE), intent(in) :: hh(*)
#else
...
...
@@ -104,7 +104,7 @@
do i=1,nq-8,12
#ifdef DOUBLE_PRECISION_COMPLEX
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
call hh_trafo_complex_kernel_12_double(q(i,1),hh, nb, ldq)
#else
call hh_trafo_complex_kernel_12_double(q(i:ldq,1:nb),hh(1:nb), nb, ldq)
...
...
@@ -112,7 +112,7 @@
#else
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
call hh_trafo_complex_kernel_12_single(q(i,1),hh, nb, ldq)
#else
call hh_trafo_complex_kernel_12_single(q(i:ldq,1:nb),hh(1:nb), nb, ldq)
...
...
@@ -126,7 +126,7 @@
if(nq-i+1 > 4) then
#ifdef DOUBLE_PRECISION_COMPLEX
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
call hh_trafo_complex_kernel_8_double(q(i,1),hh, nb, ldq)
#else
call hh_trafo_complex_kernel_8_double(q(i:ldq,1:nb),hh(1:nb), nb, ldq)
...
...
@@ -134,7 +134,7 @@
#else
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
call hh_trafo_complex_kernel_8_single(q(i,1),hh, nb, ldq)
#else
call hh_trafo_complex_kernel_8_single(q(i:ldq,1:nb),hh(1:nb), nb, ldq)
...
...
@@ -144,7 +144,7 @@
else if(nq-i+1 > 0) then
#ifdef DOUBLE_PRECISION_COMPLEX
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
call hh_trafo_complex_kernel_4_double(q(i,1),hh, nb, ldq)
#else
call hh_trafo_complex_kernel_4_double(q(i:ldq,1:nb),hh(1:nb), nb, ldq)
...
...
@@ -152,7 +152,7 @@
#else
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
call hh_trafo_complex_kernel_4_single(q(i,1),hh, nb, ldq)
#else
call hh_trafo_complex_kernel_4_single(q(i:ldq,1:nb),hh(1:nb), nb, ldq)
...
...
@@ -194,7 +194,7 @@
implicit none
integer(kind=ik), intent(in) :: nb, nq, ldq, ldh
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
complex(kind=COMPLEX_DATATYPE), intent(inout) :: q(ldq,*)
complex(kind=COMPLEX_DATATYPE), intent(in) :: hh(ldh,*)
#else
...
...
@@ -235,7 +235,7 @@
do i=1,nq,4
#ifdef DOUBLE_PRECISION_COMPLEX
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
call hh_trafo_complex_kernel_4_2hv_double(q(i,1),hh, nb, ldq, ldh, s)
#else
call hh_trafo_complex_kernel_4_2hv_double(q(i:ldq,1:nb+1),hh(1:ldh,1:2), nb, ldq, ldh, s)
...
...
@@ -243,7 +243,7 @@
#else
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
call hh_trafo_complex_kernel_4_2hv_single(q(i,1),hh, nb, ldq, ldh, s)
#else
call hh_trafo_complex_kernel_4_2hv_single(q(i:ldq,1:nb+1),hh(1:ldh,1:2), nb, ldq, ldh, s)
...
...
@@ -255,7 +255,7 @@
!do i=1,nq-8,12
#ifdef DOUBLE_PRECISION_COMPLEX
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
! call hh_trafo_complex_kernel_12_2hv(q(i,1),hh, nb, ldq, ldh, s)
#else
! call hh_trafo_complex_kernel_12_2hv(q(i:ldq,1:nb+1),hh(1:ldh,1:2), nb, ldq, ldh, s)
...
...
@@ -263,7 +263,7 @@
#else
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
! call hh_trafo_complex_kernel_12_2hv(q(i,1),hh, nb, ldq, ldh, s)
#else
! call hh_trafo_complex_kernel_12_2hv(q(i:ldq,1:nb+1),hh(1:ldh,1:2), nb, ldq, ldh, s)
...
...
@@ -277,7 +277,7 @@
!if(nq-i+1 > 4) then
#ifdef DOUBLE_PRECISION_COMPLEX
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
! call hh_trafo_complex_kernel_8_2hv(q(i,1),hh, nb, ldq, ldh, s)
#else
! call hh_trafo_complex_kernel_8_2hv(q(i:ldq,1:nb+1),hh(1:ldh,1:2), nb, ldq, ldh, s)
...
...
@@ -285,7 +285,7 @@
#else
#ifdef
DESPERATELY_WANT
_ASSUMED_SIZE
#ifdef
USE
_ASSUMED_SIZE
! call hh_trafo_complex_kernel_8_2hv(q(i,1),hh, nb, ldq, ldh, s)
#else
! call hh_trafo_complex_kernel_8_2hv(q(i:ldq,1:nb+1),hh(1:ldh,1:2), nb, ldq, ldh, s)
...
...
@@ -295,7 +295,7 @@