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_invert_trm_&
56 : &MATH_DATATYPE&
57 : &_wrapper_&
58 : &PRECISION&
59 0 : & (na, a, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, wantDebug) &
60 : result(success) bind(C,name="elpa_invert_trm_&
61 : &MATH_DATATYPE&
62 : &_&
63 : &PRECISION&
64 : &")
65 : use, intrinsic :: iso_c_binding
66 : use elpa1_auxiliary, only : elpa_invert_trm_&
67 : &MATH_DATATYPE&
68 : &_&
69 : &PRECISION
70 :
71 : implicit none
72 :
73 : integer(kind=c_int), value :: na, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols
74 : integer(kind=c_int), value :: wantDebug
75 : integer(kind=c_int) :: success
76 : #if REALCASE == 1
77 : #ifdef USE_ASSUMED_SIZE
78 : real(kind=C_DATATYPE_KIND) :: a(lda,*)
79 : #else
80 : real(kind=C_DATATYPE_KIND) :: a(lda,matrixCols)
81 : #endif
82 : #endif
83 : #if COMPLEXCASE == 1
84 : #ifdef USE_ASSUMED_SIZE
85 : complex(kind=C_DATATYPE_KIND) :: a(lda,*)
86 : #else
87 : complex(kind=C_DATATYPE_KIND) :: a(lda,matrixCols)
88 : #endif
89 : #endif
90 :
91 : logical :: wantDebugFortran, successFortran
92 :
93 0 : if (wantDebug .ne. 0) then
94 0 : wantDebugFortran = .true.
95 : else
96 0 : wantDebugFortran = .false.
97 : endif
98 :
99 : successFortran = elpa_invert_trm_&
100 : &MATH_DATATYPE&
101 : &_&
102 : &PRECISION&
103 0 : & (na, a, lda, nblk, matrixCols, mpi_comm_rows, mpi_comm_cols, wantDebugFortran)
104 :
105 0 : if (successFortran) then
106 0 : success = 1
107 : else
108 0 : success = 0
109 : endif
110 :
111 0 : end function
112 :
113 :
|