Skip to content
GitLab
Menu
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
9e3d83a1
Commit
9e3d83a1
authored
Nov 23, 2016
by
Pavel Kus
Browse files
some intents (in, out, inout) added. Should be done properly
parent
eb4e54e1
Changes
6
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
src/elpa1.F90
View file @
9e3d83a1
...
...
@@ -536,14 +536,18 @@ function solve_evp_real_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, &
use
elpa1_compute
implicit
none
integer
(
kind
=
c_int
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
,
mpi_comm_all
real
(
kind
=
REAL_DATATYPE
)
::
ev
(
na
)
integer
(
kind
=
c_int
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
,
mpi_comm_all
real
(
kind
=
REAL_DATATYPE
)
,
intent
(
out
)
::
ev
(
na
)
#ifdef USE_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
real
(
kind
=
REAL_DATATYPE
),
intent
(
inout
)
::
a
(
lda
,
*
)
real
(
kind
=
REAL_DATATYPE
),
intent
(
out
)
::
q
(
ldq
,
*
)
#else
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
real
(
kind
=
REAL_DATATYPE
),
intent
(
inout
)
::
a
(
lda
,
matrixCols
)
real
(
kind
=
REAL_DATATYPE
),
intent
(
out
)
::
q
(
ldq
,
matrixCols
)
#endif
integer
(
kind
=
ik
),
intent
(
in
),
optional
::
THIS_REAL_ELPA_KERNEL_API
integer
(
kind
=
ik
),
intent
(
in
),
optional
::
THIS_REAL_ELPA_KERNEL_API
logical
::
success
integer
(
kind
=
ik
)
::
THIS_REAL_ELPA_KERNEL
logical
::
useGPU
...
...
@@ -552,7 +556,6 @@ function solve_evp_real_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, &
integer
(
kind
=
c_int
)
::
my_pe
,
n_pes
,
my_prow
,
my_pcol
,
mpierr
real
(
kind
=
REAL_DATATYPE
),
allocatable
::
e
(:),
tau
(:)
real
(
kind
=
c_double
)
::
ttt0
,
ttt1
! MPI_WTIME always needs double
logical
::
success
logical
,
save
::
firstCall
=
.true.
logical
::
wantDebug
...
...
@@ -712,23 +715,26 @@ function solve_evp_real_1stage_single(na, nev, a, lda, ev, q, ldq, nblk, matrixC
use
elpa1_compute
implicit
none
integer
(
kind
=
c_int
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
,
mpi_comm_all
real
(
kind
=
REAL_DATATYPE
)
::
ev
(
na
)
integer
(
kind
=
c_int
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
,
mpi_comm_all
real
(
kind
=
REAL_DATATYPE
)
,
intent
(
out
)
::
ev
(
na
)
#ifdef USE_ASSUMED_SIZE
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
real
(
kind
=
REAL_DATATYPE
),
intent
(
inout
)
::
a
(
lda
,
*
)
real
(
kind
=
REAL_DATATYPE
),
intent
(
out
)
::
q
(
ldq
,
*
)
#else
real
(
kind
=
REAL_DATATYPE
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
real
(
kind
=
REAL_DATATYPE
),
intent
(
inout
)
::
a
(
lda
,
matrixCols
)
real
(
kind
=
REAL_DATATYPE
),
intent
(
out
)
::
q
(
ldq
,
matrixCols
)
#endif
integer
(
kind
=
ik
),
intent
(
in
),
optional
::
THIS_REAL_ELPA_KERNEL_API
logical
::
success
integer
(
kind
=
c_int
)
::
my_pe
,
n_pes
,
my_prow
,
my_pcol
,
mpierr
real
(
kind
=
REAL_DATATYPE
),
allocatable
::
e
(:),
tau
(:)
real
(
kind
=
c_double
)
::
ttt0
,
ttt1
! MPI_WTIME always needs double
logical
::
success
logical
,
save
::
firstCall
=
.true.
logical
::
wantDebug
integer
(
kind
=
ik
),
intent
(
in
),
optional
::
THIS_REAL_ELPA_KERNEL_API
integer
(
kind
=
ik
)
::
THIS_REAL_ELPA_KERNEL
logical
::
useGPU
...
...
@@ -893,11 +899,16 @@ function solve_evp_complex_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, matr
integer
(
kind
=
c_int
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
,
mpi_comm_all
#ifdef USE_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
complex
(
kind
=
COMPLEX_DATATYPE
),
intent
(
inout
)
::
a
(
lda
,
*
)
complex
(
kind
=
COMPLEX_DATATYPE
),
intent
(
out
)
::
q
(
ldq
,
*
)
#else
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
complex
(
kind
=
COMPLEX_DATATYPE
),
intent
(
inout
)
::
a
(
lda
,
matrixCols
)
complex
(
kind
=
COMPLEX_DATATYPE
),
intent
(
out
)
::
q
(
ldq
,
matrixCols
)
#endif
real
(
kind
=
REAL_DATATYPE
)
::
ev
(
na
)
real
(
kind
=
REAL_DATATYPE
),
intent
(
out
)
::
ev
(
na
)
logical
::
success
integer
(
kind
=
ik
),
intent
(
in
),
optional
::
THIS_REAL_ELPA_KERNEL_API
integer
(
kind
=
c_int
)
::
my_pe
,
n_pes
,
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
c_int
)
::
l_rows
,
l_cols
,
l_cols_nev
...
...
@@ -905,11 +916,9 @@ function solve_evp_complex_1stage_double(na, nev, a, lda, ev, q, ldq, nblk, matr
complex
(
kind
=
COMPLEX_DATATYPE
),
allocatable
::
tau
(:)
real
(
kind
=
c_double
)
::
ttt0
,
ttt1
! MPI_WTIME always needs double
logical
::
success
logical
,
save
::
firstCall
=
.true.
logical
::
wantDebug
integer
(
kind
=
ik
),
intent
(
in
),
optional
::
THIS_REAL_ELPA_KERNEL_API
integer
(
kind
=
ik
)
::
THIS_REAL_ELPA_KERNEL
logical
::
useGPU
...
...
@@ -1083,13 +1092,19 @@ function solve_evp_complex_1stage_single(na, nev, a, lda, ev, q, ldq, nblk, matr
use
elpa1_compute
implicit
none
integer
(
kind
=
c_int
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
,
mpi_comm_rows
,
mpi_comm_cols
,
mpi_comm_all
integer
(
kind
=
c_int
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
nblk
,
matrixCols
integer
(
kind
=
c_int
),
intent
(
in
)
::
mpi_comm_rows
,
mpi_comm_cols
,
mpi_comm_all
#ifdef USE_ASSUMED_SIZE
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
complex
(
kind
=
COMPLEX_DATATYPE
),
intent
(
inout
)
::
a
(
lda
,
*
)
complex
(
kind
=
COMPLEX_DATATYPE
),
intent
(
out
)
::
q
(
ldq
,
*
)
#else
complex
(
kind
=
COMPLEX_DATATYPE
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
complex
(
kind
=
COMPLEX_DATATYPE
),
intent
(
inout
)
::
a
(
lda
,
matrixCols
)
complex
(
kind
=
COMPLEX_DATATYPE
),
intent
(
out
)
::
q
(
ldq
,
matrixCols
)
#endif
real
(
kind
=
REAL_DATATYPE
)
::
ev
(
na
)
real
(
kind
=
REAL_DATATYPE
),
intent
(
out
)
::
ev
(
na
)
integer
(
kind
=
ik
),
intent
(
in
),
optional
::
THIS_REAL_ELPA_KERNEL_API
logical
::
success
integer
(
kind
=
c_int
)
::
my_pe
,
n_pes
,
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
c_int
)
::
l_rows
,
l_cols
,
l_cols_nev
...
...
@@ -1097,11 +1112,9 @@ function solve_evp_complex_1stage_single(na, nev, a, lda, ev, q, ldq, nblk, matr
complex
(
kind
=
COMPLEX_DATATYPE
),
allocatable
::
tau
(:)
real
(
kind
=
c_double
)
::
ttt0
,
ttt1
! MPI_WTIME always needs double
logical
::
success
logical
,
save
::
firstCall
=
.true.
logical
::
wantDebug
integer
(
kind
=
ik
),
intent
(
in
),
optional
::
THIS_REAL_ELPA_KERNEL_API
integer
(
kind
=
ik
)
::
THIS_REAL_ELPA_KERNEL
logical
::
useGPU
...
...
src/elpa1_merge_systems_real_template.X90
View file @
9e3d83a1
...
...
@@ -62,15 +62,17 @@
use precision
implicit none
integer(kind=ik)
:: na, nm, ldq, nqoff, nblk, matrixCols, mpi_comm_rows, &
integer(kind=ik)
, intent(in)
:: na, nm, ldq, nqoff, nblk, matrixCols, mpi_comm_rows, &
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
integer(kind=ik)
, intent(in)
:: l_col(na), p_col(na), l_col_out(na), p_col_out(na)
real(kind=REAL_DATATYPE)
, intent(inout)
:: d(na), e
#ifdef USE_ASSUMED_SIZE
real(kind=REAL_DATATYPE)
:: q(ldq,*)
real(kind=REAL_DATATYPE)
, intent(inout)
:: q(ldq,*)
#else
real(kind=REAL_DATATYPE)
:: q(ldq,matrixCols)
real(kind=REAL_DATATYPE)
, intent(inout)
:: q(ldq,matrixCols)
#endif
logical, intent(in) :: wantDebug
logical, intent(out) :: success
integer(kind=ik), parameter :: max_strip=128
...
...
@@ -99,8 +101,6 @@
integer(kind=ik) :: idx(na), idx1(na), idx2(na)
integer(kind=ik) :: coltyp(na), idxq1(na), idxq2(na)
logical, intent(in) :: wantDebug
logical, intent(out) :: success
integer(kind=ik) :: istat
character(200) :: errorMessage
...
...
src/elpa1_solve_tridi_real_template.X90
View file @
9e3d83a1
...
...
@@ -63,21 +63,21 @@ subroutine M_solve_tridi_PRECISION( na, nev, d, e, q, ldq, nblk, matrixCols, mpi
use precision
implicit none
integer(kind=ik)
:: na, nev, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
real(kind=REAL_DATATYPE)
:: d(na), e(na)
integer(kind=ik)
, intent(in)
:: na, nev, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
real(kind=REAL_DATATYPE)
, intent(inout)
:: d(na), e(na)
#ifdef USE_ASSUMED_SIZE
real(kind=REAL_DATATYPE)
:: q(ldq,*)
real(kind=REAL_DATATYPE)
, intent(inout)
:: q(ldq,*)
#else
real(kind=REAL_DATATYPE)
:: q(ldq,matrixCols)
real(kind=REAL_DATATYPE)
, intent(inout)
:: q(ldq,matrixCols)
#endif
logical, intent(in) :: wantDebug
logical, intent(out) :: success
integer(kind=ik) :: i, j, n, np, nc, nev1, l_cols, l_rows
integer(kind=ik) :: my_prow, my_pcol, np_rows, np_cols, mpierr
integer(kind=ik), allocatable :: limits(:), l_col(:), p_col(:), l_col_bc(:), p_col_bc(:)
logical, intent(in) :: wantDebug
logical, intent(out) :: success
integer(kind=ik) :: istat
character(200) :: errorMessage
...
...
src/elpa1_trans_ev_complex_template.X90
View file @
9e3d83a1
...
...
@@ -97,14 +97,14 @@
use precision
implicit none
integer(kind=ik) :: na, nqc, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
complex(kind=COMPLEX_DATATYPE)
::
tau(na)
integer(kind=ik)
, intent(in)
:: na, nqc, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
complex(kind=COMPLEX_DATATYPE)
, intent(in)
:: tau(na)
#ifdef USE_ASSUMED_SIZE
complex(kind=COMPLEX_DATATYPE)
:: a_mat(lda,*), q_mat(ldq,*)
complex(kind=COMPLEX_DATATYPE)
, intent(inout)
:: a_mat(lda,*), q_mat(ldq,*)
#else
complex(kind=COMPLEX_DATATYPE)
:: a_mat(lda,matrixCols), q_mat(ldq,matrixCols)
complex(kind=COMPLEX_DATATYPE)
, intent(inout)
:: a_mat(lda,matrixCols), q_mat(ldq,matrixCols)
#endif
logical, intent(in) :: useGPU
logical, intent(in)
:: useGPU
integer(kind=ik) :: max_stored_rows
#ifdef DOUBLE_PRECISION_COMPLEX
...
...
src/elpa1_trans_ev_real_template.X90
View file @
9e3d83a1
...
...
@@ -96,14 +96,14 @@
use precision
implicit none
integer(kind=ik) :: na, nqc, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
real(kind=REAL_DATATYPE)
:: tau(na)
integer(kind=ik)
, intent(in)
:: na, nqc, lda, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
real(kind=REAL_DATATYPE)
, intent(in)
:: tau(na)
#ifdef USE_ASSUMED_SIZE
real(kind=REAL_DATATYPE)
:: a_mat(lda,*), q_mat(ldq,*)
real(kind=REAL_DATATYPE)
, intent(inout)
:: a_mat(lda,*), q_mat(ldq,*)
#else
real(kind=REAL_DATATYPE)
:: a_mat(lda,matrixCols), q_mat(ldq,matrixCols)
real(kind=REAL_DATATYPE)
, intent(inout)
:: a_mat(lda,matrixCols), q_mat(ldq,matrixCols)
#endif
logical, intent(in) :: useGPU
logical, intent(in)
:: useGPU
integer(kind=ik) :: max_stored_rows
...
...
src/elpa1_tridiag_complex_template.X90
View file @
9e3d83a1
...
...
@@ -95,11 +95,11 @@
integer(kind=ik), intent(in) :: na, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
logical, intent(in) :: useGPU
complex(kind=COMPLEX_DATATYPE)
:: tau(na)
complex(kind=COMPLEX_DATATYPE)
, intent(out)
:: tau(na)
#ifdef USE_ASSUMED_SIZE
complex(kind=COMPLEX_DATATYPE)
:: a_mat(lda,*)
complex(kind=COMPLEX_DATATYPE)
, intent(inout)
:: a_mat(lda,*)
#else
complex(kind=COMPLEX_DATATYPE)
:: a_mat(lda,matrixCols)
complex(kind=COMPLEX_DATATYPE)
, intent(inout)
:: a_mat(lda,matrixCols)
#endif
real(kind=REAL_DATATYPE), intent(out) :: d_vec(na), e_vec(na)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment