Commit cbc34077 authored by Andreas Marek's avatar Andreas Marek

Make more internal stuff private

parent c433fe71
......@@ -13,9 +13,7 @@ libelpa@SUFFIX@_public_la_FCFLAGS = $(AM_FCFLAGS) @FC_MODOUT@modules @FC_MODINC@
libelpa@SUFFIX@_public_la_SOURCES = \
src/elpa_driver/legacy_interface/elpa_legacy.F90 \
src/elpa1/legacy_interface/elpa1_legacy.F90 \
src/elpa1/elpa1_new_interface.F90 \
src/elpa2/legacy_interface/elpa2_legacy.F90 \
src/elpa2/elpa2_new_interface.F90 \
src/elpa1/legacy_interface/elpa1_auxiliary_legacy.F90 \
src/elpa1/elpa1_auxiliary_new_interface.F90 \
src/elpa1/elpa1_utilities.F90 \
......@@ -50,6 +48,8 @@ libelpa@SUFFIX@_private_la_SOURCES = \
src/elpa2/qr/elpa_qrkernels.F90 \
src/elpa2/qr/elpa_pdlarfb.F90 \
src/elpa2/qr/elpa_pdgeqrf.F90 \
src/elpa1/elpa1_new_interface.F90 \
src/elpa2/elpa2_new_interface.F90 \
src/elpa_options.c
EXTRA_libelpa@SUFFIX@_private_la_DEPENDENCIES = \
......
This diff is collapsed.
......@@ -68,7 +68,7 @@ module ELPA1_COMPUTE
public :: trans_ev_real
public :: solve_tridi_double
public :: solve_tridi_double_new
public :: solve_tridi_double_impl
interface tridiag_real
module procedure tridiag_real_double
......@@ -82,7 +82,7 @@ module ELPA1_COMPUTE
public :: tridiag_real_single ! Transform real single-precision symmetric matrix to tridiagonal form
public :: trans_ev_real_single ! Transform real single-precision eigenvectors of a tridiagonal matrix back
public :: solve_tridi_single
public :: solve_tridi_single_new
public :: solve_tridi_single_impl
#endif
public :: tridiag_complex_double ! Transform complex hermitian matrix to tridiagonal form
......
......@@ -81,10 +81,10 @@
#include "config-f90.h"
!> \brief Fortran module which provides the routines to use the one-stage ELPA solver
module ELPA1_new
module elpa1_impl
use, intrinsic :: iso_c_binding
use elpa_utilities
use elpa1_auxiliary_new
use elpa1_auxiliary_impl
use elpa1_utilities
implicit none
......@@ -92,46 +92,46 @@ module ELPA1_new
! The following routines are public:
private
public :: elpa_get_communicators_new !< Sets MPI row/col communicators as needed by ELPA
public :: elpa_get_communicators_impl !< Sets MPI row/col communicators as needed by ELPA
public :: elpa_solve_evp_real_1stage_double_new !< Driver routine for real double-precision 1-stage eigenvalue problem
public :: elpa_solve_evp_real_1stage_double_impl !< Driver routine for real double-precision 1-stage eigenvalue problem
#ifdef WANT_SINGLE_PRECISION_REAL
public :: elpa_solve_evp_real_1stage_single_new !< Driver routine for real single-precision 1-stage eigenvalue problem
public :: elpa_solve_evp_real_1stage_single_impl !< Driver routine for real single-precision 1-stage eigenvalue problem
#endif
public :: elpa_solve_evp_complex_1stage_double_new !< Driver routine for complex 1-stage eigenvalue problem
public :: elpa_solve_evp_complex_1stage_double_impl !< Driver routine for complex 1-stage eigenvalue problem
#ifdef WANT_SINGLE_PRECISION_COMPLEX
public :: elpa_solve_evp_complex_1stage_single_new !< Driver routine for complex 1-stage eigenvalue problem
public :: elpa_solve_evp_complex_1stage_single_impl !< Driver routine for complex 1-stage eigenvalue problem
#endif
! imported from elpa1_auxilliary
public :: elpa_mult_at_b_real_double_new !< Multiply double-precision real matrices A**T * B
public :: elpa_mult_at_b_real_double_impl !< Multiply double-precision real matrices A**T * B
public :: elpa_mult_ah_b_complex_double_new !< Multiply double-precision complex matrices A**H * B
public :: elpa_mult_ah_b_complex_double_impl !< Multiply double-precision complex matrices A**H * B
public :: elpa_invert_trm_real_double_new !< Invert double-precision real triangular matrix
public :: elpa_invert_trm_real_double_impl !< Invert double-precision real triangular matrix
public :: elpa_invert_trm_complex_double_new !< Invert double-precision complex triangular matrix
public :: elpa_invert_trm_complex_double_impl !< Invert double-precision complex triangular matrix
public :: elpa_cholesky_real_double_new !< Cholesky factorization of a double-precision real matrix
public :: elpa_cholesky_real_double_impl !< Cholesky factorization of a double-precision real matrix
public :: elpa_cholesky_complex_double_new !< Cholesky factorization of a double-precision complex matrix
public :: elpa_cholesky_complex_double_impl !< Cholesky factorization of a double-precision complex matrix
public :: elpa_solve_tridi_double_new !< Solve a double-precision tridiagonal eigensystem with divide and conquer method
public :: elpa_solve_tridi_double_impl !< Solve a double-precision tridiagonal eigensystem with divide and conquer method
#ifdef WANT_SINGLE_PRECISION_REAL
public :: elpa_mult_at_b_real_single_new !< Multiply single-precision real matrices A**T * B
public :: elpa_invert_trm_real_single_new !< Invert single-precision real triangular matrix
public :: elpa_cholesky_real_single_new !< Cholesky factorization of a single-precision real matrix
public :: elpa_solve_tridi_single_new !< Solve a single-precision tridiagonal eigensystem with divide and conquer method
public :: elpa_mult_at_b_real_single_impl !< Multiply single-precision real matrices A**T * B
public :: elpa_invert_trm_real_single_impl !< Invert single-precision real triangular matrix
public :: elpa_cholesky_real_single_impl !< Cholesky factorization of a single-precision real matrix
public :: elpa_solve_tridi_single_impl !< Solve a single-precision tridiagonal eigensystem with divide and conquer method
#endif
#ifdef WANT_SINGLE_PRECISION_COMPLEX
public :: elpa_mult_ah_b_complex_single_new !< Multiply single-precision complex matrices A**H * B
public :: elpa_invert_trm_complex_single_new !< Invert single-precision complex triangular matrix
public :: elpa_cholesky_complex_single_new !< Cholesky factorization of a single-precision complex matrix
public :: elpa_mult_ah_b_complex_single_impl !< Multiply single-precision complex matrices A**H * B
public :: elpa_invert_trm_complex_single_impl !< Invert single-precision complex triangular matrix
public :: elpa_cholesky_complex_single_impl !< Cholesky factorization of a single-precision complex matrix
#endif
! Timing results, set by every call to solve_evp_xxx
......@@ -143,7 +143,7 @@ module ELPA1_new
logical, public :: elpa_print_times = .false. !< Set elpa_print_times to .true. for explicit timing outputs
!> \brief elpa_solve_evp_real_1stage_double_new: Fortran function to solve the real eigenvalue problem with 1-stage solver. This is called by "elpa_solve_evp_real"
!> \brief elpa_solve_evp_real_1stage_double_impl: Fortran function to solve the real eigenvalue problem with 1-stage solver. This is called by "elpa_solve_evp_real"
!>
! Parameters
!
......@@ -200,7 +200,7 @@ contains
!> \result mpierr integer error value of mpi_comm_split function
function elpa_get_communicators_new(mpi_comm_global, my_prow, my_pcol, mpi_comm_rows, mpi_comm_cols) result(mpierr)
function elpa_get_communicators_impl(mpi_comm_global, my_prow, my_pcol, mpi_comm_rows, mpi_comm_cols) result(mpierr)
! use precision
use elpa_mpi
use iso_c_binding
......@@ -219,10 +219,10 @@ function elpa_get_communicators_new(mpi_comm_global, my_prow, my_pcol, mpi_comm_
call mpi_comm_split(mpi_comm_global,my_pcol,my_prow,mpi_comm_rows,mpierr)
call mpi_comm_split(mpi_comm_global,my_prow,my_pcol,mpi_comm_cols,mpierr)
end function elpa_get_communicators_new
end function elpa_get_communicators_impl
!> \brief elpa_solve_evp_real_1stage_double_new: Fortran function to solve the real double-precision eigenvalue problem with 1-stage solver
!> \brief elpa_solve_evp_real_1stage_double_impl: Fortran function to solve the real double-precision eigenvalue problem with 1-stage solver
!>
! Parameters
!
......@@ -266,7 +266,7 @@ end function elpa_get_communicators_new
#undef DOUBLE_PRECISION
#ifdef WANT_SINGLE_PRECISION_REAL
!> \brief elpa_solve_evp_real_1stage_single_new: Fortran function to solve the real single-precision eigenvalue problem with 1-stage solver
!> \brief elpa_solve_evp_real_1stage_single_impl: Fortran function to solve the real single-precision eigenvalue problem with 1-stage solver
!>
! Parameters
!
......@@ -310,7 +310,7 @@ end function elpa_get_communicators_new
#undef SINGLE_PRECISION
#endif /* WANT_SINGLE_PRECISION_REAL */
!> \brief elpa_solve_evp_complex_1stage_double_new: Fortran function to solve the complex double-precision eigenvalue problem with 1-stage solver
!> \brief elpa_solve_evp_complex_1stage_double_impl: Fortran function to solve the complex double-precision eigenvalue problem with 1-stage solver
!>
! Parameters
!
......@@ -355,7 +355,7 @@ end function elpa_get_communicators_new
#ifdef WANT_SINGLE_PRECISION_COMPLEX
!> \brief elpa_solve_evp_complex_1stage_single_new: Fortran function to solve the complex single-precision eigenvalue problem with 1-stage solver
!> \brief elpa_solve_evp_complex_1stage_single_impl: Fortran function to solve the complex single-precision eigenvalue problem with 1-stage solver
!>
! Parameters
!
......@@ -399,4 +399,4 @@ end function elpa_get_communicators_new
#undef SINGLE_PRECISION
#endif /* WANT_SINGLE_PRECISION_COMPLEX */
end module ELPA1_new
end module ELPA1_impl
......@@ -56,7 +56,7 @@
subroutine solve_tridi_&
&PRECISION&
&_new ( na, nev, d, e, q, ldq, nblk, matrixCols, mpi_comm_rows, &
&_impl ( na, nev, d, e, q, ldq, nblk, matrixCols, mpi_comm_rows, &
mpi_comm_cols, wantDebug, success )
#ifdef HAVE_DETAILED_TIMINGS
......@@ -147,7 +147,7 @@ subroutine solve_tridi_&
endif
call solve_tridi_col_&
&PRECISION&
&_new (l_cols, nev1, nc, d(nc+1), e(nc+1), q, ldq, nblk, &
&_impl (l_cols, nev1, nc, d(nc+1), e(nc+1), q, ldq, nblk, &
matrixCols, mpi_comm_rows, wantDebug, success)
if (.not.(success)) then
call timer%stop("solve_tridi" // PRECISION_SUFFIX)
......@@ -350,11 +350,11 @@ subroutine solve_tridi_&
end subroutine solve_tridi_&
&PRECISION&
&_new
&_impl
subroutine solve_tridi_col_&
&PRECISION&
&_new ( na, nev, nqoff, d, e, q, ldq, nblk, matrixCols, mpi_comm_rows, wantDebug, success )
&_impl ( na, nev, nqoff, d, e, q, ldq, nblk, matrixCols, mpi_comm_rows, wantDebug, success )
! Solves the symmetric, tridiagonal eigenvalue problem on one processor column
! with the divide and conquer method.
......@@ -452,7 +452,7 @@ subroutine solve_tridi_&
call solve_tridi_single_problem_&
&PRECISION&
&_new &
&_impl &
(nlen,d(noff+1),e(noff+1), &
q(nqoff+noff+1,noff+1),ubound(q,dim=1), wantDebug, success)
......@@ -484,7 +484,7 @@ subroutine solve_tridi_&
nlen = limits(my_prow+1)-noff ! Size of subproblem
call solve_tridi_single_problem_&
&PRECISION&
&_new &
&_impl &
(nlen,d(noff+1),e(noff+1),qmat1, &
ubound(qmat1,dim=1), wantDebug, success)
......@@ -581,11 +581,11 @@ subroutine solve_tridi_&
end subroutine solve_tridi_col_&
&PRECISION&
&_new
&_impl
recursive subroutine solve_tridi_single_problem_&
&PRECISION&
&_new (nlen, d, e, q, ldq, wantDebug, success)
&_impl (nlen, d, e, q, ldq, wantDebug, success)
! Solves the symmetric, tridiagonal eigenvalue problem on a single processor.
! Takes precautions if DSTEDC fails or if the eigenvalues are not ordered correctly.
......@@ -713,5 +713,5 @@ subroutine solve_tridi_&
end subroutine solve_tridi_single_problem_&
&PRECISION&
&_new
&_impl
......@@ -58,7 +58,7 @@ function elpa_solve_evp_&
&MATH_DATATYPE&
&_1stage_&
&PRECISION&
&_new ( na, nev, a, lda, ev, q, ldq, nblk, matrixCols, mpi_comm_rows, &
&_impl ( na, nev, a, lda, ev, q, ldq, nblk, matrixCols, mpi_comm_rows, &
mpi_comm_cols, mpi_comm_all, useGPU) result(success)
use precision
use cuda_functions
......@@ -119,7 +119,7 @@ function elpa_solve_evp_&
&MATH_DATATYPE&
&_1stage_&
&PRECISION&
&_new")
&")
call timer%start("mpi_communication")
......@@ -279,7 +279,7 @@ function elpa_solve_evp_&
&MATH_DATATYPE&
&_1stage_&
&PRECISION&
&_new")
&")
end function
......
......@@ -90,7 +90,7 @@
&MATH_DATATYPE&
&_&
&PRECISION&
&_new")
&")
call timer%start("mpi_communication")
call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr)
......@@ -338,7 +338,7 @@
&MATH_DATATYPE&
&_&
&PRECISION&
&_new")
&")
#undef REALCASE
#undef COMPLEXCASE
......
......@@ -105,7 +105,7 @@
&MATH_DATATYPE&
&_&
&PRECISION&
&_new")
&")
success = .true.
......@@ -347,7 +347,7 @@
&MATH_DATATYPE&
&_&
&PRECISION&
&_new")
&")
#undef REALCASE
#undef COMPLEXCASE
......
......@@ -58,9 +58,9 @@
use elpa1_compute, solve_tridi_&
&PRECISION&
&_private_new => solve_tridi_&
&_private_impl => solve_tridi_&
&PRECISION&
&_new
&_impl
use precision
implicit none
......@@ -79,7 +79,7 @@
call solve_tridi_&
&PRECISION&
&_private_new(na, nev, d, e, q, ldq, nblk, matrixCols, &
&_private_impl(na, nev, d, e, q, ldq, nblk, matrixCols, &
mpi_comm_rows, mpi_comm_cols, wantDebug, success)
#undef REALCASE
......
......@@ -54,7 +54,7 @@
#include "config-f90.h"
!> \brief Fortran module which provides helper routines for matrix calculations
module ELPA1_AUXILIARY_legacy
module ELPA1_AUXILIARY
use elpa_utilities
implicit none
......@@ -714,4 +714,4 @@ module ELPA1_AUXILIARY_legacy
end module elpa1_auxiliary_legacy
end module elpa1_auxiliary
......@@ -58,7 +58,7 @@
&_precision")
use, intrinsic :: iso_c_binding
use elpa1_legacy
use elpa1
implicit none
integer(kind=c_int) :: success
......
......@@ -81,10 +81,10 @@
#include "config-f90.h"
!> \brief Fortran module which provides the routines to use the one-stage ELPA solver
module ELPA1_legacy
module elpa1
use, intrinsic :: iso_c_binding
use elpa_utilities
use elpa1_auxiliary_legacy
use elpa1_auxiliary
use elpa1_utilities
implicit none
......@@ -698,4 +698,4 @@ end function elpa_get_communicators
#undef SINGLE_PRECISION
#endif /* WANT_SINGLE_PRECISION_COMPLEX */
end module ELPA1_legacy
end module elpa1
......@@ -108,7 +108,7 @@ function elpa_solve_evp_&
&MATH_DATATYPE&
&_1stage_&
&PRECISION&
&_legacy")
&_legacy_interface")
call mpi_comm_rank(mpi_comm_rows,my_prow,mpierr)
call mpi_comm_rank(mpi_comm_cols,my_pcol,mpierr)
......@@ -174,7 +174,7 @@ function elpa_solve_evp_&
&MATH_DATATYPE&
&_1stage_&
&PRECISION&
&_legacy")
&_legacy_interface")
end function
......
......@@ -56,7 +56,7 @@
mpi_comm_rows, mpi_comm_cols) &
result(mpierr) bind(C,name="get_elpa_row_col_comms")
use, intrinsic :: iso_c_binding
use elpa1_legacy, only : elpa_get_communicators
use elpa1, only : elpa_get_communicators
implicit none
integer(kind=c_int) :: mpierr
......@@ -82,7 +82,7 @@
mpi_comm_rows, mpi_comm_cols) &
result(mpierr) bind(C,name="get_elpa_communicators")
use, intrinsic :: iso_c_binding
use elpa1_legacy, only : elpa_get_communicators
use elpa1, only : elpa_get_communicators
implicit none
integer(kind=c_int) :: mpierr
......@@ -109,7 +109,7 @@
mpi_comm_rows, mpi_comm_cols) &
result(mpierr) bind(C,name="elpa_get_communicators")
use, intrinsic :: iso_c_binding
use elpa1_legacy, only : elpa_get_communicators
use elpa1, only : elpa_get_communicators
implicit none
integer(kind=c_int) :: mpierr
......
......@@ -56,7 +56,7 @@ function elpa_cholesky_&
&")
use, intrinsic :: iso_c_binding
use elpa1_auxiliary_legacy, only : elpa_cholesky_&
use elpa1_auxiliary, only : elpa_cholesky_&
&MATH_DATATYPE&
&_&
&PRECISION
......
......@@ -94,8 +94,8 @@
call timer%start("elpa_cholesky_&
&MATH_DATATYPE&
&_&
&PRECISION &
")
&PRECISION&
&_legacy_interface")
success = .true.
......@@ -136,7 +136,7 @@
&MATH_DATATYPE&
&_&
&PRECISION&
")
&_legacy_interface")
#undef REALCASE
#undef COMPLEXCASE
......
......@@ -63,7 +63,7 @@ function elpa_invert_trm_&
&PRECISION&
")
use, intrinsic :: iso_c_binding
use elpa1_auxiliary_legacy, only : elpa_invert_trm_&
use elpa1_auxiliary, only : elpa_invert_trm_&
&MATH_DATATYPE&
&_&
&PRECISION
......
......@@ -102,15 +102,15 @@
call timer%start("elpa_invert_trm_&
&MATH_DATATYPE&
&_&
&PRECISION &
")
&PRECISION&
&_legacy_interface")
success = .true.
if (elpa_init(20170403) /= ELPA_OK) then
print *, "ELPA API version not supported"
success = .false.
stop
stop
return
endif
......@@ -143,8 +143,8 @@
call timer%stop("elpa_invert_trm_&
&MATH_DATATYPE&
&_&
&PRECISION &
")
&PRECISION&
&_legacy_interface")
#undef REALCASE
#undef COMPLEXCASE
......
......@@ -64,7 +64,7 @@ function elpa_mult_ah_b_&
&PRECISION&
&")
use, intrinsic :: iso_c_binding
use elpa1_auxiliary_legacy, only : elpa_mult_ah_b_&
use elpa1_auxiliary, only : elpa_mult_ah_b_&
&MATH_DATATYPE&
&_&
&PRECISION
......
......@@ -64,7 +64,7 @@ function elpa_mult_at_b_&
&PRECISION&
") result(success)
use, intrinsic :: iso_c_binding
use elpa1_auxiliary_legacy, only : elpa_mult_at_b_&
use elpa1_auxiliary, only : elpa_mult_at_b_&
&MATH_DATATYPE&
&_&
&PRECISION
......
......@@ -107,8 +107,8 @@
call timer%start("elpa_mult_at_b_&
&MATH_DATATYPE&
&_&
&PRECISION &
")
&PRECISION&
&_legacy_interface")
success = .true.
......@@ -123,7 +123,7 @@
if (elpa_init(20170403) /= ELPA_OK) then
print *, "ELPA API version not supported"
success = .false.
stop
stop
return
endif
......@@ -156,8 +156,8 @@
call timer%stop("elpa_mult_at_b_&
&MATH_DATATYPE&
&_&
&PRECISION &
")
&PRECISION&
&_legacy_interface")
#undef REALCASE
#undef COMPLEXCASE
......
......@@ -60,7 +60,7 @@ function elpa_solve_tridi_wrapper_&
&")
use, intrinsic :: iso_c_binding
use elpa1_auxiliary_legacy, only : elpa_solve_tridi_&
use elpa1_auxiliary, only : elpa_solve_tridi_&
&PRECISION
implicit none
......
......@@ -90,7 +90,7 @@
if (elpa_init(20170403) /= ELPA_OK) then
print *, "ELPA API version not supported"
success = .false.
stop
stop
return
endif
......
......@@ -60,7 +60,7 @@ module ELPA2_compute
use ELPA_utilities
USE ELPA1_compute
use elpa1_new, only : elpa_print_times, time_evp_back, time_evp_fwd, time_evp_solve
use elpa1_impl, only : elpa_print_times, time_evp_back, time_evp_fwd, time_evp_solve
use elpa2_utilities
use elpa_pdgeqrf
use precision
......
......@@ -54,12 +54,12 @@
#include "config-f90.h"
!> \brief Fortran module which provides the routines to use the 2-stage ELPA solver
module ELPA2_new
module elpa2_impl
! Version 1.1.2, 2011-02-21
use elpa_utilities
use elpa1_new, only : elpa_print_times, time_evp_back, time_evp_fwd, time_evp_solve
use elpa1_impl, only : elpa_print_times, time_evp_back, time_evp_fwd, time_evp_solve
use elpa2_utilities
implicit none
......@@ -68,14 +68,14 @@ module ELPA2_new
! The following routines are public:
public :: elpa_solve_evp_real_2stage_double_new !< Driver routine for real double-precision 2-stage eigenvalue problem
public :: elpa_solve_evp_complex_2stage_double_new !< Driver routine for complex double-precision 2-stage eigenvalue problem
public :: elpa_solve_evp_real_2stage_double_impl !< Driver routine for real double-precision 2-stage eigenvalue problem
public :: elpa_solve_evp_complex_2stage_double_impl !< Driver routine for complex double-precision 2-stage eigenvalue problem
#ifdef WANT_SINGLE_PRECISION_REAL
public :: elpa_solve_evp_real_2stage_single_new !< Driver routine for real single-precision 2-stage eigenvalue problem
public :: elpa_solve_evp_real_2stage_single_impl !< Driver routine for real single-precision 2-stage eigenvalue problem
#endif
#ifdef WANT_SINGLE_PRECISION_COMPLEX
public :: elpa_solve_evp_complex_2stage_single_new !< Driver routine for complex single-precision 2-stage eigenvalue problem
public :: elpa_solve_evp_complex_2stage_single_impl !< Driver routine for complex single-precision 2-stage eigenvalue problem
#endif
contains
......@@ -84,7 +84,7 @@ module ELPA2_new
#define DOUBLE_PRECISION 1
#include "../general/precision_macros.h"
!-------------------------------------------------------------------------------
!> \brief elpasolve_evp_real_2stage_double_new: Fortran function to solve the double-precision real eigenvalue problem with a 2 stage approach
!> \brief elpasolve_evp_real_2stage_double_impl: Fortran function to solve the double-precision real eigenvalue problem with a 2 stage approach
!>
!> Parameters
!>
......@@ -132,7 +132,7 @@ module ELPA2_new
#define SINGLE_PRECISION 1
#include "../general/precision_macros.h"
!-------------------------------------------------------------------------------
!> \brief elpa_solve_evp_real_2stage_single_new: Fortran function to solve the single-precision real eigenvalue problem with a 2 stage approach
!> \brief elpa_solve_evp_real_2stage_single_impl: Fortran function to solve the single-precision real eigenvalue problem with a 2 stage approach
!>
!> Parameters
!>
......@@ -180,7 +180,7 @@ module ELPA2_new
#define COMPLEXCASE 1
#define DOUBLE_PRECISION 1
#include "../general/precision_macros.h"
!> \brief elpa_solve_evp_complex_2stage_double_new: Fortran function to solve the double-precision complex eigenvalue problem with a 2 stage approach
!> \brief elpa_solve_evp_complex_2stage_double_impl: Fortran function to solve the double-precision complex eigenvalue problem with a 2 stage approach
!>
!> Parameters
!>
......@@ -227,7 +227,7 @@ module ELPA2_new
#define SINGLE_PRECISION 1
#include "../general/precision_macros.h"
!> \brief elpa_solve_evp_complex_2stage_single_new: Fortran function to solve the single-precision complex eigenvalue problem with a 2 stage approach
!> \brief elpa_solve_evp_complex_2stage_single_impl: Fortran function to solve the single-precision complex eigenvalue problem with a 2 stage approach
!>
!> Parameters
!>
......@@ -271,4 +271,4 @@ module ELPA2_new
#endif /* WANT_SINGLE_PRECISION_COMPLEX */
end module ELPA2_new
end module elpa2_impl
......@@ -68,8 +68,8 @@
program print_available_elpa2_kernels
use precision
use elpa1_legacy
use elpa2_legacy
use elpa1
use elpa2
use elpa2_utilities
......
......@@ -54,7 +54,7 @@
&_&
&2stage_&
&PRECISION&
&_new (na, nev, a, lda, ev, q, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, &
&_impl (na, nev, a, lda, ev, q, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, &
useGPU, &
#if REALCASE == 1
THIS_ELPA_KERNEL_API, useQR &
......@@ -570,4 +570,4 @@
&MATH_DATATYPE&
&_2stage_&