LCOV - code coverage report
Current view: top level - test/Fortran - elpa_print_headers.F90 (source / functions) Hit Total Coverage
Test: coverage_50ab7a7628bba174fc62cee3ab72b26e81f87fe5.info Lines: 58 60 96.7 %
Date: 2018-01-10 09:29:53 Functions: 0 0 -

          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             : !
      20             : !    More information can be found here:
      21             : !    http://elpa.mpcdf.mpg.de/
      22             : !
      23             : !    ELPA is free software: you can redistribute it and/or modify
      24             : !    it under the terms of the version 3 of the license of the
      25             : !    GNU Lesser General Public License as published by the Free
      26             : !    Software Foundation.
      27             : !
      28             : !    ELPA is distributed in the hope that it will be useful,
      29             : !    but WITHOUT ANY WARRANTY; without even the implied warranty of
      30             : !    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      31             : !    GNU Lesser General Public License for more details.
      32             : !
      33             : !    You should have received a copy of the GNU Lesser General Public License
      34             : !    along with ELPA.  If not, see <http://www.gnu.org/licenses/>
      35             : !
      36             : !    ELPA reflects a substantial effort on the part of the original
      37             : !    ELPA consortium, and we ask you to respect the spirit of the
      38             : !    license that we chose: i.e., please contribute any changes you
      39             : !    may have back to the original ELPA library distribution, and keep
      40             : !    any derivatives of ELPA under the same license that we chose for
      41             : !    the original distribution, the GNU Lesser General Public License.
      42             : !
      43             : !
      44             : ! ELPA1 -- Faster replacements for ScaLAPACK symmetric eigenvalue routines
      45             : !
      46             : ! Copyright of the original code rests with the authors inside the ELPA
      47             : ! consortium. The copyright of any additional modifications shall rest
      48             : ! with their original authors, but shall adhere to the licensing terms
      49             : ! distributed along with the original code in the file "COPYING".
      50             : #endif
      51             : 
      52             : #ifdef WITH_OPENMP
      53        1872 :    if (myid .eq. 0) then
      54        1248 :       print *,"Threaded version of test program"
      55        1248 :       print *,"Using ",omp_get_max_threads()," threads"
      56        1248 :       print *," "
      57             :    endif
      58             : #endif
      59             : 
      60             : #ifndef WITH_MPI
      61        1248 :    if (myid .eq. 0) then
      62        1248 :      print *,"This version of ELPA does not support MPI parallelisation"
      63        1248 :      print *,"For MPI support re-build ELPA with appropiate flags"
      64        1248 :      print *," "
      65             :    endif
      66             : #endif
      67             : 
      68             : #ifdef ELPA1
      69             : 
      70             : #ifdef REALCASE
      71             : #ifdef DOUBLE_PRECISION_REAL
      72         192 :    if (myid .eq. 0) then
      73         128 :      print *," "
      74         128 :      print *,"Real valued double-precision version of ELPA1 is used"
      75         128 :      print *," "
      76             :    endif
      77             : #else
      78          96 :    if (myid .eq. 0) then
      79          64 :      print *," "
      80          64 :      print *,"Real valued single-precision version of ELPA1 is used"
      81          64 :      print *," "
      82             :    endif
      83             : #endif
      84             : 
      85             : #endif
      86             : 
      87             : #ifdef COMPLEXCASE
      88             : #ifdef DOUBLE_PRECISION_COMPLEX
      89         192 :    if (myid .eq. 0) then
      90         128 :      print *," "
      91         128 :      print *,"Complex valued double-precision version of ELPA1 is used"
      92         128 :      print *," "
      93             :    endif
      94             : #else
      95          96 :    if (myid .eq. 0) then
      96          64 :      print *," "
      97          64 :      print *,"Complex valued single-precision version of ELPA1 is used"
      98          64 :      print *," "
      99             :    endif
     100             : #endif
     101             : 
     102             : #endif /* DATATYPE */
     103             : 
     104             : #else /* ELPA1 */
     105             : 
     106             : #ifdef REALCASE
     107             : #ifdef DOUBLE_PRECISION_REAL
     108         864 :    if (myid .eq. 0) then
     109         576 :      print *," "
     110         576 :      print *,"Real valued double-precision version of ELPA2 is used"
     111         576 :      print *," "
     112             :    endif
     113             : #else
     114         432 :    if (myid .eq. 0) then
     115         288 :      print *," "
     116         288 :      print *,"Real valued single-precision version of ELPA2 is used"
     117         288 :      print *," "
     118             :    endif
     119             : #endif
     120             : 
     121             : #endif
     122             : 
     123             : #ifdef COMPLEXCASE
     124             : #ifdef DOUBLE_PRECISION_COMPLEX
     125         864 :    if (myid .eq. 0) then
     126         576 :      print *," "
     127         576 :      print *,"Complex valued double-precision version of ELPA2 is used"
     128         576 :      print *," "
     129             :    endif
     130             : #else
     131         432 :    if (myid .eq. 0) then
     132         288 :      print *," "
     133         288 :      print *,"Complex valued single-precision version of ELPA2 is used"
     134         288 :      print *," "
     135             :    endif
     136             : #endif
     137             : 
     138             : #endif /* DATATYPE */
     139             : 
     140             : #endif /* ELPA1 */
     141             : 
     142             : #ifdef WITH_MPI
     143        2496 :     call MPI_BARRIER(MPI_COMM_WORLD, mpierr)
     144             : #endif
     145             : #ifdef HAVE_REDIRECT
     146             :    if (check_redirect_environment_variable()) then
     147             :      if (myid .eq. 0) then
     148             :        print *," "
     149             :        print *,"Redirection of mpi processes is used"
     150             :        print *," "
     151             :        if (create_directories() .ne. 1) then
     152             :          write(error_unit,*) "Unable to create directory for stdout and stderr!"
     153             :          stop 1
     154             :        endif
     155             :      endif
     156             : #ifdef WITH_MPI
     157             :      call MPI_BARRIER(MPI_COMM_WORLD, mpierr)
     158             : #endif
     159             :      call redirect_stdout(myid)
     160             :    endif
     161             : #endif
     162             : 
     163             : #ifndef ELPA1
     164             : 
     165        3168 :    if (myid .eq. 0) then
     166        2112 :       print *," "
     167        2112 :       print *,"This ELPA2 is build with"
     168             : #ifdef WITH_GPU_KERNEL
     169             :         print *,"GPU support"
     170             : #endif
     171        2112 :       print *," "
     172             : #ifdef REALCASE
     173             : 
     174             : #ifdef HAVE_AVX2
     175             : 
     176             : #ifdef WITH_REAL_AVX_BLOCK2_KERNEL
     177         864 :       print *,"AVX2 optimized kernel (2 blocking) for real matrices"
     178             : #endif
     179             : #ifdef WITH_REAL_AVX_BLOCK4_KERNEL
     180         864 :       print *,"AVX2 optimized kernel (4 blocking) for real matrices"
     181             : #endif
     182             : #ifdef WITH_REAL_AVX_BLOCK6_KERNEL
     183         864 :       print *,"AVX2 optimized kernel (6 blocking) for real matrices"
     184             : #endif
     185             : 
     186             : #else /* no HAVE_AVX2 */
     187             : 
     188             : #ifdef HAVE_AVX
     189             : 
     190             : #ifdef WITH_REAL_AVX_BLOCK2_KERNEL
     191             :       print *,"AVX optimized kernel (2 blocking) for real matrices"
     192             : #endif
     193             : #ifdef WITH_REAL_AVX_BLOCK4_KERNEL
     194             :       print *,"AVX optimized kernel (4 blocking) for real matrices"
     195             : #endif
     196             : #ifdef WITH_REAL_AVX_BLOCK6_KERNEL
     197             :       print *,"AVX optimized kernel (6 blocking) for real matrices"
     198             : #endif
     199             : 
     200             : #endif
     201             : 
     202             : #endif /* HAVE_AVX2 */
     203             : 
     204             : 
     205             : #ifdef WITH_REAL_GENERIC_KERNEL
     206         864 :      print *,"GENERIC kernel for real matrices"
     207             : #endif
     208             : #ifdef WITH_REAL_GENERIC_SIMPLE_KERNEL
     209         864 :      print *,"GENERIC SIMPLE kernel for real matrices"
     210             : #endif
     211             : #ifdef WITH_REAL_SSE_ASSEMBLY_KERNEL
     212         864 :      print *,"SSE ASSEMBLER kernel for real matrices"
     213             : #endif
     214             : #ifdef WITH_REAL_BGP_KERNEL
     215             :      print *,"BGP kernel for real matrices"
     216             : #endif
     217             : #ifdef WITH_REAL_BGQ_KERNEL
     218             :      print *,"BGQ kernel for real matrices"
     219             : #endif
     220             : 
     221             : #endif /* DATATYPE == REAL */
     222             : 
     223             : #ifdef COMPLEXCASE
     224             : 
     225             : #ifdef HAVE_AVX2
     226             : 
     227             : #ifdef  WITH_COMPLEX_AVX_BLOCK2_KERNEL
     228         864 :       print *,"AVX2 optimized kernel (2 blocking) for complex matrices"
     229             : #endif
     230             : #ifdef WITH_COMPLEX_AVX_BLOCK1_KERNEL
     231         864 :       print *,"AVX2 optimized kernel (1 blocking) for complex matrices"
     232             : #endif
     233             : 
     234             : #else /* no HAVE_AVX2 */
     235             : 
     236             : #ifdef HAVE_AVX
     237             : 
     238             : #ifdef  WITH_COMPLEX_AVX_BLOCK2_KERNEL
     239             :       print *,"AVX optimized kernel (2 blocking) for complex matrices"
     240             : #endif
     241             : #ifdef WITH_COMPLEX_AVX_BLOCK1_KERNEL
     242             :       print *,"AVX optimized kernel (1 blocking) for complex matrices"
     243             : #endif
     244             : 
     245             : #endif
     246             : 
     247             : #endif /* HAVE_AVX2 */
     248             : 
     249             : 
     250             : #ifdef WITH_COMPLEX_GENERIC_KERNEL
     251         864 :      print *,"GENERIC kernel for complex matrices"
     252             : #endif
     253             : #ifdef WITH_COMPLEX_GENERIC_SIMPLE_KERNEL
     254         864 :      print *,"GENERIC SIMPLE kernel for complex matrices"
     255             : #endif
     256             : #ifdef WITH_COMPLEX_SSE_ASSEMBLY_KERNEL
     257         864 :      print *,"SSE ASSEMBLER kernel for complex matrices"
     258             : #endif
     259             : 
     260             : #endif /* DATATYPE == COMPLEX */
     261             : 
     262             :    endif
     263             : #endif /* ELPA1 */
     264             : 
     265        3744 :    if (write_to_file%eigenvectors) then
     266           0 :      if (myid .eq. 0) print *,"Writing Eigenvectors to files"
     267             :    endif
     268             : 
     269        3744 :    if (write_to_file%eigenvalues) then
     270           0 :      if (myid .eq. 0) print *,"Writing Eigenvalues to files"
     271             :    endif
     272             : 
     273             : 

Generated by: LCOV version 1.12