Line data Source code
1 : #if 0
2 : ! This file is part of ELPA.
3 : !
4 : ! The ELPA library was originally created by the ELPA consortium,
5 : ! consisting of the following organizations:
6 : !
7 : ! - Max Planck Computing and Data Facility (MPCDF), formerly known as
8 : ! Rechenzentrum Garching der Max-Planck-Gesellschaft (RZG),
9 : ! - Bergische Universität Wuppertal, Lehrstuhl für angewandte
10 : ! Informatik,
11 : ! - Technische Universität München, Lehrstuhl für Informatik mit
12 : ! Schwerpunkt Wissenschaftliches Rechnen ,
13 : ! - Fritz-Haber-Institut, Berlin, Abt. Theorie,
14 : ! - Max-Plack-Institut für Mathematik in den Naturwissenschaften,
15 : ! Leipzig, Abt. Komplexe Strukutren in Biologie und Kognition,
16 : ! and
17 : ! - IBM Deutschland GmbH
18 : !
19 : ! This particular source code file contains additions, changes and
20 : ! enhancements authored by Intel Corporation which is not part of
21 : ! the ELPA consortium.
22 : !
23 : ! More information can be found here:
24 : ! http://elpa.mpcdf.mpg.de/
25 : !
26 : ! ELPA is free software: you can redistribute it and/or modify
27 : ! it under the terms of the version 3 of the license of the
28 : ! GNU Lesser General Public License as published by the Free
29 : ! Software Foundation.
30 : !
31 : ! ELPA is distributed in the hope that it will be useful,
32 : ! but WITHOUT ANY WARRANTY; without even the implied warranty of
33 : ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34 : ! GNU Lesser General Public License for more details.
35 : !
36 : ! You should have received a copy of the GNU Lesser General Public License
37 : ! along with ELPA. If not, see <http://www.gnu.org/licenses/>
38 : !
39 : ! ELPA reflects a substantial effort on the part of the original
40 : ! ELPA consortium, and we ask you to respect the spirit of the
41 : ! license that we chose: i.e., please contribute any changes you
42 : ! may have back to the original ELPA library distribution, and keep
43 : ! any derivatives of ELPA under the same license that we chose for
44 : ! the original distribution, the GNU Lesser General Public License.
45 : !
46 : ! Author: Andreas Marek, MPCDF
47 : #endif
48 :
49 768 : function solve_elpa1_evp_&
50 : &MATH_DATATYPE&
51 : &_wrapper_&
52 : &PRECISION&
53 768 : & (na, nev, a, lda, ev, q, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, &
54 : useGPU) result(success) bind(C,name="elpa_solve_evp_&
55 : &MATH_DATATYPE&
56 : &_1stage_&
57 : &PRECISION&
58 : &_precision")
59 :
60 : use, intrinsic :: iso_c_binding
61 : use elpa1
62 :
63 : implicit none
64 : integer(kind=c_int) :: success
65 : integer(kind=c_int), value, intent(in) :: na, nev, lda, ldq, nblk, matrixCols, mpi_comm_cols, mpi_comm_rows, mpi_comm_all
66 : integer(kind=c_int), value, intent(in) :: useGPU
67 : real(kind=C_DATATYPE_KIND) :: ev(1:na)
68 :
69 : #if REALCASE == 1
70 :
71 : #ifdef USE_ASSUMED_SIZE
72 : real(kind=C_DATATYPE_KIND) :: a(lda,*), q(ldq,*)
73 : #else
74 : real(kind=C_DATATYPE_KIND) :: a(1:lda,1:matrixCols), q(1:ldq,1:matrixCols)
75 : #endif
76 :
77 : #endif /* REALCASE */
78 :
79 : #if COMPLEXCASE == 1
80 :
81 : #ifdef USE_ASSUMED_SIZE
82 : complex(kind=C_DATATYPE_KIND) :: a(lda,*), q(ldq,*)
83 : #else
84 : complex(kind=C_DATATYPE_KIND) :: a(1:lda,1:matrixCols), q(1:ldq,1:matrixCols)
85 : #endif
86 :
87 : #endif /* COMPLEXCASE == 1 */
88 : logical :: successFortran
89 :
90 : successFortran = elpa_solve_evp_&
91 : &MATH_DATATYPE&
92 : &_1stage_&
93 : &PRECISION &
94 : & (na, nev, a, lda, ev, q, ldq, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, mpi_comm_all, &
95 768 : useGPU == 1)
96 :
97 768 : if (successFortran) then
98 768 : success = 1
99 : else
100 0 : success = 0
101 : endif
102 :
103 768 : end function
|