63#if ELPA_IMPL_SUFFIX == d
68#if ELPA_IMPL_SUFFIX == f
73#if ELPA_IMPL_SUFFIX == dc
78#if ELPA_IMPL_SUFFIX == fc
85 subroutine elpa_eigenvectors_a_h_a_&
87 &_i(self, a, ev, q, error)
88 use,
intrinsic :: iso_c_binding
93#ifdef USE_ASSUMED_SIZE
94 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *), q(self%local_nrows,*)
96 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols), q(self%local_nrows, self%local_ncols)
98 real(kind=c_real_datatype) :: ev(self%na)
100#ifdef USE_FORTRAN2008
101 integer,
optional :: error
121#if ELPA_IMPL_SUFFIX == d
126#if ELPA_IMPL_SUFFIX == f
131#if ELPA_IMPL_SUFFIX == dc
136#if ELPA_IMPL_SUFFIX == fc
143 subroutine elpa_eigenvectors_d_ptr_&
145 &_i(self, a, ev, q, error)
146 use,
intrinsic :: iso_c_binding
149 class(elpa_t) :: self
151 type(c_ptr) :: a, q, ev
153#ifdef USE_FORTRAN2008
154 integer,
optional :: error
162#ifdef HAVE_SKEWSYMMETRIC
175#if ELPA_IMPL_SUFFIX == d
180#if ELPA_IMPL_SUFFIX == f
187 subroutine elpa_skew_eigenvectors_a_h_a_&
189 &_i(self, a, ev, q, error)
190 use,
intrinsic :: iso_c_binding
193 class(elpa_t) :: self
195#ifdef USE_ASSUMED_SIZE
196 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *), q(self%local_nrows,*)
198 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols), q(self%local_nrows, 2*self%local_ncols)
200 real(kind=c_real_datatype) :: ev(self%na)
202#ifdef USE_FORTRAN2008
203 integer,
optional :: error
223#if ELPA_IMPL_SUFFIX == d
228#if ELPA_IMPL_SUFFIX == f
235 subroutine elpa_skew_eigenvectors_d_ptr_&
237 &_i(self, a, ev, q, error)
238 use,
intrinsic :: iso_c_binding
241 class(elpa_t) :: self
243 type(c_ptr) :: a, q, ev
245#ifdef USE_FORTRAN2008
246 integer,
optional :: error
253#endif /* HAVE_SKEWSYMMETRIC */
268#if ELPA_IMPL_SUFFIX == d
272#if ELPA_IMPL_SUFFIX == f
276#if ELPA_IMPL_SUFFIX == dc
280#if ELPA_IMPL_SUFFIX ==fc
286 subroutine elpa_eigenvalues_a_h_a_&
288 &_i(self, a, ev, error)
289 use,
intrinsic :: iso_c_binding
292 class(elpa_t) :: self
293#ifdef USE_ASSUMED_SIZE
294 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *)
296 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols)
298 real(kind=c_real_datatype) :: ev(self%na)
300#ifdef USE_FORTRAN2008
301 integer,
optional :: error
321#if ELPA_IMPL_SUFFIX == d
325#if ELPA_IMPL_SUFFIX == f
329#if ELPA_IMPL_SUFFIX == dc
333#if ELPA_IMPL_SUFFIX ==fc
339 subroutine elpa_eigenvalues_d_ptr_&
341 &_i(self, a, ev, error)
342 use,
intrinsic :: iso_c_binding
345 class(elpa_t) :: self
348#ifdef USE_FORTRAN2008
349 integer,
optional :: error
357#ifdef HAVE_SKEWSYMMETRIC
370#if ELPA_IMPL_SUFFIX == d
374#if ELPA_IMPL_SUFFIX == f
380 subroutine elpa_skew_eigenvalues_a_h_a_&
382 &_i(self, a, ev, error)
383 use,
intrinsic :: iso_c_binding
386 class(elpa_t) :: self
387#ifdef USE_ASSUMED_SIZE
388 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *)
390 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols)
392 real(kind=c_real_datatype) :: ev(self%na)
394#ifdef USE_FORTRAN2008
395 integer,
optional :: error
415#if ELPA_IMPL_SUFFIX == d
419#if ELPA_IMPL_SUFFIX == f
425 subroutine elpa_skew_eigenvalues_d_ptr_&
427 &_i(self, a, ev, error)
428 use,
intrinsic :: iso_c_binding
431 class(elpa_t) :: self
434#ifdef USE_FORTRAN2008
435 integer,
optional :: error
441#endif /* HAVE_SKEWSYMMETRIC */
457#if ELPA_IMPL_SUFFIX == d
463#if ELPA_IMPL_SUFFIX == f
469#if ELPA_IMPL_SUFFIX == dc
475#if ELPA_IMPL_SUFFIX == fc
484 subroutine elpa_generalized_eigenvectors_a_h_a_&
486 &_i(self, a, b, ev, q, is_already_decomposed, error)
487 use,
intrinsic :: iso_c_binding
491 class(elpa_t) :: self
492#ifdef USE_ASSUMED_SIZE
493 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *), b(self%local_nrows, *), q(self%local_nrows, *)
495 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols), b(self%local_nrows, self%local_ncols), &
496 q(self%local_nrows, self%local_ncols)
498 real(kind=c_real_datatype) :: ev(self%na)
500 logical :: is_already_decomposed
501 integer,
optional :: error
518#if ELPA_IMPL_SUFFIX == d
524#if ELPA_IMPL_SUFFIX == f
530#if ELPA_IMPL_SUFFIX == dc
536#if ELPA_IMPL_SUFFIX == fc
545 subroutine elpa_generalized_eigenvectors_d_ptr_&
547 &_i(self, adev, bdev, evdev, qdev, is_already_decomposed, error)
548 use,
intrinsic :: iso_c_binding
552 class(elpa_t) :: self
554 type(c_ptr) :: aDev, bDev, evDev, qDev
556 logical :: is_already_decomposed
557 integer,
optional :: error
575#if ELPA_IMPL_SUFFIX == d
580#if ELPA_IMPL_SUFFIX == f
585#if ELPA_IMPL_SUFFIX == dc
590#if ELPA_IMPL_SUFFIX == fc
599 subroutine elpa_generalized_eigenvalues_a_h_a_&
601 &_i(self, a, b, ev, is_already_decomposed, error)
602 use,
intrinsic :: iso_c_binding
606 class(elpa_t) :: self
607#ifdef USE_ASSUMED_SIZE
608 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *), b(self%local_nrows, *)
610 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols), b(self%local_nrows, self%local_ncols)
612 real(kind=c_real_datatype) :: ev(self%na)
614 logical :: is_already_decomposed
615 integer,
optional :: error
632#if ELPA_IMPL_SUFFIX == d
637#if ELPA_IMPL_SUFFIX == f
642#if ELPA_IMPL_SUFFIX == dc
647#if ELPA_IMPL_SUFFIX == fc
656 subroutine elpa_generalized_eigenvalues_d_ptr_&
658 &_i(self, adev, bdev, evdev, is_already_decomposed, error)
659 use,
intrinsic :: iso_c_binding
663 class(elpa_t) :: self
665 type(c_ptr) :: aDev, bDev, evDev
667 logical :: is_already_decomposed
668 integer,
optional :: error
710 subroutine elpa_hermitian_multiply_a_h_a_&
712 &_i(self,uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, &
713 c, nrows_c, ncols_c, error)
714 use,
intrinsic :: iso_c_binding
717 class(elpa_t) :: self
718 character*1 :: uplo_a, uplo_c
719 integer(kind=c_int),
intent(in) :: nrows_b, ncols_b, nrows_c, ncols_c, ncb
720#ifdef USE_ASSUMED_SIZE
721 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,*), b(nrows_b,*), c(nrows_c,*)
723 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,self%local_ncols), b(nrows_b,ncols_b), c(nrows_c,ncols_c)
726#ifdef USE_FORTRAN2008
727 integer,
optional :: error
771 subroutine elpa_hermitian_multiply_d_ptr_&
773 &_i(self,uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, &
774 c, nrows_c, ncols_c, error)
775 use,
intrinsic :: iso_c_binding
778 class(elpa_t) :: self
779 character*1 :: uplo_a, uplo_c
780 integer(kind=c_int),
intent(in) :: nrows_b, ncols_b, nrows_c, ncols_c, ncb
781 type(c_ptr) :: a, b, c
788#ifdef USE_FORTRAN2008
789 integer,
optional :: error
834 subroutine elpa_pxgemm_multiply_a_h_a_&
836 &_i(self, trans_a, trans_b, ncb, a, b, nrows_b, ncols_b, &
837 c, nrows_c, ncols_c, error)
838 use,
intrinsic :: iso_c_binding
841 class(elpa_t) :: self
842 character*1 :: trans_a, trans_b
843 integer(kind=c_int),
intent(in) :: nrows_b, ncols_b, nrows_c, ncols_c, ncb
844#ifdef USE_ASSUMED_SIZE
845 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,*), b(nrows_b,*), c(nrows_c,*)
847 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,self%local_ncols), b(nrows_b,ncols_b), c(nrows_c,ncols_c)
850#ifdef USE_FORTRAN2008
851 integer,
optional :: error
895 subroutine elpa_pxgemm_multiply_d_ptr_&
897 &_i(self, trans_a, trans_b, ncb, a, b, nrows_b, ncols_b, &
898 c, nrows_c, ncols_c, error)
899 use,
intrinsic :: iso_c_binding
902 class(elpa_t) :: self
903 character*1 :: trans_a, trans_b
904 integer(kind=c_int),
intent(in) :: nrows_b, ncols_b, nrows_c, ncols_c, ncb
905 type(c_ptr) :: a, b, c
912#ifdef USE_FORTRAN2008
913 integer,
optional :: error
930#if ELPA_IMPL_SUFFIX == d
933#if ELPA_IMPL_SUFFIX == f
936#if ELPA_IMPL_SUFFIX == dc
939#if ELPA_IMPL_SUFFIX == fc
944 subroutine elpa_cholesky_a_h_a_&
947 use,
intrinsic :: iso_c_binding
950 class(elpa_t) :: self
951#ifdef USE_ASSUMED_SIZE
952 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,*)
954 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,self%local_ncols)
957#ifdef USE_FORTRAN2008
958 integer,
optional :: error
974#if ELPA_IMPL_SUFFIX == d
977#if ELPA_IMPL_SUFFIX == f
980#if ELPA_IMPL_SUFFIX == dc
983#if ELPA_IMPL_SUFFIX == fc
988 subroutine elpa_cholesky_d_ptr_&
991 use,
intrinsic :: iso_c_binding
994 class(elpa_t) :: self
997#ifdef USE_FORTRAN2008
998 integer,
optional :: error
1015#if ELPA_IMPL_SUFFIX == d
1018#if ELPA_IMPL_SUFFIX == f
1021#if ELPA_IMPL_SUFFIX == dc
1024#if ELPA_IMPL_SUFFIX == fc
1030 subroutine elpa_invert_trm_a_h_a_&
1033 use,
intrinsic :: iso_c_binding
1036 class(elpa_t) :: self
1037#ifdef USE_ASSUMED_SIZE
1038 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,*)
1040 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,self%local_ncols)
1043#ifdef USE_FORTRAN2008
1044 integer,
optional :: error
1059#if ELPA_IMPL_SUFFIX == d
1062#if ELPA_IMPL_SUFFIX == f
1065#if ELPA_IMPL_SUFFIX == dc
1068#if ELPA_IMPL_SUFFIX == fc
1074 subroutine elpa_invert_trm_d_ptr_&
1077 use,
intrinsic :: iso_c_binding
1080 class(elpa_t) :: self
1083#ifdef USE_FORTRAN2008
1084 integer,
optional :: error
1101#if ELPA_IMPL_SUFFIX == d
1107#if ELPA_IMPL_SUFFIX == f
1115 subroutine elpa_solve_tridiagonal_&
1117 &_i(self, d, e, q, error)
1118 use,
intrinsic :: iso_c_binding
1121 class(elpa_t) :: self
1122 real(kind=c_real_datatype) :: d(self%na), e(self%na)
1123#ifdef USE_ASSUMED_SIZE
1124 real(kind=c_real_datatype) :: q(self%local_nrows,*)
1126 real(kind=c_real_datatype) :: q(self%local_nrows,self%local_ncols)
1129#ifdef USE_FORTRAN2008
1130 integer,
optional :: error
struct elpa_struct * elpa_t
Definition elpa.h:10