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