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
b8096051
Commit
b8096051
authored
Oct 10, 2016
by
Andreas Marek
Browse files
Use iso_c_binding for types in module ELPA2
parent
1269856e
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/elpa2.F90
View file @
b8096051
...
...
@@ -134,32 +134,33 @@ function solve_evp_real_2stage(na, nev, a, lda, ev, q, ldq, nblk, &
use
elpa1_compute
use
elpa2_compute
use
elpa_mpi
use
precision
use
iso_c_binding
!use precision
implicit
none
logical
,
intent
(
in
),
optional
::
useQR
logical
::
useQRActual
,
useQREnvironment
integer
(
kind
=
ik
),
intent
(
in
),
optional
::
THIS_REAL_ELPA_KERNEL_API
integer
(
kind
=
ik
)
::
THIS_REAL_ELPA_KERNEL
integer
(
kind
=
ik
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
matrixCols
,
mpi_comm_rows
,
&
mpi_comm_cols
,
mpi_comm_all
integer
(
kind
=
ik
),
intent
(
in
)
::
nblk
real
(
kind
=
rk
),
intent
(
inout
)
::
ev
(
na
)
logical
,
intent
(
in
),
optional
::
useQR
logical
::
useQRActual
,
useQREnvironment
integer
(
kind
=
c_int
),
intent
(
in
),
optional
::
THIS_REAL_ELPA_KERNEL_API
integer
(
kind
=
c_int
)
::
THIS_REAL_ELPA_KERNEL
integer
(
kind
=
c_int
),
intent
(
in
)
::
na
,
nev
,
lda
,
ldq
,
matrixCols
,
mpi_comm_rows
,
&
mpi_comm_cols
,
mpi_comm_all
integer
(
kind
=
c_int
),
intent
(
in
)
::
nblk
real
(
kind
=
c_double
),
intent
(
inout
)
::
ev
(
na
)
#ifdef USE_ASSUMED_SIZE
real
(
kind
=
rk
),
intent
(
inout
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
real
(
kind
=
c_double
),
intent
(
inout
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#else
real
(
kind
=
rk
),
intent
(
inout
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
real
(
kind
=
c_double
),
intent
(
inout
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
#endif
real
(
kind
=
rk
),
allocatable
::
hh_trans_real
(:,:)
real
(
kind
=
c_double
),
allocatable
::
hh_trans_real
(:,:)
integer
(
kind
=
ik
)
::
my_pe
,
n_pes
,
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
ik
)
::
nbw
,
num_blocks
real
(
kind
=
rk
),
allocatable
::
tmat
(:,:,:),
e
(:)
real
(
kind
=
rk
)
::
ttt0
,
ttt1
,
ttts
integer
(
kind
=
ik
)
::
i
logical
::
success
logical
,
save
::
firstCall
=
.true.
logical
::
wantDebug
integer
(
kind
=
c_int
)
::
my_pe
,
n_pes
,
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
integer
(
kind
=
c_int
)
::
nbw
,
num_blocks
real
(
kind
=
c_double
),
allocatable
::
tmat
(:,:,:),
e
(:)
real
(
kind
=
c_double
)
::
ttt0
,
ttt1
,
ttts
integer
(
kind
=
c_int
)
::
i
logical
::
success
logical
,
save
::
firstCall
=
.true.
logical
::
wantDebug
#ifdef HAVE_DETAILED_TIMINGS
call
timer
%
start
(
"solve_evp_real_2stage"
)
...
...
@@ -380,28 +381,29 @@ function solve_evp_complex_2stage(na, nev, a, lda, ev, q, ldq, nblk, &
use
elpa1_compute
use
elpa2_compute
use
elpa_mpi
use
precision
! use precision
use
iso_c_binding
implicit
none
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
integer
(
kind
=
c_int
),
intent
(
in
),
optional
::
THIS_COMPLEX_ELPA_KERNEL_API
integer
(
kind
=
c_int
)
::
THIS_COMPLEX_ELPA_KERNEL
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
=
c
k
),
intent
(
inout
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
complex
(
kind
=
c
_double
),
intent
(
inout
)
::
a
(
lda
,
*
),
q
(
ldq
,
*
)
#else
complex
(
kind
=
c
k
),
intent
(
inout
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
complex
(
kind
=
c
_double
),
intent
(
inout
)
::
a
(
lda
,
matrixCols
),
q
(
ldq
,
matrixCols
)
#endif
real
(
kind
=
rk
),
intent
(
inout
)
::
ev
(
na
)
complex
(
kind
=
c
k
),
allocatable
::
hh_trans_complex
(:,:)
integer
(
kind
=
ik
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
,
my_pe
,
n_pes
integer
(
kind
=
ik
)
::
l_cols
,
l_rows
,
l_cols_nev
,
nbw
,
num_blocks
complex
(
kind
=
c
k
),
allocatable
::
tmat
(:,:,:)
real
(
kind
=
rk
),
allocatable
::
q_real
(:,:),
e
(:)
real
(
kind
=
rk
)
::
ttt0
,
ttt1
,
ttts
integer
(
kind
=
ik
)
::
i
logical
::
success
,
wantDebug
logical
,
save
::
firstCall
=
.true.
real
(
kind
=
c_double
),
intent
(
inout
)
::
ev
(
na
)
complex
(
kind
=
c
_double
),
allocatable
::
hh_trans_complex
(:,:)
integer
(
kind
=
c_int
)
::
my_prow
,
my_pcol
,
np_rows
,
np_cols
,
mpierr
,
my_pe
,
n_pes
integer
(
kind
=
c_int
)
::
l_cols
,
l_rows
,
l_cols_nev
,
nbw
,
num_blocks
complex
(
kind
=
c
_double
),
allocatable
::
tmat
(:,:,:)
real
(
kind
=
c_double
),
allocatable
::
q_real
(:,:),
e
(:)
real
(
kind
=
c_double
)
::
ttt0
,
ttt1
,
ttts
integer
(
kind
=
c_int
)
::
i
logical
::
success
,
wantDebug
logical
,
save
::
firstCall
=
.true.
#ifdef HAVE_DETAILED_TIMINGS
call
timer
%
start
(
"solve_evp_complex_2stage"
)
...
...
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