LCOV - code coverage report
Current view: top level - main - fleur_help.F90 (source / functions) Hit Total Coverage
Test: FLEUR test coverage Lines: 41 90 45.6 %
Date: 2024-04-23 04:28:20 Functions: 2 2 100.0 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------
       2             : ! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
       3             : ! This file is part of FLEUR and available as free software under the conditions
       4             : ! of the MIT license as expressed in the LICENSE file in more detail.
       5             : !--------------------------------------------------------------------------------
       6             : MODULE m_fleur_help
       7             :   IMPLICIT NONE
       8             :   PRIVATE
       9             :   PUBLIC fleur_help
      10             : CONTAINS
      11          80 :   SUBROUTINE fleur_help()
      12             :     USE m_compile_descr
      13             :     USE m_constants
      14             :     USE m_juDFT
      15             :     USE m_check_arguments
      16             :     IMPLICIT NONE
      17             : 
      18          80 :     CHARACTER(:), ALLOCATABLE:: infostring
      19             : 
      20          80 :     PRINT *,"     Welcome to FLEUR        (www.flapw.de)   "
      21          80 :     PRINT *, version_const_MaX
      22          80 :     CALL add_fleur_arguments()
      23          80 :     IF (.NOT.check_arguments()) CALL judft_warn("Invalid command line arguments",hint="Use -h option to see valid choices")
      24             : 
      25          80 :     IF (.NOT. judft_was_argument("-h")) RETURN
      26             : 
      27             :     !now print version info and help on command line arguments:
      28             :     CALL get_compile_desc_string(infostring)
      29           0 :     WRITE(*,'(a)') infostring
      30           0 :     WRITE(*,'(a)')
      31           0 :     WRITE(*,'(a)')"------------------------------------------------------"
      32           0 :     WRITE(*,'(a)')"Usage info:"
      33           0 :     WRITE(*,'(a)')"The following command line options are known:"
      34           0 :     WRITE(*,'(a)')""
      35           0 :     WRITE(*,'(a)')"Control the input:"
      36           0 :     CALL print_argument("-xmlXPath")
      37           0 :     CALL print_argument("-dropXMLSchema")
      38           0 :     WRITE(*,'(a)')""
      39           0 :     WRITE(*,'(a)')"Output options:"
      40           0 :     CALL print_argument("-no_out")
      41           0 :     CALL print_argument("-minimalOutput")
      42           0 :     CALL print_argument("-genEnpara")
      43           0 :     CALL print_argument("-h")
      44           0 :     call print_argument("-version")
      45           0 :     WRITE(*,'(a)')""
      46           0 :     WRITE(*,'(a)')"Control FLEUR job:"
      47           0 :     CALL print_argument("-check")
      48           0 :     CALL print_argument("-info")
      49           0 :     CALL print_argument("-wtime")
      50           0 :     CALL print_argument("-j")
      51           0 :     CALL print_argument("-f")
      52           0 :     CALL print_argument("-min_pe_per_kpt")
      53           0 :     CALL print_argument("-pe_per_kpt")
      54           0 :     CALL print_argument("-add_name")
      55           0 :     CALL print_argument("-fft")
      56           0 :     CALL print_argument("-diag")
      57           0 :     CALL print_argument("-eig")
      58           0 :     CALL print_argument("-disable_progress_thread")
      59           0 :     WRITE(*,'(a)')""
      60           0 :     WRITE(*,'(a)')"Options useful for debugging:"
      61           0 :     CALL print_argument("-warn_only")
      62           0 :     CALL print_argument("-trace")
      63           0 :     CALL print_argument("-debugtime")
      64           0 :     CALL print_argument("-all_times")
      65             : #ifdef CPP_HDF
      66           0 :     WRITE(*,'(a)')""
      67           0 :     WRITE(*,'(a)')"HDF density file relevant options:"
      68             : 
      69           0 :     CALL print_argument("-no_cdn_hdf")
      70           0 :     CALL print_argument("-last_extra")
      71           0 :     CALL print_argument("-sd")
      72           0 :     CALL print_argument("-delden")
      73           0 :     CALL print_argument("-storeSF")
      74             : #endif
      75           0 :     WRITE (*,'(a)') "Options for privacy sensitive users"
      76           0 :     CALL print_argument("-no_send")
      77             : 
      78           0 :     WRITE(*,'(a)')""
      79           0 :     WRITE(*,'(a)')"Please check the documentation on www.flapw.de for more details."
      80             : 
      81           0 :     CALL juDFT_end("",l_endXML=.FALSE.) !No message so do a not print more on exit
      82           0 :   END SUBROUTINE fleur_help
      83             : 
      84          80 :   SUBROUTINE add_fleur_arguments()
      85             :     USE m_check_arguments
      86             : 
      87          80 :     CALL new_argument(1,"-xmlXPath","modify the xml-xpath of the inp.xml file","")
      88          80 :     CALL new_argument(0,"-dropXMLSchema","Write out the default XML schema files","")
      89             :     !Control the job
      90          80 :     CALL new_argument(0,"-check","run in check mode, i.e. stop after init","")
      91          80 :     CALL new_argument(0,"-info","Print out information on recommended parallelization and available charge densities","")
      92          80 :     CALL new_argument(2,"-wtime","run for # minutes (used to estimate if another iteration is started)","")
      93          80 :     call new_argument(1,"-blocksize","blocksize used for 2d distributed matrixes","")
      94          80 :     CALL new_argument(1,"-j","Distribute MPI ranks to run subjobs (Format PE:DIR meaning run with PE in directory DIR)","")
      95          80 :     CALL new_argument(1,"-f","Obtain info on subjobs from file","")
      96          80 :     CALL new_argument(2,"-min_pe_per_kpt","Try to use at least specified number of PE in eigenvalue parallelization","")
      97          80 :     CALL new_argument(2,"-pe_per_kpt","Use exactly the specified number of PE for eigenvalue parallelization","")
      98          80 :     CALL new_argument(1,"-add_name","file descriptor that will be put before the output file names","")
      99             :     CALL new_argument(1,"-fft","library used for Fast Fourier Transformations","inbuilt"&
     100             : #ifdef CPP_FFTW
     101             :     //",fftw"&
     102             : #endif
     103             : #ifdef CPP_FFT_MKL
     104             :          //",mkl"&
     105             : #endif
     106             : #ifdef CPP_SPFFT
     107             :          //",spfft"&
     108             : #endif
     109          80 :          )
     110             :     CALL new_argument(1,"-diag","Choose method for diagonalization","lapack,debugout,lapack_singlePrec,stop,dummy"&
     111             : #ifdef CPP_SCALAPACK
     112             :          //",scalapack"&
     113             : #endif
     114             : #ifdef CPP_ELPA_ONENODE
     115             :          //",elpa_1node"&
     116             : #endif
     117             : #ifdef CPP_ELSI
     118             :       //",elsielpa"&
     119             : #endif
     120             : #ifdef CPP_ELSI
     121             :       //",elsichase"&
     122             : #endif
     123             : #ifdef CPP_ELPA
     124             :       //",elpa"&
     125             : #endif
     126             : #ifdef CPP_CHASE
     127             :        //",chase"&
     128             : #endif
     129             : #ifdef CPP_MAGMA
     130             :        //",magma"&
     131             : #endif
     132             : #ifdef CPP_CUSOLVER
     133             :        //",cusolver"&
     134             : #endif
     135          80 :        )
     136             :     CALL new_argument(1,"-eig","Method for storing the eigenvectors","mem,da"&
     137             : #ifdef CPP_MPI
     138             :          //",mpi"&
     139             : #endif
     140             : #ifdef CPP_HDF
     141             :          //",hdf"&
     142             : #endif
     143          80 :          )
     144          80 :     CALL new_argument(0,"-serial_diag","Use serial diagonalization in parallel code","")
     145          80 :     CALL new_argument(0,"-disable_progress_thread","Do not use progress_thread","")
     146             :     !Debugging
     147          80 :     CALL new_argument(0,"-warn_only","Continue execution after a warning message","")
     148          80 :     CALL new_argument(0,"-trace","Try to generate a stacktrace in case of an error","")
     149          80 :     CALL new_argument(0,"-debugtime","Write the start/stop of all timers to the console","")
     150          80 :     CALL new_argument(0,"-all_times","Write json files of timing for all PE, not only for PE=0","")
     151             :     !Output
     152          80 :     CALL new_argument(0,"-mix_io","Do not store mixing history in memory but do IO in each iteration","")
     153          80 :     CALL new_argument(0,"-no_out","Do not open the 'out' file but write to stdout","")
     154          80 :     CALL new_argument(0,"-minimalOutput","Reduce the amount of output in the out.xml file","")
     155          80 :     CALL new_argument(0,"-genEnpara","Generate an 'enpara' file for the energy parameters","")
     156          80 :     CALL new_argument(0,"-h","Print this message","")
     157          80 :     CALL new_argument(0,"-version","Show important version information about the fleur executable","")
     158          80 :     CALL new_argument(0,"-no_send","Do not send usage data","")
     159             :     !HDF density
     160          80 :     CALL new_argument(0,"-no_cdn_hdf","Disable HDF charge density mode (activated by default if HDF5 is available)","")
     161          80 :     CALL new_argument(0,"-last_extra","Generate an additional file cdn_last.hdf that contains only the last density","")
     162          80 :     CALL new_argument(2,"-sd","use starting density N, where N is the index of the density according to -info","")
     163          80 :     CALL new_argument(1,"-delden","delete densities (either an index N, a range N-M or the keyword 'allbutlast' should be given)","")
     164          80 :     CALL new_argument(0,"-storeSF","Store the stepfunction in the charge density file to avoid its recalculation when restarting Fleur.","")
     165          80 :   END SUBROUTINE add_fleur_arguments
     166             : END MODULE m_fleur_help

Generated by: LCOV version 1.14