fleur_help.F90 5.72 KB
Newer Older
1 2 3 4 5 6 7
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_fleur_help
  IMPLICIT NONE
8 9
  PRIVATE
  PUBLIC fleur_help
10 11 12 13 14
CONTAINS
  SUBROUTINE fleur_help()
    USE m_compile_descr
    USE m_constants
    USE m_juDFT
15
    USE m_check_arguments
16
    IMPLICIT NONE
17
 
18
    CHARACTER(:), ALLOCATABLE:: infostring
19 20 21

    PRINT *,"     Welcome to FLEUR        (www.flapw.de)   "
    PRINT *,"     MaX-Release 2.1       (www.max-centre.eu)"
22
    CALL add_fleur_arguments()
23 24
    IF (.NOT.check_arguments()) CALL judft_warn("Invalid command line arguments",hint="Use -h option to see valid choices")
    
25
    
26
    IF (.NOT. judft_was_argument("-h")) RETURN
27 28 29

    !now print version info and help on command line arguments:
    CALL get_compile_desc_string(infostring)
30
    WRITE(*,'(a)') infostring
31 32 33 34 35 36
    WRITE(*,'(a)')
    WRITE(*,'(a)')"------------------------------------------------------"
    WRITE(*,'(a)')"Usage info:"
    WRITE(*,'(a)')"The following command line options are known:"
    WRITE(*,'(a)')""
    WRITE(*,'(a)')"Control the input:"
37 38
    CALL print_argument("-toXML")
    CALL print_argument("-xmlXpath")
39 40
    WRITE(*,'(a)')""
    WRITE(*,'(a)')"Output options:"
41 42 43
    CALL print_argument("-no_out")
    CALL print_argument("-gen_enpara")
    CALL print_argument("-h")
44 45
    WRITE(*,'(a)')""
    WRITE(*,'(a)')"Control FLEUR job:"
Daniel Wortmann's avatar
Daniel Wortmann committed
46 47 48
#ifdef CPP_GPU
    CALL print_argument("-gpu")
#endif
49 50 51 52 53 54 55 56
    CALL print_argument("-check")
    CALL print_argument("-info")
    CALL print_argument("-wtime")
    CALL print_argument("-j")
    CALL print_argument("-f")
    CALL print_argument("-n_min_size")
    CALL print_argument("-diag")
    CALL print_argument("-eig")
57 58
    WRITE(*,'(a)')""
    WRITE(*,'(a)')"Options useful for debugging:"
59 60 61
    CALL print_argument("-warn_only")
    CALL print_argument("-trace")
    CALL print_argument("-debugtime")
62
    CALL print_argument("-all_times")
63 64 65 66
#ifdef CPP_HDF
    WRITE(*,'(a)')""
    WRITE(*,'(a)')"HDF density file relevant options:"

67 68 69 70
    CALL print_argument("-no_cdn_hdf")
    CALL print_argument("-last_extra")
    CALL print_argument("-sd")
    CALL print_argument("-delden")
Daniel Wortmann's avatar
Daniel Wortmann committed
71
#endif
72 73
    WRITE (*,'(a)') "Options for privacy sensitive users"
    CALL print_argument("-no_send")
Daniel Wortmann's avatar
Daniel Wortmann committed
74
    
75 76 77 78 79
    WRITE(*,'(a)')""
    WRITE(*,'(a)')"Please check the documentation on www.flapw.de for more details."

    CALL juDFT_end("",l_endXML=.FALSE.) !No message so do a not print more on exit
  END SUBROUTINE fleur_help
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123

  SUBROUTINE add_fleur_arguments()
    USE m_check_arguments
    
    CALL new_argument(0,"-toXML","Convert an old 'inp' file into the new XML format","") 
    CALL new_argument(1,"-xmlXPath","modify the xml-xpath of the inp.xml file","") 
    !Control the job
    CALL new_argument(0,"-check","run in check mode, i.e. stop after init","") 
    CALL new_argument(0,"-info","Print out information on recommended parallelization and available charge densities","") 
    CALL new_argument(2,"-wtime","run for # minutes (used to estimate if another iteration is started)","") 
    CALL new_argument(1,"-j","Distribute MPI ranks to run subjobs (Format PE:DIR meaning run with PE in directory DIR)","") 
    CALL new_argument(1,"-f","Obtain info on subjobs from file","") 
    CALL new_argument(2,"-n_min_size","Try to use at least specified number of PE in eigenvalue parallelization","") 
    CALL new_argument(1,"-diag","Choose method for diagonalization","lapack,debugout"&
#ifdef CPP_SCALAPACK
         //",scalapack"&
#endif
#ifdef CPP_ELPA_ONENODE
         //",elpa_1node"&
#endif
#ifdef CPP_ELPA
       //",elpa"&
#endif
#ifdef CPP_CHASE
       //",chase"&
#endif
#ifdef CPP_MAGMA
       //",magma"&
#endif
#ifdef CPP_GPU
       //",cusolver"&
#endif
       ) 
    CALL new_argument(1,"-eig","Method for storing the eigenvectors","mem,da"&
#ifdef CPP_MPI
         //",mpi"&
#endif
#ifdef CPP_HDF
         //",hdf"&
#endif
         ) 
    !Debugging 
    CALL new_argument(0,"-warn_only","Continue execution after a warning message","") 
    CALL new_argument(0,"-trace","Try to generate a stacktrace in case of an error","") 
124
    CALL new_argument(0,"-debugtime","Write the start/stop of all timers to the console","")
125
    CALL new_argument(0,"-all_times","Write json files of timing for all PE, not only for PE=0","")
126 127 128 129
    !Output
    CALL new_argument(0,"-mix_io","Do not store mixing history in memory but do IO in each iteration","") 
    CALL new_argument(0,"-no_out","Do not open the 'out' file but write to stdout","") 
    CALL new_argument(0,"-genEnpara","Generate an 'enpara' file for the energy parameters","") 
130
    CALL new_argument(0,"-gw","Add alternative k point set for GW in all outputs for the XML input file","") 
131 132 133 134 135 136 137 138 139 140 141
    CALL new_argument(0,"-noco","write out noco parameters in all outputs for inp.xml","") 
    CALL new_argument(0,"-h","Print this message","")
    CALL new_argument(0,"-no_send","Do not send usage data","")
    !HDF density
    CALL new_argument(0,"-no_cdn_hdf","Disable HDF charge density mode (activated by default if HDF5 is available)","")
    CALL new_argument(0,"-last_extra","Generate an additional file cdn_last.hdf that contains only the last density","")
    CALL new_argument(2,"-sd","use starting density N, where N is the index of the density according to -info","")
    CALL new_argument(1,"-delden","delete densities (either an index N, a range N-M or the keyword 'allbutlast' should be given)","")
    !GPU parameter
    CALL new_argument(0,"-gpu","Use GPU for computing","")
  END SUBROUTINE add_fleur_arguments
142
END MODULE m_fleur_help