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