62#if ELPA_IMPL_SUFFIX == d
67#if ELPA_IMPL_SUFFIX == f
72#if ELPA_IMPL_SUFFIX == dc
77#if ELPA_IMPL_SUFFIX == fc
84 subroutine elpa_eigenvectors_a_h_a_&
86 &_i(self, a, ev, q, error)
87 use,
intrinsic :: iso_c_binding
92#ifdef USE_ASSUMED_SIZE
93 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *), q(self%local_nrows,*)
95 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols), q(self%local_nrows, self%local_ncols)
97 real(kind=c_real_datatype) :: ev(self%na)
100 integer,
optional :: error
119#if ELPA_IMPL_SUFFIX == d
124#if ELPA_IMPL_SUFFIX == f
129#if ELPA_IMPL_SUFFIX == dc
134#if ELPA_IMPL_SUFFIX == fc
141 subroutine elpa_eigenvectors_d_ptr_&
143 &_i(self, a, ev, q, error)
144 use,
intrinsic :: iso_c_binding
147 class(elpa_t) :: self
149 type(c_ptr) :: a, q, ev
151#ifdef USE_FORTRAN2008
152 integer,
optional :: error
159#ifdef HAVE_SKEWSYMMETRIC
172#if ELPA_IMPL_SUFFIX == d
177#if ELPA_IMPL_SUFFIX == f
184 subroutine elpa_skew_eigenvectors_a_h_a_&
186 &_i(self, a, ev, q, error)
187 use,
intrinsic :: iso_c_binding
190 class(elpa_t) :: self
192#ifdef USE_ASSUMED_SIZE
193 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *), q(self%local_nrows,*)
195 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols), q(self%local_nrows, 2*self%local_ncols)
197 real(kind=c_real_datatype) :: ev(self%na)
199#ifdef USE_FORTRAN2008
200 integer,
optional :: error
219#if ELPA_IMPL_SUFFIX == d
224#if ELPA_IMPL_SUFFIX == f
231 subroutine elpa_skew_eigenvectors_d_ptr_&
233 &_i(self, a, ev, q, error)
234 use,
intrinsic :: iso_c_binding
237 class(elpa_t) :: self
239 type(c_ptr) :: a, q, ev
241#ifdef USE_FORTRAN2008
242 integer,
optional :: error
249#endif /* HAVE_SKEWSYMMETRIC */
263#if ELPA_IMPL_SUFFIX == d
267#if ELPA_IMPL_SUFFIX == f
271#if ELPA_IMPL_SUFFIX == dc
275#if ELPA_IMPL_SUFFIX ==fc
281 subroutine elpa_eigenvalues_a_h_a_&
283 &_i(self, a, ev, error)
284 use,
intrinsic :: iso_c_binding
287 class(elpa_t) :: self
288#ifdef USE_ASSUMED_SIZE
289 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *)
291 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols)
293 real(kind=c_real_datatype) :: ev(self%na)
295#ifdef USE_FORTRAN2008
296 integer,
optional :: error
315#if ELPA_IMPL_SUFFIX == d
319#if ELPA_IMPL_SUFFIX == f
323#if ELPA_IMPL_SUFFIX == dc
327#if ELPA_IMPL_SUFFIX ==fc
333 subroutine elpa_eigenvalues_d_ptr_&
335 &_i(self, a, ev, error)
336 use,
intrinsic :: iso_c_binding
339 class(elpa_t) :: self
342#ifdef USE_FORTRAN2008
343 integer,
optional :: error
350#ifdef HAVE_SKEWSYMMETRIC
363#if ELPA_IMPL_SUFFIX == d
367#if ELPA_IMPL_SUFFIX == f
373 subroutine elpa_skew_eigenvalues_a_h_a_&
375 &_i(self, a, ev, error)
376 use,
intrinsic :: iso_c_binding
379 class(elpa_t) :: self
380#ifdef USE_ASSUMED_SIZE
381 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *)
383 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols)
385 real(kind=c_real_datatype) :: ev(self%na)
387#ifdef USE_FORTRAN2008
388 integer,
optional :: error
407#if ELPA_IMPL_SUFFIX == d
411#if ELPA_IMPL_SUFFIX == f
417 subroutine elpa_skew_eigenvalues_d_ptr_&
419 &_i(self, a, ev, error)
420 use,
intrinsic :: iso_c_binding
423 class(elpa_t) :: self
426#ifdef USE_FORTRAN2008
427 integer,
optional :: error
433#endif /* HAVE_SKEWSYMMETRIC */
447#if ELPA_IMPL_SUFFIX == d
453#if ELPA_IMPL_SUFFIX == f
459#if ELPA_IMPL_SUFFIX == dc
465#if ELPA_IMPL_SUFFIX == fc
475 subroutine elpa_generalized_eigenvectors_&
477 &_i(self, a, b, ev, q, is_already_decomposed, error)
478 use,
intrinsic :: iso_c_binding
482 class(elpa_t) :: self
483#ifdef USE_ASSUMED_SIZE
484 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *), b(self%local_nrows, *), q(self%local_nrows, *)
486 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols), b(self%local_nrows, self%local_ncols), &
487 q(self%local_nrows, self%local_ncols)
489 real(kind=c_real_datatype) :: ev(self%na)
491 logical :: is_already_decomposed
492 integer,
optional :: error
508#if ELPA_IMPL_SUFFIX == d
513#if ELPA_IMPL_SUFFIX == f
518#if ELPA_IMPL_SUFFIX == dc
523#if ELPA_IMPL_SUFFIX == fc
532 subroutine elpa_generalized_eigenvalues_&
534 &_i(self, a, b, ev, is_already_decomposed, error)
535 use,
intrinsic :: iso_c_binding
539 class(elpa_t) :: self
540#ifdef USE_ASSUMED_SIZE
541 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, *), b(self%local_nrows, *)
543 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows, self%local_ncols), b(self%local_nrows, self%local_ncols)
545 real(kind=c_real_datatype) :: ev(self%na)
547 logical :: is_already_decomposed
548 integer,
optional :: error
589 subroutine elpa_hermitian_multiply_a_h_a_&
591 &_i(self,uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, &
592 c, nrows_c, ncols_c, error)
593 use,
intrinsic :: iso_c_binding
596 class(elpa_t) :: self
597 character*1 :: uplo_a, uplo_c
598 integer(kind=c_int),
intent(in) :: nrows_b, ncols_b, nrows_c, ncols_c, ncb
599#ifdef USE_ASSUMED_SIZE
600 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,*), b(nrows_b,*), c(nrows_c,*)
602 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,self%local_ncols), b(nrows_b,ncols_b), c(nrows_c,ncols_c)
605#ifdef USE_FORTRAN2008
606 integer,
optional :: error
650 subroutine elpa_hermitian_multiply_d_ptr_&
652 &_i(self,uplo_a, uplo_c, ncb, a, b, nrows_b, ncols_b, &
653 c, nrows_c, ncols_c, error)
654 use,
intrinsic :: iso_c_binding
657 class(elpa_t) :: self
658 character*1 :: uplo_a, uplo_c
659 integer(kind=c_int),
intent(in) :: nrows_b, ncols_b, nrows_c, ncols_c, ncb
660 type(c_ptr) :: a, b, c
667#ifdef USE_FORTRAN2008
668 integer,
optional :: error
684#if ELPA_IMPL_SUFFIX == d
687#if ELPA_IMPL_SUFFIX == f
690#if ELPA_IMPL_SUFFIX == dc
693#if ELPA_IMPL_SUFFIX == fc
698 subroutine elpa_cholesky_a_h_a_&
701 use,
intrinsic :: iso_c_binding
704 class(elpa_t) :: self
705#ifdef USE_ASSUMED_SIZE
706 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,*)
708 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,self%local_ncols)
711#ifdef USE_FORTRAN2008
712 integer,
optional :: error
728#if ELPA_IMPL_SUFFIX == d
731#if ELPA_IMPL_SUFFIX == f
734#if ELPA_IMPL_SUFFIX == dc
737#if ELPA_IMPL_SUFFIX == fc
742 subroutine elpa_cholesky_d_ptr_&
745 use,
intrinsic :: iso_c_binding
748 class(elpa_t) :: self
751#ifdef USE_FORTRAN2008
752 integer,
optional :: error
769#if ELPA_IMPL_SUFFIX == d
772#if ELPA_IMPL_SUFFIX == f
775#if ELPA_IMPL_SUFFIX == dc
778#if ELPA_IMPL_SUFFIX == fc
784 subroutine elpa_invert_trm_a_h_a_&
787 use,
intrinsic :: iso_c_binding
790 class(elpa_t) :: self
791#ifdef USE_ASSUMED_SIZE
792 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,*)
794 math_datatype(kind=c_datatype_kind) :: a(self%local_nrows,self%local_ncols)
797#ifdef USE_FORTRAN2008
798 integer,
optional :: error
813#if ELPA_IMPL_SUFFIX == d
816#if ELPA_IMPL_SUFFIX == f
819#if ELPA_IMPL_SUFFIX == dc
822#if ELPA_IMPL_SUFFIX == fc
828 subroutine elpa_invert_trm_d_ptr_&
831 use,
intrinsic :: iso_c_binding
834 class(elpa_t) :: self
837#ifdef USE_FORTRAN2008
838 integer,
optional :: error
855#if ELPA_IMPL_SUFFIX == d
861#if ELPA_IMPL_SUFFIX == f
869 subroutine elpa_solve_tridiagonal_&
871 &_i(self, d, e, q, error)
872 use,
intrinsic :: iso_c_binding
875 class(elpa_t) :: self
876 real(kind=c_real_datatype) :: d(self%na), e(self%na)
877#ifdef USE_ASSUMED_SIZE
878 real(kind=c_real_datatype) :: q(self%local_nrows,*)
880 real(kind=c_real_datatype) :: q(self%local_nrows,self%local_ncols)
883#ifdef USE_FORTRAN2008
884 integer,
optional :: error
struct elpa_struct * elpa_t
Definition elpa.h:10